如果你使用 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-STT-Kaldi 是一个基于 https://github.com/kaldi-asr/kaldi 训练模型的自动语音识别(ASR)API。该镜像可作为独立转录服务部署,也可集成到微服务架构中(通过消息代理连接器),支持离线转录和实时转录两种模式。可通过 LinTO Studio 在浏览器中直接试用该服务。
需将模型文件夹下载并解压至 Docker 容器可访问的目录。支持两种模型类型:
方式一:本地构建
bashgit clone https://github.com/linto-ai/linto-stt.git cd linto-stt docker build . -f kaldi/Dockerfile -t linto-stt-kaldi:latest
方式二:从 Docker Hub 拉取
bashdocker pull lintoai/linto-stt-kaldi
AM_PATH 和 LM_PATH 目录MODEL_PATH 目录创建 .env 文件(可参考 https://github.com/linto-ai/linto-stt/blob/master/kaldi/.envdefault%EF%BC%89%EF%BC%8C%E9%85%8D%E7%BD%AE%E5%85%B3%E9%94%AE%E5%8F%82%E6%95%B0%E3%80%82%E6%A0%B8%E5%BF%83%E5%8F%82%E6%95%B0%E8%AF%B4%E6%98%8E%E8%A7%81 配置参数说明 章节。
模式一:HTTP 服务模式
以 HTTP 接口提供转录服务,支持文件上传和流式转录。
启动命令:
bashdocker run --rm \ -p 8080:80 \ # 宿主端口:容器端口 -v /path/to/am:/opt/AM \ # 声学模型挂载(LinTO模型) -v /path/to/lm:/opt/LM \ # 语言模型挂载(LinTO模型) # -v /path/to/vosk/model:/opt/model \ # Vosk模型挂载(替换上述两行) -v /path/to/recasepunc:/opt/PUNCT \ # 标点模型(可选) --env-file .env \ linto-stt-kaldi:latest
docker-compose 示例:
yamlversion: '3' services: linto-stt: image: linto-stt-kaldi:latest ports: - "8080:80" volumes: - /host/am:/opt/AM - /host/lm:/opt/LM - /host/recasepunc:/opt/PUNCT environment: - SERVICE_MODE=http - MODEL_TYPE=lin - ENABLE_STREAMING=true - CONCURRENCY=4 - PUNCTUATION_MODEL=/opt/PUNCT restart: unless-stopped
模式二:任务队列模式(微服务)
通过消息代理接收转录任务,适用于微服务架构。
启动命令:
bashdocker run --rm \ -v /path/to/am:/opt/AM \ -v /path/to/lm:/opt/LM \ -v /path/to/shared/audio:/opt/audio \ # 共享音频文件夹 --env-file .env \ linto-stt-kaldi:latest
模式三:WebSocket 流式模式
专用流式转录服务,仅提供 WebSocket 接口。
启动命令:
bashdocker run --rm \ -p 8080:80 \ -v /path/to/model:/opt/model \ # 模型挂载(LinTO或Vosk) -v /path/to/recasepunc:/opt/PUNCT \ # 标点模型(可选) --env SERVICE_MODE=websocket \ --env MODEL_TYPE=vosk \ --env STREAMING_PORT=80 \ linto-stt-kaldi:latest
| 参数名 | 描述 | 示例值 |
|---|---|---|
SERVICE_MODE | 服务模式:http(HTTP接口)、task(任务队列)、websocket(流式) | http |
MODEL_TYPE | 模型类型:lin(LinTO模型)、vosk(Vosk模型) | vosk |
ENABLE_STREAMING | HTTP模式下是否启用 /streaming WebSocket 接口 | true |
SERVICE_NAME | 任务模式下的队列名称 | my-stt-task-queue |
SERVICE_BROKER | 任务模式下的消息代理URL | redis://broker:6379 |
BROKER_PASS | 消息代理密码 | my-broker-password |
STREAMING_PORT | WebSocket模式下的监听端口 | 80 |
CONCURRENCY | 最大并行请求数 | 4 |
PUNCTUATION_MODEL | recasepunc标点模型路径(容器内路径) | /opt/PUNCT/fr.24000 |
健康检查:/healthcheck
text/plain,返回 1 表示服务正常文本转录:/transcribe
Content-Type: multipart/form-datafile(16bit 16KHz WAV 音频文件)text/plain:纯文本转录结果application/json:带元数据的 JSON,格式如下:
json{ "text": "这是转录文本", "words": [ {"word": "这是", "start": 0.123, "end": 0.456, "conf": 0.92}, {"word": "转录文本", "start": 0.500, "end": 0.890, "conf": 0.88} ], "confidence-score": 0.90 }
流式转录:/streaming(需 ENABLE_STREAMING=true)
{"config": {"sample_rate": 16000, "language": "zh"}}(language 可选){"eof": 1}{"partial": "这是中间"} 或最终结果 {"text": "这是最终转录文本"}eof接口文档:/docs
请求参数
任务队列接收的请求需包含以下参数:
file_path:共享文件夹内的音频文件路径(完整路径为 /opt/audio/{file_path})with_metadata:是否返回元数据(时间戳、置信度),true/false响应格式
成功转录后返回 JSON:
json{ "text": "这是转录文本", "words": [ {"word": "这是", "start": 0.123, "end": 0.456, "conf": 0.92}, ... ], "confidence-score": 0.90 }
bash# 测试转录接口(返回 JSON) curl -X POST "http://localhost:8080/transcribe" \ -H "accept: application/json" \ -H "Content-Type: multipart/form-data" \ -F "file=@test_audio.wav;type=audio/x-wav" # 测试健康检查 curl "http://localhost:8080/healthcheck" # 返回 "1"
本项目基于 AGPLv3 许可证开发(详见 LICENSE 文件)。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务