whisper-ctranslate2

GitHub
1.3k 123 简单 1 次阅读 今天MIT音频
AI 解读 由 AI 自动生成,仅供参考

whisper-ctranslate2 是一款基于 CTranslate2 构建的高效语音识别命令行工具,完美兼容 OpenAI 原版 Whisper 的操作指令。它主要解决了原生 Whisper 模型在推理速度慢、内存占用高方面的痛点,在保持同等识别精度的前提下,将处理速度提升至原版的 4 倍(批量推理模式下最高可达 16 倍),显著降低了硬件资源门槛。

这款工具非常适合需要处理大量音频文件的开发者、研究人员,以及希望在本地快速部署语音转文字服务的普通用户。无论是进行实时麦克风转录、多说话人区分(声纹识别),还是利用语音活动检测(VAD)过滤静音以提升质量,whisper-ctranslate2 都能轻松胜任。其独特的技术亮点在于深度集成了 Faster-whisper 实现,支持 x86 与 ARM 架构的 CPU 及 NVIDIA GPU 加速,并提供预加载模型的 Docker 镜像,让用户无需复杂配置即可开箱即用。此外,它还支持加载自定义微调模型和彩色置信度可视化,为专业调优提供了便利。如果你正在寻找一个既快又省资源,且能无缝迁移现有 Whisper 工作流的解决方案,whisper-ctranslate2 是一个值得信赖的选择。

使用场景

某媒体初创团队需要每天将数小时的线下访谈录音快速转为带说话人区分的中英文双语字幕,以赶在当晚发布视频内容。

没有 whisper-ctranslate2 时

  • 转录速度极慢,处理一段 1 小时的音频需耗时近 40 分钟,严重拖慢视频剪辑进度,无法实现“当日录当日发”。
  • 显存占用过高,在普通开发机上运行原始 OpenAI Whisper 模型时常因内存溢出而崩溃,被迫升级昂贵硬件。
  • 输出结果仅为纯文本,缺乏说话人区分(Diarization),后期编辑需人工听音分辨谁在说话,极易出错且效率低下。
  • 命令行参数不兼容现有脚本,迁移成本高,团队不得不重写大量自动化流程代码。

使用 whisper-ctranslate2 后

  • 推理速度提升 4 倍以上,同等精度下 1 小时音频仅需 10 分钟即可完成转录,轻松满足每日高频发布需求。
  • 基于 CTranslate2 优化内存管理,在相同硬件上稳定运行大模型,无需额外投入即可利用现有 GPU 资源。
  • 内置说话人识别与语音活动检测(VAD)功能,直接输出带时间戳和说话人标签的结构化字幕,大幅减少人工校对时间。
  • 完全兼容 OpenAI Whisper 原有命令格式,团队无需修改现有脚本即可无缝切换,即刻享受性能红利。

whisper-ctranslate2 通过极致的速度优化与功能增强,让中小团队也能在低成本硬件上实现专业级的高效语音转写工作流。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU
  • 非必需(支持 CPU)
  • 若使用 GPU,需 NVIDIA 显卡并安装 cuBLAS 11.x 库
  • 未明确具体型号和显存要求,但提及大模型需更多资源
内存

未说明(文中仅提到比原版 Whisper 占用更少内存)

依赖
notes1. 支持 x86-64 和 ARM64 (AArch64) 架构,CPU 后端包括 Intel MKL, oneDNN, OpenBLAS, Ruy 和 Apple Accelerate。 2. Docker 镜像预加载了 small, medium 和 large-v2 模型。 3. 说话人分离功能需要额外配置 Hugging Face Token 并接受模型使用条款。 4. 支持批量推理(batched inference)可进一步提升速度,但会忽略部分参数。 5. 支持加载自定义的 CTranslate2 格式微调模型。
python未说明(通过 pip 安装,通常隐含支持 Python 3.8+)
CTranslate2
faster-whisper
pyannote.audio==4.0 (用于说话人分离,可选)
Silero VAD (用于语音活动检测,内置)
whisper-ctranslate2 hero image

快速开始

PyPI版本 PyPI下载量

简介

基于 CTranslate2 的 Whisper 命令行客户端,与原始 OpenAI 客户端 兼容。

它使用了 CTranslate2Faster-whisper 的 Whisper 实现,在相同精度下速度最高可达 openai/whisper 的 4 倍,同时占用更少的内存。

主要特性:

  • ✅ 在相同精度下速度是 OpenAI Whisper 的 4 倍(批处理推理时最高可达 16 倍)
  • ✅ 与 OpenAI Whisper CLI 兼容(迁移更方便)
  • ✅ 包含预加载模型的 Docker 镜像
  • ✅ 发言人分离(说话人识别)
  • ✅ 语音活动检测 (VAD) 滤波器以提升质量
  • ✅ 加载您自己的微调 Whisper 模型
  • ✅ 实时麦克风转录
  • ✅ 彩色编码置信度可视化

安装

Python 包

要安装最新稳定版,只需输入:

pip install whisper-ctranslate2

使用预构建的 Docker 镜像

您可以使用预构建的 Docker 镜像。首先拉取镜像:

docker pull ghcr.io/softcatala/whisper-ctranslate2:latest

该 Docker 镜像包含了 small、medium 和 large-v2 模型。

运行命令如下:

docker run --gpus "device=0" \
    -v "$(pwd)":/srv/files/ \
    -it ghcr.io/softcatala/whisper-ctranslate2:latest \
    /srv/files/e2e-tests/gossos.mp3 \
    --output_dir /srv/files/

注意事项:

  • --gpus "device=0" 提供 GPU 访问权限。如果您没有 GPU,请移除此选项。
  • "$(pwd)":/srv/files/ 将您当前目录映射到容器内的 /srv/files/ 目录。

如果您经常需要使用镜像中未包含的模型,可以创建一个预加载该模型的衍生 Docker 镜像,或者使用 Docker 卷来持久化和共享模型文件。

CPU 和 GPU 支持

GPU 和 CPU 支持由 CTranslate2 提供。

它兼容 x86-64 和 AArch64/ARM64 CPU,并集成了针对这些平台优化的多个后端:Intel MKL、oneDNN、OpenBLAS、Ruy 以及 Apple Accelerate。

GPU 执行需要在系统上安装 NVIDIA 库 cuBLAS 11.x。请参考 CTranslate2 文档

默认情况下,会自动选择最佳硬件进行推理。您可以使用 --device--device_index 选项手动控制设备的选择。

使用方法

与 OpenAI Whisper 的命令行相同。

转录音频:

whisper-ctranslate2 inaguracio2011.mp3 --model medium
image

翻译音频:

whisper-ctranslate2 inaguracio2011.mp3 --model medium --task translate
image

Whisper 的翻译任务会将源语言的转录内容翻译成英语(目前仅支持这一目标语言)。

此外,使用以下命令可查看所有支持的选项及其说明:

whisper-ctranslate2 --help

CTranslate2 特定选项

除了 OpenAI Whisper 的命令行选项外,CTranslate2 或 whisper-ctranslate2 还提供了一些特定选项。

批处理推理

批处理推理会独立转录每个片段,从而进一步提升 2 到 4 倍的速度:

whisper-ctranslate2 inaguracio2011.mp3 --batched True

您还可以使用 --batch_size 参数指定解码时模型的最大并行请求数。

批处理推理会使用语音活动检测 (VAD) 滤波器,并忽略以下参数:compression_ratio_threshold、logprob_threshold、no_speech_threshold、condition_on_previous_text、prompt_reset_on_temperature、prefix、hallucination_silence_threshold。

量化

--compute_type 选项接受 default、auto、int8、int8_float16、int16、float16、float32 等值,用于指定使用的 量化 类型。在 CPU 上,int8 能带来最佳性能:

whisper-ctranslate2 myfile.mp3 --compute_type int8

从目录加载模型

--model_directory 选项允许您指定从中加载 CTranslate2 Whisper 模型的目录。例如,如果您想加载自己量化过的 Whisper 模型 版本,或使用自己微调过的 Whisper 模型 版本。模型必须为 CTranslate2 格式。

使用语音活动检测 (VAD) 滤波器

--vad_filter 选项启用语音活动检测 (VAD),以过滤掉音频中无语音的部分。此步骤使用 Silero VAD 模型

whisper-ctranslate2 myfile.mp3 --vad_filter True

VAD 滤波器还接受多个附加选项来决定滤波行为:

--vad_onset VALUE (float)

高于此值的概率被视为语音。

--vad_min_speech_duration_ms (int)

最终的语音片段如果短于 min_speech_duration_ms,将被丢弃。

--vad_max_speech_duration_s VALUE (int)

语音片段的最大持续时间(以秒为单位)。超过此时间的片段将在最后一次静音时刻处分割。

打印颜色

--print_colors True 选项会根据 whisper.cpp 的颜色编码策略打印转录文本,以突出显示高置信度或低置信度的单词:

whisper-ctranslate2 myfile.mp3 --print_colors True
image

实时从麦克风转录

--live_transcribe True 选项会激活实时麦克风转录模式:

whisper-ctranslate2 --live_transcribe True --language en

https://user-images.githubusercontent.com/309265/231533784-e58c4b92-e9fb-4256-b4cd-12f1864131d9.mov

说话人分离(说话人识别)

支持使用 pyannote.audio 进行说话人分离,以识别不同的说话人。目前,该功能仅在片段级别提供支持。

要启用说话人分离功能,您需要按照以下步骤操作:

  1. 使用 pip install "pyannote.audio==4.0" 安装 pyannote.audio
  2. 接受 pyannote/speaker-diarization-community-1 的用户协议。
  3. hf.co/settings/tokens 创建一个访问令牌。

然后,通过将 Hugging Face API 令牌作为参数传递来启用说话人分离功能:

whisper-ctranslate2 --hf_token YOUR_HF_TOKEN

之后,输出文件(例如 JSON、VTT 和 SRT 文件)中会添加说话人的名称:

[SPEAKER_00]: 这间房间里有很多人

选项 --speaker_name SPEAKER_NAME 允许您使用自定义字符串来标识说话人。

需要帮助吗?

请查看我们的常见问题解答,了解常见问题。

联系方式

Jordi Mas jmas@softcatala.org

常见问题

相似工具推荐

ML-For-Beginners

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

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

GPT-SoVITS

GPT-SoVITS 是一款强大的开源语音合成与声音克隆工具,旨在让用户仅需极少量的音频数据即可训练出高质量的个性化语音模型。它核心解决了传统语音合成技术依赖海量录音数据、门槛高且成本大的痛点,实现了“零样本”和“少样本”的快速建模:用户只需提供 5 秒参考音频即可即时生成语音,或使用 1 分钟数据进行微调,从而获得高度逼真且相似度极佳的声音效果。 该工具特别适合内容创作者、独立开发者、研究人员以及希望为角色配音的普通用户使用。其内置的友好 WebUI 界面集成了人声伴奏分离、自动数据集切片、中文语音识别及文本标注等辅助功能,极大地降低了数据准备和模型训练的技术门槛,让非专业人士也能轻松上手。 在技术亮点方面,GPT-SoVITS 不仅支持中、英、日、韩、粤语等多语言跨语种合成,还具备卓越的推理速度,在主流显卡上可实现实时甚至超实时的生成效率。无论是需要快速制作视频配音,还是进行多语言语音交互研究,GPT-SoVITS 都能以极低的数据成本提供专业级的语音合成体验。

56.4k|★★★☆☆|5天前
音频

TTS

🐸TTS 是一款功能强大的深度学习文本转语音(Text-to-Speech)开源库,旨在将文字自然流畅地转化为逼真的人声。它解决了传统语音合成技术中声音机械生硬、多语言支持不足以及定制门槛高等痛点,让高质量的语音生成变得触手可及。 无论是希望快速集成语音功能的开发者,还是致力于探索前沿算法的研究人员,亦或是需要定制专属声音的数据科学家,🐸TTS 都能提供得力支持。它不仅预置了覆盖全球 1100 多种语言的训练模型,让用户能够即刻上手,还提供了完善的工具链,支持用户利用自有数据训练新模型或对现有模型进行微调,轻松实现特定风格的声音克隆。 在技术亮点方面,🐸TTS 表现卓越。其最新的 ⓍTTSv2 模型支持 16 种语言,并在整体性能上大幅提升,实现了低于 200 毫秒的超低延迟流式输出,极大提升了实时交互体验。此外,它还无缝集成了 🐶Bark、🐢Tortoise 等社区热门模型,并支持调用上千个 Fairseq 模型,展现了极强的兼容性与扩展性。配合丰富的数据集分析与整理工具,🐸TTS 已成为科研与生产环境中备受信赖的语音合成解决方案。

45k|★★★☆☆|1周前
音频开发框架图像

LocalAI

LocalAI 是一款开源的本地人工智能引擎,旨在让用户在任意硬件上轻松运行各类 AI 模型,包括大语言模型、图像生成、语音识别及视频处理等。它的核心优势在于彻底打破了高性能计算的门槛,无需昂贵的专用 GPU,仅凭普通 CPU 或常见的消费级显卡(如 NVIDIA、AMD、Intel 及 Apple Silicon)即可部署和运行复杂的 AI 任务。 对于担心数据隐私的用户而言,LocalAI 提供了“隐私优先”的解决方案,确保所有数据处理均在本地基础设施内完成,无需上传至云端。同时,它完美兼容 OpenAI、Anthropic 等主流 API 接口,这意味着开发者可以无缝迁移现有应用,直接利用本地资源替代云服务,既降低了成本又提升了可控性。 LocalAI 内置了超过 35 种后端支持(如 llama.cpp、vLLM、Whisper 等),并集成了自主 AI 代理、工具调用及检索增强生成(RAG)等高级功能,且具备多用户管理与权限控制能力。无论是希望保护敏感数据的企业开发者、进行算法实验的研究人员,还是想要在个人电脑上体验最新 AI 技术的极客玩家,都能通过 LocalAI 获

44.8k|★★★☆☆|1周前
图像音频语言模型

bark

Bark 是由 Suno 推出的开源生成式音频模型,能够根据文本提示创造出高度逼真的多语言语音、音乐、背景噪音及简单音效。与传统仅能朗读文字的语音合成工具不同,Bark 基于 Transformer 架构,不仅能模拟说话,还能生成笑声、叹息、哭泣等非语言声音,甚至能处理带有情感色彩和语气停顿的复杂文本,极大地丰富了音频表达的可能性。 它主要解决了传统语音合成声音机械、缺乏情感以及无法生成非语音类音效的痛点,让创作者能通过简单的文字描述获得生动自然的音频素材。无论是需要为视频配音的内容创作者、探索多模态生成的研究人员,还是希望快速原型设计的开发者,都能从中受益。普通用户也可通过集成的演示页面轻松体验其神奇效果。 技术亮点方面,Bark 支持商业使用(MIT 许可),并在近期更新中实现了显著的推理速度提升,同时提供了适配低显存 GPU 的版本,降低了使用门槛。此外,社区还建立了丰富的提示词库,帮助用户更好地驾驭模型生成特定风格的声音。只需几行 Python 代码,即可将创意文本转化为高质量音频,是连接文字与声音世界的强大桥梁。

39.1k|★★★☆☆|1周前
音频

ChatTTS

ChatTTS 是一款专为日常对话场景打造的生成式语音模型,特别适用于大语言模型助手等交互式应用。它主要解决了传统文本转语音(TTS)技术在对话中缺乏自然感、情感表达单一以及难以处理停顿、笑声等细微语气的问题,让机器生成的语音听起来更像真人在聊天。 这款工具非常适合开发者、研究人员以及希望为应用增添自然语音交互功能的设计师使用。普通用户也可以通过社区开发的衍生产品体验其能力。ChatTTS 的核心亮点在于其对对话任务的深度优化:它不仅支持中英文双语,还能精准控制韵律细节,自动生成自然的 laughter(笑声)、pauses(停顿)和 interjections(插入语),从而实现多说话人的互动对话效果。在韵律表现上,ChatTTS 超越了大多数开源 TTS 模型。目前开源版本基于 4 万小时数据预训练而成,虽主要用于学术研究与教育目的,但已展现出强大的潜力,并支持流式音频生成与零样本推理,为后续的多情绪控制等进阶功能奠定了基础。

39k|★★★☆☆|昨天
语言模型Agent开发框架