В этом примере показана модель Simulink, которая обнаруживает наличие речевых команд в звуке. Модель использует предварительно обученную сверточную нейронную сеть для распознавания заданного набора команд.
Модель распознает следующие речевые команды:
«да»
«нет»
вверх
«вниз»
«слева»
правильно
«вкл».
«выкл».
Стоп
«перейти»
Модель использует предварительно обученную сверточную сеть глубокого обучения. Подробные сведения об архитектуре этой сети и ее обучении см. в примере «Распознавание речевых команд с помощью глубокого обучения».
Откройте модель.
model = 'speechCommandRecognition';
open_system(model)

Модель разбивает аудиопоток на односекундные перекрывающиеся сегменты. Из каждого сегмента вычисляют спектрограмму mel. Спектрограммы подают в предварительно обученную сеть.
Используйте ручной переключатель для выбора прямого потока с микрофона или команд чтения, хранящихся в аудиофайлах. Для команд в файле используйте поворотный переключатель, чтобы выбрать одну из трех команд (Go, Yes и Stop).
Сеть глубокого обучения обучается на слуховых спектрограммах, вычисленных с использованием audioFeatureExtractor. Чтобы модель правильно классифицировала команды, необходимо извлечь слуховые спектрограммы способом, идентичным этапу обучения.
Определите параметры извлечения элемента. frameDuration - длительность каждого кадра для вычисления спектра. hopDuration - временной шаг между каждым спектром. numBands - количество фильтров в слуховой спектрограмме.
fs = 16000; frameDuration = 0.025; frameSamples = round(frameDuration*fs); hopDuration = 0.010; hopSamples = round(hopDuration*fs); numBands = 50;
Определите объект audioFeatureExtractor для выполнения извлечения компонента. Объект идентичен объекту, используемому при распознавании речевых команд с помощью глубокого обучения для извлечения обучающих спектрограмм.
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 в модели. Это гарантирует, что извлечение элементов, используемое в модели, совпадает с извлечением, используемым при обучении.
generateMATLABFunction(afe,'extractSpeechFeatures')
Моделирование модели в течение 20 секунд. Чтобы модель выполнялась бесконечно, установите время остановки «Inf».
set_param(model,'StopTime','20'); sim(model);


Распознаваемая команда печатается в блоке отображения. Речевая спектрограмма отображается в области Spectrum Analyzer. Сетевые активации, которые обеспечивают уровень уверенности в различных поддерживаемых командах, отображаются во временной области.
Закройте модель.
close_system(model,0)