Whisper ASR Webservice 语音识别服务完整指南
项目介绍
Whisper ASR Webservice 是基于 OpenAI Whisper 模型的语音识别服务。Whisper 是一个通用的语音识别模型,在大规模多样化的音频数据集上训练,能够执行多语言语音识别、语音翻译和语言识别。该项目提供了易于部署的 Web 服务,支持通过 Docker 快速启动和运行。
当前版本支持以下 Whisper 模型:
- OpenAI Whisper
- Faster Whisper
- WhisperX
快速启动
环境准备
确保您的系统已安装 Docker 和 Docker Compose。
部署步骤
第一步:获取项目代码
git clone https://gitcode.com/gh_mirrors/wh/whisper-asr-webservice
cd whisper-asr-webservice
第二步:选择部署方式
根据硬件配置选择合适的启动命令:
CPU 版本(适合大多数用户):
docker run -d -p 9000:9000 -e ASR_MODEL=base -e ASR_ENGINE=openai_whisper onerahmet/openai-whisper-asr-webservice:latest
GPU 版本(需要更高处理性能):
docker run -d --gpus all -p 9000:9000 -e ASR_MODEL=base -e ASR_ENGINE=openai_whisper onerahmet/openai-whisper-asr-webservice:latest-gpu
第三步:验证服务状态
启动后,访问 http://localhost:9000/docs 查看交互式 Swagger API 文档,确认服务正常运行。
核心功能特性
语音识别服务 (/asr)
支持两种任务类型:
- 转写:将上传的音频文件转录为文字
- 翻译:无论源语言是什么,都提供英文转录
语言检测服务 (/detect-language)
检测上传文件中使用的语言,仅处理前 30 秒音频。
输出格式支持
API 支持多种输出格式:
- text:纯文本转录(默认)
- json:包含分段、时间戳和元数据的详细 JSON
- vtt:WebVTT 字幕格式
- srt:SubRip 字幕格式
- tsv:带时间戳的制表符分隔值
高级功能
时间戳和语音活动检测
- 通过
word_timestamps参数启用词级时间戳 - 通过
vad_filter参数启用语音活动检测,过滤无语音的音频部分(目前仅支持 Faster Whisper)
说话人分离
当使用 WhisperX 引擎并启用说话人分离(diarize=true)时,输出将包含每个分段的说话人标签。这需要:
- 配置 WhisperX 引擎
- 设置有效的 Hugging Face token(HF_TOKEN)
- 足够的内存用于说话人分离模型
可选的 min_speakers 和 max_speakers 参数用于指定预期的说话人数量。
应用场景
会议记录自动化
将会议录音实时转换为文字记录,大幅提升工作效率和记录准确性。
在线教育字幕生成
为教学视频自动生成精准字幕,提升学习体验和内容可访问性。
多语言翻译服务
实现跨语言沟通的无缝衔接,打破语言障碍,支持多种语言间的实时翻译。
媒体内容转录
为播客、视频内容生成文字记录,便于内容索引和搜索。
性能优化建议
模型选择策略
- 基础场景:使用 base 模型,平衡性能和精度
- 高精度需求:选择 large 模型,提供最准确的转录结果
- 平衡性能:medium 模型是最佳选择
硬件配置建议
- 普通使用:CPU 版本足够满足日常需求
- 高频处理:推荐 GPU 加速以提升处理速度
- 生产环境:确保足够的内存和存储空间
请求示例
使用 cURL 进行语音识别请求:
curl -X POST -H "content-type: multipart/form-data" -F "audio_file=@/path/to/file" 0.0.0.0:9000/asr?output=json
响应格式(JSON)
{
"text": "完整的转录文本",
"segments": [
{
"timestamps": [0.0, 5.0],
"transcript": "分段文本内容",
"words": [
{
"word": "单个词语",
"start": 0.0,
"end": 0.5
}
]
}
],
"language": "检测到的语言代码"
}
环境变量配置
服务支持多种环境变量配置,包括:
- ASR_MODEL:指定使用的 Whisper 模型
- ASR_ENGINE:选择语音识别引擎
- HF_TOKEN:Hugging Face 令牌(用于 WhisperX)
- 其他性能调优参数
技术架构
核心组件
- OpenAI Whisper:提供核心技术引擎
- Faster Whisper:优化版本的 Whisper,提供更快的处理速度
- WhisperX:增强版 Whisper,支持说话人分离等高级功能
- FFmpeg 集成:提供音频处理支持,支持多种音频和视频格式
- Docker 容器:简化部署流程,确保环境一致性
音频格式支持
通过 FFmpeg 自动转换上传文件,支持完整的音频和视频编解码器。
通过以上配置和使用指南,您可以快速搭建并运行 Whisper ASR Webservice,实现高效的语音识别功能,满足各种应用场景的需求。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




