Этот пример показывает модель Simulink, которая обнаруживает наличие речевых команд в аудио. Модель использует предварительно обученную сверточную нейронную сеть, чтобы распознать заданный набор команд.
Модель распознает следующие речевые команды:
«да»
«нет»
вверх
«вниз»
«слева»
правильно
«on»
«off»
Стоп
«перейти»
Модель использует предварительно обученную сверточную нейронную сеть для глубокого обучения. Для получения дополнительной информации об архитектуре этой сети и о том, как ее обучать, см. пример Распознание речевых команд с использованием глубокого обучения.
Откройте модель.
model = 'speechCommandRecognition';
open_system(model)
Модель разбивает аудиопоток на сегменты с перекрытием на одну секунду. mel spectrogram вычисляется из каждого сегмента. Спектрограммы подают в предварительно обученную сеть.
Используйте переключатель вручную, чтобы выбрать прямой поток из микрофона или команды read, сохраненные в аудио файлов. Для команд в файле используйте переключатель поворота, чтобы выбрать одну из трех команд (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 function в модели. Это гарантирует, что редукция данных, используемая в модели, совпадает с экстракцией, используемой в обучении.
generateMATLABFunction(afe,'extractSpeechFeatures')
Моделируйте модель в течение 20 секунд. Чтобы запустить модель бессрочно, установите время остановки в Inf.
set_param(model,'StopTime','20'); sim(model);
Распознанная команда печатается в блоке отображения. Речевая спектрограмма отображается в Спектр возможностей Analyzer. Активация сети, которая обеспечивает уровень доверия в различных поддерживаемых командах, отображается во временных возможностях.
Закройте модель.
close_system(model,0)