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

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

综述由AI生成whisperX 是基于 OpenAI Whisper 的 Python 语音识别工具,提供单词级时间戳和说话人区分功能。详述了环境搭建步骤(Python 3.10、PyTorch、CUDA),演示了命令行调用与 Python API 集成方法,涵盖模型选择、多语言支持及 GPU 内存优化等常见问题解决方案,适用于语音转写与字幕生成场景。

LinuxPan发布于 2026/4/6更新于 2026/5/2229 浏览

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

whisperX 简介

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

whisperX 的主要特点包括:

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

详细的技术细节可以参考官方文档 README.md。

环境搭建

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
# 减少批大小以降低 GPU 内存占用
compute_type = "float16" # 如果 GPU 内存不足,可以改为 "int8"

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

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

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

更多推荐文章

查看全部
  • 使用 NVM 安装 Node.js 22 并配置国内镜像源
  • Qoder AI 编程指南:从安装配置到核心功能实战
  • 基于 Vue3 的大文件分片加密上传与断点续传方案
  • AI 小说生成器:基于大语言模型的长篇小说创作工具
  • 前端部署最佳实践:从开发到生产
  • OpenClaw Ubuntu 安装指南
  • 基于 YOLO 与 SAM 微调的工业缺陷自动标注低代码方案
  • 使用TensorRT优化百川、Llama等主流开源模型
  • Open Duck Mini v2 开源机器人构建与配置指南
  • 小米手机端 AI Agent 落地,重构智能家居底层逻辑
  • New API 详解:新一代开源大模型统一网关与 AI 资产管理系统
  • AI 时代超级能动性:重建个人掌控力的关键能力
  • 讯飞星辰 Astron 智能体本地化部署实战指南
  • Quartus 18.0 安装及 ModelSim 环境配置
  • Python 爬虫实战:爬取苏宁商品评论(好评与差评)
  • Spring IoC 依赖注入详解
  • AI 赋能测试流程
  • Python 虚拟环境底层原理及 PyCharm/Anaconda 实战指南
  • Figma + Claude + Weavy AI:从会用到好用的设计工作流
  • 三维实时渲染与 VR 全景视频的共生模式与技术抉择

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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