ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Faster-Whisper:4 倍速转录实战 + 参数速查

Faster-Whisper:4 倍速转录实战 + 参数速查 Faster-Whisper4 倍速转录实战 参数速查【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper昨晚把 4 小时会议录音丢给 openai/whisper 转文字等了 22 分钟才出结果。换成 faster-whisper 语音转录同样的音频在 GPU 上大约 5 分钟跑完精度不变。这就是 faster-whisper同一套 Whisper 模型最高 4 倍速。它到底是什么faster-whisper 是用 CTranslate2一个专门加速 Transformer 推理的 C 引擎重新实现的 OpenAI Whisper接口思路和原版一致但推理部分完全换掉只负责转录不负责训练。同精度下最高比 openai/whisper 快 4 倍large-v2 模型转 13 分钟音频原版 2 分 23 秒它 1 分 03 秒INT8 量化8 位整数压缩权重后显存从 4708MB 降到 2926MBCPU 内存从 2335MB 降到 1477MB3 分钟跑通最小示例下面这段在 CPU 上用 small 模型 INT8 量化转录一个本地音频文件from faster_whisper import WhisperModel model WhisperModel(small, devicecpu, compute_typeint8) segments, info model.transcribe(audio.mp3) for segment in segments: print(f[{segment.start:.1f}s - {segment.end:.1f}s] {segment.text})跑完你会看到逐段的转录文本和时间戳比如[0.00s - 4.53s] I dont really care to be old...]。核心参数怎么选参数推荐值一句话解释deviceauto自动探测 GPU没有就回落到 CPUcompute_typeGPU 用int8_float16CPU 用int8精度换内存和速度INT8 慢不了多少但省一半显存beam_size5默认就是同时走 5 条解码路、挑最顺的那条降到 1 更快但精度略降vad_filterTrue默认开先用 Silero VAD 剪掉静音段只转有人声的部分cpu_threads物理核心数如8CPU 跑时的线程数不设置默认 4核多不用白不用轻量 CPU8GB 内存笔记本追求快糙猛model WhisperModel(base, devicecpu, compute_typeint8, cpu_threads8) segments, _ model.transcribe(audio.mp3, beam_size1, vad_filterTrue)有 GPU8GB 显存起步精度和速度兼顾model WhisperModel(large-v3, devicecuda, compute_typeint8_float16) segments, _ model.transcribe(audio.mp3, beam_size5, batch_size8)大规模生产批量文件跑批用内置的批处理流水线from faster_whisper import WhisperModel, BatchedInferencePipeline model WhisperModel(large-v3, devicecuda, compute_typeint8_float16) batched BatchedInferencePipeline(modelmodel) segments, _ batched.transcribe(audio.mp3, batch_size16)三种配置的取舍逻辑模型越大越准tiny 到 large-v3量化级别越高越省内存batch 越大吞吐越高但越吃显存。GPU 跑 large-v3 配batch_size8时13 分钟音频只需 16 秒官方基准RTX 3070 Ti。进阶功能按需取用词级时间戳给字幕和逐字稿用类比段落时间戳知道这段话在 30 秒词级时间戳知道每个词落在 30.2 秒精度靠交叉注意力模式 动态时间规整算出来。segments, _ model.transcribe(audio.mp3, word_timestampsTrue) for seg in segments: for word in seg.words: print(f{word.start:.2f}s {word.word})VAD 过滤静音段不浪费算力类比VAD 像个场记先标出这里有人说话模型只处理标记内的片段长音频提速明显。默认只剪超过 2 秒的静音可以用vad_parameters调激进度。segments, _ model.transcribe( audio.mp3, vad_filterTrue, vad_parametersdict(min_silence_duration_ms500), )语言检测前 30 秒自动判定、翻译任务tasktranslate、模型转换ct2-transformers-converter转 HF 权重等其余能力见官方文档 README.md。踩坑记录现象model.transcribe()调用后没有任何输出程序卡住。原因segments是生成器generator不调用它就不开始转录。解法遍历它或segments list(segments)强制跑完。现象GPU 加载模型报 cuBLAS/cuDNN 找不到的错误。原因新版 ctranslate2 只支持 CUDA 12 cuDNN 9环境里是旧版。解法装 CUDA 12 的 cuBLAS/cuDNN 9或锁定ctranslate23.24.0兼容 CUDA 11。现象转录文本陷入死循环同一句话反复输出。原因condition_on_previous_text默认开启上一窗输出作为下一窗提示失败后滚雪球。解法加参数condition_on_previous_textFalse。现象CPU 上比预期慢怀疑量化没生效。原因线程数没配对cpu_threads不传时默认只开 4 个。解法传cpu_threads等于物理核心数或设置OMP_NUM_THREADS。现象语言识别错了英文音频被当西班牙语转。原因自动检测只看前 30 秒开头是音乐/静音时容易翻车。解法明确传languageen跳过检测。适合谁、不适合谁适合不适合日处理几百上千段音频的离线批处理显存有限还要跑 large-v3需要逐字实时上屏、端到端延迟低于 200ms 的直播字幕8GB 显存 GPU 或 16GB 内存 CPU 机器想用 INT8 塞下大模型要训练/微调模型本身它只做推理转换权重可以训练不行需要词级时间戳生成字幕或长音频靠 VAD 剪静音省时间深度依赖 PyTorch 生态、要和训练代码混在一个工程里的场景一句话总结faster-whisper 把 Whisper 的推理搬进 CTranslate2 引擎精度不变最高 4 倍速显存省一半选对compute_type和beam_size就能直接上生产。完整参数说明见仓库 README.md。【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表