Это приложение автоматически озвучивает тексты из CSV-файлов с использованием нейросети SVR_TTS. Ниже – подробное руководство, начиная с быстрого старта и заканчивая описанием внутренних деталей.
-
Подготовка файлов:
- Скачайте и распакуйте example.zip
- Запустите run.cmd и следуйте инструкциям
- Если вы все сделали правильно то у вас появится директория dub с озвученными файлами
- Изменяйте CSV-файл (voiceover.csv) с данными для озвучки. В CSV каждая строка должна содержать:
- audio: относительный путь к аудиофайлу.
- speaker: имя говорящего. Если поле пустое, тембр будет определён по текущему аудиосэмплу без кеширования в
workspace/voices. - text: текст для озвучки.
- Дополнительно можно указать:
- text_accented: текст с ударениями (приоритет, если заполнено) пример: нА стЕне вИсит зАмок.
- text_adopted: адаптированный текст по длительности, если
text_accentedпуст.
Имена CSV-файлов могут содержать номер версии (например,
voiceover1.csv,voiceover2.csv), чтобы приложение могло отслеживать изменения. -
Запуск приложения:
- Переместите файл example/run.cmd в директорию с файлами (рядом с csv)
- Запустите двойным кликом и следуйте интрукции
-
Результат:
- Готовые озвученные файлы будут сохранены в папке
workspace/dub. - Сэмплы тембра для каждого говорящего сохраняются и кешируются в папке
workspace/voices, если хотите изменить голос то просто подменити файл на другой.
- Готовые озвученные файлы будут сохранены в папке
Приложение ищет CSV-файлы с версионными именами, сравнивает их и находит изменённые или новые записи для озвучки. Важно, чтобы в CSV были следующие колонки:
- audio: отностительный путь к аудиофайлу из
workspace/resources. - speaker: имя говорящего, по которому данные группируются для формирования сэмплов. Если поле пустое, тембр берётся напрямую из текущего сэмпла.
- text: основной текст для озвучки.
- text_accented (опционально): текст с ударениями, который используется, если поле заполнено.
- text_adopted (опционально): адаптированный вариант текста, если нет ударений.
Модуль AudioProcessor отвечает за:
- Загрузку аудиофайлов разных форматов (прямо через soundfile, через pydub или через vgmstream для экзотических форматов).
- Нормализацию громкости аудио до заданного уровня (LUFS).
- Перевод аудио в sample rate 24000 Гц, необходимый для корректной работы нейросети.
Модуль SpeakerProcessor:
- Формирует сэмпл тембра для каждого говорящего, объединяя аудиозаписи по данному персонажу.
- Кеширует сэмпл, чтобы повторно не производить обработку, и сохраняет его в
workspace/voices. - Если
speakerпустой, использует только текущий аудиосэмпл и не создаёт кеш-файл вworkspace/voices.
Модуль TextProcessor:
- Отдает предпочтение тексту с ударениями (
text_accented), затем адаптированному (text_adopted), и только потом базовому (text).
Основной модуль PipelineModule:
- Собирает данные (текст, сэмплы тембра и просодии).
- Отправляет их на синтез в SVR_TTS.
- После синтеза восстанавливает оригинальную громкость аудио и сохраняет файл в формате, заданном параметром
--ext, в папкеworkspace/dub.
- entrypoint.py: Точка запуска приложения.
- AudioProcessor.py: Обработка аудио (загрузка, нормализация, конвертация).
- CsvProcessor.py: Обработка CSV-файлов, поиск изменений и фильтрация записей.
- PipelineModule.py: Основной модуль, объединяющий все процессы озвучки.
- SpeakerProcessor.py: Формирование и кеширование сэмплов тембра для говорящих.
- TextProcessor.py: Выбор оптимального варианта текста для озвучки.