
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
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支持两种类型的模型:
我们在https://doc.linto.ai/docs/developpers/apis/ASR/models%E6%8F%90%E4%BE%9B%E8%87%AA%E7%A0%94%E6%A8%A1%E5%9E%8B%EF%BC%88v2%EF%BC%89%EF%BC%8C%E4%B9%9F%E5%8F%AF%E4%BD%BF%E7%94%A8%E6%AD%A4%E5%A4%84%E6%8F%90%E4%BE%9B%E7%9A%84Vosk%E6%A8%A1%E5%9E%8B%E3%80%82
转录服务需要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 docker.xuanyuan.run/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 \ docker.xuanyuan.run/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 \ docker.xuanyuan.run/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)。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务