在实时语音转文字(STT)领域,OpenAI 的 Whisper 模型准确率极高,但本地配置环境往往步骤繁琐。WhisperLiveKit 是一个优秀的开源项目,它将 Whisper 的能力封装为低延迟的实时流式语音识别服务。
本文将教你如何使用 Docker Compose,在几分钟内搭建起一个高效、稳定的中文语音识别服务器。
🛠️ Docker Compose 配置文件
首先,在你的服务器或本地电脑上创建一个名为 docker-compose.yml 的文件,并将以下内容复制进去:
services:
whisperlivekit:
# 直接从远程 GitHub 仓库构建镜像
build:
context: https://github.com/quentinfuxa/whisperlivekit.git
# 或者先 git clone 到本地,然后使用本地路径:
# build: ./whisperlivekit
container_name: whisperlivekit
# 映射服务端口到宿主机
ports:
- "9000:9000"
# 容器启动命令:指定中文识别与 small 模型
command: |
--model small --language zh --host 0.0.0.0 --port 9000
# 持久化存储,避免重复下载模型
volumes:
- ./models:/root/.cache/huggingface
# 策略:除非手动停止,否则总是自动重启
restart: unless-stopped
# 禁用默认健康检查以提高性能(可根据需求自定义)
healthcheck:
test: ["NONE"]
networks: {}
💡 核心配置深度解析
这份配置文件针对中文实时识别和生产环境稳定性进行了深度优化,关键点如下:
- 在线构建 (
build.context):无需手动下载源码。Docker 会直接拉取 GitHub 仓库并自动完成镜像构建,保证代码是最新的。 - 参数定制 (
command):--model small:选用了 small 模型。它在识别准确率与计算资源消耗之间达到了完美的平衡,非常适合消费级显卡或 CPU 运行。--language zh:锁定中文识别,大幅提升中文普通话的响应速度和准确度,避免模型在多种语言间盲目猜测。--host 0.0.0.0:允许容器监听所有网络接口,方便外部设备连接。
- 模型缓存 (
volumes):Whisper 模型文件体积较大。通过将容器内的 Hugging Face 缓存目录映射到宿主机的 ./models 文件夹,即使重启或删除了容器,模型也不必重新下载。
🚀 部署与运行步骤
1. 启动服务
在 docker-compose.yml 文件所在目录下,执行以下命令构建并启动容器:
docker compose up -d --build
首次启动时,系统会自动下载源码并编译镜像,同时开始下载 Whisper small 中文模型,请耐心等待几分钟。
2. 检查运行状态
使用以下命令查看容器是否正常运行:
如果看到 whisperlivekit 处于 Up 状态,并且 9000 端口已开启,说明部署成功。
3. 查看日志
如果想确认模型是否下载完成,可以查看实时日志:
🎯 总结与应用场景
通过 Docker Compose,我们成功将 WhisperLiveKit 变成了一个开箱即用的微服务。它通过 WebSocket 协议提供低延迟的音频流输入和文本输出,非常适合集成进以下场景:
- 会议实时字幕与速记系统
- 智能家居语音助手后端
- 视频直播实时同传字幕
你现在可以编写前端代码或使用客户端工具,连接到 ws://localhost:9000,开始享受丝滑的流式中文语音识别了!