Этот пример показывает модель Simulink, которая обнаруживает присутствие речевых команд в аудио. Модель использует предварительно обученную сверточную нейронную сеть, чтобы распознать данный набор команд.
Модель распознает следующие речевые команды:
"да"
"нет"
"вниз"
"левый"
"право"
on
off
остановка
"пойти"
Модель использует предварительно обученную сверточную нейронную сеть для глубокого обучения. Обратитесь к Распознанию речевых команд с использованием глубокого обучения в качестве примера (Audio Toolbox) для получения дополнительной информации об архитектуре этой сети и как вы обучаете его.
Откройте модель.
model = 'speechCommandRecognition';
open_system(model)
Модель повреждает аудиопоток во вторые перекрывающиеся сегменты. mel спектрограмма вычисляется из каждого сегмента. Спектрограммы питаются предварительно обученную сеть.
Используйте ручной переключатель, чтобы выбрать или прямую трансляцию из вашего микрофона или считать команды, сохраненные в звуковых файлах. Для команд на файле используйте ротационный переключатель, чтобы выбрать одну из трех команд (Пойдите, Да и Остановка).
Нейронная сеть для глубокого обучения обучена на слуховых спектрограммах, вычисленных с помощью audioFeatureExtractor. Для модели, чтобы классифицировать команды правильно, необходимо извлечь слуховые спектрограммы способом, идентичным этапу trainind.
Задайте параметры извлечения признаков. frameDuration
длительность каждой системы координат для вычисления спектра. hopDuration
временной шаг между каждым спектром. numBands
количество, просачивается слуховая спектрограмма.
fs = 16000; frameDuration = 0.025; frameSamples = round(frameDuration*fs); hopDuration = 0.010; hopSamples = round(hopDuration*fs); numBands = 50;
Задайте объект audioFeatureExtractor выполнить извлечение признаков. Объект идентичен тому, используемому в Распознании речевых команд с использованием глубокого обучения (Audio Toolbox), чтобы извлечь учебные спектрограммы.
afe = audioFeatureExtractor( ... 'SampleRate',fs, ... 'FFTLength',512, ... 'Window',hann(frameSamples,'periodic'), ... 'OverlapLength',frameSamples - hopSamples, ... 'barkSpectrum',true); setExtractorParams(afe,'barkSpectrum','NumBands',numBands,'WindowNormalization',false);
Вызовите generateMATLABFunction, чтобы создать функцию извлечения признаков. Эта функция вызвана от Auditory Spectrogram
Блок MATLAB function в модели. Это гарантирует, что извлечение признаков, используемое в модели, совпадает с той, используемой в обучении.
generateMATLABFunction(afe,'extractSpeechFeatures')
Симулируйте модель в течение 20 секунд. Чтобы запустить модель неопределенно, установите время остановки на Inf.
set_param(model,'StopTime','20'); sim(model);
Распознанная команда распечатана в блоке отображения. Речевая спектрограмма отображена в Спектре осциллограф Анализатора. Сетевые активации, которые дают уровень доверия к различным поддерживаемым командам, отображены в осциллографе времени.
Закройте модель.
close_system(model,0)