在Android设备上识别和显示语音命令
本示例展示了如何使用Simulink®Android™设备支持包来部金宝app署深度学习金宝app算法,该算法可以识别并显示通过Android设备(如手机或平板电脑)发出的命令。该算法使用深度学习卷积神经网络来识别给定的一组命令,并将它们显示在应用程序的仪表板上。本例中使用的算法经过预先训练,可以识别这些命令:是、否、上、下、左、右、开、关、停和走。该算法还能识别寂静和背景噪声。
先决条件
有关如何使用用于Android设备的Simulink支持包在Android设备金宝app上运行S金宝appimulink模型的详细信息,请参见Android设备入门.
使用硬件设置屏幕下载并安装任何ARM®计算库。本例使用的ARM计算库版本为19.05。有关硬件设置屏幕的详细信息,请参见安装Androi金宝appd设备支持.
用预训练的网络识别命令
本例使用语音识别网络来识别语音命令。要在工作空间中加载网络,请在MATLAB®命令窗口中运行此命令。
负载commandNet
有关如何下载数据集或训练网络的详细信息,请参见利用深度学习训练语音指令识别模型(深度学习工具箱)的例子。
配置Simulink金宝app模型和校准参数
本例使用了来自Android设备的Simulink支持包的预配置Si金宝appmulink模型。金宝app
打开Simulink模型金宝app,在MATLAB命令窗口中执行此命令。
open_system (“androidSpeechCommandRecognition”)
本例使用深度学习下可以找到的模板金宝app>金宝appSimulink开始页面>金宝appAndr金宝appoid设备的Simulink支持包.
模拟源
这个示例有三个预先录制的语音音频,您可以使用它们进行处理。
yesCommand.wav
goCommand.wav
stopCommand.wav
从模拟源区域,您可以将三个WAV文件中的任何一个提供给音频文件读取块。您还可以向此块提供任何预先录制的WAV或MP3文件。请确保您录制的音频文件具有16kHz的采样率,并且只有一个通道int16
数据类型。
的“块参数”对话框中配置音频文件读取块。
集文件名称来
yesCommand.wav
.若要模拟go或stop命令的模型,请将此参数设置为goCommand.wav
而且stopCommand.wav
,分别。集帧大小来
400
.
安卓系统的输入
从安卓系统的输入区域,使用音频捕获块使用连接到Android设备的内置麦克风捕获音频信号。来自此块的16位立体声音频流被转换为16位单声道音频流。
的“块参数”对话框中配置音频捕捉块。
集音频采样频率来
16000
.集帧大小来
400
.
Sum块添加来自左右声道的音频信号。的“块参数”对话框中配置添加块。
集图标的形状来
矩形
.集症状清单来
+
.集求和来
指定的尺寸
.集维来
2
.
增益块通过将Sum块的输出除以二来将立体声音频流转换为单声道音频流。的“块参数”对话框中配置获得块。
在主要选项卡,设置获得来
0.5
.在信号的属性选项卡,设置输出数据类型来
int16
.
深度学习算法
使用增益块将16位单声道音频流缩小为1位单数据类型单声道音频流。的“块参数”对话框中配置获得块。
在主要选项卡,设置获得来
1/2 ^ 15
.在信号的属性选项卡,设置输出数据类型来
单
.
该示例使用Buffer块将您通过麦克风说出的单词的采样时间与算法采样时间相匹配。最近说的话存储在Buffer块中。的“块参数”对话框中配置缓冲(DSP系统工具箱)块。
集输出缓冲区大小来
fs
.集缓冲重叠来
fs - samplesPerFrame
.
MATLAB中的函数听觉谱图MATLAB函数块使用extractSpeechFeatures
函数从原始音频信号中提取特征。
来自深度学习工具箱™的Predict模块使用经过训练的深度学习神经网络预测音频语音信号。配置预测(深度学习工具箱)块参数对话框。
集网络来
mat文件中的网络
.集文件路径来
commandNet.mat
.中生成的数据集文件与此数据集文件相同利用深度学习训练语音指令识别模型(深度学习工具箱)的例子。集Mini-batch大小来
1
.清晰的预测.
MATLAB函数对音频语音信号进行后处理阈值处理,预测最大概率。
显示和可视化
的预测命令深度学习算法区域从字符串转换为ASCII使用字符串到ASCII块,并显示在移动应用程序上。
安卓系统输出
神经网络识别的命令对应的值显示在应用程序的标签。androidSpeechCommandRecognition应用程序。
沉默- 0
向下- 1
Go - 2
左- 3
No . 4
Off - 5
On - 6
右- 7
停止8
上升- 9
是- 10
未知- 11
背景资料- 12
运行Si金宝appmulink模型
1.确保位置手动开关在深度学习算法区域连接的输出模拟源区域。
2.中选择音频文件音频文件读取块参数对话框。在本例中,yesCommand.wav选择文件进行模拟。
3.在模拟在Simulink模型金宝app页签中,单击运行.注意下面的命令是的显示在模型的仪表盘面板上。
在Androi金宝appd设备上部署Simulink
1.确保位置手动开关在深度学习算法区域连接的输出安卓系统的输入区域。
2.在硬件选项卡中的Simuli金宝appnk模型模式部分中,选择在船上跑然后点击构建、部署和启动.的androidSpeechCommandRecognition应用程序自动启动。
3.通过你的Android设备一次说出所有10个命令。在指示板App,观察面板上的命令。
在应用程序选项卡,观察面板上识别的命令对应的数字。
应用程序显示沉默当你不说话时,未知的当它不识别除了神经网络训练的10个单词之外的单词时,和背景当它检测到背景噪音时。
另请参阅
利用深度学习训练语音指令识别模型(深度学习工具箱)
预测(深度学习工具箱)