Задача: Исследовать 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/аудио → фонетические признаки → временная сегментация → классы звуков/артикуляции,
и определить, можно ли использовать код, алгоритмы, зависимости или архитектурные идеи для собственных экспериментов «звук → буква/фонема/слог».
Что конкретно изучить
- Найти реализацию
PhoneticRecognizerи все её зависимости. - Выяснить, какие акустические признаки извлекаются из PCM:
- спектральные признаки;
- форманты;
- MFCC или аналоги;
- энергия/voicing;
- переходы между состояниями;
- временные окна и сглаживание.
- Выяснить, есть ли внутри обученная модель, таблицы/эвристики или внешний recognizer.
- Определить исходный набор распознаваемых фонетических состояний до преобразования в mouth shapes.
- Понять, насколько recognizer действительно language-independent и какие предположения о фонетике языка в нём зашиты.
- Проверить работу на очень коротких записях:
- отдельный гласный;
- отдельный согласный, если возможно;
- слог типа
ма,ба,са; - несколько контрастных слогов.
- Сравнить выход recognizer с известным ground truth и посмотреть, какую информацию он реально способен различать.
- Проверить, можно ли получить промежуточные данные более детальные, чем финальные mouth shapes A–H/X.
- Оценить возможность вынести нужную часть библиотеки отдельно или вызвать Rhubarb как CLI/локальный сервис.
- Проверить лицензию и возможность заимствования/адаптации кода.
Отдельная гипотеза
Rhubarb может оказаться полезен не как готовый «распознаватель букв», а как пример более реалистичной декомпозиции задачи:
звук → акустический/фонетический класс → артикуляционный класс → вероятная фонема → буква в известном контексте.
Для обучения чтению это может быть полезнее прямой попытки определить букву только по PCM, особенно если мы заранее знаем ограниченный набор допустимых букв/слогов упражнения.
Связь с прежними исследованиями
Нужно сопоставить архитектуру Rhubarb с выводами из задач:
cmu11e15r09gwqw0qzkny9qt5— обратный дешифратор;cmtzxmokp085eqw0qtb7vg7c2— программный синтез голоса;- при необходимости также с исследованиями измеримых признаков речевого сигнала и причинности DSP.
Цель — не возобновлять прежнюю ветку целиком, а проверить конкретный зрелый open-source проект как источник уже работающих механизмов.
Критерий результата
В worklog должны появиться:
- схема внутреннего пайплайна Rhubarb;
- найденные ключевые исходники и зависимости;
- описание того, какие фонетические/акустические состояния он реально распознаёт;
- результаты нескольких коротких тестов;
- вывод, какие части или идеи применимы к нашей задаче распознавания букв/фонем/слогов, а какие нет;
- при наличии перспективы — отдельная техническая задача на прототип интеграции.