whisperX 简介
whisperX 是基于 OpenAI Whisper 的语音识别工具,它在原生 Whisper 的基础上增加了强制音素对齐(Phoneme-Based ASR)和语音活动检测(VAD)功能。相比基础版本,whisperX 能提供更精准的单词级时间戳,并支持多说话人区分(Speaker Diarization),非常适合需要高精度字幕生成或会议记录的场景。
主要特性包括批处理推理以提升速度、利用 wav2vec2 进行精细对齐、以及集成 pyannote-audio 进行说话人分离。详细技术细节可参考官方 README。
环境搭建
1. 创建 Python 环境
建议使用 Python 3.10。打开终端执行:
conda create --name whisperx python=3.10
conda activate whisperx
2. 安装 PyTorch
whisperX 依赖 PyTorch。Linux 和 Windows 用户推荐安装 CUDA 11.8 版本以利用 GPU 加速:
conda install pytorch==2.0.0 torchaudio==2.0.0 pytorch-cuda=11.8 -c pytorch -c nvidia
若需其他 CUDA 版本或 CPU 模式,请参考 PyTorch 官方文档。
3. 安装 whisperX
根据需求选择安装方式:
稳定版本(推荐)
pip install whisperx
开发版本 如需最新功能但可能不稳定:
pip install git+https://github.com/m-bain/whisperX.git
源码模式 若需修改源码:
git clone https://github.com/m-bain/whisperX.git
cd whisperX
pip install -e .
注意:生产环境建议使用稳定版本。此外,ffmpeg 和 rust 是必要依赖,如未安装请参照 Whisper 官方指南补充。
4. 配置说话人区分(可选)
启用说话人标注需获取 Hugging Face 令牌并同意相关协议:
- 在 Hugging Face 设置页面生成访问令牌。
- 接受 Segmentation 和 Speaker-Diarization 模型的用户协议。
命令行使用
基本转录
安装后直接调用即可,默认使用 small 模型:
whisperx examples/sample01.wav
添加 --highlight_words True 可获取单词级高亮信息:
whisperx examples/sample01.wav --highlight_words True
提升准确率
使用大模型配合特定对齐模型效果更佳:
whisperx examples/sample01.wav --model large-v2 --align_model WAV2VEC2_ASR_LARGE_LV60K_960H --batch_size 4
此处指定了 large-v2 模型及对应的 wav2vec2 对齐模型,batch_size 设为 4 以平衡显存占用。
说话人区分
加入 --diarize 参数即可开启说话人分离,并可限制人数范围:

