WhisperS2T

GitHub
559 74 中等 1 次阅读 5天前MIT语言模型开发框架音频
AI 解读 由 AI 自动生成,仅供参考

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
GPU
  • 使用 CTranslate2/FlashAttention2 后端时建议 NVIDIA GPU
  • 使用 TensorRT-LLM 后端时必须 NVIDIA GPU
  • 具体显存和 CUDA 版本未说明(TensorRT-LLM 通常要求较新的 CUDA 版本,如 12.x)
内存

未说明

依赖
notes1. 必须安装音频处理依赖:Ubuntu 需安装 libsndfile1 和 ffmpeg,macOS 需安装 ffmpeg,Conda 用户可通过 conda-forge 安装 ffmpeg。 2. 若通过 pip 安装 CUDA 相关库,需手动将 nvidia.cublas.lib 和 nvidia.cudnn.lib 的路径添加到 LD_LIBRARY_PATH 环境变量中。 3. 支持多种后端:CTranslate2、HuggingFace (FlashAttention2)、TensorRT-LLM。其中 TensorRT-LLM 后端需额外运行 install_tensorrt.sh 脚本或按照 NVIDIA 官方文档安装 TensorRT 和 TensorRT-LLM。 4. 首次运行时由于 VAD 模型的 JIT tracing,推理速度可能稍慢,后续运行会恢复正常高速。
python未说明
whisper-s2t
ffmpeg
libsndfile1
nvidia-cublas-cuXX
nvidia-cudnn-cuXX
TensorRT
TensorRT-LLM
WhisperS2T hero image

快速开始

WhisperS2T ⚡

一款针对 Whisper 模型优化的多推理引擎支持的语音转文本流水线!

下载量 GitHub 贡献者 PyPi 发布版本 问题



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/ 目录中。

A30 基准测试

注意: 我在所有基准测试中均将 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 跟踪所致。

致谢

许可证

本项目采用 MIT 许可证授权——详情请参阅 LICENSE 文件。

版本历史

v1.3.12024/02/25
v1.3.02024/01/28
v1.2.02023/12/23
v1.1.02023/12/19
v1.0.02023/12/17

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

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 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

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 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架