LinTO-STT-Whisper 是一个基于 Whisper 模型 的自动语音识别 (ASR) API。该服务既可以作为独立的转录服务使用,也可以通过消息代理连接器部署在微服务架构中。支持离线或实时转录功能,您可以通过 LinTO Studio 在浏览器中直接试用 LinTO-STT。
在GPU上,不同模型大小的显存峰值使用情况如下表所示(根据后端和精度不同):
| 模型大小 | Backend和精度 |
|---|---|
| ct2/faster_whisper | |
| int8 | |
| tiny | 1.5G |
| distil-whisper/distil-large-v2 | 2.2G |
| large (large-v3等) | 2.8G |
| large-v3-turbo | 1.3G |
LinTO-STT-Whisper需要Whisper模型来执行语音识别。如果尚未下载,模型将在首次转录时下载,可能会占用数GB的磁盘空间。
LinTO-STT-Whisper还可以选择使用wav2vec模型执行单词对齐。wav2vec模型可以通过以下方式指定:
torchaudio管道的字符串(例如WAV2VEC2_ASR_BASE_960H)jonatasgrosman/wav2vec2-large-xlsr-53-english)默认提供了法语(fr)、英语(en)、西班牙语(es)、德语(de)、荷兰语(nl)、日语(ja)和中文(zh)的wav2vec模型。但建议不再使用对齐模型,因为它已不再需要和测试。
任务模式下,STT的唯一入口是发布到消息代理的任务。支持的消息代理包括RabbitMQ、Redis和Amazon SQS。此外,为防止大型音频通过消息代理传输,STT-Worker使用共享存储文件夹(SHARED_FOLDER)。
bashgit clone [***] cd linto-stt docker build . -f whisper/Dockerfile.ctranslate2 -t linto-stt-whisper:latest
或直接拉取预构建镜像:
bashdocker pull lintoai/linto-stt-whisper
whisper/.envdefault 提供了.env文件的示例。
| 参数 | 描述 | 示例 |
|---|---|---|
| SERVICE_MODE | (必填) STT服务模式,参见服务模式 | http | task | websocket |
| MODEL | (必填) Whisper模型路径、类型或HuggingFace标识符 | large-v3 | distil-whisper/distil-large-v2 | <ASR_PATH> |
| LANGUAGE | 识别语言 | * | fr | fr-FR | French | en | en-US | English |
| PROMPT | Whisper模型使用的提示文本 | 鼓励特定转录风格的自由文本(不流畅、无标点等) |
| DEVICE | 模型使用的设备(默认情况下,如果可用则使用GPU/CUDA,否则使用CPU) | cpu | cuda |
| NUM_THREADS | CPU上运行的最大线程数 | 1 | 4 |
| CUDA_VISIBLE_DEVICES | GPU设备索引,多GPU机器上建议同时设置CUDA_DEVICE_ORDER=PCI_BUS_ID | 0 | 1 | 2 |
| CONCURRENCY | 最大并行请求数(工作进程数减一) | 2 |
| VAD | 语音活动检测方法。使用"false"禁用。如果未指定,默认是auditok VAD | true | false | 1 | 0 | auditok | silero |
| VAD_DILATATION | 扩展VAD检测到的每个语音段的时间(秒)。默认0.5 | 0.1 | 0.5 |
| VAD_MIN_SPEECH_DURATION | 语音段的最小持续时间(秒)。默认0.1 | 0.1 | 0.5 |
| VAD_MIN_SILENCE_DURATION | 静音段的最小持续时间(秒)。默认0.1 | 0.1 | 0.5 |
| ENABLE_STREAMING | (HTTP模式下) 遗留参数,如果启用则重定向到websocket模式 | true | false |
| USE_ACCURATE | 使用更消耗资源但更准确的参数进行转录。默认true | true | false | 1 | 0 |
| STREAMING_PORT | (WebSocket模式下) 监听传入WS连接的端口。默认80 | 80 |
| STREAMING_MIN_CHUNK_SIZE | 转录前缓冲区的最小大小(秒)。默认0.5 | 0.5 | 26 |
| STREAMING_BUFFER_TRIMMING_SEC | 缓冲区的最大目标长度(秒)。转录后尝试剪切到该长度。默认8 | 8 | 10 |
| STREAMING_FINAL_MIN_DURATION | 最终结果的最小持续时间。默认2 | 1 | 2 |
| STREAMING_FINAL_MAX_DURATION | 最终结果的最大持续时间。默认20 | 20 | 10 |
| STREAMING_PAUSE_FOR_FINAL | 在文本中未找到标点符号时,输出最终结果所需的最小静音持续时间(秒)。默认1.0 | 0.5 | 2 |
| STREAMING_TIMEOUT_FOR_SILENCE | 如果在发送数据到服务器之前在本地应用VAD,这将允许服务器找到静音。如果在packet duration * STREAMING_TIMEOUT_FOR_SILENCE期间未收到数据包,则认为存在静音(持续数据包持续时间)。值应在1到2之间。默认1.5 | 1.8 |
| SERVICE_NAME | (仅任务模式) 任务处理队列名称 | my-stt |
| SERVICE_BROKER | (仅任务模式) 消息代理URL | redis://my-broker:6379 |
| BROKER_PASS | (仅任务模式) 代理密码 | my-password | (空) |
| ALIGNMENT_MODEL | (已弃用) 用于单词对齐的wav2vec模型路径,或HuggingFace仓库名称或torchaudio管道 | WAV2VEC2_ASR_BASE_960H | jonatasgrosman/wav2vec2-large-xlsr-53-english | <WAV2VEC_PATH> |
警告: 模型将在首次转录时(如有需要将下载并)加载到内存中。当使用来自Hugging Face(transformers)的Whisper模型以及ctranslate2(faster_whisper)时,还将下载torch库以进行从torch到ctranslate2的转换。
如果要预加载模型(稍后指定路径<ASR_PATH>作为MODEL),您可能需要下载以下OpenAI Whisper模型之一:
多语言Whisper模型可通过以下链接下载:
也可以找到专门用于英语的Whisper模型:
如果您过去曾在本地使用OpenAI-Whipser,模型可以在~/.cache/whisper下找到。
对于来自Hugging Face(transformers)的Whisper模型也是如此,例如[***] Face标识符distil-whisper/distil-large-v2)。
LANGUAGE环境变量可用于设置默认语言(可以是"*"表示自动语言检测)。请注意,language也可以作为请求中的参数传递:在这种情况下,它将覆盖LANGUAGE环境变量。
语言值可以是:
*",表示自动语言检测(由Whisper模型执行)fr-FR"、"en-US"、"yue-HK"等)fr"、"en"、"yue"等)。请注意,这是BCP-47代码中实际使用的唯一部分。French"、"English"、"Cantonese"等)。Whisper支持的语言列表:
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(普什图语
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429