LinTO-STT-Kaldi 是一个基于 Kaldi 训练模型的自动语音识别(ASR)API。该镜像可作为独立转录服务部署,也可集成到微服务架构中(通过消息代理连接器),支持离线转录和实时转录两种模式。可通过 LinTO Studio 在浏览器中直接试用该服务。
需将模型文件夹下载并解压至 Docker 容器可访问的目录。支持两种模型类型:
bashgit clone [***] cd linto-stt docker build . -f kaldi/Dockerfile -t linto-stt-kaldi:latest
bashdocker pull lintoai/linto-stt-kaldi
AM_PATH 和 LM_PATH 目录MODEL_PATH 目录创建 .env 文件(可参考 kaldi/.envdefault),配置关键参数。核心参数说明见 配置参数说明 章节。
以 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 接口。
启动命令:
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 |
/healthchecktext/plain,返回 1 表示服务正常/transcribeContent-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": ***, "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 文件)。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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