news 2026/9/5 22:24:58

faster-whisper:基于 CTranslate2 的高速 Whisper 语音识别实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
faster-whisper:基于 CTranslate2 的高速 Whisper 语音识别实现

faster-whisper:基于 CTranslate2 的高速 Whisper 语音识别实现

【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper

faster-whisper 是用 CTranslate2 重写的 OpenAI Whisper 推理引擎,做的是 faster-whisper 语音识别:同精度下比原实现至多快 4 倍、内存占用更低,适合会议转写、字幕生成这类长音频任务。

faster-whisper 是什么

一句话:它是 Whisper 的 CTranslate2 重实现,接口和原项目对齐,速度更快、更省内存,8-bit 量化可在 CPU 与 GPU 上进一步降开销。

和 openai/whisper 相比需要注意的差别:

  • 依赖 ctranslate2 推理引擎,GPU 跑分要求 CUDA 12 + cuDNN 9,旧环境要锁版本
  • 系统无需装 FFmpeg,解码由内置的 PyAV 完成
  • transcribe默认beam_size为 5,原实现默认是 1,横向对比时要对齐口径

三步跑通 first transcription

  1. 环境要求:Python 3.9 及以上;用 NVIDIA GPU 需装 cuBLAS 与 cuDNN(CUDA 12)。
  2. 安装pip install faster-whisper,依赖(含 PyAV)随包解析。
  3. 第一次成功:加载模型并转录一段音频,逐条打印分段:
from faster_whisper import WhisperModel model = WhisperModel("large-v3", device="cuda", compute_type="float16") segments, info = model.transcribe("clip.mp3", beam_size=5) for seg in segments: print(f"[{seg.start:.2f}s -> {seg.end:.2f}s] {seg.text}")

注意:segments是生成器,只有开始遍历(或先list())时转录才真正执行。

按硬件选配置

以下组合均出自项目 README 的基准测试:GPU 侧为 13 分钟音频、RTX 3070 Ti(large-v2,beam size 5);CPU 侧为 small 模型、i7-12700K 8 线程。

硬件模型精度 / 参数实测表现适合场景
NVIDIA GPUlarge-v2fp16,beam_size=51m03s / 4525MB精度优先的日常转写
NVIDIA GPUlarge-v2batch_size=8, fp1617s / 6090MB显存充足时批量处理
NVIDIA GPUlarge-v2int8,beam_size=559s / 2926MB显存紧张(<3GB)
Intel CPUsmallfp322m37s / 2257MB无 GPU 的基线运行
Intel CPUsmallint8,batch_size=851s / 3608MB内存够用、求最快

说明:batch_size>1需要显存/内存翻倍余量;CPU 线程数可用环境变量OMP_NUM_THREADS固定后再对比。

值得调的参数

beam_size:精度与速度的权衡

默认 5。减小可提速,增大会更准但更慢;和原实现对比时务必用同一个值。

segments, _ = model.transcribe("clip.mp3", beam_size=1)

word_timestamps:词级时间戳

需要逐词定位(做歌词对齐、逐词高亮)时打开:

segments, _ = model.transcribe("clip.mp3", word_timestamps=True) for seg in segments: for w in seg.words: print(w.start, w.end, w.word)

vad_filter:跳过无声片段

内置 Silero VAD 会先滤掉无声段,减少空段幻觉、也省算力;默认只删 2 秒以上静音,可用vad_parameters收紧:

segments, _ = model.transcribe( "clip.mp3", vad_filter=True, vad_parameters=dict(min_silence_duration_ms=500), )

核心文件导读

  • faster_whisper/transcribe.py:WhisperModelBatchedInferencePipeline与主转录循环,语言检测、词级对齐都在这里
  • faster_whisper/audio.py:基于 PyAV 把任意格式音频解成 16 kHz 波形,替代系统 FFmpeg
  • faster_whisper/feature_extractor.py:波形转 log-Mel 频谱,产出模型输入特征
  • faster_whisper/vad.py:Silero VAD 集成,负责切分语音段与无声段

卡住时看这里

GPU 报缺 cuBLAS / cuDNN 库?官方版本仅支持 CUDA 12 + cuDNN 9。CUDA 11 环境把 ctranslate2 锁到 3.24.0,CUDA 12 + cuDNN 8 锁到 4.4.0 即可。

代码"跑完"却没任何输出?transcribe()返回生成器,惰性执行;加一行segments = list(segments)或用for遍历才会真正转录。

CPU 上内存大、速度慢?改用compute_type="int8",并固定OMP_NUM_THREADS控制线程数后再做性能对比。

以上配置均来自仓库自带的基准与说明,参数在 faster_whisper/transcribe.py 中可继续查阅。先从"按硬件选配置"表格里的一行起步,再把不满意的输出逐项对应到参数里改。

【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 22:21:00

Ice 菜单栏管理工具:macOS 图标收纳与自定义完整指南

Ice 菜单栏管理工具&#xff1a;macOS 图标收纳与自定义完整指南 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice Ice 是一款运行在 macOS 上的菜单栏管理工具&#xff0c;核心任务是把你拥挤的菜单栏…

作者头像 李华
网站建设 2026/9/5 22:06:05

AI防幻觉基建:从RAG到本地模型的多层开源架构解析

先抛出今天这篇文章的核心观点&#xff1a;AI 之所以“不瞎编了”&#xff0c;不是因为模型突然变聪明了&#xff0c;而是因为工程上给它加了一圈“必须查资料、必须走流程、不允许自由发挥”的护栏。 这圈护栏并不是某一个框架能独立完成的。它在真实落地中往往由多层开源基建…

作者头像 李华
网站建设 2026/9/5 22:05:07

旅游知识图谱推荐系统:Python+Neo4j高分实战

简介&#xff1a;这是一套面向计算机专业本科生及研究生的高分课程实践资源&#xff0c;聚焦知识图谱技术在旅游推荐场景中的落地应用&#xff0c;适用于毕业设计、期末大作业与课程设计等中等难度实战项目。资源包含18个文件&#xff0c;以13个Python源码文件为核心&#xff0…

作者头像 李华