基于Simulink的树莓派语音指令识别
这个例子展示了如何在树莓派™上部署特征提取和卷积神经网络(CNN)来进行语音命令识别。在本例中,您开发了一个simulink®模型,从连接到树莓派板的麦克风捕获音频,并执行语音命令识别。在树莓派上运行Simulink模型外部模式
并显示识别的语音命令。关于音频预处理和网络训练的详细信息,请参见用深度学习训练语音指令识别模型(音频工具箱).
准备模型模型
创建一个Simulink模型,并捕获特征提取,卷积神经网络和后处理的开发Simulink中的语音指令识别(音频工具箱).添加ALSA音频捕捉(树莓派硬件Simulink支持包)块的Simulink树莓派硬件支持包库如图所示。
将麦克风连接到树莓派板上并使用
列出连接到您的电路板上的所有音频捕获设备。listAudioDevices
(树莓派硬件Simulink支持包)
r = raspi (“raspiname”,“π”,“密码”);一个= listAudioDevices (r,“捕捉”);(1) (2)
ans =
结构体与字段:
名称:' usb- audio - logitechusbheadseth340 - logitechinc . logitechusbheadseth340atusb -000:01:00.0-1.3,全速'设备:'2,0'通道:{}BitDepth: {} SamplingRate: {}
ans =
结构体与字段:
名称:' usb- audio - plantronicsbt600 - plantronicsbt600atusb -000:01:00 -1.1,全速'设备:'3,0'通道:{'1'}位深度:{'16位整数'}SamplingRate: {'16000'}
ALSA音频捕捉(树莓派硬件Simulink支持包)block从树莓派硬件上的默认音频设备捕获音频信号。您也可以输入音频设备的名称,例如plughw: 2、0
从默认音频设备以外的设备捕获音频。双击ALSA音频捕捉(树莓派硬件Simulink支持包)块和设置设备名称来plughw: 2、0
.其他参数按如下图所示设置。
ALSA音频捕捉(树莓派硬件Simulink支持包)输出16位定点音频样本,其值的间隔为.你把ALSA音频捕捉(树莓派硬件Simulink支持包)输出到单精度数据并乘以将数值范围更改为.请注意,您正在更改数值范围,因为后续块期望该范围内的音频.使用音频文件读(树莓派硬件Simulink支持包)块和手动开关切换音频从麦克风到音频文件和返回。
模型=“slexSpeechCommandRecognitionRaspiExample”;open_system(模型)
配置代码生成设置
打开SpeechCommRecognitionRaspi
模型,去建模标签和点击模型设置或按Ctrl + E.选择代码生成并设置系统目标文件来ert.tlc
谁的描述是嵌入式编码器
.设置语言来c++
,这将自动设置语言标准来c++ 11 (ISO)
.
另外,使用set_param
要以编程方式配置设置,
set_param(模型、SystemTargetFile =“ert.tlc”) set_param(模型、TargetLang =“c++”) set_param(模型、TargetLangStandard =“C + + 11 (ISO)”)
运行你的模型外部模式
,设置代码接口包装来那种一次性的功能
并检查适应信号
在代码生成>接口>支持如图所示。
选择支持代码生成的求解器。集解算器来自动(自动求解器选择)
而且解算器类型来固定步
.
set_param(模型、SolverName =“FixedStepAuto”) set_param(模型、SolverType =“固定的”)
在配置>硬件实现,设置硬件板来覆盆子π
输入树莓派证书板参数如图所示。
在同一窗口,设置外部模式>通信接口来的XCP TCP / IP
如图所示。
检查信号记录在数据导入/导出启用信号监视外部模式
.
在树莓派上部署模型并执行语音命令识别
去硬件选项卡并单击监视和优化如图所示。
现在关闭模型
.
save_system(模型);close_system(模型);
其他可以尝试的事情
模拟基于Simulink的Intel MKL-DNN语音指令识别代码生成(音频工具箱)的例子
Processor-in-the-loop(公益诉讼)
模式。
使用领导(树莓派硬件Simulink支持包)块的Simulink支持包的树莓派硬件和点燃它
去
语音命令。使用部署窗格硬件选项卡,在树莓派上部署独立应用程序。
版权所有:The MathWorks, Inc.