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

искусственный интеллект открытый источник Facebook Lua
Сквозная система автоматического распознавания речи Facebook с открытым исходным кодом wav2letter
Эта статья написана«Линия фронта ИИ»Оригинал, оригинальная ссылка:Сквозная система автоматического распознавания речи Facebook с открытым исходным кодом wav2letter
Переводчик|Сюэ Миндэн
Редактор | Наталья

wav2letter — это простая и эффективная сквозная система автоматического распознавания речи, исходный код которой открыт исследовательской группой Facebook AI. ConvNets Архитектуры, упомянутые в этих двух документах.

Адрес бумаги:

(1) WavLetter: сквозная система распознавания скорости на основе ConvNet

АР Вест V.org/ABS/1609.03…

(2) Распознавание речи на основе букв с помощью Gated ConvNets

АР Вест V.org/ABS/1712.09…


Бумажные цитаты

Если вы хотите использовать wav2letter или родственные предварительно обученные модели, процитируйте две приведенные ниже статьи.


Эксплуатационные требования

  • Компьютер под управлением MacOS или Linux.
  • Каркас факела.
  • Обучение на процессоре: Intel MKL.
  • Обучение на GPU: NVIDIA CUDA Toolkit (cuDNN v5.1 для CUDA 8.0).
  • Чтение звуковых файлов: Libsndfile.
  • Стандартные речевые функции: FFTW.

Установить

MKL

Если вы планируете тренироваться на процессоре, настоятельно рекомендуется использовать Intel MKL.

Измените файл .bashrc и добавьте следующее:

LuaJIT и LuaRocks

Следующее установит LuaJIT и LuaRocks в каталог $HOME/user.Если вы хотите установить на системном уровне, удалите параметр DCMAKE_INSTALL_PREFIX=$HOME/user.

Ниже мы предполагаем, что luarocks и luajit уже включены в $PATH, если нет, вызовите luarocks и luajit с правильным путем. Предполагая, что они установлены в каталоге $HOME/usr, вызовите ~/usr/bin/luarocks и ~/usr/bin/luajit.

Инструмент языковой модели KenLM

Если вы хотите использовать декодер wav2letter, вам необходимо установить KenLM, а для установки KenLM требуется Boost.


OpenMPI и TorchMPI

OpenMPI и TorchMPI необходимы, если вы хотите обучать модели с несколькими процессорами/графическими процессорами (или несколькими машинами).

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

Сначала установите OpenMPI:

Примечание: можно использовать openmpi-3.0.0.tar.bz2, но параметр --enable-mpi-thread-multiple необходимо удалить.

TorchMPI теперь можно установить:

Факел и другие библиотеки

пакет wav2letter


Обучите модель wav2letter

предварительная обработка данных

Каталог данных содержит несколько скриптов для предварительной обработки различных наборов данных, в настоящее время предоставляются только LibriSpeech и TIMIT.

Вот пример предварительной обработки корпуса LibriSpeech ASR:

тренироваться

Тренируйтесь на нескольких графических процессорах

Используйте OpenMPI для запуска нескольких обучающих процессов, по одному на каждый GPU, мы предполагаем, что mpirun уже включен в $PATH.

запустить декодер (вывод)

Перед запуском декодера нам нужно выполнить некоторую предварительную обработку.

Во-первых, создайте словарь букв, включая повторяющиеся буквы, используемые в wav2letter.

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

Примечание. Мы также можем использовать 4gram.arpa.gz, но это требует больше времени на предварительную обработку.

Дополнительный шаг: преобразование модели в двоичный файл с помощью KenLM может ускорить последующую загрузку, мы предполагаем, что KenLM уже включен в $PATH:

Теперь мы запускаем test.lua в наборе данных. Скрипт также отображает коэффициент ошибок в буквах и коэффициент ошибок в словах — последний не был рассчитан с использованием акустической модели с постобработкой.

Затем запустите декодер:


предварительно обученная модель

Мы предоставляем предварительно обученные модели для LibriSpeech:

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

Примечание. Предварительно обученная модель обучается на инфраструктуре Facebook, поэтому вам необходимо передать соответствующие параметры в test.lua во время выполнения:

Для большего содержания сухих товаров вы можете обратить внимание на AI Frontline, ID:ai-front, фоновый ответ "AI, TF и ​​большие данныеПолучите серию мини-книг и карт навыков «AI Frontline» в формате PDF.