Команда 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.
Комментарии (26)
foxairman
01.04.2022 13:38+1Спасибо, побольше бы таких решений. А есть ли у Сбера что-нибудь из open source для самостоятельного использования, типа Vosk или Silerio? Интересно попробовать.
nkarpov
01.04.2022 15:26Да, вот описание того, как мы делали модель, которую выложили в открытый доступ https://habr.com/ru/company/sberdevices/blog/569082/
AlexanderDenisenko
01.04.2022 15:27+1Из опенсурса есть репа с нашим датасетом Golos, языковой и акустической моделью, можете посмотреть: https://github.com/sberdevices/golos
И посвящённая им майская статья на Хабре для пояснения: https://habr.com/ru/company/sberdevices/blog/559496/
AigizK
01.04.2022 14:03+6Очень круто получилось.
По поводу
Бот способен расставлять знаки пунктуации и делить текст на предложения. Это довольно простая seq2seq-модель 4-классовой классификации (пустота, точка, запятая, знак вопроса), обученная на открытых данных общения из интернета.
может отдельную статью с кодом сделаете? :)
snakers4
02.04.2022 18:21-1Наши бесплатные сервисы для распознавания, не аффилированные с корпорациями - https://habr.com/ru/post/654227/
Наши модели для расстановки знаков пунктуации - https://github.com/snakers4/silero-models#text-enhancement
AigizK
01.04.2022 14:06+2И как распознаете длинные сообщения? Тех.детали можете написать?
Christina29 Автор
01.04.2022 16:32Спасибо за интерес. Подумаем)
snakers4
02.04.2022 18:33Мы в нашем аналогичном решении - https://habr.com/ru/post/654227/ - используем наш публичный VAD - https://github.com/snakers4/silero-vad - для разделения аудио на чанки
Deny_83
01.04.2022 15:50+2Полезный бот. Особенно когда неудобно прослушать голосовое сообщение (дети спят, в метро и т.п.), и незаменим для людей с ограниченным слухом. Респект!
vlad49
01.04.2022 16:25+5Одна загадка давно интересует - почему ни whatsapp, ни telegram до сих пор не добавят себе подобную функцию? Это же для них было бы элементарно и напрашивается давно.
Akr0n
01.04.2022 16:32TTS в виде офлайн-решения не планируете выпустить? Очень не хватает современного качественного офлайн-продукта в этой сфере :(
Christina29 Автор
01.04.2022 17:46Предлагаю вам написать команде SmartSpeech: smartspeech@sberbank.ru.
Возможно, коллеги смогут предложить какое-то решение.
Akr0n
01.04.2022 18:20Извините, но мне не верится, что я такой напишу "ребят, а есть готовый офлайн TTS для Андроид?", а они такие "да, вот держи, не жалко" :) Озвучил как пожелание, если на текущий момент нет такого продукта в паблике.
erohin_d
01.04.2022 17:00Очень круто! Давно ждал чего-то такого. Как я успел попробовать, работет в основном с русским языком, на англиском у него затыки возникают прям.
Очень офигенно это вот всё
Christina29 Автор
01.04.2022 17:49Спасибо! Да, бот пока работает с голосовыми сообщениями и аудиофайлами на русском языке. Следите за обновлениями)
Maksim-Burtsev
01.04.2022 23:48+2Шах и мат любителям записывать длинные войсы, вы нам больше не страшны.
snakers4
02.04.2022 18:31-1Сейчас в телеграме уже есть несколько подобных решений.
Решение ... которое в конце каждого сообщения постит сомнительные "призывы" (для кого-то с точки зрения морали и идеологии, для кого-то - с точки зрения закона), упоминать я не буду.
А всем остальным советую лучше пользоваться нашими решениями - телеграм ботом и онлайн-сервисом для длинных файлов - https://habr.com/ru/post/654227/
Поддерживайте независимых авторов, а не финансовые корпорации, которые лезут в каждый аспект нашей с ваши жизни, на наши же с вами деньги ...zo_oz
02.04.2022 20:42Я вас правильно понимаю, что вы всех своих клиентов проверяете на отсутствие доходов с наших с вами денег? А откуда они тогда деньги берут?
А то не очень понятно, чем вы отличаетесь, вы же пытаетесь влезть в аспект распознавания и синтез речи на наши же с вами деньги?
snakers4
03.04.2022 05:16-1У вас мешанина какая-то. Давайт разложим все по полкам. Клиент - это тот, кто добровольно купил что-то.
Тут речь идёт про финансирование спорных с точки зрения основной специализации банка и ЦБ проектов из денег фонда национального благосостояния без собственно какого-либо участия или пользы для народа. На эту тему высказывался даже ЦБ и очевидно, что на уровне Сбера это все имеет большой коррупционный потенциал.
Простыми словами - когда на наши с вами налоги ЦБ использует Сбер для стабилизации экономики (в этот в этот кризис раз ставки по депозитам в Сбере взлетели сразу) это благо.
Но когда туда кладутся и так в прибыльный банк триллионы рублей из ФНБ, чтобы путем скрытой национализации строить ещё одну экосистему - у меня к этому большие вопросы.
Xenos_rus
Спасибо от слабослышащего сына - с его слов очень достойное качество конвертации голосовых из whatsapp.
Christina29 Автор
Спасибо за обратную связь. Рады это слышать!