LinTO-platform-stt是https://github.com/linto-ai/linto-platform-stack%E4%B8%AD%E7%9A%84%E8%BD%AC%E5%BD%95%E6%9C%8D%E5%8A%A1%E3%80%82%E5%AE%83%E6%97%A2%E5%8F%AF%E4%BB%A5%E4%BD%9C%E4%B8%BA%E7%8B%AC%E7%AB%8B%E8%BD%AC%E5%BD%95%E6%9C%8D%E5%8A%A1%E4%BD%BF%E7%94%A8%EF%BC%8C%E4%B9%9F%E5%8F%AF%E4%BB%A5%E5%9C%A8%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84%E4%B8%AD%E9%80%9A%E8%BF%87%E6%B6%88%E6%81%AF%E4%BB%A3%E7%90%86%E8%BF%9E%E6%8E%A5%E5%99%A8%E9%83%A8%E7%BD%B2%E3%80%82
运行转录模型需要:
LinTO-Platform-STT支持两种类型的模型:
我们在dl.linto.ai提供自研模型(v2),也可使用此处提供的Vosk模型。
转录服务需要Docker已安装并运行。
任务模式下,STT的唯一入口是发布到消息代理的任务。支持的消息代理包括RabbitMQ、Redis、Amazon SQS。此外,为避免大型音频通过消息代理传输,STT-Worker使用共享存储文件夹(SHARED_FOLDER)。
1- 第一步:构建或拉取镜像
bashgit clone https://github.com/linto-ai/linto-platform-stt.git cd linto-platform-stt docker build . -t linto-platform-stt:latest
或
bashdocker pull lintoai/linto-platform-stt
2- 下载模型
如果使用LinTO模型,需准备好声学模型(AM_PATH)和语言模型(LM_PATH);如果使用Vosk模型,需准备好模型(MODEL)。
3- 配置.env文件
bashcp .envdefault .env
| 参数 | 描述 | 示例 |
|---|---|---|
| SERVICE_MODE | STT服务模式,参见服务模式 | http|task|websocket |
| MODEL_TYPE | 使用的STT模型类型 | lin|vosk |
| ENABLE_STREAMING | 使用HTTP服务模式时,启用/streaming websocket路由 | true|false |
| SERVICE_NAME | 使用任务模式时,设置任务处理队列名称 | my-stt |
| SERVICE_BROKER | 使用任务模式时,消息代理URL | redis://my-broker:6379 |
| BROKER_PASS | 使用任务模式时,代理密码 | my-password |
| STREAMING_PORT | 使用websocket模式时,监听入站WS连接的端口 | 80 |
| CONCURRENCY | 最大并行请求数 | >1 |
!服务模式
STT有三种使用方式:
通过.env值或环境变量SERVING_MODE指定模式:
bashSERVICE_MODE=http
HTTP服务模式部署HTTP服务器和swagger-ui,允许在专用路由上处理转录请求。
.env中的SERVICE_MODE值应设置为http。
bashdocker run --rm \ -p HOST_SERVING_PORT:80 \ -v AM_PATH:/opt/AM \ -v LM_PATH:/opt/LM \ --env-file .env \ linto-platform-stt:latest
这将运行一个容器,提供绑定到主机HOST_SERVING_PORT端口的HTTP API。
参数:
| 变量 | 描述 | 示例 |
|---|---|---|
| HOST_SERVING_PORT | 主机服务端口 | 80 |
| AM_PATH | 主机上声学模型路径,挂载到/opt/AM | /my/path/to/models/AM_fr-FR_v2.2.0 |
| LM_PATH | 主机上语言模型路径,挂载到/opt/LM | /my/path/to/models/fr-FR_big-v2.2.0 |
| MODEL_PATH | 模型路径(使用MODEL_TYPE=vosk),挂载到/opt/model | /my/path/to/models/vosk-model |
HTTP服务模式将celery worker连接到消息代理。
.env中的SERVICE_MODE值应设置为task。
LinTO-platform-stt可通过linto-platform-services-manager部署在linto-platform-stack中。这种方式下,容器生成celery worker,等待消息代理上的转录任务。任务模式下的LinTO-platform-stt不建议手动启动。如果要连接到自定义消息代理,参数如下:
需要在MY_SERVICE_BROKER处运行消息代理。
bashdocker run --rm \ -v AM_PATH:/opt/AM \ -v LM_PATH:/opt/LM \ -v SHARED_AUDIO_FOLDER:/opt/audio \ --env-file .env \ linto-platform-stt:latest
参数:
| 变量 | 描述 | 示例 |
|---|---|---|
| AM_PATH | 主机上声学模型路径,挂载到/opt/AM | /my/path/to/models/AM_fr-FR_v2.2.0 |
| LM_PATH | 主机上语言模型路径,挂载到/opt/LM | /my/path/to/models/fr-FR_big-v2.2.0 |
| MODEL_PATH | 模型路径(使用MODEL_TYPE=vosk),挂载到/opt/model | /my/path/to/models/vosk-model |
| SHARED_AUDIO_FOLDER | 共享音频文件夹,挂载到/opt/audio | /my/path/to/shared/audio |
WebSocket服务器模式仅部署流式转录服务。
.env中的SERVICE_MODE值应设置为websocket。
使用方式与HTTP流式API相同。
/healthcheck
返回API状态
方法:GET
健康检查通过时返回"1"。
/transcribe
转录API
使用"text/plain"返回转录文本,使用"application/json"返回如下结构的JSON对象:
json{ "text" : "这是转录文本", "words" : [ {"word":"这是", "start": 0.123, "end": 0.453, "conf": 0.9}, ... ] "confidence-score": 0.879 }
/streaming
若ENABLE_STREAMING环境变量设为true,则可访问/streaming路由。
该路由接受WebSocket连接。交互流程如下:
若10秒内未收到音频块,连接将关闭并释放worker。
/docs
/docs路由提供OpenAPI/swagger界面。
STT-Worker接受包含以下参数的请求:
file_path: str, with_metadata: bool
返回格式
成功转录后,返回如下结构的JSON对象:
json{ "text" : "这是转录文本", "words": [ { "word" : "这是", "start": 0.0, "end": 0.124, "conf": 1.0 }, ... ], "confidence-score": "" }
可使用curl测试HTTP API:
bashcurl -X POST "http://YOUR_SERVICE:YOUR_PORT/transcribe" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "file=@YOUR_FILE;type=audio/x-wav"
本项目基于AGPLv3许可证开发(参见LICENSE)。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务