一句话定义:VAD(Voice Activity Detection,语音活动检测)就是判断"这段音频里此刻有没有人在说话"的技术。它不关心你说了什么,只回答"有声还是无声、是不是人声"。
打个比方,VAD 像公司前台:访客进门,前台先确认"有人来了";然后一直留意着,等对方停下不再开口,才决定"话讲完了,可以叫里面的人出来"。至于访客具体讲了什么事,是后面会议室里的事——那一步对应 ASR(Automatic Speech Recognition,自动语音识别)。
原理上,VAD 把音频切成很短的帧(常见十几到几十毫秒一帧),逐帧计算能量、频谱等特征,或直接送进一个小神经网络,输出"这帧有声 / 无声",再把结果平滑起来(比如连续几帧有声才算真的开始,避免咳嗽、键盘声误触发),最终得到一段段"有人在说话"的时间区间。
真正决定手感的是几个阈值:
- 起始灵敏度:太灵敏,空调声、敲键盘都会把助手吵醒;太迟钝,你开口的第一个字会被吃掉。
- 结束静音时长:要安静多久才算"说完了"。设短了,你只是换口气想下一个词,AI 就抢话;设长了,每轮都多等半秒,聊十分钟就会觉得"这助手反应真慢"。
- 打断(barge-in):AI 正在播报时,能否听出用户插话并立刻闭嘴。做不好,用户会觉得根本抢不上话。
和相邻概念的分工:
| 概念 | 回答的问题 | 输出 |
|---|---|---|
| VAD | 现在有没有人在说话 | 有声/无声的时间段 |
| 端点检测(endpointing) | 这一轮什么时候算结束 | 一个切分点,通常由 VAD 加静音计时组合而成 |
| ASR | 说的是哪些字 | 文本 |
| 说话人分离(diarization) | 这句话是谁说的 | 带说话人标签的文本 |
| 唤醒词(wake word) | 是不是在叫我的名字 | 触发或不触发 |
对从业者,VAD 常是投入产出比最高的一环:它挡在 ASR 前面,静音段不送进模型,省算力也省调用量;它又直接决定对话节奏,而人判断"这个语音助手聪不聪明",很大程度来自节奏,而不是答案本身。对普通人,你遇到的"AI 抢话""要等两秒才理我""喊半天没反应",十有八九不是模型不行,而是 VAD 阈值没调好。具体产品怎么调、默认多少毫秒,以各家官方文档为准。
