Речевое распознавание команды в Simulink

Этот пример показывает модель 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)