Бесплатный Telegram-бот для расшифровки аудио. Рассказываем кратко, как мы его сделали
Команда 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.