基于 RT106S 的 HMI+Local Voice 智能语音识别系统(下)

 

1、软件设计

      上一节我们说到如何把 Local voice+HMI 的硬件搭起来。这一节介绍一下如何修改 MIC 数量还有如何移植 little VGL 到 Local Voice 工程上。参考设计给的 MIC 数量是两个和三个,有人会问两个 MIC 和三个 MIC 会有什么区别?别急,且听我慢慢道来。首先用三个 MIC 从效果上肯定是要优于两个 MIC 的。比如说 360°的语音检测,如果用两个 MIC 效果不如三个。

那么软件上如何做修改呢?答案就在工程的文件夹下的 config_files->pdm_pcm_definitions.h 的 PDM_MIC_COUNT 。

#define PDM_MIC_COUNT  (USE_SAI1_RX_DATA0_MIC+USE_SAI1_RX_DATA1_MIC + USE_SAI1_RX_DATA2_MIC + USE_SAI1_RX_DATA3_MIC + USE_SAI2_MIC)

 

如图,PDM_MIC_COUNT 的值决定要用几路 MIC 做语音识别,根据对应的硬件连接开对应的宏即可。我这里选择的是 SAI1_RX_DATA0 和 SAI2_RX_DATA 。别问为什么不选其他的引脚,要是 EVK 有引出来我到时愿意选其他的。因为这里的 SAI2 的 RX_Clock 刚好是 SWDIO 的引脚,调试起来会费点劲。

 

2、移植 Little VGL

在修改完语音识别部分的代码后,便可以开始移植 LittleVGL 了。首先是 LittleVGL 的库,如下图。这部分没什么好说的,找一个 RT1064 SDK 里面的 例程移植过来就行了。

 

移植完后需要在 Paths and Symbols 里添加以下路径。

 

还有两个跟 littleVGL 相关的文件,如下图,我把它们加到了 source 文件夹下:

 

 

原本以为这样移植完就可以大功告成,little VGL 用起来编译后才发现,DTC 超了。显示到了 204%。所以这样直接用 RAM 肯定是不够的。这里想到的是 SDRAM 要用起来。MCUXpresso 提供了内存分配的设置选项卡。在这里我们需要添加一个 SDRAM 的配置,然后需要在 setting 里面做一下配置,如下图


把 Global data placement 的空间设为 SDRAM。设置完这个后,编译就没什么问题了。

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论