The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Facebook опубликовал открытую систему распознавания речи Wav2letter++

22.12.2018 22:49

Разработчики из лаборатории искусственного интеллекта Facebook AI Research представили первый выпуск новой системы распознавания речи Wav2letter++, построенной с использованием свёрточной нейронной сети. В отличие от опубликованного в январе начального прототипа, реализация wav2letter++ полностью переписана на языке C++ с использованием библиотек ArrayFire и Flashlight (первый прототип был в форме Torch-модуля на языке Lua). Код проекта распространяется под лицензией BSD. Доступны уже натренированные модели (1, 2, 3) для английского языка.

Для распознавания в Wav2letter++ предложена новая архитектура, основанная на использовании акустической и языковой моделей, созданных при помощи системы машинного обучения на базе свёрточной нейронной сети (CNN). Система использует метод посимвольного предсказания на основе разбора необработанной формы сигнала без предварительного разделения фонем при проведении машинного обучения. После фазы посимвольного разбора для определения слов применяется внешняя языковая модель, выполненная также на основе свёрточной нейронной сети. Задействованные в проекте функции низкоуровневой обработки звука основаны на библиотеки Libsndfile, а для цифровой обработки сигналов при помощи дискретного преобразования Фурье применяется библиотека FFTW.

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

Система демонстрирует хорошую производительность, которая позволяет по скорости конкурировать с решениями на базе рекуррентных нейронных сетей. По скорости обучения в некоторых ситуациях Wav2letter++ более чем в два раза опережает другие оптимизированные фреймворки распознавания речи на базе алгоритмов машинного обучения. Время обучения линейно масштабируется в зависимости от числа GPU. Скорость декодирования в Wav2letter++ на порядок опережает реализации OpenSeq2Seq и ESPNet при сопоставимом или меньшем уровне ошибок. На тестовом наборе LibriSpeech система демонстрирует уровень ошибок 4.91-5% (в зависимости от настроек производительности), в то время как для распознавания человеком этот показатель составляет 5.83%, при работе Mozilla Voice (Deep Speech) - 5-6.5%, Google Speech - 6.64%, wit.ai - 7.94%, Bing Speech - 11.73%, Apple Dictation - 14.24%.



  1. Главная ссылка к новости (https://code.fb.com/ai-researc...)
  2. OpenNews: Facebook открыл код платформы Detectron для распознавания объектов на фотографиях
  3. OpenNews: Facebook открыл систему распознавания речи Wav2Letter
  4. OpenNews: Проект Mozilla выпустил открытую систему распознавания речи
  5. OpenNews: Компания Mozilla представила систему синтеза речи LPCNet
  6. OpenNews: Тестовый выпуск свободной системы распознавания речи Simon 0.4.80
Лицензия: CC-BY
Тип: Интересно / К сведению
Ключевые слова: facebook, ai, voice, speach, facebook
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (21) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.3, DHCPep (?), 23:55, 22/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Подскажите незнающему, а вот этот продукт возможно на рядовой писюк без всяких там ускоряющих жпу поставить и условно:
    1. Натравить его сперва на папку с звуковыми файлами для тренировки (как кстати указывать расшифрованный текст?)
    2. После этого запускать на обработку произвольных звуковых файлов чтобы на выходе получать текстовик?

    А то по ссылке на гитхаб прошёл, доки поглядел, вроде всё написано, но что делать неясно :(

    Чтобы избежать излишних оффтопиков: Да, пусть я буду нубом :)

     
     
  • 2.8, Аноним (8), 04:24, 23/12/2018 [^] [^^] [^^^] [ответить]  
  • +13 +/
    Так не получится. Как минимум тебе ещё потребуется языковая модель, которую можно рассматривать условно как чёрный ящик, в который ты грузишь предложение (по букве, или по слову -- зависит от модели), а он тебе предсказывает продолжение, она нужна для того, чтобы, грубо говоря, взять возможные интерпретации невнятно произнесённого слова и ориентируясь на предложение в целом выбрать наиболее правдоподобную интерпретацию.

    Во всём же остальном, я подозреваю всё тоже не сводится к "скормил программе несколько часов разговоров". В новости написано: "Для обучения в проекте реализована техника автоматического сегментирования, которая позволяет обучить систему на основе записи звука и текстовой транскрипции, без дополнительных аннотаций." То есть, этот ии самостоятельно может научится разбивать входной звуковой поток на куски вида "слова"/"фонемы", но ему всё равно потребуется какое-то количество записей с полной текстовой транскрипцией.

    Ну а вообще, если тебе хочется поиметь что-то подобное, то я бы рекомендовал начать с чего-нибудь, что имеет полноценные туториалы, с чего-нибудь типа: https://www.youtube.com/watch?v=gGqVNuYol6o (если у тебя нет кошки или если ты не выпускаешь её на улицу, то ты можешь поискать какой-нибудь другой проект, который будет тебе приколен, их в интернете достаточно, сейчас каждый школьник собирает какой-нибудь проект поверх нейросетки... ну или не каждый, те школьники опеннета по-моему исключение из правила).
    И я очень рекомендую начать с "попроще", потому что для того, чтобы завести Wav2letter++ тебе в любом случае придётся потратить немало времени, и ты можешь часть этого времени потратить на что-нибудь попроще, что позволит тебе хотя бы смутно понимать принципы, представлять себе из каких составных частей собираются такие приложения, понимать процесс в целом от разработки нейросетки до начала использования и тд. Начинать сразу с вещей, которые раз-раз и в продакшн не стоит. Можно, но не стоит.

     
     
  • 3.40, DHCPep (?), 20:37, 23/12/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Вот это ответ, так ответ! Всем ответам ответ! :)
    Спасибо!
     
  • 2.10, Анон Анонов (?), 04:54, 23/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В теории, эту штуку можно и в браузер встроить. Правда придётся потрудиться. Плюсы можно легко собрать в wasm, но для этого придётся выпилить работу с GPU, потоками, ассемблером, если есть, файловой системой. Отдельно нужно будет подготовить модель и загрузить её в браузер. Вроде есть форматы какие-то для этого.
    Не берусь судить какой монстр получится, но нейросети уже давно встраивают в телефоны. А оффлайн распознавание голоса было бы неплохой идеей в плане приватности.
     
     
  • 3.11, commiethebeastie (ok), 05:15, 23/12/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Если именно встроить, то я думаю лучше использовать как библиотеку, а не извращаться как хипстеры.
     
  • 3.14, Андрей (??), 08:17, 23/12/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Отдельно нужно будет подготовить модель и загрузить её в браузер. Вроде есть форматы какие-то для этого.
    > Доступны уже натренированные модели (1, 2, 3) для английского языка.

    Всего "ничего": 1.6 GB, 1.6 GB, 1.9 GB.

     
  • 3.41, Аноним (41), 22:04, 23/12/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не надо ничего встраивать в браузер!!!!11
     

  • 1.13, Аноним3 (?), 07:31, 23/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А есть ли что-то попроще, если не нужно распознавать речь, а только точно локализовывать начало и конец реплик и по возможности чей голос (просто номер), что важно если кусочки реплик накладываются?
     
     
  • 2.46, Аноним (46), 12:58, 24/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    не попроще (speaker recognition/speech recognition), попроще можно привязать к другой биометрии
     
     
  • 3.47, Аноним (46), 14:38, 24/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    вообщем, как-то так это выглядит: speaker diarization system (sad/vad + change point detection in time series + counting + indexing + segmentation + homogeneous model forming + reducing the dimensionality + clustering + re-segmentation + tracking)
     
     
  • 4.50, Андрей (??), 17:53, 26/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Да-с, выходит как бы с нуля начинать.
     
     
  • 5.51, Аноним (46), 20:25, 26/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    https://pastebin.com/pystDU4C
    в рф это уже делали и не раз
     
     
  • 6.52, Аноним3 (?), 01:28, 27/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо! Но в списке, вроде, большинство научные пробы или общие библиотеки для работы с аудио: кое-что старое (yaafe, CLAM), кое-что активное (librosa).

    По ключевому слову "Speaker Diarization" находится действительно кое-что. Самое интересное для получения общего представления было написано всего 7 дней назад!
    https://medium.com/@jaspreetuseducation/speaker-diarization-22121f1264b1
    Speaker Diarization - Separation of Multiple Speakers in an Audio File.

    Жаль, что готовое есть только онлайн от Гугла и других гигантов Амазон, Майкрософт.

     
     
  • 7.53, Аноним (46), 11:49, 27/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    самое интересное можно оставить на потом, в начале возможен модульный pipeline с максимальной разбивкой по задачам, там как раз старые библиотеки пригодятся даже sox c ffmpeg, только не ждите доброго от меня, старого дурака, вот еще вам https://www2.securecms.com/ICASSP2017/Papers/AcceptedPapers.asp http://www.redhenlab.org/home/the-cognitive-core-research-topics-in-red-hen/a
     

  • 1.19, Аноним (19), 11:46, 23/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    “facebook tracking how their libraries are used and implement features they can use for better user tracking”
     
  • 1.36, corvuscor (ok), 16:20, 23/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Для ускорения проведения обучения поддерживается задействование GPU (CUDA)

    ArrayFire ведь поддерживает OpenCL в качестве бэкэнда.
    TensorFlow, кстати, судя по ROCm 2.0, тоже научился.
    Но нет, надо везде пихать проприетарщину.

     
     
  • 2.39, Аноним (39), 17:18, 23/12/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Без пяти минут неделя vs годами "production ready" еще и удивляются.
     
  • 2.48, Аноним (48), 20:16, 24/12/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    OpenCL уже похоронили, теперь все верят в Vulkan
     
     
  • 3.49, Владимир (??), 13:53, 26/12/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    С OpenGL не перепутал?
     

  • 1.45, Аноним (-), 23:59, 23/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Facebook опубликовал открытую систему распознавания речи

    Опять приперасты решили свои поделки на свободолюбивых хомячках потестить?

     
  • 1.54, Аноним (54), 11:06, 31/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Натренированные модели от предыдущей версии, с этой не стыкуются.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру