# 第6周：语音处理基础

## Slide 1: 封面

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│         🎓 嵌入式与人工智能                                  │
│                                                             │
│         第6周：语音处理基础                                  │
│                                                             │
│    ─────────────────────────────────────                    │
│                                                             │
│    本周内容：                                                │
│    • 音频信号采集原理                                       │
│    • I2S协议与麦克风模块                                    │
│    • 关键词识别与TinyML                                     │
│                                                             │
│         授课教师：李茂奎老师                                  │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 2: 开场Demo - 语音控制灯

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              🎤 开场Demo：语音控制灯 ⭐                      │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                     │   │
│   │         👨‍🏫 老师说："开灯！"                         │   │
│   │              ↓                                       │   │
│   │         ┌───────────┐                               │   │
│   │         │  MAX9814  │ ← 麦克风采集                   │   │
│   │         │   麦克风   │                               │   │
│   │         └─────┬─────┘                               │   │
│   │               │ I2S音频数据                          │   │
│   │         ┌─────▼─────┐                                │   │
│   │         │   ESP32   │                                │   │
│   │         │  AI模型   │ ← 本地关键词识别               │   │
│   │         │  💡亮了   │                               │   │
│   │         └───────────┘                                │   │
│   │                                                     │   │
│   │         现场演示：喊"开灯"→灯亮，喊"关灯"→灯灭       │   │
│   │                                                     │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   引导语：                                                   │
│   "让设备听懂人的话——这是这学期最核心的技能之一！            │
│    今天学完，你们也能做出来！"                               │
│                                                             │
│   📦 物料：ESP32-S3、MAX9814、LED                          │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 3: 问题导入

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              ❓ 三个问题思考                                 │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                     │   │
│   │   问题1：声音是怎么变成数字信号被处理的？             │   │
│   │         "嘿Siri"是怎么被识别的？                    │   │
│   │                                                     │   │
│   │   ─────────────────────────────────────────         │   │
│   │                                                     │   │
│   │   问题2：ESP32能离线识别语音吗？                     │   │
│   │                                                     │   │
│   │   ─────────────────────────────────────────         │   │
│   │                                                     │   │
│   │   问题3：怎么训练一个"开灯""关灯"的识别模型？        │   │
│   │                                                     │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   学习目标：掌握音频采集 + 关键词识别 + Edge Impulse         │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 4: 声音是什么

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              🔊 声音的物理本质                              │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   声音 = 空气的振动                                  │   │
│   │                                                       │   │
│   │   ┌───────────────────────────────────────────────┐ │   │
│   │   │                                                 │ │   │
│   │   │    ~~~波形图~~~                                │ │   │
│   │   │  ╱╲    ╱╲    ╱╲    ╱╲                         │ │   │
│   │   │ ╱  ╲  ╱  ╲  ╱  ╲  ╱  ╲                        │ │   │
│   │   │╱    ╲╱    ╲╱    ╲╱    ╲                        │ │   │
│   │   │        连续的模拟信号                            │ │   │
│   │   │                                                 │ │   │
│   │   └───────────────────────────────────────────────┘ │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   声音三要素：                                              │
│   ┌─────────────────────────────────────────────────────┐   │
│   │  📏 振幅  → 声音大小（响度）                         │   │
│   │  📐 频率  → 声音高低（音调）                         │   │
│   │  🎨 音色  → 声音特色（区分不同声源）                  │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   人耳可听频率范围：20Hz ~ 20kHz                            │
│   语音频率范围：300Hz ~ 4kHz                                │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 5: 声音的数字化

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              📱 声音数字化过程                              │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   连续信号  ───→  采样  ───→  量化  ───→  编码       │   │
│   │   (模拟声)      (每秒取样)    (数值化)    (二进制)    │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   原始波形：~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          │   │
│   │                                                       │   │
│   │   采样后：   ●  ●  ●  ●  ●  ●  ●  ●  ●              │   │
│   │           (离散点)                                    │   │
│   │                                                       │   │
│   │   量化后：   5  7  9  8  6  4  3  5  7  (数值)       │   │
│   │                                                       │   │
│   │   编码：     0101 0111 1001 1000 ... (二进制)         │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 6: 采样率

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              ⚡ 采样率 (Sample Rate)                        │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   采样率 = 每秒采样的次数（Hz）                       │   │
│   │                                                       │   │
│   │   示例：                                              │   │
│   │   • 采样率 8kHz = 每秒采集 8000 个点                 │   │
│   │   • 采样率 16kHz = 每秒采集 16000 个点               │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   奈奎斯特定理：                                            │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   采样率 ≥ 2 × 最高信号频率                           │   │
│   │                                                       │   │
│   │   人声最高频率 ≈ 4kHz                                 │   │
│   │   所以采样率 ≥ 8kHz 即可                              │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   常见采样率对比：                                          │
│   ┌────────────┬──────────┬───────────────┐                 │
│   │  采样率    │  质量    │  应用场景     │                 │
│   ├────────────┼──────────┼───────────────┤                 │
│   │  8 kHz     │  电话级  │  电话通信     │                 │
│   │  16 kHz    │  宽带    │  语音识别 ⭐  │                 │
│   │  44.1 kHz  │  CD级   │  音乐播放     │                 │
│   │  48 kHz    │  专业   │  录音棚       │                 │
│   └────────────┴──────────┴───────────────┘                 │
│                                                             │
│   ESP32语音识别推荐：16kHz                                  │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 7: I2S音频协议

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              🎵 I2S音频协议                                 │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   I2S = Inter-IC Sound                               │   │
│   │          IC间音频总线                                 │   │
│   │                                                       │   │
│   │   专门用于高质量音频数据传输！                         │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   I2S三根线：                                               │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   SCK (Serial Clock)    → 时钟信号                    │   │
│   │   WS  (Word Select)    → 左右声道选择                │   │
│   │   SD  (Serial Data)    ↔ 音频数据                    │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   I2S vs I2C：                                             │
│   ┌─────────────────────────────────────────────────────┐   │
│   │  I2C：传感器通信（低速、寻址）                        │   │
│   │  I2S：音频数据传输（高速、同步）                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 8: MAX9814麦克风模块

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              🎤 MAX9814麦克风模块                           │
│                                                             │
│   外观与引脚：                                              │
│                                                             │
│         ┌───────────────────┐                              │
│         │                   │                              │
│         │    ┌─────────┐    │                              │
│         │    │ MAX9814 │    │                              │
│         │    │  芯片   │    │                              │
│         │    └─────────┘    │                              │
│         │                   │                              │
│         │ [VDD][OUT][GAIN][GND]                           │
│         └───────────────────┘                              │
│                                                             │
│   引脚定义：                                                │
│   ┌─────────────────────────────────────────────────────┐   │
│   │  VDD  →  3.3V 或 5V  (供电)                         │   │
│   │  OUT  →  模拟音频输出  (接到ESP32 I2S)               │   │
│   │  GAIN →  增益设置 (可选)                            │   │
│   │  GND  →  地线                                        │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   模块特点：                                                │
│   ┌─────────────────────────────────────────────────────┐   │
│   │  ✓ 内置自动增益控制 (AGC)                            │   │
│   │  ✓ 低噪声前置放大器                                   │   │
│   │  ✓ 40dB/50dB/60dB可选增益                            │   │
│   │  ✓ 宽电压供电 (3V-5V)                               │   │
│   │  ✓ 模拟音频输出                                      │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 9: MAX9814接线图

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              🔌 MAX9814与ESP32接线                          │
│                                                             │
│       ESP32-S3              MAX9814                        │
│      ┌───────────┐         ┌───────────┐                   │
│      │           │         │           │                   │
│      │  GPIO32 ●─┼─────────┼──● OUT   │                   │
│      │  (I2S_WS) │         │           │                   │
│      │           │         │  [GAIN]   │  ← 悬空或接GND    │
│      │  GPIO33 ●─┼─────────┼──● SCK   │                   │
│      │  (I2S_SCK)│         │           │                   │
│      │           │         │  [VDD]    │                   │
│      │  GPIO34 ●─┼─────────┼──● DOUT   │ ← 注意：是模拟   │
│      │  (I2S_SD) │         │   输出！  │   输出直连I2S    │
│      │           │         │           │                   │
│      │  3.3V  ●──┼─────────┼──● VDD   │                   │
│      │           │         │           │                   │
│      │  GND   ●──┼─────────┼──● GND   │                   │
│      │           │         │           │                   │
│      └───────────┘         └───────────┘                   │
│                                                             │
│   ⚠️ 注意：MAX9814是模拟输出，DOUT直接连接到ESP32的I2S数据引脚│
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 10: 语音识别类型

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              🧠 语音识别类型对比                            │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   类型1：关键词识别 (Keyword Spotting) ⭐             │   │
│   │   ─────────────────────────────────────────────       │   │
│   │   • 检测特定关键词                                     │   │
│   │   • 离线运行，适合嵌入式                               │   │
│   │   • 例："Hey Siri"、"小爱同学"、"开灯"                 │   │
│   │                                                       │   │
│   │   类型2：命令词识别                                   │   │
│   │   ─────────────────────────────────────────────       │   │
│   │   • 识别预设的命令集合                                 │   │
│   │   • 例：开灯/关灯/调亮/调暗                           │   │
│   │                                                       │   │
│   │   类型3：连续语音识别                                  │   │
│   │   ─────────────────────────────────────────────       │   │
│   │   • 将语音转换为文字                                   │   │
│   │   • 需要强大算力，通常云端处理                         │   │
│   │   • 例：语音输入法、翻译                              │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   我们课程使用：关键词识别（离线+嵌入式）                    │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 11: 传统AI vs TinyML

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              ⚡ TinyML vs 云端AI                           │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   传统云端语音识别：                                  │   │
│   │                                                       │   │
│   │   🎤 说"开灯"                                       │   │
│   │       ↓                                              │   │
│   │   📱 手机录制                                         │   │
│   │       ↓ 网络传输                                      │   │
│   │   ☁️ 云服务器识别                                     │   │
│   │       ↓                                              │   │
│   │   📱 收到结果                                         │   │
│   │                                                       │   │
│   │   问题：❌ 需要网络，❌ 隐私风险，❌ 延迟高           │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   TinyML边缘识别：⭐                                  │   │
│   │                                                       │   │
│   │   🎤 说"开灯"                                       │   │
│   │       ↓                                              │   │
│   │   📱 ESP32本地识别  ← 不需要网络！                    │   │
│   │       ↓                                              │   │
│   │   💡 灯亮了                                          │   │
│   │                                                       │   │
│   │   优势：✅ 离线可用  ✅ 隐私安全  ✅ 低延迟  ✅ 低功耗 │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 12: Edge Impulse平台

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              🔧 Edge Impulse 平台                          │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   Edge Impulse = 边缘AI训练平台                       │   │
│   │                                                       │   │
│   │   https://www.edgeimpulse.com                        │   │
│   │                                                       │   │
│   │   特点：                                              │   │
│   │   ✓ 在线训练AI模型（不需要本地环境）                   │   │
│   │   ✓ 自动优化模型到嵌入式设备                          │   │
│   │   ✓ 支持ESP32、Arduino、STM32等                       │   │
│   │   ✓ 免费使用                                         │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   使用流程：                                                │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   1️⃣ 数据采集 → 录制"开灯""关灯"音频样本             │   │
│   │       ↓                                              │   │
│   │   2️⃣ 特征提取 → 转换为MFCC特征图                     │   │
│   │       ↓                                              │   │
│   │   3️⃣ 模型训练 → 训练神经网络分类器                    │   │
│   │       ↓                                              │   │
│   │   4️⃣ 模型部署 → 生成ESP32可运行的库                  │   │
│   │       ↓                                              │   │
│   │   5️⃣ 集成到Arduino → 编写代码调用模型                 │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 13: MFCC特征提取

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              📊 音频特征：MFCC                               │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   MFCC = Mel-Frequency Cepstral Coefficients        │   │
│   │          梅尔频率倒谱系数                              │   │
│   │                                                       │   │
│   │   作用：将音频转换为图像特征，用于神经网络训练          │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   转换过程：                                                │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   原始音频 ──→ 预加重 ──→ 分帧 ──→ 加窗 ──→ FFT      │   │
│   │       ↓                                              │   │
│   │   ──→ Mel滤波器组 ──→ 对数 ──→ DCT ──→ MFCC特征    │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   MFCC特征图：                                              │
│   ┌─────────────────────────────────────────────────────┐   │
│   │  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓                │   │
│   │  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓                │   │
│   │  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓                │   │
│   │  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓                │   │
│   │                                                       │   │
│   │   频                                               率  │   │
│   │   时 ──→ 间                                       窗口 │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 14: 实验：Edge Impulse数据采集

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              🧪 实验：Edge Impulse数据采集                   │
│                                                             │
│   实验目的：                                                │
│   ┌─────────────────────────────────────────────────────┐   │
│   │  1. 学会使用Edge Impulse采集音频数据                 │   │
│   │  2. 录制"开灯""关灯"和背景噪音样本                   │   │
│   │  3. 理解训练数据采集要求                              │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   数据采集步骤：                                            │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   1. 访问 https://www.edgeimpulse.com               │   │
│   │   2. 注册账号 → 创建新项目 → 选择ESP32                │   │
│   │                                                       │   │
│   │   3. 连接数据采集设备：                               │   │
│   │      • Device → Connect a new device                │   │
│   │      • 选择 "Use your computer's microphone"         │   │
│   │                                                       │   │
│   │   4. 采集数据：                                       │   │
│   │      • Label: "kaideng" (开灯)                      │   │
│   │      • 时长: 1秒 × 10-20个样本                       │   │
│   │      • Label: "guandeng" (关灯)                     │   │
│   │      • 时长: 1秒 × 10-20个样本                       │   │
│   │      • Label: "_noise_" (背景噪音)                   │   │
│   │      • 时长: 5分钟                                    │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   ⚠️ 注意：尽量多采集不同人的、不同语调的数据！              │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 15: 实验：模型训练

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              🧪 实验：创建Impulse并训练模型                  │
│                                                             │
│   步骤1：创建Impulse                                        │
│   ┌─────────────────────────────────────────────────────┐   │
│   │  Create Impulse → 设置参数：                        │   │
│   │  • Time series: 1000ms (1秒窗口)                    │   │
│   │  • Processing: Audio (MFE)                        │   │
│   │  • Learning: Neural Network (Keras)                 │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   步骤2：提取特征                                            │
│   ┌─────────────────────────────────────────────────────┐   │
│   │  Feature extraction → Generate features             │   │
│   │  查看特征分布图，确保"开灯""关灯"分开                 │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   步骤3：训练模型                                           │
│   ┌─────────────────────────────────────────────────────┐   │
│   │  Neural network training → 开始训练                  │   │
│   │  • 训练周期: 30                                     │   │
│   │  • 验证集: 20%                                      │   │
│   │  • 目标准确率: >85%                                │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   步骤4：部署模型                                           │
│   ┌─────────────────────────────────────────────────────┐   │
│   │  Deployment → 搜索Arduino → Build                   │   │
│   │  下载.zip库文件                                      │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 16: Arduino代码：调用模型

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              💻 Arduino调用Edge Impulse模型                  │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   #include <your_model_inference.h>                 │   │
│   │                                                       │   │
│   │   #define EI_CLASSIFIER_SLOTS_PER_MODEL 3            │   │
│   │                                                       │   │
│   │   void setup() {                                     │   │
│   │     Serial.begin(115200);                            │   │
│   │     pinMode(LED_PIN, OUTPUT);                        │   │
│   │     // 初始化麦克风                                   │   │
│   │   }                                                   │   │
│   │                                                       │   │
│   │   void loop() {                                       │   │
│   │     // 采集1秒音频                                    │   │
│   │     if (microphone_inference_record()) {             │   │
│   │       // 提取特征                                      │   │
│   │       signal_t signal;                                │   │
│   │       signal.get_features = microphone_audio_features│   │
│   │                                                       │   │
│   │       // 模型推断                                      │   │
│   │       ei_impulse_result_t result = {};              │   │
│   │       inference.classify(&signal, &result);         │   │
│   │                                                       │   │
│   │       // 分析结果                                      │   │
│   │       float kaideng = result.classification[0].value;│  │
│   │       float guandeng = result.classification[1].value│  │
│   │       float noise = result.classification[2].value;  │  │
│   │                                                       │   │
│   │       if (kaideng > 0.7) {                           │   │
│   │         digitalWrite(LED_PIN, HIGH);                │   │
│   │         Serial.println("检测到: 开灯");             │   │
│   │       } else if (guandeng > 0.7) {                  │   │
│   │         digitalWrite(LED_PIN, LOW);                  │   │
│   │         Serial.println("检测到: 关灯");              │   │
│   │       }                                               │   │
│   │     }                                                 │   │
│   │   }                                                   │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 17: 常见问题

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              ⚠️ 常见问题与解决                              │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   问题1：模型识别准确率很低                           │   │
│   │   原因：训练数据不够或质量差                          │   │
│   │   解决：采集更多样本，包含不同人、不同环境、不同距离    │   │
│   │                                                       │   │
│   │   ─────────────────────────────────────────────       │   │
│   │                                                       │   │
│   │   问题2：采集时显示设备未连接                          │   │
│   │   原因：浏览器没有允许麦克风权限                       │   │
│   │   解决：刷新页面，允许麦克风权限                       │   │
│   │                                                       │   │
│   │   ─────────────────────────────────────────────       │   │
│   │                                                       │   │
│   │   问题3：ESP32内存不足                               │   │
│   │   原因：模型太大                                      │   │
│   │   解决：减少训练数据量，或选择量化优化                 │   │
│   │                                                       │   │
│   │   ─────────────────────────────────────────────       │   │
│   │                                                       │   │
│   │   问题4：采集的音频没有声音                            │   │
│   │   原因：麦克风增益太低或连接错误                       │   │
│   │   解决：检查MAX9814连接，确认GAIN设置                  │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 18: 本周知识总结

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              ✅ 本周核心知识点                              │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   1️⃣ 声音数字化                                       │   │
│   │      • 采样率：每秒采集次数（语音识别用16kHz）         │   │
│   │      • 位深度：采样精度（16bit）                      │   │
│   │      • 奈奎斯特定理：采样率 ≥ 2×最高频率              │   │
│   │                                                       │   │
│   │   2️⃣ I2S音频协议                                      │   │
│   │      • 三根线：SCK、WS、SD                            │   │
│   │      • 专用音频数据传输                               │   │
│   │                                                       │   │
│   │   3️⃣ MAX9814麦克风                                    │   │
│   │      • 模拟音频输出，内置AGC                          │   │
│   │      • 增益可调（40/50/60dB）                        │   │
│   │                                                       │   │
│   │   4️⃣ 语音识别类型                                     │   │
│   │      • 关键词识别：检测特定词（我们用的）              │   │
│   │      • 连续识别：转文字（云端）                        │   │
│   │                                                       │   │
│   │   5️⃣ TinyML边缘AI                                     │   │
│   │      • 本地离线识别，不需要网络                        │   │
│   │      • 低延迟、低功耗                                  │   │
│   │                                                       │   │
│   │   6️⃣ Edge Impulse                                    │   │
│   │      • 在线AI训练平台                                 │   │
│   │      • 流程：采集→特征→训练→部署                     │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 19: 课后作业

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              📝 课后作业                                    │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │   理论题（30分）                                      │   │
│   │   ─────────────────────────────────────────────       │   │
│   │   1. 解释采样率和奈奎斯特定理。                        │   │
│   │   2. I2S和I2C有什么区别？                              │   │
│   │   3. 为什么TinyML比云端语音识别更适合物联网？          │   │
│   │                                                       │   │
│   │   ─────────────────────────────────────────────       │   │
│   │                                                       │   │
│   │   实践题（70分）                                      │   │
│   │   ─────────────────────────────────────────────       │   │
│   │   1. 在Edge Impulse上注册账号并创建项目。              │   │
│   │   2. 采集"开灯""关灯"和背景噪音数据。                 │   │
│   │   3. 训练模型并部署到ESP32（选做：完成完整识别）。     │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   提交截止：下周二上课前                                     │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

## Slide 20: 下周预告

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              🔮 下周预告：图像处理基础                       │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐   │
│   │                                                       │   │
│   │         📷 开场Demo：AI摄像头                        │   │
│   │                                                       │   │
│   │         ┌──────────┐                                 │   │
│   │         │ ESP32-CAM│                                 │   │
│   │         │  📷📷📷  │ ← 实时拍摄                      │   │
│   │         │  人脸框   │ ← AI人脸检测                   │   │
│   │         │  显示在屏 │ ← 图像输出                     │   │
│   │         └──────────┘                                 │   │
│   │                                                       │   │
│   │         下一节课我们将学习：                           │   │
│   │         • 摄像头接口与图像采集                        │   │
│   │         • 像素、分辨率、色彩空间                      │   │
│   │         • OV2640摄像头模块                           │   │
│   │                                                       │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                             │
│   📦 需要准备：ESP32-CAM、显示器                           │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---
