Задача: Исследовать Rhubarb Lip Sync как источник механик распознавания звуков и слогов

Исследовать Rhubarb Lip Sync как источник механик распознавания звуков и слогов

Изучить phonetic recognizer проекта Rhubarb Lip Sync и проверить, можно ли использовать его алгоритмы или идеи для дешифровки звуковой дорожки в буквы/фонемы/слоги в проекте «Учиться легко».

Контекст

В проекте ранее исследовались собственный синтез речи и обратная задача восстановления управляющих/фонетических признаков из аудиодорожки. Релевантные отклонённые задачи:

  • cmu11e15r09gwqw0qzkny9qt5 — «Исследовать обратный дешифратор: звук → VoiceScenario»: попытка автоматически восстанавливать сценарий генератора из записанного звука, сначала на синтетическом ground truth, затем на человеческой речи.
  • cmtzxmokp085eqw0qtb7vg7c2 — «Исследовать качественный программный синтез человеческого голоса в браузере»: поиск программных/DSP-подходов к синтезу человеческих звуков и слогов без генеративного TTS.

Новый внешний проект для исследования:

https://github.com/DanielSWolf/rhubarb-lip-sync

Почему Rhubarb интересен

Rhubarb Lip Sync получает готовую звуковую дорожку, анализирует речь во времени и выдаёт последовательность mouth cues для анимации рта.

Особенно важен режим phonetic:

  • он предназначен в том числе для неанглийской речи;
  • не пытается распознавать целые слова;
  • распознаёт отдельные звуки и слоги;
  • является language-independent по заявлению проекта;
  • результат привязывается к временным участкам аудио;
  • далее фонетические признаки сводятся к небольшому набору артикуляционных/mouth-shape классов.

Это потенциально близко к нашей задаче распознавания звуковой структуры речи, где полноценный speech-to-text может быть лишним или даже мешать.

Цель исследования

Понять, как именно Rhubarb реализует путь:

PCM/аудио → фонетические признаки → временная сегментация → классы звуков/артикуляции,

и определить, можно ли использовать код, алгоритмы, зависимости или архитектурные идеи для собственных экспериментов «звук → буква/фонема/слог».

Что конкретно изучить

  1. Найти реализацию PhoneticRecognizer и все её зависимости.
  2. Выяснить, какие акустические признаки извлекаются из PCM:
    • спектральные признаки;
    • форманты;
    • MFCC или аналоги;
    • энергия/voicing;
    • переходы между состояниями;
    • временные окна и сглаживание.
  3. Выяснить, есть ли внутри обученная модель, таблицы/эвристики или внешний recognizer.
  4. Определить исходный набор распознаваемых фонетических состояний до преобразования в mouth shapes.
  5. Понять, насколько recognizer действительно language-independent и какие предположения о фонетике языка в нём зашиты.
  6. Проверить работу на очень коротких записях:
    • отдельный гласный;
    • отдельный согласный, если возможно;
    • слог типа ма, ба, са;
    • несколько контрастных слогов.
  7. Сравнить выход recognizer с известным ground truth и посмотреть, какую информацию он реально способен различать.
  8. Проверить, можно ли получить промежуточные данные более детальные, чем финальные mouth shapes A–H/X.
  9. Оценить возможность вынести нужную часть библиотеки отдельно или вызвать Rhubarb как CLI/локальный сервис.
  10. Проверить лицензию и возможность заимствования/адаптации кода.

Отдельная гипотеза

Rhubarb может оказаться полезен не как готовый «распознаватель букв», а как пример более реалистичной декомпозиции задачи:

звук → акустический/фонетический класс → артикуляционный класс → вероятная фонема → буква в известном контексте.

Для обучения чтению это может быть полезнее прямой попытки определить букву только по PCM, особенно если мы заранее знаем ограниченный набор допустимых букв/слогов упражнения.

Связь с прежними исследованиями

Нужно сопоставить архитектуру Rhubarb с выводами из задач:

  • cmu11e15r09gwqw0qzkny9qt5 — обратный дешифратор;
  • cmtzxmokp085eqw0qtb7vg7c2 — программный синтез голоса;
  • при необходимости также с исследованиями измеримых признаков речевого сигнала и причинности DSP.

Цель — не возобновлять прежнюю ветку целиком, а проверить конкретный зрелый open-source проект как источник уже работающих механизмов.

Критерий результата

В worklog должны появиться:

  • схема внутреннего пайплайна Rhubarb;
  • найденные ключевые исходники и зависимости;
  • описание того, какие фонетические/акустические состояния он реально распознаёт;
  • результаты нескольких коротких тестов;
  • вывод, какие части или идеи применимы к нашей задаче распознавания букв/фонем/слогов, а какие нет;
  • при наличии перспективы — отдельная техническая задача на прототип интеграции.