最近,微软开源了VibeVoice-ASR,我也第一时间进行了体验。首先,对微软团队开源这个模型表示感谢。尽管在测试过程中发现了一些问题,但任何开源工作都值得尊重。作为开源工作,我们没有任何理由要求太多,这些问题也都是可以解决的,况且微调代码也即将开源。并且从我粗浅的直觉和简陋的测试上得出的结论:如果可以从数据覆盖上进一步优化,这个模型应该还是有潜力的。在此,我想基于这个工作,聊一聊VibeVoice-ASR的优点与不足,并分享一些对模型设计和数据的思考。
多任务的模型设计
虽然模型命名为VibeVoice-ASR,但它并非单纯的语音转文字模型。VibeVoice-ASR集成了说话人日志、时间戳以及部分声音事件检测功能。
这样的多任务设计符合大模型时代的技术趋势,也契合未来的用户需求。如今,仅实现语音转录已远远不够。无论是底层模型还是上层应用,乃至用户对智能体验日益提升的期待,都要求我们从语音数据中提取更丰富的信息。用户对产品的追求不再停留在基础功能,而更多地转向情感价值与类人体验。
关注声音特性
先吐个槽,我非常反感各类PR文章的自夸,动辄宣称“世界第一”。(我能理解,毕竟要给投资人、客户看,也需要曝光度。)但这种风气很容易误导行业外的人。毕竟,包括我在内,99%的负责人今天做什么,取决于早上在自媒体上刷到了什么(借用别人的段子)。
我认为,声音在机器理解用户方面的价值被严重低估了。理解声音,是通往“世界模型”、理解世界不可或缺的一环。
遗憾的是,目前除了Gemini,我还没看到能与之比肩的系统。我也认为这是谷歌布局未来重要的一步。(不得不提一句,至于那些号称超越的,或许在某些测试集和指标上能实现超越,这一点我并不否认。)
VibeVoice-ASR模型其实让我有所期待。至少,它是开源模型中明确对声纹进行建模的,并且在我真实测试集(家庭录音,包括男性、女性、儿童)中,在区分度较大的场景下是可用的。
“建模声纹很难吗?”“是的。”
“声纹识别现在做得很好了吗?”“并没有。”
声纹作为声音的底层属性,与语音语义有很大不同。识别一个人的声纹,对人类来说也并非易事。我们觉得容易,大多是因为我们接触的声纹往往是“已注册”的。从模型实现来看,声纹的做法看似简单,但实际效果并不理想,原因有多方面:
极易受环境干扰
与ASR相比,声纹更易受声学环境干扰。训练数据的覆盖范围、环境噪声、信道差异,以及注册与使用条件的不一致,都会影响最终效果。
声纹具有时变性
声纹会随时间发生漂移,比如儿童的声音变化最快,不同儿童之间的声音区分也很困难,成人的声音也会因状态(如感冒、情绪)而改变。
声纹数据自动标注困难
从数据标注角度看,由于历史上声纹模型效果一般,再加上上述难点,导致自动化标注很难做到准确。
幻觉问题较为突出
在体验VibeVoice-ASR模型的过程中,我发现最明显的问题是幻觉。测试中,我注意到一个特别的现象:
数据中孩子的哭声极容易触发模型的幻觉。
最初我以为是数据过长(约30分钟)导致的,于是特意将哭声部分单独截取出来测试,但幻觉依然出现,比如下面的例子:
哭声语谱图
哭声幻觉识别结果
另外一条数据,中间在含糊不清的地方发生幻觉:
这背后最主要的原因,应该还是接下来要谈的数据覆盖问题。
长度真的那么重要吗?
对于文本大模型,长度等于上下文,上下文窗口的确很重要。但对于语音模型,特别是偏重转录的模型,在当前阶段,长度是否真的如此关键,我持保留态度。
VibeVoice-ASR提出的理由是:
首先,关于上下文断裂问题——纯音频的上下文真能解决这个问题吗?或许能部分缓解,但对多数场景来说,可能并非至关重要。文本层面的上下文或许已足以提升准确率。
其次,工程复杂度方面,文中提到的说话人日志优势我很认同,但这个和长度其实关系不是特别大,我认为更多的优势来自于识别+说话人的联合建模。短句说话人日志的确很困难,但几分钟的数据进行说话人相关的工作也没有太大问题。如果可以把效果做好,后续通过一个混淆矩阵进行相同说话人的聚类。如果长语音识别确实可以做的好,那么降低系统复杂度的优势肯定是有的。
综上所述,在当前条件尚不成熟的情况下,过度强调长度或许并不是最优先的。相比长度,我们更应关注模型的稳定性与准确性。当然,如果能处理更长的音频,那自然是更好的。
“垃圾”数据也有价值
从我测试中遇到的幻觉问题,结合当前主流数据清洗流程的做法,会发现一个现象:
人们常用多个模型交叉验证,筛选出“有用且正确”的数据。
什么是“有用且正确”的数据?如果一条数据包含文字,且多个模型识别结果一致,就被认为是有价值且标注正确的。那么,那些被过滤掉的数据,其价值又该如何看待?
事实上,它们的价值在今天更应被重视。原因如下:
幸存者偏差
这种方式筛选出的数据,都是以往模型基础上的“幸存者”,数据质量虽高,但对模型来说难度较低。换句话说,大量这类数据对模型能力的提升并无太大增益。如果模型只用这类数据训练,那么无论输入什么,哪怕是人耳都难以听清的语音,模型都可能用最大似然的方式“猜”一个最可能的结果,而不是“承认困难”。一个懂得“示弱”的模型,或许也有其价值。
垃圾”数据的价值
所谓“垃圾数据”,正是那些被自动标注流程过滤掉的数据,它们的价值应当被重新审视。比如我测试数据中的哭声片段,很可能会被清洗流程过滤掉。再加上这类声音重复性强,更容易导致模型产生幻觉。
在强化学习中,也应该加强对“坏”数据如何给予正确反馈的机制。
总结
非常高兴看到越来越多的开源工作,推动模型能力逐步提升。同时我们也应认识到,语音远非一个已被彻底解决的问题。无论是真实场景的数据表现,还是实际落地应用,都还有很长的路要走。随着AI技术的进步,市场对更优秀的语音交互、合成与理解的需求显著增加。真心希望有实力的公司能坚持投入,去做那些困难却正确的事。
热门跟贴