开箱即用的whisper-service服务

安装须知

Whisper官方网址

https://github.com/openai/whisper

Whisper 镜像站

https://docker.aityp.com/r/docker.io/onerahmet

本次提供的环境镜像为:docker.io/onerahmet/openai-whisper-asr-webservice:v1.6.0-gpu

运行环境要求

服务器架构

服务器架构要求x86_64,或x64,或amd64。

在这里插入图片描述

CUDA版本

使用nvidia-smi指令检查CUDA version是不是≥11.6

nvidia-smi

检查显卡驱动是否满足要求
在这里插入图片描述

此处示例显示12.4≥11.6,满足需求

目录文件说明

运行镜像

1.通过网络下载

docker pull onerahmet/openai-whisper-asr-webservice:v1.6.0-gpu

2.离线部署

whisper_v160.tar

模型权重文件

whisper_model 目录下的所有.pt文件为不同size的whisper模型权重

模型性能benchmark

SizeParametersEnglish-only modelMultilingual modelRequired VRAMRelative speed
tiny39 Mtiny.entiny~1 GB~10x
base74 Mbase.enbase~1 GB~7x
small244 Msmall.ensmall~2 GB~4x
medium769 Mmedium.enmedium~5 GB~2x
large1550 MN/Alarge~10 GB1x
turbo809 MN/Aturbo~6 GB~8x

服务安装

1. 导入基础镜像

通过docker pull的不需要这一步

docker load -i whisper_v160.tar

在这里插入图片描述

2. 拷贝模型权重

使用任意指令拷贝到你管理下的目录

下述启动指令的/home/baijs/myway/whisper_model路径需要替换为你的服务器路径

3. Whisper 容器启动命令集

参考启动指令

启动 large 模型服务

映射宿主机9004端口到容器内部9000端口,使用数据卷映射服务器/home/baijs/myway/whisper_model的路径到内部:/root/.cache/whisper,

模型使用large,容器名为whisper_l

docker run -d -p 9004:9000 -v /home/baijs/myway/whisper_model:/root/.cache/whisper -e ASR_MODEL=large --name=whisper_l onerahmet/openai-whisper-asr-webservice:v1.6.0-gpu
启动 turbo 模型服务

映射宿主机9001端口到容器内部9000端口,使用相同的数据卷映射,模型使用turbo,容器名为whisper_turbo

docker run -d -p 9001:9000 -v /home/baijs/myway/whisper_model:/root/.cache/whisper -e ASR_MODEL=turbo --name=whisper_turbo onerahmet/openai-whisper-asr-webservice:v1.6.0-gpu
启动 medium 模型服务

映射宿主机9000端口到容器内部9000端口,使用相同的数据卷映射,模型使用medium,容器名为whisper_m

docker run -d -p 9000:9000 -v /home/baijs/myway/whisper_model:/root/.cache/whisper -e ASR_MODEL=medium --name=whisper_m onerahmet/openai-whisper-asr-webservice:v1.6.0-gpu
启动 small 模型服务

映射宿主机8999端口到容器内部9000端口,使用相同的数据卷映射,模型使用small,容器名为whisper_s

docker run -d -p 8999:9000 -v /home/baijs/myway/whisper_model:/root/.cache/whisper -e ASR_MODEL=small --name=whisper_s onerahmet/openai-whisper-asr-webservice:v1.6.0-gpu
启动 base 模型服务

映射宿主机8998端口到容器内部9000端口,使用相同的数据卷映射,模型使用base,容器名为whisper_base

docker run -d -p 8998:9000 -v /home/baijs/myway/whisper_model:/root/.cache/whisper -e ASR_MODEL=base --name=whisper_base onerahmet/openai-whisper-asr-webservice:v1.6.0-gpu
启动 tiny 模型服务

映射宿主机8997端口到容器内部9000端口,使用相同的数据卷映射,模型使用tiny,容器名为whisper_tiny

docker run -d -p 8997:9000 -v /home/baijs/myway/whisper_model:/root/.cache/whisper -e ASR_MODEL=tiny --name=whisper_tiny onerahmet/openai-whisper-asr-webservice:v1.6.0-gpu

4.跟踪容器日志

使用docker logs -f <容器名>或<容器ID>跟踪服务状态

例如此处我启动large模型,名称为whipser,容器id为688*,我跟踪容器日志:

在这里插入图片描述

可以看到日志显示超出显存,可以通过该方法排查问题
在这里插入图片描述

5.停止服务

docker stop <容器名>

示例:

docker stop whisper_base

在这里插入图片描述

6.服务重新启动

docker start <容器名>

如果服务是通过stop停止的,可以通过 start来快速恢复服务

示例

docker start whisper_tiny

在这里插入图片描述

可以看到服务快速就恢复了

服务使用

以medium模型为例,服务成功启动在宿主机9000端口后,访问<宿主机IP>:9000

示例地址:

http://192.168.10.60:9000/docs

示例效果:

在这里插入图片描述

这个服务提供了 2 个接口:

  • /asr ,自动语音识别,上传语音或视频文件,输出文本。
  • /detect-language ,检测语言,通过检测上传文件中前30s的音频,判断使用的语言。

1.自动语音识别

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

上传的test.mp3是一首名为《清空》的中文歌曲,可以看到正确识别了结果。

在这里插入图片描述

为什么李宗盛乱入了 = =

2.语言检测

使用方法同上

在这里插入图片描述

服务参数说明

1.自动语音识别服务 /asr

encode

  • 类型: 布尔值 (查询参数)
  • 默认值: true
  • 说明: 决定是否在处理前通过ffmpeg对音频进行编码处理。设置为true时,服务会先用ffmpeg处理上传的音频文件,使其符合Whisper模型的输入要求。若您的音频已经是正确格式,可设为false跳过此步骤。

task

  • 类型: 字符串 (查询参数)

  • 默认值: transcribe

  • 可选值

    • transcribe: 将音频转录为原始语言的文本
    • translate: 将音频转录并翻译为英语
  • 说明: 指定处理任务的类型,保持原语言或翻译为英语

language

  • 类型: 字符串 (查询参数)
  • 可选值: 多种语言代码 (af, am, ar, 等…)

language: 主动声明音频是什么语言,默认不指定,模型可以自动识别。以下是Whisper ASR支持的语言代码及其对应的语言名称:

代码语言名称代码语言名称代码语言名称
af南非荷兰语am阿姆哈拉语ar阿拉伯语
as阿萨姆语az阿塞拜疆语ba巴什基尔语
be白俄罗斯语bg保加利亚语bn孟加拉语
bo藏语br布列塔尼语bs波斯尼亚语
ca加泰罗尼亚语cs捷克语cy威尔士语
da丹麦语de德语el希腊语
en英语es西班牙语et爱沙尼亚语
eu巴斯克语fa波斯语fi芬兰语
fo法罗语fr法语gl加利西亚语
gu古吉拉特语ha豪萨语haw夏威夷语
he希伯来语hi印地语hr克罗地亚语
ht海地克里奥尔语hu匈牙利语hy亚美尼亚语
id印度尼西亚语is冰岛语it意大利语
ja日语jw爪哇语ka格鲁吉亚语
kk哈萨克语km高棉语kn卡纳达语
ko韩语la拉丁语lb卢森堡语
ln林加拉语lo老挝语lt立陶宛语
lv拉脱维亚语mg马达加斯加语mi毛利语
mk马其顿语ml马拉雅拉姆语mn蒙古语
mr马拉地语ms马来语mt马耳他语
my缅甸语ne尼泊尔语nl荷兰语
nn新挪威语no挪威语oc奥克语
pa旁遮普语pl波兰语ps普什图语
pt葡萄牙语ro罗马尼亚语ru俄语
sa梵语sd信德语si僧伽罗语
sk斯洛伐克语sl斯洛文尼亚语sn绍纳语
so索马里语sq阿尔巴尼亚语sr塞尔维亚语
su巽他语sv瑞典语sw斯瓦希里语
ta泰米尔语te泰卢固语tg塔吉克语
th泰语tk土库曼语tl塔加洛语
tr土耳其语tt鞑靼语uk乌克兰语
ur乌尔都语uz乌兹别克语vi越南语
yi意第绪语yo约鲁巴语yue粤语
zh中文
  • 说明: 指定音频中使用的语言,有助于提高转录准确性。若不提供,系统会自动检测语言。

initial_prompt

  • 类型: 字符串 (查询参数)
  • 说明: 为转录提供上下文提示。这可以帮助模型更好地理解特定领域术语或预期的转录内容,特别是对于包含专业术语的音频很有帮助。

word_timestamps

  • 类型: 布尔值 (查询参数)
  • 默认值: false
  • 说明: 启用后将生成单词级别的时间戳,标记每个单词在音频中的开始和结束时间。这对于创建精确的字幕或音频索引非常有用,但可能会增加处理时间。

output

  • 类型: 字符串 (查询参数)

  • 默认值: txt

  • 可选值

    • txt: 纯文本格式
    • vtt: Web Video Text Tracks格式 (用于HTML5视频字幕)
    • srt: SubRip字幕格式 (常用字幕格式)
    • tsv: 制表符分隔值 (包含时间戳和段落的表格格式)
    • json: JSON格式 (包含完整的元数据,如置信度分数、时间戳等)
  • 说明: 指定转录结果的输出格式。不同格式适用于不同用途,如简单文本、视频字幕或需要详细元数据的应用。

这些参数可以根据您的具体需求组合使用,以获得最佳的转录结果和格式。

2.语言检测/detect-language

  • encode (布尔值, 默认: true): 是否在处理前通过ffmpeg对音频进行编码
  • audio_file (必需): 要检测语言的音频文件

百度云链接

我把离线的运行环境.tar和模型都下载下来了
在这里插入图片描述

在这里插入图片描述

通过网盘分享的文件:whisper
链接: https://pan.baidu.com/s/1D0MRGUsIjaQy0baVO7EzkA?pwd=1117
提取码: 1117
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/33535.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud带你走进微服务的世界

认识微服务 随着互联网行业的发展&#xff0c;对服务的要求也越来越高&#xff0c;服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢&#xff1f; 单体架构 单体架构&#xff1a;将业务的所有功能集中在一个项目中开发&#xff0c;打成一个…

【xv6操作系统】页表与写时拷贝解析及相关实验设计

【xv6操作系统】页表与写时拷贝解析及相关实验设计 页表页表概念xv6页表xv6 TLB实验1&#xff1a;加速系统调用实验2&#xff1a;打印三级页表实验3&#xff1a;检测已访问的页表 写时拷贝写时拷贝实验实现 页表 页表概念 deepseek说&#xff1a; 页表&#xff08;Page Table…

如何处理PHP中的编码问题

如何处理PHP中的编码问题 在PHP开发过程中&#xff0c;编码问题是一个常见且棘手的问题。无论是处理用户输入、数据库交互&#xff0c;还是与外部API通信&#xff0c;编码问题都可能导致数据乱码、解析错误甚至安全漏洞。本文将深入探讨PHP中的编码问题&#xff0c;并提供一些…

人工智能之数学基础:线性变换的象空间和零空间

本文重点 前面的课程中,我们学习了线性变换,由此而引申出线性变换的象空间和零空间,这两个空间在机器学习领域会被经常用到,本文对此进行学习。 直观理解 总的来说象空间就是经过线性变换得到的空间,零空间就是经过线性变换是零的元素构成的空间。 从几何角度来看,象空…

方案精读:IBM方法论-IT规划方法论

该文档聚焦 IT 规划方法论&#xff0c;适合企业高层管理者、IT 部门负责人、业务部门主管以及参与企业信息化建设的相关人员阅读。 &#xff08;本解读资料已包含在绑定资源内&#xff09; 主要内容围绕 IT 规划展开&#xff1a;首先明确 IT 规划需基于企业核心战略&#xff0…

日志监控工具openobserve使用案例

引言 分享一个日志监控工具&#xff0c;openobserve&#xff08;简称 o2&#xff09;&#xff0c;它是一个云原生可观察性平台&#xff0c;专为日志、指标、跟踪、分析 而构建&#xff0c;旨在以 PB 级规模运行。与 Elasticsearch 不同&#xff0c;OpenObserve 不需要了解和调整…

基于威胁的安全测试值得关注,RASP将大放异彩

2‍021年7月21日&#xff0c;由中国信息通信研究院&#xff08;CAICT&#xff09;指导、悬镜安全主办、腾讯安全协办的中国首届DevSecOps敏捷安全大会&#xff08;DSO 2021&#xff09;在北京圆满举办。大会以“安全从供应链开始”为主题&#xff0c;寓意安全基础决定“上层建筑…

Flutter项目升级Xcode 16.2之后编译问题

最近好久没升级Xcode了&#xff0c;升级了一下最新的16.2之后。发现Flutter项目在iOS设备上运行不起来了。报错&#xff1a; 查了许多网友也遇到了&#xff0c;其中一个解决方案&#xff1a;https://stackoverflow.com/questions/79118572/xcode-16-and-ios-18-project-not-com…

torch_geometric 安装

环境监测&#xff1a; import torch print(torch.__version__) # 查看pytorch安装的版本号 print(torch.cuda.is_available()) # 查看cuda是否可用。True为可用&#xff0c;即是gpu版本pytorch print(torch.cuda.get_device_name(0)) # 返回GPU型号 …

力扣——146.LRU缓存

题目链接&#xff1a; https://leetcode.cn/problems/lru-cache/solutions/259678/lruhuan-cun-ji-zhi-by-leetcode-solution/?envTypestudy-plan-v2&envIdtop-100-liked 题目描述&#xff1a; 思路&#xff1a; 提到key-value一定有map&#xff1b;要实现最近最少使用…

69.Harmonyos NEXT图片预览组件应用实践(二):电商、内容与办公场景

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; Harmonyos NEXT图片预览组件应用实践&#xff08;二&#xff09;&#xff1a;电商、内容与办公场景 文章目录 Harmonyos NEXT图片预览组件应用实践…

vue处理接口返回EventStream数据并进行展示

1、在 Vue 组件中连接外部 SSE 接口 HTML&#xff1a; <template><div class"ceshi-wrap"><h3 style"color:red;">来自本地文件的 SSE 流数据&#xff1a;</h3>-----<ul><li v-for"item in messages" :key&q…

Linux系统中切换CUDA版本的完整指南(含vim使用方法)

Linux系统中切换CUDA版本的完整指南&#xff08;含vim使用方法&#xff09; 在深度学习和高性能计算领域&#xff0c;经常需要在不同的CUDA版本之间切换&#xff0c;以满足不同项目的需求。本文将详细介绍如何在Linux系统中通过软链接切换CUDA版本的方法&#xff0c;并介绍了v…

批量压缩与优化 Excel 文档,减少 Excel 文档大小

当我们在 Excel 文档中插入图片资源的时候&#xff0c;如果我们插入的是原图&#xff0c;可能会导致 Excel 变得非常的大。这非常不利于我们传输或者共享。那么当我们的 Excel 文件非常大的时候&#xff0c;我们就需要对文档做一些压缩或者优化的处理。那有没有什么方法可以实现…

CentOS7安装DNS服务器bind

文章目录 安装DNS服务设置配置文件自定义域名解析完整配置 需求是公司内网服务器无法连接外网&#xff0c;需要在本地搭建DNS服务&#xff0c;这样物理机器迁移到内网后&#xff0c;通过域名解析访问服务 DNS服务器 172.25.14.215 ip域名172.25.14.216mysql.server172.25.14.2…

适合企业内训的AI工具实操培训教程(37页PPT)(文末有下载方式)

详细资料请看本解读文章的最后内容。 资料解读&#xff1a;适合企业内训的 AI 工具实操培训教程 在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;技术迅速发展&#xff0c;深度融入到各个领域&#xff0c;AIGC&#xff08;人工智能生成内容&#xff09;更是成…

leetcode0027 移除元素 - easy

1 题目&#xff1a;移除元素 27 官方标定难度&#xff1a;简单 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为 k&#xf…

Mysql自增主键会遇到什么问题?

大家好&#xff0c;我是锋哥。今天分享关于【Mysql自增主键会遇到什么问题?】面试题。希望对大家有帮助&#xff1b; Mysql自增主键会遇到什么问题? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MySQL自增主键&#xff08;AUTO_INCREMENT&#xff09;在使用过程…

linux 命令 case

在 Linux Shell 脚本中&#xff0c;case 是一个强大的多条件分支控制命令&#xff0c;用于基于模式匹配执行不同代码块。它类似于其他编程语言中的 switch-case 语句&#xff0c;但更灵活&#xff0c;支持通配符和模式组合。以下是其核心用法和实 一、基础语法 case 变量 in …

注意力机制,层归一化,RBA。KAN-ODE,小波KAN

目录 attention is all you need 翻译 多头注意力 8.6 Multi-head Self Attention 模型 模型架构 encoder安定 decode 注意力机制 位置编码 自注意力机制的优势 实验结果 结论 代码 Transformer 架构 代码实现思路 总结 编码器、解码器和位置编码的摆放顺序&…