Об этом проекте

Rhubarb Lip Sync — это инструмент командной строки, который анализирует аудиозаписи и автоматически создаёт данные для 2D-анимации рта. Он работает в Windows, macOS и Linux и может обрабатывать аудиофайлы WAV и Ogg Vorbis. **Как это работает** Инструмент использует распознавание речи, чтобы определить, что произносится в каждой точке записи, а затем сопоставляет звуки с подходящими формами рта. Доступны два распознавателя: PocketSphinx (по умолчанию, для английской речи) и независимый от языка фонетический распознаватель (для неанглийских записей). Пользователи также могут предоставить текстовый файл диалога, чтобы повысить точность распознавания, особенно если запись отклоняется от сценария. **Формы рта** Rhubarb Lip Sync использует от 6 до 9 положений рта. 6 базовых форм (A–F) соответствуют стандарту Hanna-Barbera и охватывают распространённые согласные и гласные. Три расширенные формы (G, H, X) являются необязательными и охватывают соответственно положение «верхние зубы — нижняя губа», звуки «L» с поднятым языком и положение покоя. **Форматы вывода** Инструмент может экспортировать данные анимации в форматах TSV (разделённые табуляцией временные метки и названия форм), XML или JSON. Для интеграции с Moho и OpenToonz он может создавать файлы данных переключения .dat. Выходные данные указывают, какую форму рта отображать в каждый момент времени записи. **Интеграции** - Adobe After Effects: анимация диалога непосредственно в процессе композитинга - Moho и OpenToonz: создание файлов данных переключения .dat с поддержкой соглашений об именовании Preston Blair - Spine от Esoteric Software: графический инструмент для импорта проектов, запуска липсинка и повторного импорта результатов - Vegas Pro от Magix: два скрипта для прямой интеграции с видеомонтажом **Использование из командной строки** Базовый вызов выглядит так: ``` rhubarb -o output.txt my-recording.wav ``` Ключевые параметры включают `--recognizer` для выбора между режимами pocketSphinx и phonetic, `--exportFormat` для формата вывода, `--dialogFile` для предоставления справочного текста, `--extendedShapes` для управления тем, какие необязательные формы рта используются, а также `--quiet` / `--machineReadable` для сценариев и автоматизации. Инструмент поддерживает многопоточность и может выдавать структурированные JSON-сообщения о состоянии для интеграции с другими приложениями. **Сборка из исходного кода** Требуются CMake 3.10+, компилятор с поддержкой C++17 и Boost. Проект включает конфигурацию CI и инструкции по сборке для распространённых платформ.