系统需判断用户何时说完
别名: 端点检测 · VAD · end-of-utterance · 语音活动检测
概念解释
语音输入没有按键那样的“抬起即提交”。系统必须自己判断用户何时说完,才能把这一段音频封成一次识别请求。这个判断叫端点检测(endpoint detection),前端常用语音活动检测(voice activity detection, VAD)标出语音起点与疑似终点。说完判定一旦做出,采集通常停止,识别结果被提交。它回答的是“这一口有没有结束”,不是“这句话在语义上是否完整”。
机制
连续音频是没有天然句号的。识别引擎按帧或按块消费特征,若永远不封口,延迟会无限堆积,部分结果也无法变成可执行的最终假设。VAD 先把帧分成语音/非语音;在一段语音之后观察到足够长的非语音,就宣布终点。起点同样需要判定:太早会把环境声收进缓冲,太晚会切掉第一个音节。端点因此是把模拟气流切成离散回合的装置。它和唤醒词守卫不同:守卫决定要不要进入聆听,端点决定这一轮聆听在哪一帧结束。按键说话把终点交给松开动作;免提场景没有这个动作,才必须做声学判断。
怎么研究
用带人工标注起止时间的语料评估检测器:起点误差、终点误差、语音帧命中与虚警。任务上让人说完整句、说带从句的长句、说完后立刻闭嘴。因变量包括切边导致的首尾音素丢失、以及从真实句末到系统提交的额外等待。只在朗读脚本上测,会得到过干净的边界;自发谈话里的填充停顿和呼吸会改变同一套检测器的行为。
边界
按住说话、松开发送的界面不依赖自动端点,终点就是触点消失。已经写成文本的听写框,用户用键盘回车提交时,端点检测不是这条路径的决策者。会议转录往往持续流式切段,并不把每一次静音都当成“用户对系统说完了一条命令”。极短的确认词(“好”“嗯”)和咳嗽、吸气容易与语音帧混淆,检测器会在这些地方给出不可靠的边界。
怎么落地
- 在免提命令和听写里显式设计“开始采集 / 正在听 / 已提交”三态,提交必须对应一次端点决策。
- 给用户一条不靠声学的结束手段:按钮、手势或键盘确认,避免检测器卡住时只能干等。
- 验收时同时看首音节是否被切掉、句末是否要等过久,不要只看识别对不对。