Страницы

Поиск по вопросам

воскресенье, 2 февраля 2020 г.

Подготовка данных для распознавания речи нейронной сетью

#алгоритм #аудио #нейронные_сети


Разбираюсь с распознаванием речи с помощью нейронных сетей. Нашел довольно много
информации об устройстве самих сетей, а вот с примерами их работы посложнее.

Допустим есть у меня какая-то сеть с N входами и M выходами. И есть звуковой сигнал
с каким-то текстом. Как все это заставить работать вместе?

Получили мы, допустим, с помощью преобразования Фурье спектр. Ну можем как-то нарезать
звуковой сигнал на какие-то мелкие кусочки. Опять же, как их выбрать длину куска? И
что делать дальше? Что подавать на вход сети? И что сеть на выходе обычно дает? Буквы,
соответствующие звукам или еще что-либо? (Допустим, стоит задача получить произнесенное
предложение в текстовом виде)

Мне интересен сам алгоритм, как все это происходит от произнесения фразы человеком
до получения этой фразы в текстовом виде. Информация, которую я находил освещает обычно
либо работу нейронной сети, либо преобразование Фурье. Но как все это работает вместе
- не очень понятно.
    


Ответы

Ответ 1



Тема слишком обширная для краткого ответа - ваш вопрос - это повод для хорошего исследования. Однако, гипотезы выдвигать никто не запрещает. Нейронные сети должны принимать на вход вектор признаков фиксированного размера. Значит нужно как-то нормализовать длину входного вектора. В вопросе вы указали, что есть коэффициенты Фурье после преобразования текста. Тексты бывают очень разной длины и чтобы получить одинаковое количество коэффициентов, длительность сигнала тоже должна быть одинаковой. К тому же найти корпус для обучения по текстам будет проблемой - такой корпус будет иметь монструозные размеры и неприемлимо большое время обучения. Вместо текста можно брать отдельные слова - текст можно разделить на слова, ориентируясь на паузы между словами. Следуя этой логике можно спуститься еще ниже и распознавать отдельные слоги или звуки. Вот пример для слова РОВНО: Здесь изображен сигнал с нормализованной амплитудой + плюс я обрезал паузу в начале записи. Как видно, между слогами очень осязаемая пауза и весь текст можно последовательно нарезать на такие отрезки - на мой взгляд с такими маленькими единицами информации работать легче, чем целиком со словами. Далее эти куски можно выровнять по длительности (по количеству сэмплов), вычислить коэффициенты и обучать или распознавать. Обучение это также отдельный большой вопрос, как и распознавание, а точнее, что делать после распознавания. Например, слово распозналось неверно и его нет в словаре.

Комментариев нет:

Отправить комментарий