Содержание

Сиcтемы распознавания речи с открытым исходным кодом

Система speech-to-text (речь в текст) (STT), как следует из ее названия, представляет собой средство преобразования человеческой речи в текстовые файлы, которые впоследствии могут быть использованы для любых целей.

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

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

Проект DeepSpeech

DeepSpeech проект разработанный Mozilla, организацией, стоящей за браузером Firefox. Это 100% бесплатная и открытая библиотека STT с открытым исходным кодом, которая также подразумевает использование технологии машинного обучения с использованием TensorFlow framework для выполнения своей задачи. Другими словами, вы можете использовать ее для самостоятельного создания обучающих моделей, чтобы улучшить лежащую в их основе технологию STT и получить лучшие результаты, или транслировать ее на другие языки, если пожелаете. Вы также можете легко интегрировать ее в другие проекты по машинному обучению, которые исполнены на TensorFlow. К сожалению, на данный момент, по умолчанию проект поддерживает только английский язык.

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

Kaldi

Kaldi это программное обеспечение с открытым исходным кодом для распознавания речи, написанное на C++, и выпускаемое под публичной лицензией Apache. Работает на Windows, MacOS и Linux.

Его разработка началась еще в 2009 году. Главная особенность Kaldi, по сравнению с некоторыми другими программами распознавания речи, это расширяемость за счет модулей. Сообщество предоставляет тонны сторонних модулей, которые вы можете использовать для своих задач. Kaldi также поддерживает нейронные сети и предлагает отличную документацию на своем сайте. Хотя код в основном написан на C++, он «обёрнут» скриптами Bash и Python. Так что если вы ищете только базовое использование преобразования речи в текст, то вам будет легко это сделать либо с помощью Python, либо с помощью Bash. Вы также можете протестироватьKaldi Active Grammar, который представляет собой предварительно собранный движок Python с обученными английскими моделями, уже готовыми к использованию.

Julius

Julius возможно, один из старейших программных продуктов для распознавания речи; его разработка началась в 1991 году в Университете Киото, а затем, в 2005 году, его разработка была перешла в самостоятельный проект. Многие приложения с открытым исходным кодом используют его в качестве своего движка (вспомните KDE Simon). Основные особенности Julius: возможность выполнения STT-процессов в реальном времени, низкое использование памяти (менее 64 Мб на 20000 слов), возможность вывода N-best/Word-graph, возможность работы в качестве серверной единицы и многое другое. Данное программное обеспечение было создано в основном для академических и исследовательских целей. Оно написано на C и работает под Linux, Windows, macOS и даже Android (на смартфонах). В настоящее время Julius поддерживает только английский и японский языки. Это программное обеспечение, возможно, легко установить, используя репозиторий вашего дистрибутива Linux, просто найдите julius-пакет в вашем менеджере пакетов.

Wav2Letter++

Wav2Letter++ - это программа с открытым исходным кодом для распознавания речи, которая была выпущена исследовательской группой по ИИ Facebook всего 2 месяца назад. Код выпущен под лицензией BSD. Facebook описывает свою библиотеку как «самую быструю современную систему распознавания речи». Концепции, на которых построен этот инструмент, по умолчанию оптимизированы под производительность. В основе Wav2Letter++ лежит совершенно новая библиотека машинного обучения Facebook - FlashLight. Wav2Letter++ в первую очередь требует, чтобы вы сами построили учебную модель для желаемого языка, для того, чтобы обкатать алгоритм на нем. Предварительно встроенная поддержка любого языка (включая английский) недоступна, Wav2Letter++ это всего лишь инструмент для машинного обучения, позволяющий конвертировать речь в текст. Он был написан на C++, отсюда и название (Wav2Letter++).

DeepSpeech2

Исследователи китайского гиганта Baidu также работают над собственным текстовым движком под названием DeepSpeech2. Это сквозной движок с открытым исходным кодом, использующий «PaddlePaddle» глубокую структуру обучения для преобразования речи на английском и мандаринском наречии китайского языка в текст. Код выпускается под лицензией BSD. Движок может быть обучен на любой модели и для любого языка по вашему желанию. Модели не распространяются с кодом; вам придётся собирать их самостоятельно, как и другие программы. Исходный код DeepSpeech2 написан на языке Python, так что вам будет легко с ним познакомиться, если вы используете именно этот язык.

OpenSeq2Seq

OpenSeq2Seq разработан компанией NVIDIA для подготовки sequence-to-sequence моделей. Несмотря на то, что его можно использовать не только для распознавания речи, он, тем не менее, является прекрасным движком для такого использования. С его помощью можно создавать собственные тренировочные модели или использовать Jasper, Wave2Letter+ и DeepSpeech2, которые поставляются по умолчанию. OpenSeq2Seq поддерживает параллельные вычисления с использованием нескольких GPU или нескольких CPU, а также мощную поддержку некоторых технологий NVIDIA, таких как CUDA и мощных видеокарт. Дополнительную информацию можно найти на странице с документацией по распознаванию речи.

Fairseq

Fairseq еще один инструментарий sequence-to-sequence. Разработан Facebook и написан на Python и фреймворке PyTorch. Также поддерживает параллельное обучение. Может использоваться для перевода и более сложных задач языковой обработки.

Vosk

Vosk одна из новейших систем распознавания речи с открытым исходным кодом, так как ее разработка в 2020 году только началась. В отличие от других систем из этого списка, Vosk вполне готова к использованию после установки, имеет поддержку 10 языков (английский, немецкий, французский, турецкий…) с моделями размером 50MB, которые уже доступны для пользователей (есть и другие более точные модели размером до 1.4GB). Система может работать на Raspberry Pi, iOS и устройствах Android, а также предоставляет потоковое API, позволяющее подключаться к ней для выполнения задач по распознаванию речи в режиме онлайн. Vosk поддерживает Java, Python, JavaScript, C# и NodeJS.

Athena

Athena является сквозной системой распознавания речи, которая реализует ASR (Автоматическое распознавание речи). Написана на Python и лицензирована по лицензии Apache 2.0. Поддерживает неконтролируемую предварительную подготовку и мульти-GPU обработку. Построена на базе TensorFlow.

ESPnet

ESPnet написана на Python с использованием PyTorch. Поддерживает сквозной ASR. Он следует стилю Kaldi для обработки данных, так что будет легко мигрировать из него в ESPnet. Главной маркетинговой фишкой ESPnet является современная производительность, которую она дает во многих бенчмарках, и поддержка других задач языковой обработки, таких как преобразование текста в речь (STT), машинный перевод (MT) и речевой перевод (ST). Выпускается под лицензией Apache 2.0.

Какую систему распознавания речи с открытым исходным кодом выбрать?

Если вы разрабатываете небольшое приложение, например для мобильных устройств, то Vosk - это лучший вариант, так как система написана на Python и кроссплатформенная, работает на iOS, Android и Raspberry Pi. Кроме того, имеет поддержку до 10 языков. Vosk предоставляет огромный набор данных для обучения.

Если же вы хотите обучать и строить свои собственные модели для гораздо более сложных задач, то Fairseq, OpenSeq2Seq, Athena или ESPnet может быть вполне достаточными для ваших нужд, и это самые современные наборы инструментов.

Что касается DeepSpeech компании Mozilla, то она не обладает значительным количеством функций по сравнению с другими конкурентами в этом списке, и на самом деле не так много цитируется в академических исследованиях по распознаванию речи, как другие. И его будущее очень беспокоит после недавней реструктуризации Mozilla, так что пока стоит воздержаться от использования этой системы.

По сложившейся традиции Julius и Kaldi очень часто цитируются в академической литературе.

Заключение

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

Источник