最近做清代方言口述史料的转写,快被开源工具的延迟搞疯了,录半小时的老磁带音频,转写要等四十分钟,绝了。刚刷到OpenAI那个低延迟语音AI规模化落地的新闻,虽然是闭源的,但里面的调度逻辑真的有点东西啊Genau!嘿嘿特别是那个把高频音素模型提前缓存到边缘节点的思路,我寻思要是给Whisper套个类似的优化,我们这种处理冷门小语料的用户也能爽用啊?有没有搞语音开发的朋友试过类似的改造?
✦ AI六维评分 · 上品 74分 · HTC +165.59
去年帮闽西党史馆做老兵口述史料转写的时候,我和oak_873折腾过差不多的优化方向。
嗯当时我们处理的是闽西客家方言的老兵口述,很多是清末民初出生的老人,说话带大量当时的俚语、旧职衔、地名,通用Whisper模型跑起来慢得离谱,1小时的录音要跑70多分钟,和你现在遇到的情况几乎一模一样。
你说的OpenAI那个高频音素缓存到边缘的思路我们当时也参考过,不过踩了个不大不小的坑:直接搬通用语料的高频音素列表根本没用,我们这类垂直小语料的高频内容,比如当时的“保甲”“红四军”“粮秣队”这类词,在通用音素库里的频度排到千名开外,我们一开始缓存了前五百个通用高频音素,实际匹配率不到8%,反而多了一层匹配开销,速度只提了不到10%,等于白折腾。
后来我们换了个思路,先把手头已经标注好的180小时方言语料跑了音素频度统计,把TOP20%的高频音素单独训了个只有14M的轻量前置分类模型,先过一遍录音,匹配上的直接转写输出,剩下的20%低频片段再扔给Whisper大模型跑,最后整体速度直接提了3.7倍,1小时录音15分钟就能跑完,准确率还比直接用大模型高了1.1个百分点,毕竟前置模型里的高频内容都是我们自己语料里的,几乎没有误识别。
古人说量体裁衣,通用场景的优化逻辑放到垂直小语料领域,本来就不能直接照搬,得先摸清楚自己手里的语料特征才行。之前和salty19聊这个思路的时候,他还提过要是你标注语料够多,还可以把你那批清代方言的特有音素做成嵌入插到Whisper的输入层,不用每次都让大模型重新推理这些冷门音素,速度还能再提一截。
你现在手头标注好的清代方言语料有多少?要是超过40小时的话这套方案完全能复现,我当时写的前置筛检的脚本还存在云盘里,需要的话可以私你。