Skip to content

语音唤醒

语音唤醒 KWS 负责判断用户是否说出了指定唤醒词。它通常常驻端侧运行,是语音系统的入口门控。唤醒做得不好,后面的 ASR 和对话模型再强也没有机会工作。

唤醒、识别与合成的关系

唤醒模型到底在判断什么

KWS 不需要完整理解一句话,它只判断一小段连续声音是否像唤醒词。模型通常会把音频切成连续帧,提取频谱特征,再输出“当前窗口像唤醒词的置信度”。

唤醒词置信度与阈值

可以把唤醒过程拆成四步:

步骤作用容易出错的点
前处理把噪声、回声、音量波动压到可控范围AEC 不好会把音乐当成唤醒线索
VAD判断是否有人声活动太敏感会被噪声触发,太保守会漏轻声
KWS 打分判断音频窗口像不像唤醒词口音、儿童声、相似词影响置信度
确认逻辑多帧、多阶段或二级模型确认确认太弱误唤醒,确认太强漏唤醒

阈值不是越低越好

唤醒阈值决定“置信度达到多少才开门”。阈值越低,用户更容易唤醒设备,但日常聊天、电视声、相似词也更容易误触发;阈值越高,误唤醒减少,但远场、轻声、儿童声和噪声下更容易漏唤醒。

调整方向收益代价
降低阈值提高唤醒率,远场更容易响应误唤醒增加
提高阈值降低误唤醒漏唤醒增加
加二级确认降低误唤醒延迟和算力增加
加场景阈值不同噪声、音量下更稳标定和维护复杂

真实产品通常不会只有一个固定阈值。播放音乐、车速较高、夜间安静、儿童模式等场景,可以使用不同阈值或不同确认策略。

唤醒词设计

好的唤醒词要让模型容易区分,也要让用户自然愿意说。

设计点原因
不宜太短两个字容易和日常词、电视声重叠
不宜太长用户负担大,模型窗口变长,响应变慢
音节要有区分度清晰辅音和节奏变化有利于模型区分
避免高频日常词常用词会显著增加误唤醒
覆盖口音和儿童声真实用户不会都按标准播音腔发音

唤醒词不是只看发音,也要看品牌名、产品名和使用场景。一个营销上顺口的名字,未必是一个算法上容易识别的唤醒词。

训练数据怎么组织

唤醒数据要同时覆盖正样本和负样本。正样本决定“用户怎么喊能唤醒”,负样本决定“什么声音不能唤醒”。

数据覆盖内容
正样本不同年龄、性别、口音、音量、距离、角度
相似负样本与唤醒词音节接近、节奏接近的词和句子
场景负样本电视、音乐、短视频、聊天、儿童玩耍
播放干扰设备自播音乐或 TTS 时的唤醒词和非唤醒词
设备数据真实麦克风、真实结构、真实前处理输出

只用干净录音训练,模型容易在实验室表现很好,到了客厅、车内和会议室就明显退化。

多阶段唤醒

低功耗设备经常使用多阶段唤醒:

阶段位置特点
一级唤醒DSP 或低功耗 MCU常开运行,模型小,功耗低
二级确认主芯片或更大模型复核一级结果,降低误唤醒
声纹确认可选判断是否为授权用户或特定家庭成员

多阶段的目标是让“常开部分”足够省电,让“确认部分”足够可靠。代价是链路更长,首响延迟更难压低。

唤醒后缓存

用户经常连续说:“你好设备,打开客厅灯。”如果系统等唤醒成功后才启动 ASR,后半句开头可能已经过去。解决办法是维护环形音频缓存,把唤醒词前后一小段音频保留下来,唤醒后一起交给 ASR。

缓存太短会吞字,缓存太长会把唤醒词和背景噪声一起送进 ASR。具体长度要看唤醒词时长、ASR 启动时间和端点检测策略。

声纹不要当唯一安全凭证

声纹可以用于个性化和轻量身份判断,但不适合作为高风险操作的唯一凭证。录音重放、环境噪声、感冒、年龄变化都会影响声纹稳定性。支付、开门、隐私数据查询等操作,应结合账号、设备状态、二次确认或其他认证方式。

验收方式

指标怎么看
唤醒率正确喊唤醒词时是否能唤醒
误唤醒率长时间背景音中是否被错误唤醒
漏唤醒率真实用户喊了却没响应的比例
首响延迟唤醒词结束到设备反馈的时间
播放干扰唤醒音乐、TTS、电视声下能否稳定唤醒
场景分布不同设备、房间、车速、年龄是否均衡

误唤醒不能只测几分钟。真实产品需要长时间背景音和线上反馈闭环,否则很难发现低频但严重的误触发。

总结

唤醒算法的核心是“置信度分布和阈值取舍”。训练数据、前处理、确认策略、缓存和场景阈值共同决定最终体验。调唤醒不能只盯唤醒率,还要同时看误唤醒、漏唤醒、首响延迟和播放干扰。

别急,先让缓存热一下。