主要内容

基于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位定点音频样本,其值的间隔为$[-2^{15}, 2^{15} -1]$.你把ALSA音频捕捉(树莓派硬件Simulink支持包)输出到单精度数据并乘以2美元^ {-15}$将数值范围更改为$[-1, +1)$.请注意,您正在更改数值范围,因为后续块期望该范围内的音频$[-1, +1)$.使用音频文件读(树莓派硬件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支持包)块的Simulink支持包的树莓派硬件和点燃它语音命令。使用部署窗格硬件选项卡,在树莓派上部署独立应用程序。

版权所有:The MathWorks, Inc.

Baidu
map