基于MSP430F5529的智能音箱设计

2021-11-28 12:19马瑞栋刘同礼刘丽丽金小香
电子制作 2021年20期
关键词:寄存器陀螺仪体感

马瑞栋,刘同礼,刘丽丽,金小香

(东南大学成贤学院,江苏南京,210088)

0 引言

随着科学技术的进步,智能化的电子设备与我们如影随形,我们的生活也无时无刻不伴随着智能化设备的使用。在我们日常使用智能设备的过程中,使得我们对智能化设备提出了更高的要求。在传统的电子设备的控制方式中,大多离不开人亲自上手操作,或是需要经过较为繁琐的操作流程。这就需要设备能够更懂用户的心,更具简捷、直接的人机交互界面。而语音控制就可以在一定程度上,使得设备能够听懂我们的声音,使我们与电子设备直接进行言语交流成为可能,当我们需要电子设备帮我们完成某项任务时,仅需言语吩咐即可。这也是智能语音识别在近年来热度一直居高不下的缘由。

1 整体设计方案

本设计通过LD3320语音识别模块识别非特定人声的语音指令,通过XFS5152CE语音合成模块进行语音应答,不同的识别结果触发不同的事件,从而实现问答式的交互控制方式;通过MPU6050陀螺仪获取DMP姿态解算后得到的偏航角(yaw)、翻滚角(roll) 和 俯仰角(pitch),并实时监测,当达到预置阈值之内时,触发相应的事件,从而实现体感控制模式;DS18B20温度传感器将获取到的实时温度数据上报,以实现对环境温度的实时监测;MCU与ESP8266进行UART通信以实现触发查询日期、时间、天气情况等事件及查询结果回传,与MP3模块进行UART通信,以实现切换歌曲、音量调节、歌曲点播等基本功能。

图1 智能音箱设计总体设计方案框图

2 硬件设计方案

■2.1 语音识别

LD3320是目前较为流行的非特定人声的语音识别芯片,其内置高精度的ADC、DAC通道及功放电路,只需在LD_MICP和LD_MICN引脚连接麦克风即可进行语音识别,同时该芯片还支持MP3播放功能,仅需在LD_SPOP和LD_SPON连接扬声器,通过MCU将MP3音频数据依此传输至LD3320芯片即可实现音频输出,且可通过相应的寄存器与EP1、EP2、EP3管脚控制音频输出的音量增益。该芯片无需FLASH、RAM等外围存储器件就能够同时实现语音识别与语音播报功能,比较适合于问答式的人机交互开发场合。

LD3320芯片如此备受电子爱好者的青睐,很大程度上得益于其快速稳定的非特定人声识别算法,无需进行预先繁琐的语音训练,而非仅限于识别特定人的语音指令,这使得其可应用范围及应用前景更加广泛。只需在完成识别列表的动态编辑之后,由MCU将识别列表中的识别词条字符串通过设置寄存器的方式送至芯片内部即可进行识别。更改识别词条字符串即可灵活更换识别指令,极大地简化了指令更改操作流程。

■2.2 语音播报方案

本设计是通过XFS5152CE语音合成芯片来实现语音播报功能的,该芯片不仅支持中英文文本合成,而且可对合成的文本进行分析,能够按照其内置的文本匹配规则对其进行正确的处理。此外可通过文本标记的方式,对合成方式进行配置,从而能够精确的处理时间、日期、度量单位、号码等的进行准确播报,这使其适应范围更加广泛。由于其无需对所要播报的语音进行实现录音,在处理变量信息时,将极大地减少了工作量。如温度值的播报,仅需将数值转为字符串并发送给语音合成芯片即可进行对变化的量进行播报而无需对大量的数值进行事先录音操作。

图2 LD3320语音识别应用电路

■2.3 体感控制方案

MPU-60X0,9轴运动处理传感器。即它集三轴陀螺仪、三轴加速度计与可拓展的数字运动处理器于一体。其拓展接口可接IIC接口的第三方数字式传感器,如磁力计,当接入第三方传感器之后,可输出9轴信号;亦可接非惯性数字传感器,如压力传感器。

MPU6050内嵌数字运动处理器,卸载主机处理器的时序要求与处理能力,很大程度最大限度地精简了软件程序架构,减轻了MCU的压力,降低了功耗。DMP接收并处理来自于陀螺仪、加速度计、外接传感器的数据,通过对DMP寄存器的读取即可得到处理结果。

为了降低系统功耗,MPU 60X0集成了FIFO,其字节大小为1024。此外其内部镶有温度传感器及在工作环境仅有±1波动的振荡器。MPU6000 为SPI接口其与设备通信速率为1MHz,当对于传输速率有较高要求的场合,寄存器读取和中断可用20MHz的SPI通 信;MPU6050为IIC接口,与其他设备的IIC通信速率为400kHz。

■2.4 电路设计整体方案

本设计的硬件组成部分有,MSP430F5529、LD3320语音识别模块、XFS5152CE语音合成播报模块、MP3播放模块、MPU6050陀螺仪、ESP8266、OLED显示屏、DS18B20温度传感器等组成。其中,LD3320模块负责语音识别;XFS5152CE语音合成播报模块主要用于对识别结果做出相应的回应;通过ESP8266模块实时监测俯仰角、翻滚角、偏航角,以供体感控制使用;DS18B20用于实时监测当前所处的环境温度,ESP8266用来查询实时的日期、时间、天气等主要信息。

3 程序设计

■3.1 语音识别程序设计

图3 智能音箱整体电路图

语音识别的操作流程:(1)语音识别用初始化(包括通用初始化);(2)写入识别列表;(3)开始识别;(4)响应中断。

①通用初始化和语音识别用初始化:在初始化程序里中完成软复位、模式设定、时钟频率设定、FIFO设定。

②写入识别列表:列表的规则是,每个识别词条对应其特定的编号,一个识别词条可对应多个识别词条,且无需保证词条编号的连续性。该芯片最大允许的识别词条数为50,且每个识别词条为其相应的汉语拼音字符串,每个汉字拼音间需用一个空格隔开,如表1所示。

表1 识别列表示例表

图4 开始识别流程

识别列表中字符串的编号大小需介于0至255之间,可重复且无需保证编号的连续性。如列表中 “Bei Jing”和“Shou Du”其编号一致,他们将会对应同一识别结果。

③开始识别:设置几个相关的寄存器,就可以控制 LD3320 芯片开始语音识别。

④当MIC采集到声音信号后,将产生一个下降沿中断,对寄存器的值进行分析比对,得出结果,即使没有识别出正常的结果。读取BA寄存器的值,可以知道有几个候选答案,而C5寄存器里的答案是得分最高、最可能正确的答案。

■3.2 语音播报程序设计

语音合成播报模块集成了XFS5152CE,XFS5152CE是一款高集成度的语音合成芯片,可实现中文、英文语音合成,并且支持中英文混读。MSP430F5529单片机通过I2C通讯方式与语音合成播报模块通信,通过发送规定的数据帧对XFS5152CE进配置即可实现语音播报。其数据帧格式如表2所示。

表2 语音合成播报通信协议

■3.3 体感控制程序设计

由MPU60X0内部系统结构图可知,通过对来自X,Y,Z三轴的轴向加速度产生的模拟信号进行采样并将其转化数字量,从而获得加速度计数据:X_Accel、Y_Accel、Z_Accel;通过对来自X,Y,Z三轴的轴向角加速度产生的模拟信号进行采样并将其转化数字量,从而获得陀螺仪数据:X_Gyro、Y_Gyro、Z_Gyro;调用MPU6050的DMP库对从MPU6050的加速度传感器和角速度传感器获取的三个轴向的加速度和三个轴向角加速度的原始数据进行四元数转换输出,然后计算得出欧拉角,从而实现俯仰角、横滚角、航向角的实时监测。DMP输出的四元数(q30格式,即浮点数扩大2^30倍)与欧拉角之间换算关系如下:

图5 写入识别列表流程

图6 响应中断流程

俯仰角、横滚角、偏航角的计算公式]如下:

每次上电都进行自检,即上电时的初始姿态即X、Y、Z三轴的参考位置,当左倾、右倾、前倾、后仰设备时,yaw、roll、pitch三个参数将会发生改变,通过对 yaw、roll 和 pitch 角度的实时监测并进行阈值判断,当达到预置阈值之内时,触发相应的事件,从而实现体感控制模式。

4 性能测试

本设计支持Web配网,可以灵活适应不同WIFI环境,配网成功之后,听到提示音之后即可进行日期、时间、天气情况查询。发出语音指令,如“今天几号?”,识别成功之后,将会听到“正在为您查询当前日期信息”稍后,将播报“XXXX年XX月XX日 星期X”;说出“体感模式”口令,将会提示“已为您设置为体感模式”,此时,设备左倾、右倾、前倾、后倾,分别会触发上一曲、下一曲、音量减、音量加事件及相应的语音提示;说出“现在几度?”口令,识别成功之后,将会听到“正在为您查询当前温度”稍后,将播报“XX.XX摄氏度”;说出歌名,即可实现点歌。经测试所有功能均正常,且识别准确率高,可适应不同人声。

5 结束语

本文讨论了基于MSP430F5529的智能音箱设计与实现,该设计具有人性化的问答式语音交互,及个性化的体感控制模式,同时还可以支持日期、时间、天气、温度等实时数据查询,经过大量的测试,本设计具有稳定性好,语音识别准确率高,抗噪声干扰能力强,可在歌曲播放状态下进行准确的识别,且低功耗性能突出。

猜你喜欢
寄存器陀螺仪体感
KD514:陀螺仪船桨空间姿态捕捉方法
基于Allan方差分析的陀螺仪漂移误差辨识与仿真复现
飞思卡尔单片机脉宽调制模块用法研究
移位寄存器及算术运算应用
数字电路环境下汽车控制电路信号设计
知乎
电动车体感防盗系统
基于DSP的MEMS陀螺仪信号处理平台的设计
症状奇特的“体感异常”
症状奇特的“体感异常”