С незапамятных времен речь была самой распространенной формой общения человека. Удивительно, как люди могут интерпретировать речь. В NoBroker мы генерируем огромные объемы речевых данных. У нас есть команда поддержки клиентов мирового класса, которая помогает нашим клиентам по телефону / в чате. Наши платные клиенты получают помощь по телефону по вопросам поиска жилья/найма арендаторов. Таким образом, мы генерируем сотни часов телефонных записей в день. Как организация, ориентированная на данные, мы стремимся понять наши данные и то, что говорят наши клиенты. Для этого мы создали собственную модель ASR для предметной области, основанную на глубоком обучении. Мы называем это Майя.

Понимание речи с машинами было долгой проблемой. Мы, люди, делаем это так легко, без каких-либо усилий. Когда мы слышим фрагмент речи, мы слышим его вместе со всем остальным шумом в окружении и во всех возможных контекстах. Мы отфильтровываем шум, отфильтровываем контексты и понимаем речь целостно — язык, настроения, эмоции, тон и содержание — все за один раз.

Maya — это наша попытка добиться полного понимания речи. Понимание языка, тона и уровня шума из необработанного аудио — Преобразование речевых сигналов в удобочитаемый текст — Извлечение намерения и тональности речи — Машинно-генерируемый звуковой ответ — все это является частью Maya. Maya прокладывает нам путь к полной поддержке клиентов с помощью ИИ.

В этом посте мы кратко расскажем о компоненте транскрипции Maya — как мы создали возможность преобразования звукового представления в текстовое представление. Преобразование аудио в текст позволяет нам перевести проблему из области аудио в область НЛП. Последнее, будучи зрелым, позволяет лучше понять семантику речи.

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

Создайте специальную систему транскрипции речи для индийской телефонной речи

Курирование выступления

Нашей первой логистикой, как всегда, были данные. Нам нужно было собрать размеченные данные для рассматриваемой проблемы. Сначала мы решили сосредоточиться только на индийском английском. У нас есть собственная команда по обработке данных, которую мы создали, чтобы ускорить наши усилия в области ИИ. У нас есть контрольные панели, где команда кураторов работает над маркировкой различных наборов данных.

Мы пометили около 200 часов телефонной речи, из которых более 100 часов были на английском, а остальные – на других языках. Мы также использовали некоторые общедоступные наборы данных. Когда мы обучали нашу английскую модель, у нас было около 200+ часов индийского английского.

Чтобы построить модель транскрипции, мы экспериментировали с рядом методологий. Мы всегда оцениваем проверенные сообществом системы, прежде чем изобретать собственные. Таким образом, нам не нужно изобретать велосипед, и мы можем доставлять ценность быстрее. Мы начали с обычных систем HMM. С Kaldi мы попробовали несколько итераций в самом начале. Из-за его неудовлетворительной производительности на зашумленных данных мы перешли к сквозным системам ASR на основе глубокого обучения, которые доминировали в таблице лидеров по распознаванию речи.

В основном нам нравится идея глубокого обучения: сложить ряд нейронов с определенным набором характеристик — определить функцию потерь — упреждать входные данные — распространять ошибки обратно — и постоянно улучшать параметры стека нейронов до тех пор, пока нейроны не научитесь решать абстрактные задачи, которые иначе невозможно решить в традиционной парадигме программирования.
Из серии экспериментов из Espnet, Deepspeech 2, Deepspeech от Mozilla и Listen Attend and Spell, мы многому научились.

Среди экспериментов, которые мы пробовали. Deepspeech и LAS дали нам самые многообещающие результаты. У обоих были свои плюсы и минусы, о которых мы поговорим ниже.

Поскольку наши данные были зашумлены, мы использовали Mozilla Deepspeech. Затем мы добавили к этому ряд модификаций, чтобы добиться очень впечатляющих результатов.

майя

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

Модель состоит из 6 слоев, первые 3 слоя являются полностью связанными слоями, за которыми следуют рекуррентная нейронная сеть и полностью связанный слой. Последний слой — это полносвязный слой с количеством нейронов = количеству алфавитов в языке + 1. Например, в английском языке это 26 + 1. 1 обозначает пробел.
Deepspeech использует потерю CTC для обучения сети.

Мы обучали нашу модель на Nvidia P100 почти 48 часов.

Языковая модель

Чтобы улучшить нашу модель, мы представили языковую модель, построенную на корпусе недвижимости. Эта языковая модель позволяет нам дополнительно учитывать контекст для выходных данных модели.

Мы использовали популярную и хорошо протестированную языковую модель под названием KenLM. Поиск луча выполняется в этой языковой модели с использованием выходных данных уровня CTC, чтобы получить вероятные слова в высказывании. KenLM реализует две структуры данных, Probing и Trie, для эффективных запросов языковой модели, сокращая затраты времени и памяти.

Мы использовали структуру данных Trie для KenLM, так как хотели сделать нашу систему ASR легкой. Используя библиотеку KenLM, мы создали 6-граммовую языковую модель. KenLM использует метод, называемый сглаживание Кнезера-Нея, который в основном используется для расчета распределения вероятностей n-грамм в документе на основе их истории. . Это помогло нам еще больше снизить процент ошибок в словах на >2%.

Maya находится в производстве и может транскрибировать примерно 160 часов аудиозаписей в день почти в режиме реального времени. Платформа, способная к такому крупномасштабному выводу, является предметом подробного дальнейшего обсуждения. Мы обсудим это в следующей статье.

Maya — это всего лишь наш первый шаг к пониманию речи. Путь вперед сложен благодаря далеко идущим приложениям, включая разговорный ИИ и виртуальных голосовых помощников.

В следующих статьях мы расскажем, как мы решаем проблемы со звуком, такие как Идентификация языка и Синтез речи, так что следите за нашим блогом!

Если вы тот человек, который рад просыпаться каждый день, чтобы изменить мир вокруг себя; Присоединяйся к нам! У нас есть много приключений для ваших интеллектуальных занятий.