本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
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)。
git clone [***] cd linto-stt docker build . -f whisper/Dockerfile.ctranslate2 -t linto-stt-whisper:latest
或直接拉取预构建镜像:
docker 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429