Project Icon

insanely-fast-whisper

高效率开源语音转录命令行工具

Insanely Fast Whisper是一款开源的高性能语音转录命令行工具,基于Transformers、Optimum和Flash Attention技术。该工具支持OpenAI的Whisper Large v3模型,能够在98秒内处理150分钟的音频。通过Flash Attention 2和批处理等优化,大幅提升了转录效率。适用于NVIDIA GPU和Mac设备,用户可通过简单的命令实现快速准确的音频转录。

疯狂快速的Whisper

一个有态度的命令行界面,用于在设备上使用Whisper转录音频文件!由🤗 TransformersOptimumflash-attn提供支持

简而言之 - 在不到98秒内转录150分钟(2.5小时)的音频 - 使用OpenAI的Whisper Large v3。闪电般快速的转录现在成为现实!⚡️

pipx install insanely-fast-whisper==0.0.15 --force

还不相信?以下是我们在Nvidia A100 - 80GB上运行的一些基准测试 👇

优化类型转录时间 (150分钟音频)
large-v3 (Transformers) (fp32)~31 (31分1秒)
large-v3 (Transformers) (fp16 + batching [24] + bettertransformer)~5 (5分2秒)
large-v3 (Transformers) (fp16 + batching [24] + Flash Attention 2)~2 (1分38秒)
distil-large-v2 (Transformers) (fp16 + batching [24] + bettertransformer)~3 (3分16秒)
distil-large-v2 (Transformers) (fp16 + batching [24] + Flash Attention 2)~1 (1分18秒)
large-v2 (Faster Whisper) (fp16 + beam_size [1])~9.23 (9分23秒)
large-v2 (Faster Whisper) (8-bit + beam_size [1])~8 (8分15秒)

附:我们还在Google Colab T4 GPU实例上运行了基准测试!

附2:这个项目最初是为了展示Transformers的基准测试而开始的,但后来演变成一个轻量级的CLI供人们使用。这完全是社区驱动的。我们添加社区似乎有强烈需求的任何功能!

🆕 通过终端进行闪电般快速的转录! ⚡️

我们添加了一个CLI来实现快速转录。以下是使用方法:

使用pipx安装insanely-fast-whisper(pip install pipxbrew install pipx):

pipx install insanely-fast-whisper

⚠️ 如果您安装了python 3.11.XX,pipx可能会错误解析版本并安装一个非常旧的insanely-fast-whisper版本,而不会通知您(版本0.0.8,这将无法与当前的BetterTransformers一起使用)。在这种情况下,您可以通过向pip传递--ignore-requires-python来安装最新版本:

pipx install insanely-fast-whisper --force --pip-args="--ignore-requires-python"

如果您使用pip安装,可以直接传递参数:pip install insanely-fast-whisper --ignore-requires-python

从计算机上的任何路径运行推理:

insanely-fast-whisper --file-name <文件名或URL>

注意:如果您在macOS上运行,还需要添加--device-id mps标志。

🔥 您也可以通过这个CLI运行Whisper-large-v3Flash Attention 2:

insanely-fast-whisper --file-name <文件名或URL> --flash True 

🌟 您还可以直接从这个CLI运行distil-whisper:

insanely-fast-whisper --model-name distil-whisper/large-v2 --file-name <文件名或URL> 

不想安装insanely-fast-whisper?只需使用pipx run:

pipx run insanely-fast-whisper --file-name <文件名或URL>

[!注意] 这个CLI非常有态度,只在NVIDIA GPU和Mac上工作。请确保查看默认设置和您可以调整的选项列表,以最大化您的转录吞吐量。运行insanely-fast-whisper --helppipx run insanely-fast-whisper --help可以获取所有CLI参数及其默认值。

CLI选项

insanely-fast-whisper 仓库为在各种设置下运行 Whisper 提供全面支持。请注意,截至今天(11月26日),insanely-fast-whisper 可在支持 CUDA 和 mps(mac)的设备上运行。

  -h, --help            显示此帮助信息并退出
  --file-name FILE_NAME
                        要转录的音频文件的路径或 URL。
  --device-id DEVICE_ID
                        GPU 的设备 ID。使用 CUDA 时只需传递设备号,对于搭载 Apple Silicon 的 Mac 则传递 "mps"。(默认值:"0")
  --transcript-path TRANSCRIPT_PATH
                        保存转录输出的路径。(默认值:output.json)
  --model-name MODEL_NAME
                        用于执行 ASR 的预训练模型/检查点名称。(默认值:openai/whisper-large-v3)
  --task {transcribe,translate}
                        要执行的任务:转录或翻译成其他语言。(默认值:transcribe)
  --language LANGUAGE   
                        输入音频的语言。(默认值:"None"(Whisper 自动检测语言))
  --batch-size BATCH_SIZE
                        要计算的并行批次数。如果遇到内存不足问题,请减小此值。(默认值:24)
  --flash FLASH         
                        使用 Flash Attention 2。请阅读常见问题了解如何正确安装 FA2。(默认值:False)
  --timestamp {chunk,word}
                        Whisper 支持分块级和词级时间戳。(默认值:chunk)
  --hf-token HF_TOKEN
                        提供 hf.co/settings/token 以使用 Pyannote.audio 进行音频说话人分离
  --diarization_model DIARIZATION_MODEL
                        用于执行说话人分离的预训练模型/检查点名称。(默认值:pyannote/speaker-diarization)
  --num-speakers NUM_SPEAKERS
                        指定音频文件中确切的说话人数量。当已知对话中参与者的确切数量时很有用。必须至少为 1。不能与 --min-speakers 或 --max-speakers 一起使用。(默认值:None)
  --min-speakers MIN_SPEAKERS
                        设置系统在说话人分离过程中应考虑的最少说话人数量。必须至少为 1。不能与 --num-speakers 一起使用。如果同时指定了 --max-speakers,则必须小于或等于该值。(默认值:None)
  --max-speakers MAX_SPEAKERS
                        定义系统在说话人分离中应考虑的最大说话人数量。必须至少为 1。不能与 --num-speakers 一起使用。如果同时指定了 --min-speakers,则必须大于或等于该值。(默认值:None)

常见问题

如何正确安装 flash-attn 以使其与 insanely-fast-whisper 配合使用?

确保通过 pipx runpip insanely-fast-whisper install flash-attn --no-build-isolation 安装。非常感谢 @li-yifei 在这方面的帮助。

如何解决 Windows 上的 AssertionError: Torch not compiled with CUDA enabled 错误?

这个问题的根本原因尚不清楚,但您可以通过在虚拟环境中手动安装 torch 来解决,如 python -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121。感谢 @pto2k 对此进行的所有调试。

如何避免 Mac 上的内存不足(OOM)异常?

mps 后端的优化程度不如 CUDA,因此更加耗费内存。通常,您可以使用 --batch-size 4 运行而不会出现任何问题(大约使用 12GB GPU VRAM)。别忘了设置 --device-id mps

如何在不使用命令行界面的情况下使用 Whisper?

您只需运行以下代码片段:
pip install --upgrade transformers optimum accelerate
import torch
from transformers import pipeline
from transformers.utils import is_flash_attn_2_available

pipe = pipeline(
    "automatic-speech-recognition",
    model="openai/whisper-large-v3", # 从 https://huggingface.co/openai/whisper-large-v3#model-details 选择检查点
    torch_dtype=torch.float16,
    device="cuda:0", # 或 Mac 设备使用 mps
    model_kwargs={"attn_implementation": "flash_attention_2"} if is_flash_attn_2_available() else {"attn_implementation": "sdpa"},
)

outputs = pipe(
    "<FILE_NAME>",
    chunk_length_s=30,
    batch_size=24,
    return_timestamps=True,
)

outputs

致谢

  1. 感谢 OpenAI Whisper 团队开源了如此出色的检查点。
  2. 感谢 Hugging Face Transformers 团队,特别是 ArthurPatrickSanchitYoach(按字母顺序排列),他们持续维护 Transformers 中的 Whisper。
  3. 感谢 Hugging Face Optimum 团队使 BetterTransformer API 变得如此易于使用。
  4. 感谢 Patrick Arminio 在构建这个命令行界面方面给予我的巨大帮助。

社区展示

  1. @ochen1 为命令行界面创建了一个出色的最小可行产品:https://github.com/ochen1/insanely-fast-whisper-cli(现在就试试吧!)
  2. @arihanv 使用 NextJS(前端)和 Modal(后端)创建了一个应用程序(Shush):https://github.com/arihanv/Shush(快去看看!)
  3. @kadirnar 在 transformers 的基础上创建了一个带有优化的 Python 包:https://github.com/kadirnar/whisper-plus(快去试试!)
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号