Бесплатный Telegram-бот для расшифровки аудио. Рассказываем кратко, как мы его сделали

91224d82910179906bea3d2098e7ffa2.png

Команда SberDevices запустила бесплатный бот в Telegram, который конвертирует русскоязычные голосовые сообщения и аудиофайлы в текстовый формат. Бот работает на основе технологии распознавания речи SmartSpeech и станет удобным инструментом для журналистов, копирайтеров, переводчиков и представителей других профессий, которые работают с текстами. Он позволит сэкономить часы работы, сократить рутину и значительно повысит эффективность при производстве контента. Также бот незаменим в ситуациях, когда у пользователя нет возможности прослушать голосовое сообщение: на встрече или в общественном транспорте. Бот можно использовать как в личной переписке, так и добавлять в групповые чаты.  Он обеспечивает расшифровку голосовых сообщений и загруженных одноканальных аудиофайлов до 20 Мб в кодировках MP3, WAV (8–96 кГц), FLAC и OggOpus. 

Что под капотом

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

Главной задачей наших моделей, используемых виртуальными ассистентами, является распознавание запроса: команды или вопроса  («Салют, включи спокойную музыку», «Джой, сколько сейчас градусов»). Обычно это очень короткие фразы. Кроме того, важная особенность таких моделей — игнорирование фоновой речи и речи, не обращённой непосредственно к виртуальному ассистенту. 

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

Отлично. Проблема найдена, переходим к решению.

Сначала мы собрали из различных открытых источников длинные монологи, от нескольких десятков секунд до нескольких часов, порезали на короткие куски длиной не более 25 секунд и с помощью краудсорсинга получили для них транскрипции. А также перестали игнорировать фоновую речь.

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

На самом деле, модель, обученная не пропускать фоновую речь, у нас уже была — это модель, которая используется  для распознавания телефонных разговоров. Однако для её обучения использовался принципиально другой звук: частота дискретизации 8кГц, а для голосовых сообщений мы взяли за основу 16кГц.

Напрямую, без потери информации, использовать её было нельзя, но с её помощью нам удалось расширить обучающую выборку. Мы взяли короткие куски монологов, для которых у нас ещё не было транскрипций, понизили их частоту до 8 кГц и сделали псевдоразметку: распознали записи с помощью модели для телефонии. Дальше просто привязали полученные транскрипции к исходному звуку с качеством 16 кГц.

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

Таким образом, нам удалось значительно увеличить обучающую выборку, перестать игнорировать фоновую речь, и, как следствие, улучшить качество распознавания аудиосообщений в нашем Telegram-боте.

Пунктуация

Бот способен расставлять знаки пунктуации и делить текст на предложения. Это довольно простая seq2seq-модель 4-классовой классификации (пустота, точка, запятая, знак вопроса), обученная на открытых данных общения из интернета. В отличие от большинства моделей, наша не анализирует текст полностью, а учитывает паузы между словами для разбиения текста на значимые части, которые анализируются независимо. Это позволяет распознавать быстрее. А ещё мы не ставим точку в конце единичного предложения — так же, как и вы при общении в мессенджере.

Приглашаем вас опробовать наш Telegram-бот в деле: https://t.me/smartspeech_sber_bot. 

© Habrahabr.ru