AI类产品乐鑫设计参考以及要求
AI 玩具分为两类,纯语⾳交互类 和 增加视觉多模态类 的需求。
软件设计参考 乐鑫⾳视频开发框架 ESP-ADF;
硬件设计参考乐鑫 语⾳开发板 ESP32-S3-Korvo-2 和 ESP32-P4 开发板;
相关云端以及⼤模型⽅案的选择可以联系乐鑫沟通了解。
关于芯⽚和模组选型
1. ⼤部分 AI 玩具或者早教硬件品类,默认可选择 乐鑫 ESP32-S3 来进⾏开发
-
芯⽚选型建议如下表所示
-
关于 MIC 选型,默认推荐单 MIC,如需要远场语⾳唤醒则选择双 MIC
-
单 MIC 也可以做全双⼯ RTC 对讲
-
需要注意所选的外部 Codec 要能⽀持硬件回采(回升参考信号⽤于 AEC 算法),类似ES8311 这种
-
对于玩具类,如唤醒距离仅要求 1m 内,也可以选择单 MIC
-
-
如不采⽤ COB 形式,则对应模组可选择 ESP32-S3-WROOM-1
- 初次开发或者射频经验略匮乏者更建议选择模组,硬件后续升级可以考虑 COB
2. 如果有 H264 视频 需求或者屏幕分辨率 ≥480P 以上,可选择乐鑫 ESP32-P4 进⾏开发
-
例如后续玩具形态除语⾳交互外,还需增加可视对讲等视频交互能⼒;
-
或者增加视觉模型,增加 Camera 接⼊,进⾏ 多模态模型识别
AEC 算法主要作⽤于 全双⼯交互 以及 语⾳唤醒打断 操作
如需要 DOA 声源算法的默认⾛ 2MIC + S3R8 来做处理
关于语⾳唤醒,如有成本要求,还可以使⽤ ESP32-C3 外扩 MCU(语⾳唤醒芯⽚)处理,但开发和体验会略差于 ESP32-S3
关于视觉模型,默认推荐使⽤ ESP32-P4,如功能不复杂例如拍照识别也可使⽤ ESP32-S3R8 开发
关于 MIC 以及外设选型要求
1. 对于单 MIC ⽅案,不涉及阵列要求较低
-
MIC 可以选择⾼灵敏度的模拟⻨克,成本较低;灵敏度建议不低于 -38 dB,信噪⽐不低于 60 dB
-
外设 Codec 可选择类似 ES8311 这种 单⼊单出 且⾃带 回声参考信号 的
2. 对于双 MIC ⽅案
-
涉及语⾳算法,MIC 选型要求略⾼
-
1 Pa 声压下模拟⻨灵敏度不低于 -38 dBV,数字⻨灵敏度要求不低于 -26 dB
-
公差控制在 ±2 dB,对于⻨克阵列推荐采⽤ ±1 dB 公差。
-
信噪⽐不低于 62 dB,推荐 > 64 dB
-
频率响应在 50 ~ 16 kHz 范围内的波动在 ±3dB 之内。
-
PSRR > 55 dB (MEMS mic)
-
-
⻨克⻛阵列也有⼀定的设计要求
- 多⻨克阵列中⻨克之间的相位差控制在 10° 以内
- ⻨克阵列中各⻨克的结构设计,推荐采⽤相同的设计,以保证结构设计的⼀致性
- ⻨克间距要求 4 ~ 6.5 cm,连接两个⻨克⻛的轴线应平⾏于⽔平线,且两个⻨克的中⼼尽量靠近产品⽔平⽅向的中⼼
- 外设 Codec 需要满⾜ 三⼊ 以上的接⼝(2 路 MIC + 1 路回采),可以选择⼀些带回采的数字 PA或者 Codec 组合
回声参考信号设计要求
-
如不是⼀体化 Codec (包含内部硬件回采),⽽是需要 DA 回采到 AD 的话,则回声参考信号尽量靠近喇叭侧,推荐从 DAC 后级 PA 前级回采
-
扬声器⾳量最⼤时,输⼊到⻨克的回声参考信号不能有饱和失真,最⼤⾳量下喇叭功放输出 THD 满⾜100 Hz ⼩于 10%,200 Hz ⼩于 6%,350Hz 以上频率,⼩于 3%
-
扬声器⾳量最⼤时,⻨克处拾⾳的声压不超过 102 dB @ 1 kHz
-
回声参考信号电压不超过 ADC 的最⼤允许输⼊电压,电压过⾼需增加衰减电路
-
从 D 类功放输出引参考回声信号需增加低通滤波器,滤波器的截⽌频率推荐 > 22 kHz
-
⾳量最⼤播放时,回采信号峰值 -3 到 -5 dB。
对于整机结构设计的建议
单 MIC 和多 MIC 阵列⽅案的整机腔体要求基本⼀致;如⽆ AEC 需求的话,腔体结构可以降低要求
对于视觉模型,仅需要注意 Camera 的选型和焦距即可
1. 对于 MIC 的硬件腔体要求
- ⻨克⻛孔孔径或宽度推荐⼤于 1 mm,拾⾳管道尽量短,保证⻨克⻛和结构组件配合的谐振频率在9 kHz 以上
- 拾⾳孔深度和直径⼩于 4:1,壳体厚度推荐 1 mm,如果壳体过厚,需增⼤开孔⾯积
- ⻨克孔上可以考虑增肌防尘⽹进⾏保护
- ⻨克孔不能被遮挡,底部拾⾳的⻨克孔需结构上增加凸起,避免⻨克孔被桌⾯等遮挡
- ⻨克需远离喇叭等会产⽣噪⾳或振动的物体摆放,且与喇叭⾳腔之间通过橡胶垫等隔离缓冲
2. 需要保证整机腔体的密封性,即腔体隔离,保证 MIC 录⾳不会受到喇叭播放内部回录回震的影响
- 保证喇叭有单独⾳腔播放,且⻨克⻛与播放腔体完全隔离;部分因结构件产⽣的⽓孔⽤泡棉或者打胶等⽅式隔离
- 播放⾯尽可能和 MIC 录⾳不在同⼀侧平⾯
- ⻨克⻛与设备外壳之间也可以加硅胶套或泡棉等进⾏密封和防震
关于休眠以及唤醒⽅式的建议
对于 AI 玩具类产品,⽆论是否是全双⼯ RTC 对话,带电池产品都建议设置休眠机制和唤醒机制,常电产品则不需要
1. 当对话结束后 5/10min 内没有 “有效录⾳”,则退出对话模式,整机进⼊ DeepSleep 或者 LightSleep 模式,低功耗省电
- 没有交互 ≠ 不在录⾳,当产品没有在使⽤时候,务必关闭拾⾳系统进⼊休眠状态,省电同时防⽌误触发现象
- 即使使⽤了 语⾳唤醒 的交互⽅式,整机语⾳待唤醒状态的功耗 > 50mA ,对于带电池产品来说也是很⼤的压⼒
- 可以使⽤ 按键强⾏关机 或者 AVD 检测+云端判断是否需要退出交互模式,检测没有 “有效录⾳”后,播放⼀段类似提示⾳ “⼩朋友,我要休息了哦,有需要的时候随时唤醒我xxx” ,来加强⽤户交流粘性
2. 当需要使⽤的时候,可以通过 “按键” 唤醒系统
- 按键 需要需要接⼊ RTC_IO ,这类低功耗 IO 才能唤醒系统
- 唤醒本质⼀定程度上 == 系统重启,因此建议唤醒第⼀时间播放⼀段类似提示⾳ “⼩朋友,我⼜来了xxxxx”,来满⾜系统初始化时间,同时降低⽤户感知
- 系统唤醒后,再进⾏ 按键式对话、RTC 全双⼯对话或者语⾳唤醒打断式对话
3. ⾄于电池的⼤⼩则根据产品的结构和需求来定义
主芯⽚休眠可以做到 DeepSleep < 10uA, LightSleep 保活 DTIM10 < 700uA.
⼀些开发验证⽅法
⻨克⻛阵列⼀致性验证⽅法
- ⻨克⻛正上⽅ 0.5 ⽶处,播放⽩噪声,⻨克⻛处⾳量 90 dB
- 使⽤⻨克⻛阵列录制 10 s 以上,查看各 mic 录⾳幅度和⾳频采样率是否⼀致,要求能够做到相差 3 dB以内
腔体⽓密性验证⽅法
-
可以⽤橡⽪泥等材料封堵⻨克拾⾳孔,密封前后⻨克⻛采集信号的幅度衰减 25 dB 合格,推荐 30 dB,测试⽅法(静⾳环境):
-
⻨克⻛正上⽅ 0.5 ⽶处,播放⽩噪声,⻨克⻛处⾳量 90 dB
-
使⽤⻨克⻛阵列录制 10 s 以上,存储为录⾳⽂件 A
-
⽤橡⽪泥等材料封堵⻨克拾⾳孔,使⽤⻨克⻛阵列录制 10 s 以上,存储为录⾳⽂件 B
-
对⽐两个⽂件的频谱,需保证 100 ~ 8 kHz 频段内整体衰减 30 dB 以上
AEC 效果以及回升参考验证
- 可以使⽤ algorithm ⼯程获取 AEC 前后级的 4 路⾳频(2 路 MIC + AFE 回采 + AEC 消除后的⾳频),再使⽤ Audacity 查看 aec_in ⾳频是否存在饱和、丢数据、左右声道不对⻬等问题