SuperAPI AI 工具集

WhisperS2T

WhisperS2T 是一个针对 Whisper 模型优化的开源语音转文本(ASR)流水线,支持多种推理引擎。其设计目标是实现比其它实现更快的 Whisper 转录速度,据称比 WhisperX 快 2.3 倍,比使用 FlashAttention 2 的 HuggingFace Pipeline(Insanely Fast Whisper)快 3 倍。它还包含若干启发式方法以提升转录准确率。Whisper 本身是 OpenAI 开发的通用语音识别模型,支持多语言语音识别、语音翻译和语言识别。WhisperS2T 并非模型本身,而是围绕 Whisper 的优化转录管道,提供多后端支持、自定义 VAD 模型集成、小/大音频文件处理、批量多语言/任务解码、减少幻觉、动态时长支持(实验性)等能力,并附带预构建 Docker 镜像和转录导出器(txt、json、tsv、srt、vtt)。

访问官网

工具介绍

WhisperS2T 是一个面向 Whisper 模型优化的开源语音转文本(ASR)流水线,支持多种推理引擎。它并非语音识别模型本身,而是围绕 OpenAI Whisper 模型构建的转录管道,旨在提供更快的 Whisper 转录速度与更优的准确率。根据官方说明,其速度比 WhisperX 快 2.3 倍,比使用 FlashAttention 2 的 HuggingFace Pipeline(Insanely Fast Whisper)快 3 倍。Whisper 是由 OpenAI 开发的通用语音识别模型,在大规模多样化音频数据集上训练,具备多语言语音识别、语音翻译和语言识别等多任务能力。

主要能力方面,WhisperS2T 提供多后端支持,包括原始 OpenAI 模型、使用 FlashAttention2 的 HuggingFace 模型以及 CTranslate2 模型。它支持便捷集成自定义 VAD(语音活动检测)模型,以增强语音识别的控制与准确度。对于音频文件处理,它可以智能地对来自不同文件的较小语音片段进行批处理,以保障性能;对于大音频文件,支持在后台异步加载的同时对分段批进行转录,显著减少加载时间。它还支持批量多语言/任务解码,可以在单个批次中解码多种语言或同时执行转录与翻译(最好配合 CTranslate2 后端)。此外,它通过优化参数和启发式方法减少重复文本输出或幻觉,部分启发式方法仅适用于 CTranslate2 后端。还有一个实验性的动态时长支持,可在给定输入批次中处理可变长度输入,而非固定的 30 秒,从而在转录期间提供灵活性并节省计算时间,此功能仅适用于 CTranslate2 后端。

功能更新方面,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。

使用方式上,官方提供了 Docker 容器与本地安装两种途径。Docker 镜像可在 Dockerhub 仓库(https://hub.docker.com/r/shashikg/whisper_s2t/tags)获取,支持从主分支或特定版本 v1.3.0 构建,也支持构建带 TensorRT-LLM 支持的容器。本地安装需要先安装用于重采样和加载音频文件的音频包,然后通过命令安装或更新到最新发布版本的 WhisperS2T,或从仓库最新提交安装。如果 CUDNN 和 CUBLAS 是通过 pip wheel 安装的,可以运行命令将 CUDNN 路径添加到 LD_LIBRARY_PATH。使用 TensorRT-LLM 后端需要安装 TensorRT 和 TensorRT-LLM,官方提供了一个 bash 脚本,适用于大多数 debian 系统,若不适用则需参照官方 TensorRT-LLM 说明。要使用词对齐,需以特定方式加载模型。官方还提供了 Google Colab notebooks 供参考。注意首次运行时模型推理速度可能稍慢,经过 1-2 次运行后由于 VAD 模型的 JIT 追踪,推理速度会提升。

适用场景方面,WhisperS2T 适合需要快速、准确进行语音转文本的开发者与用户,尤其在需要处理大量或较长音频文件、多语言转录与翻译、以及对转录延迟有要求的场景中。它依赖 Whisper 模型本身的能力,支持多语言语音识别、语音翻译和语言识别。

限制方面,官方说明某些优化启发式方法仅适用于 CTranslate2 后端,动态时长支持为实验性功能且仅限 CTranslate2 后端。基准测试是在 A30 GPU 上、将 without_timestamps 参数设为 True 的条件下进行的,调整该参数可能提升 HuggingFace 流水线的词错误率(WER)但会增加推理时间。速度提升仅通过更优的流水线设计实现,未对后端推理引擎做特定优化。使用 TensorRT-LLM 后端需额外安装 TensorRT 和 TensorRT-LLM,对系统环境有一定要求。本项目采用 MIT 许可证。

未来路线图包括:可用的 Docker 容器、WhisperS2T-Server(面向端到端部署的优化服务器代码库)、深度文档(使用 GitHub Pages 托管)、探索集成 Meta 的 SeamlessM4T 模型、添加更多数据集用于 WER 基准测试。官方还计划发布对比 WhisperS2T 与其他 Whisper 流水线的技术报告,目前可查看 A30 GPU 上的快速基准,基准测试脚本在 scripts/ 目录中。