语音命令识别代码生成与英特尔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)
其他的事情努力
模拟语音命令识别模型万博1manbetx模型使用英特尔®
MKL-DNN
图书馆通过设置配置> >模拟目标语言来c++
。
比较仿真的速度语音命令识别模型万博1manbetx模型没有英特尔®
MKL-DNN
图书馆。使用万博1manbetx仿真软件分析器(万博1manbetx模型)分析模型通过设置配置> >模拟目标语言来C
和c++
。
版权2021 - 2022 MathWorks公司。