УДК 004.8

Улучшение качества распознавания речи за счет исправления доменных коллокаций

Маненок Даниил Андреевич – магистрант Челябинского государственного университета.

Аннотация: В статье рассматривается автоматическое распознавание речи (ASR), проводится разбор подходов улучшения качества распознавания речи за счет адаптации моделей к доменным областям. Рассмотрены темы трансфертного обучения, аугментации данных, модели автоматического распознавания речи Conformer-Transducer и Wav2Vec2, а также улучшение качества распознавания речи, за счет добавления N-граммных и нейронных языковых моделей. Представлено сравнение N-граммных и нейронных языковых моделей.

Ключевые слова: автоматическое распознавание речи, исправление ошибок, доменная адаптация, языковая модель, N-грамма, Transformers.

Введение

ASR, или автоматическое распознавание речи, относится к проблеме получения программы для автоматической транскрипции устной речи (речь в текст). Цель состоит в том, чтобы получить модель, которая минимизирует коэффициент ошибок слов (WER) при транскрибировании речевого ввода. Другими словами, при наличии некоторого аудиофайла, содержащего речь, как преобразовать его в соответствующий текст с минимальным количеством ошибок. На сегодняшний день в тихих офисных условиях точность автоматического распознавания речи может приближаться к ста процентам для различных ограниченных задач. Подобная точность зачастую достигается при условии ограниченного словаря и заранее известной грамматики высказываний [1, с. 10]. Однако, когда появляется необходимость распознавать другие слова и другие языковые конструкции, которые не предусмотрены моделью по умолчанию, качество распознавания заметно ухудшается. «Как научить русскоязычную модель распознавать речь геймеров?» Подобными вопросами задаются те, кто увлекается и занимается NLP. В частности, NLP-специалистов интересует, как можно адаптировать модели под их предметную область, чтобы улучшить качество распознавания [2].

Трансфертное обучение

Для ASR можно использовать готовую модель. с предварительно обученными весами (Vosk , модели Transformers, Jasper, QuartzNet, STT Ru Conformer-Transducer Large и др.). Но существует множество сценариев, когда мы захотим доработать модель на собственных данных или даже обучить ее с нуля. Например, готовая модель, очевидно, будет плохо работать для конкретных доменных областях. Таким образом, если мы собрали собственные данные, первое, что нам, конечно, стоит сделать – попробовать доработать модель или обучиться на них. Трансфертное обучение – это важная техника машинного обучения, которая использует знания модели об одной задаче для того, чтобы она лучше справилась с другой. Тонкая настройка – это одна из техник трансфертного обучения. Она является неотъемлемой частью рецепта многих современных результатов, когда базовая модель сначала предварительно обучается на задаче с большим количеством обучающих данных, а затем дорабатывается на различных задачах, представляющих интерес, где обучающих данных меньше или даже мало. В ASR мы можем захотеть провести тонкую настройку в различных сценариях, например, когда мы хотим улучшить работу модели в определенной области (медицинская, финансовая и т.д.) или на акцентированной речи. Мы даже можем переносить обучение с одного языка на другой. После этого наш декодер полностью изменяется, но наш кодер (в котором находится большая часть весов) остается нетронутым [3].

Также есть несколько трюков, которые можно использовать, для улучшения ASR-модели, например, аугментация данных. Существует несколько методов увеличения данных ASR, которые могут увеличить размер нашего обучающего набора. Например, мы можем выполнить расширение спектрограмм путем обнуления определенных частотных сегментов («частотное маскирование»), временных сегментов («временное маскирование»), обнуление прямоугольников на спектрограмме, искривление времени [4, с. 1-2].

Языковые модели

Очень хорошее качество из коробки показывает модель STT Ru Conformer-Transducer Large (NVIDIA NeMo). Это авторегрессионный вариант модели Conformer для автоматического распознавания речи, который использует потерю/декодирование Transducer. В модели около 120M параметров, и она обученна в течение нескольких сотен эпох на наборах данных Mozilla Common Voice 10.0 (русский), Golos (русский), Russian LibriSpeech (RuLS) и SOVA (RuAudiobooksDevices, RuDevices), содержащих около 1636 часов русской речи, использует токенизатор Google SentencePiece с размером словаря 1024. Модель доступна для использования в инструментарии NeMo [3] и может быть использована в качестве предварительно обученной контрольной точки для выводов или для тонкой настройки на другом наборе данных. Поскольку данная модель была обучена на общедоступных речевых массивах данных, ее производительность может ухудшиться при использовании речи, включающей технические термины или жаргонные слова, на которых модель не была обучена. Модель также может работать хуже при акцентированной речи [5].

Доказано, что языковые модели помогают повысить точность моделей ASR. NeMo поддерживает следующие два подхода к включению языковых моделей в модели ASR:

  • N-граммное моделирование языка
  • Нейронный рескоринг

N-граммное моделирование языка

При N-граммном моделирование языка LM обучается на текстовых данных, затем она используется в слиянии с декодированием лучевого поиска для поиска лучших кандидатов. Декодеры лучевого поиска в NeMo поддерживают языковые модели, обученные с помощью библиотеки KenLM (https://github.com/kpu/kenlm). NeMo поддерживает как модели на основе символов, так и модели на основе BPE для N-граммных LM. N-граммные LM можно использовать с декодерами лучевого поиска поверх моделей ASR для получения более точных кандидатов. Кандидат – это транскрипт текста, предсказанный декодером модели ASR. Декодер лучевого поиска будет включать оценки, полученные с помощью N-граммного LM, в свои расчеты баллов следующим образом:

final_score = acoustic_score + beam_alpha*lm_score + beam_beta * seq_length,

где acoustic_score – оценка, предсказанная акустическим кодером, а lm_score – оценка, полученная с помощью LM. Параметр «beam_alpha» определяет степень важности N-граммной модели языка, а «beam_beta» – штрафной член для учета длины последовательности в оценках. Большее значение alpha означает большее значение для LM и меньшее значение для акустической модели. Отрицательные значения для бета будут штрафовать более длинные последовательности и заставлять декодер предпочитать более короткие предсказания, в то время как положительные значения приведут к более длинным кандидатам.

Нейронный рескоринг

При нейронном рескоринге используется нейронная сеть, которая может выставлять баллы кандидату. Лучшие K кандидатов, полученных в результате декодирования методом лучевого поиска (ширина луча K), передаются нейронной языковой модели для их ранжирования. Ранжирование может быть выполнено языковой моделью, которая дает оценку каждому кандидату. Эта оценка обычно комбинируется с оценками, полученными в результате декодирования лучевого поиска, для получения окончательных оценок и ранжирования. Можно использовать предварительно обученную языковую модель из библиотеки HuggingFace, например Transformer-XL и GPT, вместо обучения своей модели. Нейронный оценщик будет оценивать пучки/кандидатов, используя два параметра rescorer_alpha и rescorer_beta, как показано ниже:

final_score = beam_search_score + rescorer_alpha * neural_rescorer_score + rescorer_beta*seq_length,

где rescorer_alpha определяет степень важности нейронной модели rescorer, rescorer_beta – штрафной член для учета длины последовательности в оценках. Они имеют аналогичные эффекты, как параметры beam_alpha и beam_beta декодера лучевого поиска и N-gram LM [6].

Также стоит обратить внимание на Transformers.Wav2Vec2 – это популярная предварительно обученная модель для распознавания речи. Выпущенная в сентябре 2020 года компанией Meta AI Research, новая архитектура послужила катализатором прогресса в самоконтролируемом предварительном обучении для распознавания речи. На Hugging Face Hub самая популярная предварительно обученная контрольная точка Wav2Vec2 в настоящее время имеет более 250 000 ежемесячных загрузок.

Используя Connectionist Temporal Classification (CTC), предварительно обученные контрольные точки, подобные Wav2Vec2, очень легко настраиваются на последующие задачи распознавания речи. В двух словах, тонкая настройка предварительно обученных контрольных точек Wav2Vec2 происходит следующим образом: один случайно инициализированный линейный слой добавляется поверх предварительно обученной контрольной точки и обучается классифицировать необработанный входной аудиосигнал на последовательность букв. Он делает это путем:

  • извлечения аудиопредставлений из необработанного звука (с помощью слоев CNN),
  • обработки последовательности звуковых представлений с помощью стека слоев transformer,
  • классификации обработанных аудиопредставлений в последовательность выходных букв.

Ранее модели классификации аудио требовали дополнительной языковой модели (LM) и словаря для преобразования последовательности классифицированных аудиокадров в связную транскрипцию. Архитектура Wav2Vec2 основана на слоях transformer, что позволяет каждому обработанному аудиопредставлению получить контекст от всех других аудиопредставлений. Кроме того, Wav2Vec2 использует алгоритм CTC для тонкой настройки, который решает проблему выравнивания между изменяющимся соотношением «длина входного аудио» и «длина выходного текста». Благодаря CTC и отсутствию проблем с выравниванием, Wav2Vec2 не требует внешней языковой модели или словаря для получения приемлемых аудио транскрипций.

Как видно из таблицы 1, Wav2Vec2 показывает впечатляющие результаты на LibriSpeech без использования языковой модели. Однако из приложения также становится ясно, что использование Wav2Vec2 в сочетании с языковой моделью может дать значительное улучшение, особенно если модель была обучена всего на 10 минутах транскрибированного аудио.

Таблица 1. WER на dev/test наборах Librespeech с использованием 10-минутного транскрибированного аудио. [7, c. 14]

Model

LM

dev clean

dev other

test clean

test other

Base

None

46,1

51,5

46,9

50,9

 

4-gram

8,9

15,7

9,1

15,6

 

Transformers

6,6

13,2

6,9

12,9

Large

None

43

46,3

43,5

45,3

 

4-gram

8,6

12,9

8,9

13,1

 

Transformers

6,6

10,6

6,8

10,8

Large

None

38,3

41

40,2

38,7

 

4-gram

6,3

9,8

6,6

10,3

 

Transformers

4,6

7,9

4,8

8,2

Декодирование аудио без языковой модели гораздо более склонно к орфографическим ошибкам. Это происходит потому, что система распознавания речи почти полностью основывает свое предсказание на акустическом входе, который ей был предоставлен, а не на контексте языковой модели предыдущих и последующих предсказанных букв. С другой стороны, если мы добавим языковую модель, мы можем быть уверены, что система распознавания речи значительно сократит количество орфографических ошибок, поскольку хорошо обученная модель n-грамм не будет предсказывать слова с орфографическими ошибками.

Языковая модель должна хорошо предсказывать следующее слово, учитывая все предыдущие расшифрованные слова, независимо от того, какой звук подается на вход системы распознавания речи. Как всегда, языковая модель хороша лишь настолько, насколько хороши данные, на которых она обучена. В случае распознавания речи мы должны спросить себя, для какого типа данных будет использоваться распознавание речи: разговоры, аудиокниги, фильмы, речи, и т.д.? Языковая модель должна хорошо моделировать язык, соответствующий целевым транскрипциям системы распознавания речи.

Хотя большие языковые модели на основе архитектуры Transformers стали стандартом в NLP, все еще очень распространено использование n-граммного LM для улучшения систем распознавания речи. Если снова взглянуть на таблицу 1, то можно заметить, что использование LM на основе Transformers для декодирования явно дает лучшие результаты, чем использование N-граммной модели, но разница между n-граммой и LM на основе Transformers гораздо менее значительна, чем разница между N-граммой и отсутствием LM. Например, для большой контрольной точки Wav2Vec2, которая была настроена только на 10 мин, N-грамма снижает коэффициент ошибок слов (WER) по сравнению с отсутствием LM примерно на 80%, а LM на основе Transformers снижает WER еще на 23% по сравнению с N-граммой.

Причина, по которой n-грамма предпочтительнее LM на основе Transformers, заключается в том, что n-граммы требуют значительно меньших вычислительных затрат. Для n-граммы получение вероятности слова с учетом предыдущих слов требует почти таких же вычислительных затрат, как запрос к таблице поиска или древовидному хранилищу данных – т.е. это очень быстро по сравнению с современными языковыми моделями на основе Transformers, которые требуют полного прохода вперед для получения вероятности следующего слова [8].

Заключение

Мы рассмотрели задачу автоматическое распознавание речи (ASR). Многие предварительно обученные модели хорошо справляются с ASR в условиях стандартной лексики, но при необходимости распознавания специфичных слов и языковых конструкций, на которых модель не обучалась, распознавание заметно ухудшается. При наличии большого объема собственных доменных размеченных данных лучшим вариантом будет дообучение модели или обучение модели с нуля. Если подходящих аудиоданных нет, то для адаптации ASR модели к доменной области можно добавить языковую модель, обученную на текстовых данных, которые собрать гораздо проще, чем аудиоданные. Лучшее качество показывают нейронные языковые модели, но они требуют больших вычислительных ресурсов. Хорошим компромиссным вариантом являются языковые модели на основе N-грамм, которые работают достаточно быстро и значительно улучшают качество распознавания речи в сравнении с вариантом без языковой модели.

Список литературы

  1. Иванько Д.В. Автоматическое распознавание аудиовизуальной русской речи: Автореф. дис. кан. тех. наук. – Ульм, 2020.
  2. Как адаптировать языковые модели Kaldi? [Электронный ресурс], URL https://habr.com/ru/company/cft/blog/558824/ (дата обращения 20.01.2023).
  3. Automatic Speech Recognition (ASR) NVIDIA руководство пользователя [Электронный ресурс] , URL https://docs.nvidia.com/deeplearning/nemo/user-guide/docs/en/stable/asr/intro.html (дата обращения 12.01.2023).
  4. SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition Daniel S. Park∗ , William Chan, Yu Zhang, Chung-Cheng Chiu, Barret Zoph, Ekin D. Cubuk, Quoc V. Le, URL https://arxiv.org/abs/1904.08779 (дата обращения 15.01.2023).
  5. Карточка модели STT Ru Conformer-Transducer Large [Электронный ресурс], URL https://catalog.ngc.nvidia.com/orgs/nvidia/teams/nemo/models/stt_ru_conformer_transducer_large (дата обращения 07.01.2023).
  6. ASR Language Modeling NVIDIA руководство пользователя [Электронный ресурс], URL https://docs.nvidia.com/deeplearning/nemo/user-guide/docs/en/main/asr/asr_language_modeling.html (дата обращения 20.12.2022).
  7. wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations Alexei Baevski, Henry Zhou, Abdelrahman Mohamed, Michael Auli, URL https://arxiv.org/abs/2006.11477 (дата обращения 15.01.2023).
  8. Boosting Wav2Vec2 with n-grams in Transformers [Электронный ресурс], URL https://huggingface.co/blog/wav2vec2-with-ngram (дата обращения 10.01.2023).
Интересная статья? Поделись ей с другими: