跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

whisperX 入门指南:从安装到实现语音识别

介绍 whisperX 语音识别工具的安装与使用。whisperX 基于 OpenAI Whisper,提供单词级时间戳和多说话人区分功能。内容包括环境搭建(Python 3.10, PyTorch)、命令行操作(支持多语言、GPU/CPU)、Python API 集成示例以及常见问题解决(内存不足、对齐精度)。适合需要高精度语音转写及字幕生成的开发者。

竹影清风发布于 2026/4/5更新于 2026/5/2226 浏览

whisperX 入门指南:从安装到实现语音识别

whisperX 是一个基于 OpenAI Whisper 的语音识别工具,它在 Whisper 的基础上进行了改进,提供了更精准的单词级时间戳和 speaker 区分功能。whisperX 采用了强制音素对齐(Phoneme-Based ASR)和语音活动检测(VAD)等技术,能够显著提高语音识别的准确性和效率。

whisperX 的主要特点包括:

  • ⚡️ 批处理推理,使用 whisper large-v2 模型可实现 70 倍实时转录
  • 🎯 使用 wav2vec2 对齐实现精准的单词级时间戳
  • 👯‍♂️ 支持多 speaker 语音识别,使用 pyannote-audio 进行 speaker 区分
  • 🗣️ VAD 预处理,减少幻觉,在不降低 WER 的情况下实现批处理

环境搭建

1. 创建 Python 环境

首先,我们需要创建一个 Python 3.10 的环境。打开终端,执行以下命令:

conda create --name whisperx python=3.10
conda activate whisperx
2. 安装 PyTorch

whisperX 需要 PyTorch 的支持。对于 Linux 和 Windows 用户,推荐安装 CUDA 11.8 版本的 PyTorch:

conda install pytorch==2.0.0 torchaudio==2.0.0 pytorch-cuda=11.8 -c pytorch -c nvidia

其他系统或 CUDA 版本的安装方法可以参考 PyTorch 官方文档。

3. 安装 whisperX

whisperX 提供了多种安装方式,你可以根据自己的需求选择:

选项 A:稳定版本(推荐)

从 PyPI 安装最新的稳定版本:

pip install whisperx
选项 B:开发版本

从 GitHub 安装最新的开发版本(可能不稳定):

pip install git+https://github.com/m-bain/whisperX.git

如果已经安装了 whisperX,可以使用以下命令升级到最新版本:

pip install git+https://github.com/m-bain/whisperX.git --upgrade
选项 C:开发模式

如果你需要修改源码,可以克隆仓库并以可编辑模式安装:

git clone https://github.com/m-bain/whisperX.git
cd whisperX
pip install -e .

注意:开发版本可能包含实验性功能和 bug,生产环境建议使用稳定版本。

此外,你可能还需要安装 ffmpeg、rust 等依赖,可以参考 OpenAI Whisper 的安装指南。

4. 配置 Speaker Diarization(可选)

如果需要使用 speaker 区分功能,你需要获取 Hugging Face 的访问令牌,并接受相关模型的用户协议。具体步骤如下:

  1. 在 Hugging Face 设置页面生成访问令牌
  2. 接受 Segmentation 和 Speaker-Diarization-3.1 模型的用户协议

命令行使用

基本使用

安装完成后,我们可以使用命令行来调用 whisperX。最简单的用法是:

whisperx examples/sample01.wav

这个命令会使用默认的模型(small)对 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

这里,--model large-v2 指定使用 large-v2 模型,--align_model 指定使用 WAV2VEC2_ASR_LARGE_LV60K_960H 模型进行对齐。

Speaker 区分

要实现 speaker 区分,可以使用 --diarize 参数。如果你知道 speaker 的数量,可以使用 --min_speakers 和 --max_speakers 参数来指定:

whisperx examples/sample01.wav --model large-v2 --diarize --highlight_words True --min_speakers 2 --max_speakers 2
CPU 运行

如果你没有 GPU,或者想在 Mac OS X 上运行 whisperX,可以使用 --compute_type int8 参数:

whisperx examples/sample01.wav --compute_type int8
多语言支持

whisperX 支持多种语言的识别。对于非英语语言,建议使用 large 模型,并通过 --language 参数指定语言代码。例如,识别德语音频:

whisperx examples/sample_de_01.wav --model large --language de

目前,whisperX 已为以下语言提供了默认的对齐模型:{en, fr, de, es, it, ja, zh, nl, uk, pt}。更多语言的例子可以参考 EXAMPLES.md。

Python API 使用

除了命令行,whisperX 还提供了 Python API,方便集成到你的项目中。下面是一个简单的示例:

import whisperx
import gc

device = "cuda"
audio_file = "audio.mp3"
batch_size = 16
compute_type = "float16"

# 1. 使用原始 whisper 进行转录(批处理)
model = whisperx.load_model("large-v2", device, compute_type=compute_type)
audio = whisperx.load_audio(audio_file)
result = model.transcribe(audio, batch_size=batch_size)
print(result["segments"])  # 对齐前的结果

# 2. 对齐 whisper 输出
model_a, metadata = whisperx.load_align_model(language_code=result["language"], device=device)
result = whisperx.align(result["segments"], model_a, metadata, audio, device, return_char_alignments=False)
print(result["segments"])  # 对齐后的结果

# 3. 分配 speaker 标签
diarize_model = whisperx.DiarizationPipeline(use_auth_token="YOUR_HF_TOKEN", device=device)
diarize_segments = diarize_model(audio)
result = whisperx.assign_word_speakers(diarize_segments, result)
print(result["segments"])  # 带有 speaker ID 的结果

上述代码演示了如何使用 whisperX 进行语音识别、时间戳对齐和 speaker 区分。详细的 API 文档可以参考 whisperx/transcribe.py 和 whisperx/diarize.py。

常见问题解决

GPU 内存不足

如果遇到 GPU 内存不足的问题,可以尝试以下方法:

  1. 减少批大小,例如 --batch_size 4
  2. 使用更小的模型,例如 --model base
  3. 使用更轻量的计算类型,例如 --compute_type int8
Speaker 区分效果不佳

如果 speaker 区分效果不理想,可以尝试:

  1. 明确指定 speaker 的数量,使用 --min_speakers 和 --max_speakers 参数
  2. 确保音频质量良好,背景噪音较小
  3. 使用更大的模型,如 large-v2
时间戳不准确

如果时间戳不够准确,可以尝试使用更大的对齐模型,例如 --align_model WAV2VEC2_ASR_LARGE_LV60K_960H。

总结

通过本文的介绍,你已经了解了 whisperX 的基本概念、安装配置方法以及如何使用命令行和 Python API 进行语音识别。whisperX 作为一个功能强大的语音识别工具,不仅提供了高准确率的转录结果,还支持单词级时间戳和多 speaker 区分,非常适合用于语音转写、字幕生成等场景。

如果你在使用过程中遇到问题,可以参考官方文档 README.md 或提交 issue 到 GitHub 仓库。同时,whisperX 是一个开源项目,欢迎你参与贡献,一起完善这个工具。

目录

  1. whisperX 入门指南:从安装到实现语音识别
  2. 环境搭建
  3. 1. 创建 Python 环境
  4. 2. 安装 PyTorch
  5. 3. 安装 whisperX
  6. 选项 A:稳定版本(推荐)
  7. 选项 B:开发版本
  8. 选项 C:开发模式
  9. 4. 配置 Speaker Diarization(可选)
  10. 命令行使用
  11. 基本使用
  12. 提高识别准确率
  13. Speaker 区分
  14. CPU 运行
  15. 多语言支持
  16. Python API 使用
  17. 1. 使用原始 whisper 进行转录(批处理)
  18. 2. 对齐 whisper 输出
  19. 3. 分配 speaker 标签
  20. 常见问题解决
  21. GPU 内存不足
  22. Speaker 区分效果不佳
  23. 时间戳不准确
  24. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Spring AI Agent Skills 接入指南与原理剖析
  • Dify Web 前端二次开发:隐藏探索功能与替换 Logo
  • iFlow Cli:终端 AI 助手使用指南
  • 程序员接私活平台汇总:19 个常用外包渠道介绍
  • Flutter 混合开发
  • WorkBuddy 配置 QQ 机器人实现桌面智能体自动化
  • 基于 RAG 技术的 AI 知识库构建与智能升级指南
  • LLM 应用开发:Prompt 编写技巧与最佳实践
  • 秋叶绘世 Stable Diffusion 整合包使用指南
  • Stable Diffusion 完整训练与推理流程详解
  • WebRTC 低延迟直播原理及主流 H5 播放器能力对比
  • RocksDB 在鲲鹏架构下的性能优化源码解析
  • Cursor, Kiro 与 Google Antigravity 重新定义编程工具对比
  • 双指针算法实战:唯一雪花、逛画展与丢手绢题解
  • DeepSeek-R1-Distill-Llama-8B 模型安全与对抗攻击防护
  • C++ 拷贝构造函数与赋值运算符重载详解
  • Amazon SageMaker 部署 AIGC 应用:从训练到 Web 集成的实战
  • VS Code 配合 Overleaf Workshop 插件实现 AI 辅助 LaTeX 写作
  • 六自由度机器人逆运动学详解及 MATLAB 实现
  • Java 实现 Excel 转 PDF 的主流方案对比与推荐

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online