主要内容

语音命令识别代码生成与英特尔MKL-DNN使用仿真软件万博1manbetx

这个案例展示了如何部署特征提取和一个卷积神经网络(CNN)的语音命令识别英特尔®处理器。生成特征提取和网络代码,您可以使用嵌入在仿真软件编码器®和英特尔®数学内核库深层神经网络(MKL-DNN)。万博1manbetx在这个例子中生成Software-in-the-loop(银)代码执行特征提取的参考模型和预测语音命令。生成的代码被称为仿真软件模型,显示了预测语音命万博1manbetx令和预测给定输入分数。音频预处理和网络训练的详细信息,请参阅使用深度学习训练语音命令识别模型

先决条件

  • 深度学习的MATLAB®编码器接口库

  • 英特尔处理器支持先进的向量扩展2 (AVX万博1manbetx2)

  • 英特尔数学内核库深层神经网络(MKL-DNN)

  • 英特尔MKL-DNN环境变量

为支持版万博1manbetx本的库和设置环境变量信息,明白了先决条件与MATLAB编码器深度学习(MATLAB编码器)

仿真软件模型部署万博1manbetx做好准备

创建一个模型模型并万博1manbetx捕捉特征提取,卷积神经网络和后处理开发的语音命令识别模型万博1manbetx。这个模型是附带的例子。打开运输模型来理解它的配置。

modelToDeploy =“recognizeSpeechCommand”;open_system (modelToDeploy)

设置数据类型,港维,样品时间,信号类型输入端口的块如图所示。

配置生成代码设置

打开recognizeSpeechCommand模型。去建模选项卡并单击模型设置或媒体Ctrl + E。选择代码生成并设置系统目标文件ert.tlc谁的描述嵌入式编码器。设置语言c++,它会自动设置语言标准c++ 11 (ISO)

另外,使用set_param配置设置以编程方式,

set_param (modelToDeploy SystemTargetFile =“ert.tlc”)set_param (modelToDeploy TargetLang =“c++”)set_param (modelToDeploy TargetLangStandard =“C + + 11 (ISO)”)

设置英特尔MKL-DNN深度学习配置,扩大代码生成并选择接口。现在设置深度学习目标库MKL-DNN如图所示。

另外,使用set_param以编程方式配置深度学习目标库。

set_param (modelToDeploy DLTargetLibrary =“mkl-dnn”)

选择一个支持代码生成的解算器。万博1manbetx集解算器汽车(自动解算器选择)解算器类型固定步

set_param (modelToDeploy SolverName =“FixedStepAuto”)set_param (modelToDeploy SolverType =“固定的”)

配置>硬件实现,设置设备供应商英特尔设备类型x86 - 64 (Windows64)Linux x86 - 64 (64)x86 - 64 (Mac OS X)根据您的目标系统。另外,使用set_param以编程方式配置的设置。

开关(电脑(“拱”))情况下“win64”ProdHWDeviceType =“英特尔- > x86 - 64 (Windows64)”;情况下“glnxa64”ProdHWDeviceType =“英特尔- > x86 - 64(64年Linux)”;情况下“maci64”ProdHWDeviceType =“英特尔- > x86 - 64 (Mac OS X)”;结束set_param (modelToDeploy“ProdHWDeviceType”ProdHWDeviceType)

自动设置设备类型,加上上面的代码属性检查器>属性> > PreLoadFcn回调recognizeSpeechCommand模型。

使用嵌入式编码应用程序来生成和构建代码。点击应用程序选项卡,然后点击嵌入式编码器如图所示。

它会打开一个新的c++代码选项卡,然后单击构建生成和构建代码。这将生成一个文件夹中的代码命名recognizeSpeechCommand_ert_rtw。生成的代码之后,您通过点击查看报告开放的报告

或者,您可以使用slbuild生成代码编程。

slbuild (modelToDeploy);
# # #开始构建过程:recognizeSpeechCommand和工件生成代码的# # # # # #生成模型特定的文件夹结构代码构建文件夹:W: \ ExampleManager \ sporwal.Bdoc23a。j2106495 \ deeplearning_shared-ex14618832 \ recognizeSpeechCommand_ert_rtw # # #为“recognizeSpeechCommand”所生成的代码是最新的,因为没有结构,参数或代码替换库的变化被发现。# # #保存二进制信息缓存。# # #跳过makefile生成和编译,因为W: \ ExampleManager \ sporwal.Bdoc23a.j2106495 \ deeplearning_shared-ex14618832 \ recognizeSpeechCommand。exe是最新的# # #成功完成构建过程:recognizeSpeechCommand构建总结0 1模型的建立(1模型已经更新)构建持续时间:0 h 0米36.32秒

现在关闭recognizeSpeechCommand模型。

save_system (modelToDeploy) close_system (modelToDeploy)

创建一个仿真软件模万博1manbetx型,调用recognizeSpeechCommand并显示其输出

创建一个新的模型模型并添加万博1manbetxrecognizeSpeechCommand作为一个模型参考块。添加相同的基本工作空间变量,源块,与水槽的街区的开发语音命令识别模型万博1manbetx。使用一个单选按钮组选择语音命令文件。供您参考,此模型是附带这个例子。打开相同的仿真软件模型。万博1manbetx

mainModel =“slexSpeechCommRecognitionCodegenWithMklDnnExample”;open_system (mainModel)

设置Software-in-the-loop(银)模型参考块模拟模式,点击建模选项卡。

现在单击下拉按钮如上所示,它将打开一个窗口。选择属性检查器如下所示。

你会得到一个属性检查器窗口在正确的模型。点击模型块得到它属性检查器。如果没有设置*模型名称*,浏览的recognizeSpeechCommand.slx并设置模型名称。现在设置模拟模式Software-in-the-loop(银)如图所示。

部署运行模型recognizeSpeechCommand.slx在你的电脑并执行语音命令识别。

set_param (mainModel StopTime =“20”)sim (mainModel)
# # #开始串行代码生成建立模型参考。# # #开始构建过程:recognizeSpeechCommand和工件生成代码的# # # # # #代码模型特定的文件夹结构为模型参考代码生成目标模型recognizeSpeechCommand是最新的,因为没有发现功能变化在参考模型中。# # #保存二进制信息缓存。# # #模型参考代码生成目标recognizeSpeechCommand是最新的。构建总结0 1模型的建立(1模型已经更新)构建持续时间:0 h 0米14.832秒# # #准备开始SIL模拟……# # #跳过makefile生成和编译,因为W: \ ExampleManager \ sporwal.Bdoc23a.j2106495 \ deeplearning_shared-ex14618832 \ slprj \ ert \ recognizeSpeechCommand \硅\ recognizeSpeechCommand。exe是最新的# # #起始SIL仿真组件:recognizeSpeechCommand # # #应用程序停止了# # #停止SIL模拟组件:recognizeSpeechCommand ans =仿真软件。万博1manbetxSimulationOutput: SimulationMetadata: [1 x1万博1manbetx仿真软件。SimulationMetadata] ErrorMessage (0 x0 char):

现在关闭mainModel

save_system (mainModel) close_system (mainModel)

其他的事情努力

版权2021 - 2022 MathWorks公司。