предисловие
Сегодня, в связи с рабочими потребностями, Komatsu изучила модель распознавания речи Spiech, которая ранее не затрагивалась, и в основном читала содержимое голосового пробуждения.
Для локального голосового пробуждения после завершения настройки вам нужно только реализовать интерфейс обратного вызова пробуждения и создать экземпляр механизма пробуждения.разбудить двигательЯ понимаю это как контейнер который запускает функцию пробуждения.Можно реализовать много интерфейсов.Например когда механизм пробуждения обнаружит голос,будут соответствующие методы обратного вызова.Разработчики могут реализовать эти методы обратного вызова и настроить эффект собственного приложения.
Некоторые методы обратного вызова будут возвращать согласованные значения, такие как обнаружение изменений звука или кодов ошибок и т. д. На следующем рисунке показан весь процесс. За пределами синего прямоугольника предназначена для разработки приложений. В поле, в дополнение к реализации интерфейсных обратных вызовов , все остальное сдк.работа
Другими словами, этот проектный документ действительно тянет промежность.В документе sdk локальное распознавание речи, распознавание короткой речи в реальном времени и локальное пробуждение речи имеют одно и то же содержание.Углы и углы были изменены как три элемента. , и даже документ интерфейса - это прямо взять jdk как...
Конечно, как инженеры-разработчики, мы не можем довольствоваться настройкой пакетов и параметров. Часть в синем поле на приведенном выше рисунке — это то, что делает SDK. Мы надеемся на глубокое понимание. Голос — относительно большой модуль. Эта статья обсуждает толькораспознавание пробуждения, Из-за ограниченного уровня Komatsu, если есть какие-либо ошибки, пожалуйста, поправьте меня.
распознавание пробуждения
Всем известно, что распознавание речи в настоящее время в основном использует нейронные сети для глубокого обучения, а распознавание пробуждения является первым шагом в распознавании речи.Он похож на первое рукопожатие TCP-ссылки.По сравнению с обычным распознаванием речи, он должен делать больше больше работы, в основномОбнаружение голосовой активной конечной точки (VAD)иРаспознавание слов пробужденияТехнологии
VAD
Теперь у вас в руках айфон, вам нужно только сказать: "Привет, сири", вам ответит сири, похоже, Xiaodu, Xiaoai, Xiaoice все одинаковые, то, просто это предложение, вы хотите Ну, что случилось?
- Извлечение функций, извлечение характеристик во временной или частотной области из исходного аудио, аналогично любому сообщению, которое вы отправляете другим в WeChat, оно будет преобразовано в двоичный файл с точки зрения компьютера.Особенности звука очень богаты, с энергией и энтропия. , основная частота и т. д.
- Предварительное решение: Это центр анализа.Каждый входной аудиосегмент будет разделен на речевые сегменты и неречевые сегменты.Наши широко используемые наушники с шумоподавлением предназначены для того, чтобы отличать человеческие голоса от окружающего шума и уменьшать их. Алгоритм здесь очень сложный: можно установить правила, например, звук однородных децибелов имеет высокую вероятность шума окружающей среды и т. д., но он не точен, также возможно выполнить глубокое обучение статистики больших данных, что более точно, но менее интерпретируемо
- Постобработка: в основном для сглаживания результата предварительного решения.Каждый аудиоклип вводится в виде кадра.При обработке кадров 1, 2 и 3 предварительное решение может считать, что 1, 3, является человеческий голос, а 2 - это человеческий голос.Объемный звук, это теоретически невозможно, т.к. люди должны говорить непрерывно, маловероятно, что кадр вдруг пропадает посередине, а потом есть мгновение, поэтому постобработка для исправления эти возможные ошибки, чтобы избежать частого переключения голосовых состояний
Как видно из вышеизложенного, наиболее критической частью является выбор алгоритма VAD для предварительного решения по различению человеческого голоса от окружающего звука.Мы надеемся, что этот алгоритм VAD может различать человеческий голос в шумной обстановке, то есть при высокой отношение сигнал/шум хорошая устойчивость
Дело в том,В чем разница между человеческим голосом и шумом?Разница должна быть, иначе почему человеческое ухо может различать? На основе этой точки зрения появились следующие алгоритмы.
-
кратковременное обнаружение энергии
Этот метод считает, что энергия является самой большой разницей между речью и шумом, а энергия речи больше.В то же время, поскольку речь носит нелинейный характер (сколько бы придирающиеся люди не продолжали говорить), мы нужно только посчитать эти нелинейные звуки энергии, найти среднее значение, и тогда будут звуки похожие на энергию в будущем, мы думаем это человеческий голос, формула следующая
Разработчикам не нужно вникать в формулу, проще говоря, x(n) — это исходный звук, w(n — m) — оконная функция, представляющая собой длину семплирования, а затем в конце можно вычислить среднее значение. .
Этот метод является относительно фиксированным и относительно небольшим в окружающем звуке.Например, программист Mac с версией Intel может использовать этот метод, чтобы лучше фильтровать звук вентилятора этого Mac (Intel лезет за Богом, m1 yyds)
Ограничения тоже относительно очевидны, то есть сфера применения узкая, а в более сложных средах, таких как предприятия, дороги, овощные рынки, практически не действует.
-
на основе DNN
Помимо того, что мы можем видеть и слышать, образы и речь на самом деле скрывают много характерной информации, но наши органы не способны их анализировать. Глубокая нейронная сеть может извлекать признаки при множественном объединении сверток-активаций и выполнять векторное моделирование акустических признаков.Этот метод в определенной степени всемогущ.Пока две вещи разные,нейронная сеть.Сеть может почти извлечь их различия
Как правило, для речи извлекаются краткосрочные спектральные характеристики, такие какКепстральные коэффициенты MFCC Mel, PLP (перцептивное линейное предсказание),Особенности банка корреляционных фильтров FBANKЧто касается того, почему их было выбрано три, то это очень просто, потому что тест показал, что нейронной сети проще извлечь их три...,
Процесс экстракции выглядит следующим образом
Речь обычно представляет собой непрерывную волну речи, поэтому сначала она преобразуется в векторы дискретной последовательности, называемые векторами признаков, которые сегментируются каждые 10 мс. Каждый вектор длиной 10 мс называется «кадром».
Затем добавьте окна, потому что звук связан до и после, после разрезания на множество кадров, для сглаживания необходимы некоторые окна сглаживания, чтобы уменьшить граничные эффекты.
БПФ — это хорошо известное быстрое преобразование Фурье, представляющее собой математическое преобразование, которое преобразует функции во временной области в функции в частотной области.
Наконец, проводится анализ набора фильтров, в котором анализируются в основном функции FBANK, MFCC, PLP.
После того, как эти функции удалены, естественно обучать, строить многослойную нейронную сеть, непрерывно обучать и, наконец, постобрабатывать выходные результаты.
Судя по результатам, точность обнаружения точки останова речи DNN значительно улучшилась, но эффект по-прежнему не очень хорош в шумной среде.
Дело в том, что мы на самом деле ничего не делали, мы предоставили DNN самим открывать его, и перед лицом сложного мира звуков он не мог полностью его исчерпать, так что были некоторые особенности, которые он не мог не учусь, или учиться было трудно Выучился. Нам нужно выяснить это для себя и сообщить ему, чтобы максимизировать его точность и надежность.
На рисунке ниже можно кратко резюмировать
алгоритм | принцип | преимущество | недостаток |
---|---|---|---|
кратковременное обнаружение энергии | Рассчитайте среднее значение энергии голоса. | Простой, низкий уровень шума и хороший эффект при стабильной работе | Узкая сфера применения, слабая функция |
DNN | Глубокое обучение для извлечения признаков | Лучший эффект и лучшая применимость | Плохая интерпретируемость, сложность оптимизации |
Функции ввода DNN+ | DNN + функции искусственного ввода | Пожалуй лучшее решение на данный момент | трудно понять |
Распознавание слов пробуждения
Принцип алгоритма и два существующих алгоритма определения конечной точки голоса описаны выше. Вернемся к siri. Теперь, когда iphone распознал ваш голос с DNN в шумной обстановке, следующим шагом является процесс декодирования. Речь транслируется в команды, которые система может распознать
Когда мы говорим: «Привет, сири», сири игнорирует нас, поэтому мы можем предположить, что команда запуска сири должна быть преобразована из «привет, сири», тогда это ключ к использованию распознавания слов.
Поэтому, когда iPhone обучается с помощью DNN, он должен провести обучение на основе больших данных на нескольких языках и звуковых режимах для этого предложения и построить акустическую модель ключевых слов.Существует множество алгоритмов обнаружения ключевых слов, один из которых обычно используется на основеСкрытая марковская модельобнаружение ключевых слов
Скрытая марковская модель
Это звучит очень запутанно, но идея несложная. Вам нужно только построить набор моделей HMM для ключевых слов, называемых моделями ключевых слов, и построить другой набор моделей HMM для неключевых слов, называемых моделями наполнителя. , если обнаружится, что он относится к модели Filler, то вырезать его
Мы все говорим, что все счастливые семьи одинаково счастливы, а несчастливые семьи несчастны по-своему. Здесь тоже есть только одна ключевая модель, а модель Филлера — это общий термин, его модель HMM может иметь множество
Основная функция этой модели состоит в том, чтобы отфильтровать ключевые слова и преобразовать их в сигналы, распознаваемые системой через модель HMM.Этот процесс представляет собой процесс декодирования, преобразующий акустическую модель.
расшифровка
Вы можете сказать, что это непросто, мы можем просто жестко закодировать это, в любом случае, для распознавания пробуждения нужно только сказать «привет, сири».
конечно, нет! Хотя для распознавания пробуждения есть только одно предложение, последующие пользователи будут говорить много разного, и декодер должен работать во всем процессе голосового взаимодействия, а не только пробуждения.
Но сколько в мире разных слов? Хотите, чтобы сервер исчерпал это предложение как звезду? Конечно, нет.По сути, это все еще поиск ключевых слов в предложении, а затем вывод смысла предложения.
Таким образом, процесс декодирования по сути является обнаружением ключевых слов.
На приведенном выше рисунке показано расположение декодера. Поскольку необходимо выполнить обнаружение ключевых слов, должен быть тезаурус KW для сопряжения, а модель акустических моделей требуется для различения ключевых слов в каждом предложении. Конечно, это не пробуждение -звонок.Категория распознавания окончена.В этой статье обсуждается только распознавание пробуждения.Заинтересованные студенты могут его изучить.Я продолжу изучать его в будущем~
постскриптум
Это первый систематический обзор Komatsu.распознавание языкаСоответствующие знания, суммированные в два этапа
- Алгоритм обнаружения голоса VAD DNN фильтрует шум
- Распознавание слов пробуждения Скрытая марковская модель для определения ключевых слов, декодер, соответствующий декодированию тезауруса
Когда я был студентом, я перешел на Baidu apollo. Голосовая модель Baidu относительно продвинута в Китае. Конкретное использование также очень простое. Нужно заполнить ключевое слово, а затем, когда предложение содержит это ключевое слово, его можно обнаружить с помощью модель возвращает соответствующий результат,
Например, в фоновом режиме заполните «есть», а затем реализуйте функцию обратного вызова в приложении: вызов карты, поиск ресторанов.
Таким образом, вы говорите приложению, которое интегрирует модель аполлона: поешьте, приложение автоматически откроет карту для поиска мест для еды.
Это довольно весело, и заинтересованные студенты могут попробовать это.
Komatsu очень счастлива жить в эту эпоху взрыва знаний.Есть много вопросов, которые мне были любопытны, и у которых есть научные ответы.Даже если нет готовых ответов, есть научные методы, которые помогут нам искать ответы, учиться всю жизнь, и развивайтесь вместе!
Справочник «Искусственный интеллект: понимание и практика распознавания речи»
Личный профиль
Меня зовут Комацу, в 20 классе, с дипломом бакалавра в 985 по окончании потока.Я участвовал в разработке мобильного QQ.Видео решения проблемы обновления станции B, Нарисованные от руки иллюстрации и сражения с кодом, с упором на андроид и алгоритмы, первая статья и публичный аккаунтКомацу прогулка
Кроме того, была создана учебная группа. Уже есть сотни маленьких партнеров, которые любят учиться. Каждую неделю они проводят пробные интервью с друзьями группы, чтобы поощрять друг друга учиться. Если вы заинтересованы в участии, вы можете добавить меня на WeChat cs183071301.После добавления,проявите инициативу сообщить свой стек технологий и адрес,и тогда я вас в группу притяну(обязательно себе на заметку)
Каждую субботу в 21:00 все желающие могут вместе принять участие в моделируемом удаленном онлайн-интервью.Прямая трансляция [Комацу не ходит] на станции B, все приходят и участвуют.
\