WhisperS2T

WhisperS2T

高效多后端语音识别管道 实现快速精准转录

WhisperS2T是一个为Whisper模型优化的开源语音识别管道,提供更快的转录速度。它支持OpenAI原始模型、HuggingFace模型和CTranslate2模型等多种推理引擎。该项目具有集成自定义VAD模型、智能处理音频文件、支持多语言和多任务批处理等特点,并能有效减少幻觉输出。WhisperS2T在保持高准确度的同时大幅提升转录速度,为用户提供高效的语音识别解决方案。

WhisperS2T语音转文本多后端支持优化管道高速推理Github开源项目
<h1 align="center"> WhisperS2T ⚡ </h1> <p align="center"><b>支持多种推理引擎的优化Whisper模型语音转文字流水线!</b></p> <p align="center"> <a href="https://www.pepy.tech/projects/whisper-s2t"> <img alt="下载量" src="https://static.pepy.tech/personalized-badge/whisper-s2t?period=total&units=international_system&left_color=grey&right_color=brightgreen&left_text=downloads" /> </a> <a href="https://pepy.tech/project/whisper-s2t"> <img alt="GitHub贡献者" src="https://img.shields.io/github/contributors/shashikg/WhisperS2T" /> </a> <a href="https://badge.fury.io/py/whisper-s2t"> <img alt="PyPi发布版本" src="https://yellow-cdn.veclightyear.com/0a4dffa0/446ca508-82ed-4325-9994-7d6cc5dadda7.svg" /> </a> <a href="https://github.com/shashikg/WhisperS2T/issues"> <img alt="问题" src="https://img.shields.io/github/issues/shashikg/WhisperS2T?color=0088ff" /> </a> </p> <hr><br>

WhisperS2T是一个优化的闪电般快速的开源语音转文字(ASR)流水线。它专为whisper模型定制,以提供更快的whisper转录。它的设计速度比其他实现更快,比WhisperX2.3倍,比使用FlashAttention 2的HuggingFace Pipeline(Insanely Fast Whisper)快3倍。此外,它还包含几个启发式方法来提高转录准确性。

Whisper是由OpenAI开发的通用语音识别模型,而不是我开发的。它在大量多样化的音频数据集上进行训练,是一个可以执行多语言语音识别、语音翻译和语言识别的多任务模型。

发布说明

  • [2024年2月25日]:添加了预构建的docker镜像和转录导出器,支持txt, json, tsv, srt, vtt格式。(查看完整发布说明)

快速入门

查看这里提供的Google Colab笔记本:notebooks

未来路线图

  • 可直接使用的docker容器。
  • WhisperS2T-Server:优化的端到端部署就绪服务器代码库。
  • 深入的文档,使用github pages托管。
  • 探索集成Meta的SeamlessM4T模型的可能性。
  • 添加更多数据集进行WER基准测试。

基准测试和技术报告

敬请期待将WhisperS2T与其他whisper流水线进行比较的技术报告。同时,查看在A30 GPU上的一些快速基准测试。请参见scripts/目录中我使用的基准测试脚本。

A30基准测试

注意:我进行所有基准测试时将without_timestamps参数设置为True。将此参数调整为False可能会提高HuggingFace流水线的词错误率(WER),但会增加推理时间。值得注意的是,推理速度的提升仅通过更优的流水线设计实现,没有对后端推理引擎(如CTranslate2、FlashAttention2等)进行任何特定优化。例如,WhisperS2T(使用FlashAttention2)相比于HuggingFace流水线(也使用FlashAttention2)展示了明显更快的推理速度,尽管两者都利用了相同的推理引擎—带有FlashAttention2的HuggingFace whisper模型。此外,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/任何其他使用Conda的Python环境

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': "让我们请Phil Mackie进来,他现在在宫殿。我们看到Teresa和Philip May。Philip,你能看到他是如何从直升机上转移的吗?看起来就像你说的,那辆'野兽'。它的前灯亮着,因为太阳现在开始落山了,肯定正在云层后面下沉。它在大道上大约四分之一英里远的地方", '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': "让我们请Phil Mackie进来,他现在在宫殿。我们看到Teresa和Philip May。Philip,你能看到他是如何从直升机上转移的吗?看起来就像你说的,那辆'野兽'。它的前灯亮着,因为太阳现在开始落山了,肯定正在云层后面下沉。它在大道上大约四分之一英里远的地方", 'start_time': 0.0, 'end_time': 24.8} """

查看这个文档了解更多细节。

注意: 在第一次运行时,模型可能会显示较慢的推理速度。经过1-2次运行后,它将会有更好的推理速度。这是由于VAD模型的JIT跟踪导致的。

致谢

许可证

本项目采用MIT许可证 - 详见LICENSE文件。

编辑推荐精选

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

下拉加载更多