KunSpace
返回博客

语音模块:唤醒、识别、TTS/STT/ASR

2026年7月31日
6 次阅读

读完了?别空手走啊 😏

若有所获,赐一赞 — 作者会假装很忙实则刷新页面

写评论

赞同、吐槽、提问都行,评论区开放

这篇写什么?

做 Soundbar、音箱、车机、智能助手时,口头常蹦出一串缩写:KWS、ASR、STT、TTS、VAD、AEC……很容易混。

本文只做一件事:把「听 → 懂 → 说」的整体链路讲清楚;并说明每个缩写在工程里常出现在哪一层。站内已有更细的唤醒 / Mic+Ref / 测试文,文末会指路。

整体链路(先看这一段)

别人对你说一句话,设备大概会走:

  1. 麦克风采到声音波形
  2. **前端处理(AEC / NS / 波束)**去掉喇叭回声和环境噪声,让人声更干净
  3. VAD判断:现在有没有人在说话?
  4. **KWS(语音唤醒)**判断:是不是在叫我?(例如「小爱同学」)——没叫就不往下走,省电
  5. **ASR / STT(语音识别)**把后面整句命令变成文字
  6. NLU / 大模型看懂文字:你想干什么?并给出回复文字
  7. TTS(语音合成)把回复念出来,从喇叭播放

用箭头串起来就是:

麦克风采到波形
  → 前端处理(AEC/NS…)让人声更干净
  → VAD 判断「有没有在说话」
  → KWS 判断「是不是在叫我」(唤醒)
  → ASR/STT 把连续说话变成文字
  → NLU / 大模型理解并给出回复文字
  → TTS 把回复念出来,从喇叭播放
语音交互全链路总览语音交互全链路总览

(上图:从 Mic 到 TTS 的完整流水线。深色主题会自动换暗色版。)


一、先分清:听、懂、说

整条链路可以压成三件事:

方向 常见名字 人话 在链路里的位置
KWS / Wake Word 只盯几个热词,听到才「醒」 第 4 步
VAD 区分「在说话」还是静音/噪声 第 3 步
AEC / NS / BF 消回声、降噪、波束,让后面更好听 第 2 步
ASR ≈ STT 把一整句说话变成文字 第 5 步
NLU / Dialog / LLM 理解意图、执行、生成回复文字 第 6 步
TTS 把文字合成声音再播放 第 7 步
语音名词关系图:听 / 懂 / 说语音名词关系图:听 / 懂 / 说

记住两个最容易混的:

  1. ASR 和 STT 基本是一类事

    • ASR = Automatic Speech Recognition(自动语音识别)
    • STT = Speech-to-Text(语音转文字)
      产品文档、云厂商、论文里常混用,看到哪个都按「语音 → 文字」理解即可。
  2. TTS 是反方向

    • TTS = Text-to-Speech(文字 → 语音)
      和 ASR/STT 正好相反。

所以:整体链路已经讲清了——听清(前端+VAD+唤醒+识别)→ 听懂(NLU/大模型)→ 说出来(TTS)。后面各节是对每一步的展开。

二、各模块分别干什么?

1)语音唤醒 KWS(Keyword Spotting / Wake Word)

  • 目标:设备待机时几乎一直在「浅听」,但只对少数词敏感,例如「小爱同学」「Hey Google」。
  • 特点:算力小、功耗低、误触发和漏触发要权衡;常跑在 DSP / 本地小模型。
  • 和 ASR 的差别:唤醒只认「热词」;ASR 要认「整句内容」。

站内更深:

2)VAD(Voice Activity Detection)

  • 目标:判断当前这一小段是「人在说话」还是「没说话」。
  • 用途:省流量、切句、决定何时开始/结束送 ASR;唤醒前后也会用到。
  • 注意:嘈杂环境、远场、音乐背景下,VAD 本身就是一道难题。

3)前端处理:AEC / NS / BF

缩写 全称(常见) 作用
AEC Acoustic Echo Cancellation 消掉喇叭回灌进麦的声音
NS Noise Suppression 压环境噪声
BF Beamforming 多麦指向说话人方向

音箱一边播 TTS/音乐,一边听人说,没有 AEC 时,算法听到的常是「自己的回声 + 人声糊在一起」。
相关:Soundbar THD 验证loopback 抗混叠

4)ASR / STT 语音识别

  • 目标:连续语音 → 文字(可能带标点、时间戳、多候选)。
  • 形态:云端大模型识别、端侧流式识别、或「端侧粗识别 + 云端精修」。
  • 指标粗看:字错率、延迟、远场/噪声鲁棒性、方言与领域词。

唤醒成功后,常见路径是:打开更完整的录音通路,把后续命令句送给 ASR。

5)NLU / 对话 / 大模型(懂)

  • 传统 NLU:意图(调空调)+ 槽位(温度=26)。
  • 现在:很多产品把「懂」交给 LLM / Agent,ASR 出文字后直接进大模型。
  • 关键:ASR 错一个字,后面理解可能整段跑偏——所以声学前端和识别质量仍然重要。

6)TTS 语音合成(说)

  • 目标:回复文字 → 可播放音频。
  • 关注点:自然度、延迟(首包多久出声)、多音色、可控语速/情感、是否可离线。
  • 和唤醒语料:训练/评测唤醒时,常用 TTS 批量生成「热词」音频——本站工具页就有唤醒语料 TTS。

三、端上一条「典型」链路(音箱 / Soundbar)

结合消费电子里常见的远场助手,可以简化成:

┌────────────── 常开、低功耗 ──────────────┐
│  麦阵 + Ref → AEC/NS → KWS(热词)        │
└──────────────────┬───────────────────────┘
                   │ 唤醒命中
                   ▼
┌────────────── 会话阶段 ─────────────────┐
│  继续取麦 →(可选)端侧 ASR 或上云 ASR     │
│  → NLU / 云端技能 / 大模型               │
│  → TTS → 喇叭播放(同时 Ref 进 AEC)      │
└─────────────────────────────────────────┘

要点:

  1. 唤醒前尽量省电、少上传。
  2. 唤醒后才拉起重识别、连网、播报。
  3. 播放 TTS 时系统仍可能在听下一轮——AEC 与半双工/全双工策略要设计好。
  4. 同一台设备可能有多路唤醒(系统远场 + 自研助手),见 多路语音唤醒

四、本地 vs 云端,怎么选?

能力 偏本地 偏云端
KWS 几乎总是本地(时延/隐私/待机) 很少纯靠云做首唤醒
ASR 离线命令、低时延短指令 长句、复杂领域、大词表
TTS 固定话术、弱网 多音色、长文本、高质量
NLU/LLM 小技能、规则 开放域问答、复杂推理

没有绝对对错:很多产品是 本地唤醒 + 云端识别/对话 + 云端或本地 TTS 的混合。


五、和 KunSpace 工具的关系

本站「在线工具」里有一批音视频能力,对应语音工程里常见的数据准备,不是完整助手,但很实用:

工具 大概对应
转 WAV / 批量 prep 统一 16 kHz 单声道,方便喂唤醒/识别
唤醒语料 TTS 用 TTS 生成热词音频,做数据与回归
网页录音 快速录一段测试音
波形 / 频谱 / 响度 听不清时先「看见」信号
剪切去静音、噪声叠加 造样本、压测鲁棒性
播放延迟 粗看通路延迟

进阶声学与通路:见 麦克风阵列音频检查ALSA period/缓冲


六、一张表速查缩写

缩写 常见中文 输入 → 输出
KWS 语音唤醒 / 热词 波形 → 是否命中热词
VAD 语音活动检测 波形 → 有无语音
AEC 回声消除 Mic+Ref → 干净近讲/远场人声
NS 降噪 带噪语音 → 更干净语音
ASR 语音识别 语音 → 文字
STT 语音转文字 同 ASR
NLU 自然语言理解 文字 → 意图/槽位
TTS 语音合成 文字 → 语音
STT↔TTS 互为反向

七、小结

  • **唤醒(KWS)**负责「叫我才理你」;**识别(ASR/STT)**负责「你说的内容写下来」;**合成(TTS)**负责「我用声音回答你」。
  • VAD / AEC / NS 是听清的前置条件,不是可有可无的形容词。
  • ASR 与 STT 在工程交流里常当作同义;别和 TTS 搞反。
  • 真机问题多半出在:麦阵与 Ref、抗混叠、回声、多路抢麦、缓冲与延迟——这些在站内实战文里写得更细。

若你只记一张图:看文首「语音交互全链路」;若只记一张表:看「听 / 懂 / 说」名词图。


延伸阅读(本站)

评论

还没有评论,来做第一个吧

赞同、吐槽、提问都行,评论区开放