image


Сейчас для всех желающих доступны два наших сервиса для распознавания речи:


  • Бот в телеграме для коротких и не очень длинных аудио (мы не стали обходить ограничения телеграма, основная задача бота — распознавать голосовые сообщения);
  • Сервис audio-v-text.silero.ai для более длинных аудио, в котором можно скачать отчет в виде эксельки.

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


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


Улучшения для пользователей


  • Если бот уже давно выдает текст со знаками препинания и заглавными буквами, то в сервис audio-v-text.silero.ai на сайте мы это только-только завезли;
  • Точно так же в бота мы добавили обработку двух популярных форматов: .m4a и .aac, которые в веб-сервисе мы обрабатывали с самого начала;
  • Достаточно давно мы пофиксили более серьезную проблему с отсылкой писем в случае проблем и падений;
  • Поддержка зоопарка форматов даже с наличием нормальных библиотек, которые пытаются все это решить за вас, все равно приводит к разного рода неприятным краевым случаям. Поэтому под капотом мы поменяли библиотеки на более простые, удачные и универсальные и упростили логику обработки файлов. Проблем для пользователей стало меньше, как и проблем по поддержке для нас.

С какими проблемами пришлось столкнуться за кулисами


  • Пользователи Apple часто присылали аудио с расширением, которое не соответствует содержимому, а в содержимом audio/m4a;
  • Пользователи в целом указывают домен аудио неохотно (1/3 запросов);
  • Вообще борьба с файлами, где используемый кодек, расширение и mime-тип в телеграме не соответствуют друг другу — это основная причина страданий. Основная фишка тут состоит в том, что во избежание паразитной нагрузки и лишнего трафика, нужно по сути 3 раза фильтровать файлы, каждый раз сужая воронку, иногда креативно подходя к проверкам файлов;
  • Наши письма с отчетами попадают во вкладку "Промоакции"/"Promotions" в фильтрах гугла, и пользователи думают, что письмо не пришло. Это якобы лечится "большей персонализацией" письма ("Привет, %{Username}!"), но пока руки до этого не дошли;
  • Ряд проблем с обработкой "особенных" сообщений телеграма, таких как альбомы с музыкой или сообщений, куда аудио как бы "встроены";
  • Работа над стабильностью и зависаниями самого бота и его очередей (для ускорения разработки мы выбрали высокоуровневые очереди, что имело свою цену в виде более сложной отладки);
  • В процессе разработки нового функционала и фич, мы отловили некоторое количество багов и проблем в своем бекенде и различных АПИ (и на самом деле этим и прекрасны эти боты);
  • Пришлось поднастроить ряд правил мониторинга серверов, чтобы удалось совсем "забыть" про бота;

Обратная связь пользователей


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


Также мы слышали энное количество разных запросов на новые фичи (в основном люди конечно жаловались на неработающие форматы или на ошибки), но больше всего люди упоминали возможность выключить метки времени в распознанном тексте. Это в принципе означает необходимость "кастомизации" бота под каждого пользователя. И хотя такая возможность нами была заложена в рамках заведения капчи, мы решили пока оставить бота максимально простым, не требующим настроек.


Приватность пользователей


Нам несколько раз задавали такой вопрос. Мы не храним имена, фамилии, персональные данные пользователей сервиса — хотя бы по той простой причине, что мы к ним просто не имеем доступа и они нам не нужны. Телеграм отдает весьма ограниченные данные (и мы храним только ID групп и пользователей).


Мы не собираем эти данные для перепродажи их инвесторам и третьим лицам. Мы вообще не считаем бот коммерческим продуктом.


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


Немного статистики


Тут сразу нужно опредилиться с понятиями. Поскольку аудио могут быть сколь угодно длинными или короткими — одним запросом мы считаем непрерывный поток речи внутри аудио. Обычно до 7 — 15 секунд. Также мы не сразу стали вести статистику по сессиям и группам в телеграме, плюс был пробел в статистике на несколько дней.


image


image


Из графиков могу сделать три вывода:


  • У бота и сервиса случился небольшой хабра-эффект в начале, потом понятно остались только долгосрочные пользователи;
  • Популярность бота и сервиса примерно одинакова, если измерять таким методом;
  • Виден плавный тренд роста популярности по группам.

В заключение


Хотим добавить, что мы не паникуем, продолжаем работу и остаемся людьми, чего и вам желаем.

Комментарии (15)


  1. snakers4
    03.03.2022 13:51
    +4

    Для сервиса распознавания коротких аудио это не проблема, но для длинных файлов скорость распознавания на 1 воркере примерно в 5x от риалтайма на 1 поток кажется чуть низкой (в идеале без капитализации на сихронном АПИ в 1 поток у нас 10x), но мы рано или поздно решим за кулисами и этот вопрос именно для длинных файлов.


    Понятно, что нагрузкой легко управлять меняя число воркеров.


    1. AigizK
      03.03.2022 17:19
      +1

      Можешь посмотреть, как HuggingFace решил эту проблему у себя. Качество в итоге чуть-чуть падает. Но зато можно не париться по поводу времени обработки https://huggingface.co/blog/asr-chunking


  1. andreykour
    03.03.2022 14:38

    только онлайн?


    1. nurtdinovadf Автор
      03.03.2022 14:44

      Можете уточнить свой вопрос?


      1. andreykour
        03.03.2022 14:45
        +1

        офлайн решений не предполагаете? на уровне библиотек


        1. snakers4
          03.03.2022 14:48
          +7

          На уровне библиотек у нас есть проекты:



          В первом как раз недавно сделали pip пакет


  1. AigizK
    03.03.2022 17:27
    +1

    Не сравнивал с моделями на базе facebook/wav2vec2-xls-r например https://huggingface.co/jonatasgrosman/wav2vec2-xls-r-1b-russian ?

    Test WER на Common Voice = 9.820 без LM

    Судя по картинкам они показывают результат выше, чем у тебя:

    Для башкирского я смог получить 4.4 с LM. А для тайского вроде, вообще 0.95 получили. Очень дружелюбная моделька, единственное занимает много памяти.


    1. snakers4
      03.03.2022 19:09
      +1

      Нет, не сравнивал.

      Эти решения в любом случае не являются поддерживаемыми и продуктовыми. Даже если получится это как-то крутить с вменяемой скоростью (вероятно только на GPU), то кост поддержки и репликации таких решений не вписывается в разумные рамки (статьи пишут про 16, 32 или более видеокарт по типу A100 / V100).

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

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


      1. AigizK
        04.03.2022 07:59
        +1

        Запускаю на CPU. Скорость распознавания x2. Но моя модель натренирована на базе маленькой модели. Занимает 1.12Gb


        1. snakers4
          04.03.2022 08:20
          +1

          Наши маленькие продовые модели для CPU… имеют скорость от x30 до x50.
          Понятно, что в реальной жизни на это много чего накладывается, но тем не менее.


  1. priwelec
    04.03.2022 20:51

    Стало интересно опробовать сервис на музыкальной композиции, песне, то есть.
    Распознало от всего текста весьма выборочно, процентов 15-20, правильно — только отдельные слова.


    1. snakers4
      04.03.2022 20:54

      С песнями беда


      1. priwelec
        04.03.2022 21:10
        +1

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


      1. AigizK
        04.03.2022 21:47

        Кстати не проводил эксперименты именно с датасетом песен?


        1. nurtdinovadf Автор
          05.03.2022 05:06

          Не совсем понятно практическое применение