3. 语音交互基础
在智能座舱中,语音交互是最自然、最直接的人机接口之一。用户说出一句话,系统需要在几百毫秒内完成“听清、听懂、回应”三个动作。这背后是一条由多个模块串联而成的技术链路:语音信号处理负责把麦克风采集的混合声音变成干净的数字信号;ASR(自动语音识别)把声音转成文字;NLU(自然语言理解)解析文字背后的意图与槽位;对话管理决定系统下一步该问什么、答什么;TTS(语音合成)再把系统回复变成自然语音播放出来。唤醒词与远场语音则贯穿始终,决定系统“何时开始听”以及“在嘈杂环境中能否听清”。理解这条链路,是后续多模态融合设计的基础。
一、语音信号处理:把声音变成可计算的数据
麦克风输出的是连续模拟电压,经过采样、量化后变成离散数字波形。座舱中常见的采样率为 16 kHz、位深 16 bit,足以覆盖人声主要频段(300 Hz~8 kHz)。原始信号往往混有发动机噪声、风噪、音乐声和多人说话声,因此需要前端处理:
- 降噪与回声消除(AEC):消除扬声器播放声音被麦克风重新拾取形成的回声,避免系统“自己听自己”。
- 波束成形(Beamforming):利用麦克风阵列的相位差,将拾音“焦点”对准说话人方向,抑制其他方向噪声。
- 语音活动检测(VAD):判断当前帧是语音还是静音,减少无效计算和误触发。
- 特征提取:将短时信号转换为 MFCC 或 FBank 特征,作为 ASR 模型的输入。
这一阶段的目标不是“听懂”,而是“听清”。如果前端处理不到位,后续 ASR 再强也难以弥补。
二、ASR、NLU、DM、TTS:语音交互的四级流水线
ASR 将声学特征映射为文字序列。当前主流方案是端到端模型(如 Conformer、Whisper 类结构),直接输出汉字或子词。座舱场景中,ASR 需要针对车内噪声、口音、儿童语音做专项优化,并支持流式识别,让用户说话过程中就能逐步出字。
NLU 接收 ASR 文本,完成两项核心任务:意图识别(用户想做什么,如“导航”“开空调”“播放音乐”)和槽位填充(关键参数是什么,如目的地、温度、歌名)。例如“把空调调到二十四度”中,意图是“设置空调温度”,槽位是“温度=24”。
对话管理(DM)维护对话状态,决定系统下一步动作。它需要处理多轮对话、指代消解和上下文继承。例如用户先说“导航到人民广场”,再说“走最快的路线”,DM 要能把“最快的路线”关联到上一个导航任务。DM 的输出是系统动作,如“查询路线”“播报结果”“请求澄清”。
TTS 将系统回复文本合成为语音。现代 TTS 多采用神经网络声学模型加声码器,能够生成自然、带情感和韵律的语音。座舱中还需控制语速、音色和播报时机,避免与导航提示、媒体声音冲突。
三、唤醒词与远场语音:座舱场景的特殊挑战
唤醒词是语音交互的“门铃”。系统在待机时以低功耗运行 KWS(关键词识别)模型,持续监听特定短语。唤醒词设计要兼顾低误唤醒率和高唤醒率:太敏感会被音乐、对话误触发;太迟钝则用户喊几次没反应。工程上常用“唤醒词+声纹确认”双保险,只有注册用户的声音才能唤醒。
远场语音是座舱的另一个难点。用户可能坐在第二排、开着车窗、播放着音乐。麦克风阵列通过波束成形把拾音方向对准说话人,同时 AEC 消除车内扬声器回声。实际项目中,麦克风位置、数量、朝向都会影响效果,通常需要结合车内声学仿真和实车标定。
四、典型场景与常见误区
以“导航到虹桥火车站”为例:用户说出唤醒词后,系统开始拾音;信号处理模块完成降噪和波束成形;ASR 输出“导航到虹桥火车站”;NLU 识别意图为“导航”,槽位为“目的地=虹桥火车站”;DM 调用地图服务查询路线,决定播报“已为您规划路线,全程约 35 分钟”;TTS 合成语音并通过扬声器播放。整个过程通常在 1~2 秒内完成。
| 模块 | 核心任务 | 关键指标 | 常见问题 |
|---|---|---|---|
| 信号处理 | 降噪、AEC、波束成形 | 信噪比提升、回声抑制比 | 音乐声中被误唤醒 |
| ASR | 语音转文字 | 字准确率、首字时延 | 口音、儿童语音识别差 |
| NLU | 意图识别与槽位填充 | 意图准确率、槽位 F1 | 多意图、省略句理解失败 |
| DM | 对话状态与决策 | 任务完成率、轮次 | 上下文丢失、指代错误 |
| TTS | 文字转语音 | 自然度、合成时延 | 机械音、韵律不自然 |
五、参数与调试参考
以下是一组座舱语音链路的典型配置参数,供工程调试参考:
采样率: 16000 Hz
位深: 16 bit
帧长: 25 ms
帧移: 10 ms
麦克风阵列: 6 麦环形 / 4 麦线性
波束成形: MVDR 或 GSC
AEC 尾长: 128~256 ms
VAD 阈值: 0.5~0.7(可调)
唤醒词误报率: < 1 次 / 24 小时
ASR 首字时延: < 500 ms
TTS 合成时延: < 300 ms
端到端交互时延: < 1.5 s
调试时建议分模块验证:先单独测试唤醒率和误唤醒率,再测试远场 ASR 字准确率,最后联调 NLU 和 DM。每个模块的日志都要保留时间戳,便于定位时延瓶颈。只有把这条链路每一级都做扎实,后续的多模态融合才有可靠的基础。