
faster-whisper 语音转文字实战4 倍速推理与低内存占用的上手指南【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper转写同一段 13 分钟的音频openai/whisper 在 GPU 上要 4 分 30 秒faster-whisper 只要 54 秒精度不变显存还少了一半多。faster-whisper 是用 CTranslate2 推理引擎重写的 Whisper 语音转文字库面向需要批量处理音频、生成字幕、或者想在普通硬件上跑大模型的 Python 开发者。先跑起来装好 faster-whisper 并转出第一段文字第 1 步确认你的环境Python 3.8 或更高版本不用手动安装 FFmpeg。音频解码由 PyAV 库完成FFmpeg 已经打包在 PyAV 里GPU 可选。启用 GPU 需要先装 NVIDIA 的 cuBLASCUDA 12 版和 cuDNN 8注意最新版 ctranslate2 只支持 CUDA 12。你的机器是 CUDA 11 的话先执行降级pip install --force-reinstall ctranslate23.24.0第 2 步安装pip install faster-whisper第 3 步最小可运行代码from faster_whisper import WhisperModel model WhisperModel(large-v3, devicecuda, compute_typefloat16) segments, info model.transcribe(audio.mp3, beam_size5) print(f语言: {info.language} (概率 {info.language_probability:.2f})) for segment in segments: print(f[{segment.start:.2f}s - {segment.end:.2f}s] {segment.text})没有 GPU把构造参数换成这一行即可model WhisperModel(large-v3, devicecpu, compute_typeint8) 一个提醒segments是生成器调用transcribe后并不会马上开始转写真正迭代它时才启动。想立刻跑完全部转写先执行segments list(segments)。凭什么更快CTranslate2 与 int8 量化推理引擎换成了 CTranslate2Whisper 原本靠 PyTorch 运行而 PyTorch 是为训练设计的大而全框架纯推理时会拖着一堆用不上的开销。CTranslate2 是专门做 Transformer 推理的引擎权重按更紧凑的格式存储计算图提前编译对 CUDA 内核和 CPU 向量化指令的利用率更高。打个比方原版像是把模型按训练用的散装形态搬上 GPUCTranslate2 则给模型压缩打包、重新码好仓再发货。int8 量化再砍掉一半内存量化是把权重从 16 位浮点数压成 8 位整数类似图片压缩体积减半画质略损但对语音识别这种任务精度几乎不掉。GPU 上推荐int8_float16权重 int8、关键计算回 fp16CPU 上直接用int8。基准数据官方基准转写 13 分钟音频波束大小 5。环境实现精度耗时显存/内存GPUTesla V100SCUDA 11.7.1large-v2openai/whisperfp164分30秒11325 MB同上faster-whisperfp1654秒4755 MB同上faster-whisperint859秒3091 MBCPUXeon Gold 6226R8 线程smallopenai/whisperfp3210分31秒3101 MB同上faster-whisperfp322分44秒1675 MB同上faster-whisperint82分04秒995 MB综合看GPU 上快约 5 倍CPU 上快约 4 倍内存占用下降 60% 以上。参照项 whisper.cpp 在 CPU fp32 下要 17 分 42 秒、占 1581 MB。进阶玩法按需求选参数需要逐字时间戳逐字字幕遇到每个词都要精确起止时间的字幕需求 → 打开word_timestampssegments, _ model.transcribe(audio.mp3, word_timestampsTrue) for segment in segments: for word in segment.words: print(f[{word.start:.2f}s - {word.end:.2f}s] {word.word})长录音里静音太多想省算力遇到会议、播客这类夹杂大段静默的音频 → 打开 VAD 过滤segments, _ model.transcribe( audio.mp3, vad_filterTrue, vad_parametersdict(min_silence_duration_ms500), )VAD语音活动检测由内置的 Silero VAD 模型完成先找出有人说话的时间段再只把说话段送进识别模型。默认行为比较保守只去掉超过 2 秒的静音其余可调参数见 faster_whisper/vad.py。显存不够用或还想再快点遇到 GPU 显存吃紧 →compute_type换成int8_float16遇到追求速度 → 把beam_size调小默认 5最小 1它是波束搜索的候选路径数越小越快、精度略降temperature在 0–1 之间调整输出的确定性。另外用批处理接口batch_size参数参见BatchedInferencePipeline对同一条音频并行推理能进一步提高 GPU 利用率。模型尺寸怎么选tiny / base最快适合实时场景small速度与精度均衡大多数场景够用medium精度更高large-v3精度最高多语言支持最全distil-large-v3蒸馏版精度接近 large-v3速度更快想用自己微调的模型遇到基于 Transformers 库微调的 Whisper 模型 → 先转成 CTranslate2 格式pip install transformers[torch]4.23 ct2-transformers-converter --model openai/whisper-large-v3 --output_dir whisper-large-v3-ct2 \ --copy_files tokenizer.json preprocessor_config.json --quantization float16之后直接按本地目录加载model faster_whisper.WhisperModel(whisper-large-v3-ct2)--model既接受模型名也接受本地模型目录路径所以把它换成你的微调模型目录即可。工程与生态核心模块与社区集成核心模块各一句话faster_whisper/transcribe.pyWhisperModel所在的主转录逻辑含语言检测、波束搜索、词级对齐faster_whisper/audio.py音频文件解码重采样到 16kHz 波形faster_whisper/feature_extractor.py波形转 80 维梅尔频谱特征faster_whisper/tokenizer.py分词与转写/翻译特殊 token 的处理faster_whisper/vad.pySilero VAD 的封装与参数定义社区集成项目不列链接按名字检索即可faster-whisper-serverOpenAI 兼容的 API 服务器支持流式转写WhisperX提供说话人分离和更精确的词级时间戳whisper-ctranslate2命令行客户端参数与原版 Whisper CLI 兼容WhisperLive近实时的流式转写实现faster-whisper 用推理引擎替换加量化的组合把 Whisper 的时间和内存开销压到原来的几分之一是当前 Python 音频转文字链路里最省事的 GPU 语音识别加速方案。想继续读源码直接执行git clone https://gitcode.com/GitHub_Trending/fa/faster-whisper【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考