把两小时会议录音离线转成字幕:Buzz 本地 Whisper 转写实践笔记
【免费下载链接】buzzBuzz transcribes and translates audio offline on your personal computer. Powered by OpenAI's Whisper.项目地址: https://gitcode.com/GitHub_Trending/buz/buzz
电脑里躺着一段两小时的会议录音,你想拿到文字稿,却不想把录音整个上传到云端——云端 API 按分钟计费,内容还可能有不便外传的敏感信息。Buzz 就是干这个的:一个在你自己电脑上离线运行 OpenAI Whisper 的桌面工具,把音频转成文字、再翻译成目标语言,全程不联网、不出机器。
Buzz 到底是什么,为什么要本地跑 Whisper
Buzz 是什么?它是一个 Python 桌面应用,界面用 PyQt6 搭建,核心引擎是 OpenAI 开源的语音识别模型 Whisper,同时打包了 whisper.cpp、faster-whisper 等多个本地推理后端。跟云端转写服务或者裸跑 whisper 命令行相比,它的差异点有三条:
- 完全本地:音频文件不离开你的机器,识别和翻译都在本机 GPU/CPU 上完成,适合处理不便上传的录音;
- 多后端可切换:同一个界面里可以用 PyTorch 版 whisper(Nvidia CUDA 加速)、whisper.cpp(Vulkan 加速,核显也能跑)、faster-whisper、Hugging Face 上的 Whisper 兼容模型,甚至直连 OpenAI API 兜底;
- 图形界面和命令行双模式:偶尔用一次就点鼠标,要批量处理或写进脚本时用 CLI,输出直接落到 SRT/VTT/TXT 文件。
Buzz 离线转写最简安装步骤
最短的路径是从 PyPI 装现成的包,不需要自己编译源码。环境要求先列清楚:
- Python 3.12(项目锁死了版本,3.10/3.11 装不上核心依赖)
- 系统里装有 ffmpeg(负责解码音视频)
- GPU 是可选项:Nvidia 显卡走 CUDA,Apple Silicon 走 CoreML,其他显卡可用 whisper.cpp 的 Vulkan
# 需要 Python 3.12 环境,且系统已装好 ffmpeg pip install buzz-captions buzz --version # 能打印出版本号就说明装好了Windows 用户也可以直接去官网下安装包,装的时候 SmartScreen 会警告(应用未签名),选"更多信息 → 仍要运行"即可。
拆五个核心能力,看懂 Buzz 离线转写能干什么
Buzz 内置了 5 种推理后端、支持 90 多种语言的识别,能力大致可以拆成五个块,按使用频率从高到低过一遍。
本地转写:文件变成字幕
最常见的诉求:丢进去一段录音或视频,吐出来文字稿或字幕文件。命令行一条命令就能跑,模型没下载过会自动先下载再转写:
# 用 whisper.cpp 的 small 模型转写,同时输出 SRT 和 TXT buzz add --model-type whispercpp --model-size small \ --srt --txt ~/recordings/meeting.mp4注意两点:默认tiny模型只是预览级精度,正式稿建议至少small;输出默认放在源文件同目录,想换地方加--output-directory。
转写查看器:搜索、播放与时间轴修补
转写第一稿几乎总需要人工细调,Buzz 的转写查看器把这件事做成了一个带搜索框、可跟随播放、能调速的文本编辑器。点任意一行文本就会跳到对应时间点播放;觉得哪句字幕时间戳飘了,用时间轴调整工具(resizer)直接拖动起止时间即可,调完重新导出 SRT 就是修好的字幕。
坑在于:调整只改本地数据,记得重新导出,否则旧字幕文件还是错的。
音频翻译:外语录音变目标语言文本
不光要文字稿、还要中文稿的时候,用translate任务而不是transcribe——它先转写成源语言,再翻成目标语言:
# 把法语访谈翻译成中文,-l 指定源语言可避免误判 buzz add --task translate --language fr \ --txt ~/recordings/interview.mp3要提醒的是:翻译 = 转写 + 翻译两段计算,耗时接近纯转写的两倍,长音频建议先纯转写确认内容再决定翻不翻。
实时转写与说话人分离
开会、做演讲时需要实时字幕,就点录音按钮从麦克风直接转,还能开一个"演示窗口"——大字体的独立窗口,投屏或挂第二块屏幕上给观众看。多人录音想分清"谁说了什么",转写时勾上说话人分离,Buzz 会在识别前先做语音分离再逐段转写,效果对背景嘈杂的录音提升明显。
边界要说清楚:实时转写是资源大户,低配机器上"实时"要打个折扣;说话人分离依赖音色差异,两个人音色太接近时区分会糊。
命令行与文件夹监视:批量自动化
文件多了不想点鼠标,命令行一次丢进去一批,也可以直接给一个 URL(yt-dlp 会负责下载)。配合--hide-gui可以完全无界面地跑在后台:
# 批量转写整个目录,不弹主窗口 buzz add --hide-gui --srt --txt ~/audio/*.mp3另外 GUI 里有个文件夹监视功能:指定一个目录,新落进去的文件自动排队转写,适合"录完就扔进去"的工作流。
常见报错与一行排查命令
前七天你会踩的问题,基本集中在"装不上、跑不动、结果不对"三类,这里按出现频率从高到低列出来。
1.buzz: command not found现象:pip 显示安装成功,终端敲 buzz 没反应。 原因:Python 环境不是 3.12,或安装脚本的目录不在 PATH 里。 解法:绕开 PATH 直接用模块入口启动:python -m buzz
2. Linux 上 GUI 起不来现象:启动时报缺少libxkbcommon-x11-0、libportaudio2之类的库。 原因:系统级的 GUI/音频库没装,pip 包不带这些依赖。 解法:sudo apt-get install libportaudio2 libxkbcommon-x11-0 ffmpeg(完整依赖清单见 安装与系统依赖)
3. 转写慢得离谱现象:十分钟的音频在 CPU 上跑了半小时还没完。 原因:大模型在 CPU 上硬跑,这是最典型的性能事故。 解法:换 whisper.cpp 走 Vulkan,或换小一档的模型:buzz add --model-type whispercpp --model-size small --txt demo.mp3
4. 识别成乱码或错误语言现象:英语录音被识别成波兰语,满屏奇怪字符。 原因:短音频或噪声大时,自动语言检测容易翻车。 解法:显式指定语言,别依赖自动检测:buzz add --language en --txt demo.mp3
5. openaiapi 报No OpenAI access token found现象:选了 OpenAI API 后端,一启动就报错退出。 原因:API token 没有保存过。 解法:命令行显式带上 token:buzz add --model-type openaiapi --openai-token 你的token demo.mp3
性能与规模化:音频变长后先选模型
同一段十分钟的音频,在同等硬件上 tiny 和 large 的耗时差距能到一个数量级,所以"选对模型和后端"比任何调参都管用。before/after 的体感对比大致是这样:
- before:
large模型 + 纯 CPU,十分钟音频要等几十分钟,CPU 风扇狂转; - after:
small模型 + whisper.cpp 的 Vulkan 后端(核显或独显都行),几分钟内出稿,精度对多数场景够用。
具体怎么选,看 模型选择界面 背后的设置逻辑:Nvidia 显卡选 whisper(CUDA),核显/其他显卡选 whisper.cpp(Vulkan),Apple Silicon 直接用系统加速。下面是两种典型档位:
# 快速预览:tiny 模型,精度最低但最快 buzz add --model-size tiny --txt ~/audio/demo.mp3 # 正式稿:whisper.cpp 的 small 模型,精度与速度平衡 buzz add --model-type whispercpp --model-size small --txt ~/audio/demo.mp3如果素材本身噪声大,别一味堆大模型,先勾上"转写前语音分离"(extract speech)往往更划算。
延伸资源 & 下一步
官方文档里最值得先读的两页:CLI 参数参考(add命令的完整选项表,90 多种语言代码都在里面)和 插件系统(AI 摘要、自动字幕重排这些扩展是怎么挂上去的)。读完本文,你的下一步可以很简单:挑一段自己最长的会议录音,先用 tiny 模型跑一遍看流程通不通,再换 small 出正式稿。
【免费下载链接】buzzBuzz transcribes and translates audio offline on your personal computer. Powered by OpenAI's Whisper.项目地址: https://gitcode.com/GitHub_Trending/buz/buzz
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考