Мы опубликовали современные STT модели сравнимые по качеству с Google


Мы наконец опубликовали наш набор высококачественных пре-тренированных моделей для распознавания речи (т.е. сравнимых по качеству с премиум-моделями Google) для следующих языков:


  • Английский;
  • Немецкий;
  • Испанский;

Вы можете найти наши модели в нашем репозитории вместе с примерами и метриками качества и скорости. Мы также постарались сделать начало работы с нашими моделями как можно более простым — выложили примеры на Collab и чекпойнты для PyTorch, ONNX и TensorFlow. Модели также можно загружать через TorchHub.


PyTorch ONNX TensorFlow Качество Colab
Английский (en_v1) ссылка Открыть в Colab
Немецкий (de_v1) ссылка Открыть в Colab
Испанский (es_v1) ссылка Открыть в Colab

Почему это Важно


Распознавание речи традиционно имело высокие барьеры на вход по ряду причин:


  • Данные сложно собирать;
  • Разметка на сравнимую единицу данных стоит сильно дороже чем в компьютерном зрении;
  • Высокие требования по вычислительной мощности и устаревшие технологии;

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


  • Исследования в этой сфере обычно делаются на огромных вычислительных мощностях;
  • Пре-тренированные модели и готовые рецепты обычно имеют сильные проблемы с генерализацией, их тяжело использовать "как есть", много зависимостей от устаревших технологий;
  • До недавнего времени сообщество не имело доступа к простым в использовании, но качественным пре-тренированным моделям для распознавания речи;

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


  • Мы публикуем набор высококачественных пре-тренированных моделей для популярных языков;
  • Наши модели быстрые и могут работать на обычном железе;
  • Наши модели легко использовать;
  • Наши модели пре-тренированы на огромных и разнообразных речевых корпусах;
  • Мы строили наши модели так, чтобы они были устойчивы к разным доменам, насколько это возможно;

Сделать Просто — Сложно


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


  • Скорость и компактность;
  • Генерализация между разными доменами. Должно существовать одно общее решение, которое незначительными усилиями настраивается на конкретные домены, а не наоборот;
  • Максимальная простота в использовании ("1 строка кода");

Дальнейшие Планы


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


Ссылки


AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 23

    +6

    Отличная Новость, Так Держать, Ребята!

      0

      Может, перевод? :-D
      ("английское" написание заголовков)

      +3
      Ребятушки, сделайте на русском, а?
      +2
        –1

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

        0
        Отлично! А можно уточнить насчет метрики WER? Иногда применяется некая постобработка, например, распознанные слова меняются на другие с учетом их вероятностей и т.д. Эта метрика обычно применяется уже на финише, когда все последующие обработки применены? Или же проверяется «чистое» распознавание без обработок?… просто в статье о метриках указаны довольно большие проценты ошибок. Мне казалось, что уже достигнуты намного лучшие результаты)
          +1

          Механизм расчета метрик тут аналогичен описанному в статье, которую вы нашли.


          Для английского мы ещё нормализовали частые вещи типа that is и that's и так далее, тк нет унификации ращметки. Для немецкого пробовали без числительных тк результаты гугла не очень оказались — но разница была маленькая.


          А насчёт лучших результатов — я довольно подробно расписывал в своих статьях на The Gradient все детали по этому поводу и какие там реально иетрики.


          По сути к сожалению результаты премиум модели Google говорят что вы скорее всего стали жертвой маркетинга евангелистов / корпораций / академиков которым надо оправдать освоение бюджета. Sad but true. Tldr — оверфит на один датасет и общая генерализуемая модель — это разные фрукты.

            0
            Насчет лучших результатов понятно. А насчет постобработки? Вот давайте на примере. Есть правильный текст «мама мыла раму». Модель распознала по голосу «мама мыла рану» (вывод 1) При этом вероятность «рану»=0.30, а «раму»=0.29. Следующая модель (постобработка) учитывая контекст, заменяет посл. слово и выдает «мама мыла раму» (вывод 2). Метрика WER проверяется для «вывод 2» или «вывод 1»?
              +1

              Если вопрос о том поступаем ли мы также как раньше было модно репортить результаты на Imagenet (по 5 кропам) — то нет — всегда берется верхняя гипотеза, а не топ-N.


              В остальном — wiki в репозитории и статья выше по идее содержат всю информацию.

          0
          До 50Mb сжимали квантизацией и прунингом? И как дальше планируете ужать до 20? За модели спасибо!
            0

            Прунинг не делали ещё. Дальше планируем прунингом как раз и улучшением архитектуры.

              0

              А в чем вообще смысл такого сжатия?

                0

                Меньше места, быстрее, есть меньше compute?
                Я до конца не разобрался — в современных реалиях хоть как-то коррелирует ли прунинг с продом


                А квантизация — это продовая тема

                  0

                  и на сколько 50 мегабайтная медленнее 20 мегабайтной? и какая абсолютная производительность (до порядка)?

          0
          И ещё вопросик. На youtube Гугл иногда включает возможность создания субтитров, распознавая «на лету». Иногда они распознают и песни на русском, но качество там не очень. А ваша модель может распознавать слова песен? Например, какой процент ошибок будет на этой песне? (текст там есть в комментариях)
            0

            Чтобы сделать такое надо решить 4 задачи


            Детекция голоса (VAD) уже решена
            Выделение голоса
            Подавление шума
            Распознавание


            Все они решаются если сам спич пока нигде — то производные от него задачи ещё дальше


            Но денойз не так сложно сделать, в скорых планах есть

            0
            Господа, а для распознавания японского кто что может посоветовать, желательно не облачного?
              0

              Собирайте нетривиальный датасет (не просто common voice). Отдельно собирайте вал сеты
              Можно будет добавить в список моделей но наверное без ЕЕ версии

              +1
              Мы — это кто?

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

              Самое читаемое