主要内容

Android设备语音指令识别和显示

本示例展示了如何使用Simulink®Android™设备支持包部署深度学习算法,识别并显示通过Android设备(如手机或平板电脑)发出的命令。该算法使用深度学习卷积神经网络来识别给定的命令集,并将它们显示在应用程序的仪表板上。本例中使用的算法经过预先训练,可以识别这些命令:yes, no, up, down, left, right, on, off, stop和go。该算法还能识别寂静和背景噪声。

先决条件

  • 有关如何使用Android设备的Simulink支持包在Android设备上运行Simulink模型的更多信息,请参见开始使用Android设备

  • 下载和安装任何ARM®计算库使用硬件设置屏幕。本例使用的是ARM计算库19.05版本。有关Hardware Setup屏幕的更多信息,请参见安装Android设备支持

用预训练网络识别命令

本例使用语音识别网络来识别语音命令。要在您的工作空间中加载网络,在MATLAB®命令窗口中运行这个命令。

负载commandNet

有关如何下载数据集或训练网络的更多信息,请参见用深度学习训练语音指令识别模型(深度学习工具箱)的例子。

配置Simulink模型和校准参数

本例使用了来自Android设备的Simulink支持包的预配置的Simulink模型。

要打开Simulink模型,在MATLAB命令窗口中运行这个命令。

open_system (“androidSpeechCommandRecognition”

此示例使用深度学习模板,可以在动态仿真模块>模型起始页>Android设备的Simulink支持包

模拟源

此示例有三个预先录制的语音音频,您可以使用它们进行处理。

  • yesCommand.wav

  • goCommand.wav

  • stopCommand.wav

模拟源区域中,您可以将三个WAV文件中的任何一个提供给音频文件读取块。您还可以向此块提供任何预先录制的WAV或MP3文件。确保您录制的音频文件有一个16kHz的采样率,只有一个通道与int16数据类型。

的“块参数”对话框中配置音频文件读块。

  1. 文件名称yesCommand.wav.若要模拟go或stop命令的模型,请将此参数设置为goCommand.wav而且stopCommand.wav,分别。

  2. 帧大小400

安卓系统的输入

安卓系统的输入区域,使用内置麦克风捕捉音频信号连接到您的Android设备使用音频捕获块。来自该块的16位立体声音频流被转换为16位单声道音频流。

的“块参数”对话框中配置音频捕捉块。

  1. 音频采样频率16000

  2. 帧大小400

Sum块添加来自左右声道的音频信号。的“块参数”对话框中配置添加块。

  1. 图标的形状矩形

  2. 符号列表+

  3. 求和指定的尺寸

  4. 2

通过将Sum块的输出除以2,Gain块将立体声音频流转换为单声道音频流。的“块参数”对话框中配置获得块。

  1. 主要选项卡,设置获得0.5

  2. 信号的属性选项卡,设置输出数据类型int16

深入学习算法

使用增益块将16位单声道音频流缩小为1位单数据类型单声道音频流。的“块参数”对话框中配置获得块。

  1. 主要选项卡,设置获得1/2 ^ 15

  2. 信号的属性选项卡,设置输出数据类型

该示例使用Buffer块将通过麦克风说的单词的采样时间与算法采样时间匹配。最近说的单词存储在Buffer块中。的“块参数”对话框中配置缓冲(DSP系统工具箱)块。

  1. 输出缓冲区的大小fs

  2. 缓冲重叠fs - samplesPerFrame

的MATLAB函数听觉谱图MATLAB函数块使用extractSpeechFeatures函数从原始音频信号中提取特征。

来自深度学习工具箱™的预测块使用经过训练的深度学习神经网络预测音频语音信号。配置这些参数预测(深度学习工具箱)对话框。

  1. 网络网络从MAT-file

  2. 文件路径commandNet.mat.生成的数据集文件与用深度学习训练语音指令识别模型(深度学习工具箱)的例子。

  3. Mini-batch大小1

  4. 清晰的预测

MATLAB函数对音频语音信号进行后处理阈值化运算,并预测其最大概率。

显示和可视化

的预测命令深入学习算法区域将使用string to ASCII块从字符串转换为ASCII,并显示在移动应用程序上。

安卓系统输出

显示神经网络识别的命令对应的值应用程序选项卡的androidSpeechCommandRecognition应用程序。

  • 沉默- 0

  • 下- 1

  • 去- 2

  • 左- 3

  • 没有- 4

  • 从- 5

  • 在- 6

  • 对- 7

  • 停止8

  • ——9

  • 是的- 10

  • 未知- 11

  • 背景- 12

运行仿真软件模型

1.确保位置手动开关深入学习算法区域的输出连接模拟源区域。

2.中的音频文件音频文件读对话框。在本例中,yesCommand.wav选择文件进行模拟。

3.在模拟选项卡,单击运行.注意,命令是的显示在模型的仪表板面板上。

在Android设备上部署Simulink

1.确保位置手动开关深入学习算法区域的输出连接安卓系统的输入区域。

2.在硬件选项卡中的模式部分中,选择机上运行然后点击构建、部署和启动.的androidSpeechCommandRecognition应用程序自动启动。

3.通过你的Android设备一次说出所有的10个命令。在指示板App,观察面板上的命令。

应用程序选项卡,观察面板上识别的命令对应的数字。

这个应用程序显示沉默当你不说话时,未知的当它不能识别神经网络训练的10个单词以外的单词时,和背景当它检测到背景噪音时。

另请参阅

Baidu
map