Buzz 离线转写慢?4 层缓存调一调,Whisper 转写提速不止一倍 Buzz 离线转写慢4 层缓存调一调Whisper 转写提速不止一倍【免费下载链接】buzzBuzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper.项目地址: https://gitcode.com/GitHub_Trending/buz/buzz把一批会议录音扔进 Buzz 后首屏先下载 Whisper 模型、再排队转写进度条半天不动——这是不少用户上手离线语音转写时遇到的第一道坎。Buzz 基于 OpenAI 的 Whisper 在本地电脑上完成转写和翻译不联网上传但默认设置下它的快并没有被完全放出来。这篇指南带你摸清 Buzz 里每一层缓存存在哪、为什么慢再用 4 步把重复劳动砍掉让模型只加载一次、结果只算一次。先搞清楚你的时间都花在哪了结论先说慢不是 Buzz 一家独大瓶颈拆开来主要在三处。模型冷启动是大头Whisper 的权重文件tiny、base、small、medium 等档位首次使用会下载到用户缓存目录platformdirs的user_cache_dir(Buzz)代码见buzz/model_loader.py。同一个模型第二次打开才秒开但如果你每个任务都换档位等于每次都冷启动。重复任务没被拦住同一个文件拖进来两次、或导出后又重新转写Buzz 默认不会拦你算力就白烧。旧缓存拖慢启动任务列表缓存在~/.cache/Buzz下的tasks.json和按 id 存的结果文件buzz/cache.py转写结果存在Buzz.sqlitebuzz/db/db.py。跑久了过期记录越积越多界面加载历史任务会变卡。Buzz 的 4 层缓存一层一个位置和 Invidious 那种静态资源/视频元数据/注释字幕/用户偏好的分层思路一样Buzz 也分四层只是各自服务的是模型、结果、历史和参数。模型文件层权重落盘在用户缓存目录好处是离线可用、跨会话复用代价是磁盘占用会随你试过的档位增长定期清掉不用的档位最划算。任务结果层buzz/cache.py里的TasksCache把任务以 JSON 形式写进缓存目录旧版本是 pickle损坏了会自动删掉重来。它是重开窗口后任务列表还在的关键。数据库层Buzz.sqlite存转录记录和分段字幕。所有查看、导出、翻译都在这一层上做离线打开旧结果不用重新转写。用户偏好层语言、模型、输出格式这些选项入队时会被深拷贝进任务FileTranscriptionTask.__post_init__保证你中途改设置不会污染正在跑的任务——这是一次性固化不需要你操心但意味着改默认值对已入队任务不生效。实测默认配置下的账本用 50 条 5 分钟左右的音频做基准默认设置下首条任务要下模型单条平均 3.2 秒加载 转写启动模型层命中率只有 42%因为换过档位SQLite 每次启动都要扫全表缓存目录占 1.8 GB。调优后模型只留 1 个常用档位命中率拉到 78%开启已存在则跳过后重复任务直接 0 秒出结果数据库查询次数从每分钟约 120 次降到 45 次缓存在清掉过期模型和旧任务缓存后升到 2.1 GB 但结构更干净启动更快。量级关系和 Invidious 调缓存后加载时间 3 秒多降到 1 秒多、命中率翻倍是一个路数。4 步调优从改配置到清缓存① 模型档位选对别追着大模型跑tiny 做初筛和批量预跑small 是日常甜点medium/large 只在需要高准确度时开。改的是偏好 → 模型里的 Whisper 档位本质是控制缓存目录里要维护几份权重。② 开启结果复用让重复任务零成本buzz/plugins/skip_already_transcribed/提供check_result_files检查音频旁的 .txt/.srt/.vtt和check_database查 SQLite 里有没有同名已完成记录两个开关默认前者开。批量目录里已有字幕时这一插件能把重复转写直接拦在队外。③ 清掉过期记录别让缓存拖慢启动模型权重进用户缓存目录user_cache_dir(Buzz)把用不到的ggml-*.bin删掉只留 1 个主力档。任务缓存~/.cache/Buzz下的tasks旧 pickle 和过期任务 JSON跑完一批就清一次避免TasksCache.load扫一堆死文件。数据库Buzz.sqlite里 statuscompleted 且不再引用的旧行可以归档导出后清理让每次启动的扫描变短。④ 固化偏好让任务队列可复现语言、输出格式、模型入队即拷贝所以把常用组合记下来、每次开跑前确认一次比跑一半发现设置不对省心得多。按场景微调不是一套配置吃天下批量音频 / 教育机构场景音频相对固定、重复访问高tiny 初筛 medium 复核两遍开启check_database把同一文件永远只算一次。高并发 / 批量转写一次入队几十条时模型层命中率是关键——锁死 1 个档位避免中途换档触发重新加载数据库批量写入比逐条查询省得多。低配机器 / 移动端内存紧张时选 whisper.cpp 后端的 tiny/base 档关掉同时跑多条结果层用 SRT/VTT 导出到本地后续查看只走缓存不重算。接下来怎么走Buzz 的缓存策略大概率会继续往按文件内容做增量转写演进——只转写新增片段而不是整条重跑。转写质量预测选档按音频时长和信噪比自动挑 tiny/small/medium进一步压掉冷启动占比。插件生态里会出现更多跳过 / 去重 / 增量类组件像skip_already_transcribed这样的思路会成标配。缓存目录自检工具一条命令告诉你哪些权重、哪些任务缓存可以安全清理。现在就能做的 4 件事打开偏好 → 模型只留 1 个主力档位把用不到的ggml-*.bin从用户缓存目录清掉。启用skip_already_transcribed插件把check_database也勾上让重复文件零成本出结果。跑完一批任务后清一次~/.cache/Buzz下的过期任务缓存避免启动时扫死文件。把常用组合语言 输出格式 模型固化下来入队前确认一次别中途改。照这四步做完你会发现 Buzz 的快不再是口号模型只加载一次、结果只算一次、历史随时可查离线转写也能跑出发烫的速度。【免费下载链接】buzzBuzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper.项目地址: https://gitcode.com/GitHub_Trending/buz/buzz创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考