175、语音Agent:STTTTS与对话
发布时间:2026/10/17 7:08:01 锦皓数字建站

昨晚线上一个语音Agent在嘈杂环境下把“播放周杰伦的晴天”识别成了“播放周杰伦的情天”,用户重复了三遍,最后气的直接关了。我盯着日志里那句带“情天”的VAD切片,愣了半天。语音Agent这个东西,文档里写的都是“ASR识别-语义理解-TTS合成”的大闭环,但真正上线你会发现,百分之八十的问题都出在音频采集和断句上,而不是模型本身的智能程度。那台设备是双麦克风阵列,理论上带波束成形,可实际录到的前两帧数据里有尖锐的皮带摩擦声,VAD把那一小段当作语音结束信号,直接给切断了。后半截“的晴天”被丢进下一个切片,ASR看到的是“播放周杰伦的情”和“天”,当然拼不出正确结果。这事的根子不在ASR,在于VAD的EndPoint检测太灵敏,跟环境噪声的频谱撞了。我后来把VAD的aggressiveness从2调到3,又加了能量阈值的滑动平均,问题解决了一半。另一半是方言口音,用户说“晴天”带一点吞音,解码时拼音候选里“晴”和“情”得分差不多,这时候需要靠上一轮对话上下文做纠偏。可以在语义理解阶段用一个context scorer,把“播放音乐”这个意图下的高频歌曲库权重加上。代码写成这样:# 这里踩过坑:不要直接把ASR的top1文本丢给NLU,先跑一个custom rerankscores=nlu_model.score(utt
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。