Команда 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)


  1. Xenos_rus
    01.04.2022 13:23
    +6

    Спасибо от слабослышащего сына - с его слов очень достойное качество конвертации голосовых из whatsapp.


    1. Christina29 Автор
      01.04.2022 16:33
      +1

      Спасибо за обратную связь. Рады это слышать!


  1. foxairman
    01.04.2022 13:38
    +1

    Спасибо, побольше бы таких решений. А есть ли у Сбера что-нибудь из open source для самостоятельного использования, типа Vosk или Silerio? Интересно попробовать.


    1. nkarpov
      01.04.2022 15:26

      Да, вот описание того, как мы делали модель, которую выложили в открытый доступ https://habr.com/ru/company/sberdevices/blog/569082/


    1. AlexanderDenisenko
      01.04.2022 15:27
      +1

      Из опенсурса есть репа с нашим датасетом Golos, языковой и акустической моделью, можете посмотреть: https://github.com/sberdevices/golos

      И посвящённая им майская статья на Хабре для пояснения: https://habr.com/ru/company/sberdevices/blog/559496/


    1. snakers4
      02.04.2022 18:34

      Silero =)


  1. AigizK
    01.04.2022 14:03
    +6

    Очень круто получилось.

    По поводу

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

    может отдельную статью с кодом сделаете? :)


    1. snakers4
      02.04.2022 18:21
      -1

      Наши бесплатные сервисы для распознавания, не аффилированные с корпорациями - https://habr.com/ru/post/654227/

      Наши модели для расстановки знаков пунктуации - https://github.com/snakers4/silero-models#text-enhancement


  1. AigizK
    01.04.2022 14:06
    +2

    И как распознаете длинные сообщения? Тех.детали можете написать?


    1. Christina29 Автор
      01.04.2022 16:32

      Спасибо за интерес. Подумаем)


      1. snakers4
        02.04.2022 18:33

        Мы в нашем аналогичном решении - https://habr.com/ru/post/654227/ - используем наш публичный VAD - https://github.com/snakers4/silero-vad - для разделения аудио на чанки


  1. Deny_83
    01.04.2022 15:50
    +2

    Полезный бот. Особенно когда неудобно прослушать голосовое сообщение (дети спят, в метро и т.п.), и незаменим для людей с ограниченным слухом. Респект!


    1. Christina29 Автор
      01.04.2022 15:58

      Спасибо. Пользуйтесь на здоровье)


    1. axtrace
      03.04.2022 16:55

      Особенно когда неудобно прослушать голосовое сообщение

      То есть всегда


  1. vlad49
    01.04.2022 16:25
    +5

    Одна загадка давно интересует - почему ни whatsapp, ни telegram до сих пор не добавят себе подобную функцию? Это же для них было бы элементарно и напрашивается давно.


  1. Akr0n
    01.04.2022 16:32

    TTS в виде офлайн-решения не планируете выпустить? Очень не хватает современного качественного офлайн-продукта в этой сфере :(


    1. Christina29 Автор
      01.04.2022 17:46

      Предлагаю вам написать команде SmartSpeech: smartspeech@sberbank.ru.

      Возможно, коллеги смогут предложить какое-то решение.


      1. Akr0n
        01.04.2022 18:20

        Извините, но мне не верится, что я такой напишу "ребят, а есть готовый офлайн TTS для Андроид?", а они такие "да, вот держи, не жалко" :) Озвучил как пожелание, если на текущий момент нет такого продукта в паблике.


  1. erohin_d
    01.04.2022 17:00

    Очень круто! Давно ждал чего-то такого. Как я успел попробовать, работет в основном с русским языком, на англиском у него затыки возникают прям.

    Очень офигенно это вот всё


    1. Christina29 Автор
      01.04.2022 17:49

      Спасибо! Да, бот пока работает с голосовыми сообщениями и аудиофайлами на русском языке. Следите за обновлениями)


  1. shep
    01.04.2022 20:23
    +2

    А какой профит от бота вам? Получаете больше информации для обучения?


  1. Maksim-Burtsev
    01.04.2022 23:48
    +2

    Шах и мат любителям записывать длинные войсы, вы нам больше не страшны.


  1. ykira
    02.04.2022 17:34
    +1

    Прикрутите *.amr


  1. snakers4
    02.04.2022 18:31
    -1

    Сейчас в телеграме уже есть несколько подобных решений.

    Решение ... которое в конце каждого сообщения постит сомнительные "призывы" (для кого-то с точки зрения морали и идеологии, для кого-то - с точки зрения закона), упоминать я не буду.

    А всем остальным советую лучше пользоваться нашими решениями - телеграм ботом и онлайн-сервисом для длинных файлов - https://habr.com/ru/post/654227/

    Поддерживайте независимых авторов, а не финансовые корпорации, которые лезут в каждый аспект нашей с ваши жизни, на наши же с вами деньги ...


    1. zo_oz
      02.04.2022 20:42

      Я вас правильно понимаю, что вы всех своих клиентов проверяете на отсутствие доходов с наших с вами денег? А откуда они тогда деньги берут?

      А то не очень понятно, чем вы отличаетесь, вы же пытаетесь влезть в аспект распознавания и синтез речи на наши же с вами деньги?


      1. snakers4
        03.04.2022 05:16
        -1

        У вас мешанина какая-то. Давайт разложим все по полкам. Клиент - это тот, кто добровольно купил что-то.

        Тут речь идёт про финансирование спорных с точки зрения основной специализации банка и ЦБ проектов из денег фонда национального благосостояния без собственно какого-либо участия или пользы для народа. На эту тему высказывался даже ЦБ и очевидно, что на уровне Сбера это все имеет большой коррупционный потенциал.

        Простыми словами - когда на наши с вами налоги ЦБ использует Сбер для стабилизации экономики (в этот в этот кризис раз ставки по депозитам в Сбере взлетели сразу) это благо.

        Но когда туда кладутся и так в прибыльный банк триллионы рублей из ФНБ, чтобы путем скрытой национализации строить ещё одну экосистему - у меня к этому большие вопросы.