前言
因为搭上了人工智能的车, 近一段时间来智能音箱很火. 最著名的当属亚马逊的Echo,国内的后起之秀有灵动等等. 类似的还有小米收音机,优听音箱之类. 主要功能都是网络播放,大多数带有麦克风+语音识别. 与AI结合紧密的就是语音助手了, 比如某些智能音箱能够听从用户这样的命令: 播放Beatles乐队的Let it be! 上述例子中小米音箱的麦克风目前没有在固件支持,但是潮流与趋势大致如此. 作者本人也与另外一个网友合作DIY了一款. 此篇讲述硬件的设计思路以及详情. 设计的过程中用到了STM32CubeMX, 感觉很好用, 治理也介绍一下子这个工具如何辅助作者本人的硬件与软件设计过程, 希望对感兴趣的网友一点启发. 后续的软件上的例子另外进行写作.
图 功能框图
考虑到要语音识别和音频软解码的需要, 核心要进行复杂的数字信号处理. 这样核心可选DSP, 高频通用处理器或者FPGA。因为是自己搞DIY, 其实这里也没有很大的讲究。无非是用好的处理器就做复杂点, 反之就搞简单一点. 考虑到购买容易,价格也较低的因素,选定STM32F4系列。小米收音机我也拆过, 用的是MTK的MT7688KN(MIPS24KEc内核). 这种片我们既难买,也不好搞编程, 算是可望不可求吧.
图 小米收音机主板
考虑到有大量数据存储(永久或暂时)的可能,外扩了RAM和Flash,外扩RAM选用SRAM,外扩Flah选择SD卡和SPI Flash。注:小米音箱上只有SPI Flash没有SD卡.
显然有播放音乐的需要,对音质还是比较在意,这里并不使用MCU内建的DAC,而是选择外置的I2S DAC。而语音输入就相对简单,内置ADC加外部MIC即可。通信方面,支持TCP/IP和USB是必不可少。
人机界面本来打算使用12864这样的液晶屏,后来觉得不是核心功能就能省就省,使用按钮和LED的组合即可(也考虑到还要做语音指令功能)。这样外观也比较好处理,例如这样摆放在桌面上的感觉(机顶盒):
图 设想图之一
但实际效果,可能更像这样,可以便携使用(耳放):
图 设想图之二
最终选定的主要芯片型号:
型号封装厂商功能主要规格
表 主要芯片一览
使用CubeMX辅助硬件设计
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)