WhisperS2T
WhisperS2T 是一个专为 OpenAI Whisper 模型打造的高性能语音转文字(ASR)开源流水线。它的核心目标是在保持高识别准确率的同时,显著提升音频处理的效率,解决传统 Whisper 实现方案在推理速度上的瓶颈问题。
相较于其他主流方案,WhisperS2T 展现了卓越的性能优势。基准测试显示,其运行速度比 WhisperX 快 2.3 倍,比集成了 FlashAttention 2 的 HuggingFace Pipeline 快 3 倍。值得注意的是,这种速度提升并非单纯依赖后端引擎的优化,而是得益于其更优越的流水线架构设计。此外,WhisperS2T 内置了多种启发式算法,进一步增强了转录结果的准确性。
在技术特性方面,WhisperS2T 具有高度的灵活性和兼容性。它支持多种推理后端,包括 CTranslate2、FlashAttention 2 以及最新的 TensorRT-LLM,能够适配不同的硬件环境以发挥最大效能。工具还支持 Whisper-Large-V3 和 Distil-Whisper 等先进模型,并提供词级时间戳对齐功能。为了方便集成与使用,它还提供了预构建的 Docker 镜像,并支持将转录结果直接导出为 TXT、JSON、SRT、VTT 等多种常用格式。
WhisperS2T 非常适合需要处理大量音频数据的开发者、研究人员以及企业用户。无论是构建实时字幕系统、进行大规模会议记录整理,还是开发多语言语音应用,它都能提供快速且稳定的底层支持。对于追求极致推理效率且希望简化部署流程的技术团队而言,这是一个值得关注的优质选择。
使用场景
某在线教育平台的技术团队需要处理每日新增的 500 小时多语言课程录像,将其自动转化为带时间戳的字幕文件,以支持全球学员的无障碍学习及内容检索。
没有 WhisperS2T 时
- 处理效率极低:使用标准的 HuggingFace Pipeline 或基础 Whisper 实现,转录速度缓慢,导致 500 小时的音频往往需要数天才能完成处理,严重滞后于课程上线节奏。
- 硬件资源浪费:由于推理效率不高,GPU 利用率未能达到最优,为了赶工期不得不临时扩容昂贵的云 GPU 实例,大幅增加了运营成本。
- 格式转换繁琐:原始输出通常为简单的文本或 JSON,缺乏直接生成标准字幕格式(如 SRT、VTT)的能力,开发人员需额外编写脚本进行后处理和格式转换,增加了维护负担。
- 精度与速度难兼得:若尝试通过加速手段(如降低精度或使用轻量模型)来提升速度,往往会牺牲转录准确率,导致专业术语识别错误率高,后期人工校对成本居高不下。
使用 WhisperS2T 后
- 转录速度飞跃:得益于优化的流水线设计,WhisperS2T 在相同硬件下比 HuggingFace Pipeline 快 3 倍,比 WhisperX 快 2.3 倍,原本需要几天的任务现在仅需几小时即可完成,实现了近乎实时的处理能力。
- 显著降低成本:极高的推理效率意味着同样的 GPU 资源可以处理更多数据,或者在处理相同数据量时大幅缩短租用时间,直接降低了云计算账单。
- 原生支持多格式导出:WhisperS2T 内置了对 txt、json、tsv、srt、vtt 等多种格式的直接导出支持,无需额外开发后处理脚本,打通了从音频到最终字幕文件的自动化链路。
- 保持高精度输出:在大幅提升速度的同时,WhisperS2T 通过启发式算法优化了转录准确性,并支持 CTranslate2 后端的词级对齐,确保了专业课程内容的高保真还原,减少了人工复核的工作量。
WhisperS2T 通过极致的推理速度优化和开箱即用的工程化特性,将大规模语音转写任务从“算力瓶颈”转变为“高效流水线”,显著提升了业务响应速度并降低了基础设施成本。
运行环境要求
- Linux
- macOS
- Windows
- 使用 CTranslate2/FlashAttention2 后端时建议 NVIDIA GPU
- 使用 TensorRT-LLM 后端时必须 NVIDIA GPU
- 具体显存和 CUDA 版本未说明(TensorRT-LLM 通常要求较新的 CUDA 版本,如 12.x)
未说明

快速开始
WhisperS2T ⚡
一款针对 Whisper 模型优化的多推理引擎支持的语音转文本流水线!
WhisperS2T 是一个经过优化、闪电般快速的开源 语音转文本(ASR)流水线。它专为 Whisper 模型设计,旨在提供更快的转录速度。相比其他实现方式,WhisperS2T 速度极为出色,与 WhisperX 相比提升了 2.3 倍,而与使用 FlashAttention 2 的 HuggingFace Pipeline 相比则快了 3 倍(参考 Insanely Fast Whisper)。此外,它还包含多项启发式方法来提升转录准确性。
Whisper 是由 OpenAI 开发的通用语音识别模型,并非我所开发。该模型基于大规模多样化音频数据集进行训练,同时具备多任务能力,可执行多语言语音识别、语音翻译及语言检测等功能。
发行说明
- [2024年2月25日]:新增预构建的 Docker 镜像以及支持导出为
txt、json、tsv、srt、vtt格式的转录文件。(完整发行说明请见 此处) - [2024年1月28日]:新增对 TensorRT-LLM 后端的支持。
- [2023年12月23日]:新增对 CTranslate2 后端的词对齐支持(请参阅 基准测试)。
- [2023年12月19日]:新增对 Whisper-Large-V3 和 Distil-Whisper-Large-V2 的支持(请参阅 基准测试)。
- [2023年12月17日]:WhisperS2T 正式发布!
快速入门
请查看此处提供的 Google Colab 笔记本:notebooks
未来规划
- 准备好使用的 Docker 容器。
- WhisperS2T-Server:优化的端到端部署就绪服务器代码库。
- 提供深入文档,并使用 GitHub Pages 托管。
- 探索集成 Meta 的 SeamlessM4T 模型的可能性。
- 添加更多用于 WER 基准测试的数据集。
基准测试与技术报告
敬请期待将 WhisperS2T 与其他 Whisper 流水线进行对比的技术报告。与此同时,您可以先查看在 A30 GPU 上的一些快速基准测试结果。我所使用的基准测试脚本位于 scripts/ 目录中。

注意: 我在所有基准测试中均将 without_timestamps 参数设置为 True。若将其调整为 False,可能会改善 HuggingFace 流水线的词错误率(WER),但会相应增加推理时间。值得注意的是,WhisperS2T 在推理速度上的显著提升完全得益于其 更优的流水线设计,并未对后端推理引擎(如 CTranslate2、FlashAttention2 等)进行任何特定优化。例如,尽管两者都使用 FlashAttention2 作为推理引擎,WhisperS2T(采用 FlashAttention2)的推理速度仍远超 HuggingFace 流水线(同样使用 FlashAttention2)。此外,两者的 WER 也存在明显差异。
特性
- 🔄 多后端支持: 支持多种 Whisper 模型后端,包括原生 OpenAI 模型、配备 FlashAttention2 的 HuggingFace 模型以及 CTranslate2 模型。
- 🎙️ 轻松集成自定义 VAD 模型: 可无缝添加自定义语音活动检测(VAD)模型,以增强语音识别的控制能力和准确性。
- 🎧 轻松处理小型或大型音频文件: 能够智能地将来自不同文件的小段语音合并成批次,从而确保最佳性能。
- ⏳ 大型音频文件的高效处理: 在后台异步加载大型音频文件的同时,对分段后的批次进行转录,显著缩短加载时间。
- 🌐 多语言/多任务解码的批处理支持: 可在一个批次中解码多种语言,或同时进行转录和翻译,从而提高灵活性并缩短转录时间。(CTranslate2 后端效果最佳)
- 🧠 减少“幻觉”现象: 通过优化参数和启发式方法,减少重复文本输出或“幻觉”现象。(部分启发式方法仅适用于 CTranslate2 后端)
- ⏱️ 动态时长支持(实验性): 可在给定输入批次中处理长度不固定的音频,而非固定为 30 秒,从而提供更大的灵活性并节省转录计算时间。(仅限 CTranslate2 后端)
开始使用
从 Docker 容器开始
预构建容器
docker pull shashikg/whisper_s2t:dev-trtllm
Dockerhub 仓库:https://hub.docker.com/r/shashikg/whisper_s2t/tags
构建您自己的容器
从 main 分支构建。
docker build --build-arg WHISPER_S2T_VER=main --build-arg SKIP_TENSORRT_LLM=1 -t whisper_s2t:main .
从特定版本 v1.3.0 构建。
git checkout v1.3.0
docker build --build-arg WHISPER_S2T_VER=v1.3.0 --build-arg SKIP_TENSORRT_LLM=1 -t whisper_s2t:1.3.0 .
若要构建支持 TensorRT-LLM 的容器:
docker build --build-arg WHISPER_S2T_VER=main -t whisper_s2t:main-trtllm .
本地安装
安装重采样和加载音频文件所需的音频包。
对于 Ubuntu
apt-get install -y libsndfile1 ffmpeg
对于 MAC
brew install ffmpeg
对于 Ubuntu/MAC/Windows/任何使用 Python Conda 的系统
conda install conda-forge::ffmpeg
要安装或更新到 WhisperS2T 的最新发布版本,请使用以下命令:
pip install -U whisper-s2t
或者从本仓库的最新提交安装:
pip install -U git+https://github.com/shashikg/WhisperS2T.git
注意: 如果你的 cuDNN 和 cuBLAS 是通过 pip wheel 安装的,可以运行以下命令将 cuDNN 路径添加到 LD_LIBRARY_PATH:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:`python3 -c 'import os; import nvidia.cublas.lib; import nvidia.cudnn.lib; print(os.path.dirname(nvidia.cublas.lib.__file__) + ":" + os.path.dirname(nvidia.cudnn.lib.__file__))'`
使用 TensorRT-LLM 后端
对于 TensorRT-LLM 后端,你需要安装 TensorRT 和 TensorRT-LLM。
bash <repo_dir>/install_tensorrt.sh
对于大多数 Debian 系统,提供的 bash 脚本应该可以正常工作。如果不行或在其他系统上,请按照官方 TensorRT-LLM 指南操作 这里。
使用方法
CTranslate2 后端
import whisper_s2t
model = whisper_s2t.load_model(model_identifier="large-v2", backend='CTranslate2')
files = ['data/KINCAID46/audio/1.wav']
lang_codes = ['en']
tasks = ['transcribe']
initial_prompts = [None]
out = model.transcribe_with_vad(files,
lang_codes=lang_codes,
tasks=tasks,
initial_prompts=initial_prompts,
batch_size=32)
print(out[0][0]) # 打印第一段音频的第一句话
"""
[控制台输出]
{'text': "让我们请来正在王宫现场的菲尔·麦基。我们现在看到的是特蕾莎和菲利普·梅。菲利普,你能看到他如何从直升机上被转移下来吗?就像你刚才说的那样,那辆‘野兽’车正开着大灯,因为太阳已经开始落山了,确实快要没入云层之后。它大约在大车道上一英里四分之一的地方",
'avg_logprob': -0.25426941679184695,
'no_speech_prob': 8.147954940795898e-05,
'start_time': 0.0,
'end_time': 24.8}
"""
要使用词对齐功能,请使用以下方式加载模型:
model = whisper_s2t.load_model("large-v2", asr_options={'word_timestamps': True})
TensorRT-LLM 后端
import whisper_s2t
model = whisper_s2t.load_model(model_identifier="large-v2", backend='TensorRT-LLM')
files = ['data/KINCAID46/audio/1.wav']
lang_codes = ['en']
tasks = ['transcribe']
initial_prompts = [None]
out = model.transcribe_with_vad(files,
lang_codes=lang_codes,
tasks=tasks,
initial_prompts=initial_prompts,
batch_size=24)
print(out[0][0]) # 打印第一段音频的第一句话
"""
[控制台输出]
{'text': "让我们请来正在王宫现场的菲尔·麦基。我们现在看到的是特蕾莎和菲利普·梅。菲利普,你能看到他如何从直升机上被转移下来吗?就像你刚才说的那样,那辆‘野兽’车正开着大灯,因为太阳已经开始落山了,确实快要没入云层之后。它大约在大车道上一英里四分之一的地方",
'start_time': 0.0,
'end_time': 24.8}
"""
更多详细信息请参阅此 文档。
注意: 首次运行时,模型的推理速度可能会稍慢。经过 1-2 次运行后,推理速度会有所提升。这是由于 VAD 模型进行了 JIT 跟踪所致。
致谢
- OpenAI Whisper 团队:感谢 OpenAI Whisper 团队开源 Whisper 模型。
- HuggingFace 团队:感谢 HuggingFace 团队将 FlashAttention2 和 Whisper 模型集成到 transformers 库中。
- CTranslate2 团队:感谢 CTranslate2 团队为 Transformer 架构提供更快的推理引擎。
- NVIDIA NeMo 团队:感谢 NVIDIA NeMo 团队贡献了本流程中使用的开源 VAD 模型。
- NVIDIA TensorRT-LLM 团队:感谢 NVIDIA TensorRT-LLM 团队提供的卓越 LLM 推理优化。
许可证
本项目采用 MIT 许可证授权——详情请参阅 LICENSE 文件。
版本历史
v1.3.12024/02/25v1.3.02024/01/28v1.2.02023/12/23v1.1.02023/12/19v1.0.02023/12/17常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。