Это приложение автоматически озвучивает тексты из CSV-файлов с использованием нейросети SVR_TTS. Ниже – подробное руководство, начиная с быстрого старта и заканчивая описанием внутренних деталей.
-
Подготовка файлов:
- Скачайте и распакуйте example.zip
- Запустите run.cmd и следуйте инструкциям
- Если вы все сделали правильно то у вас появится директория dub с озвученными файлами
- Изменяйте CSV-файл (voiceover.csv) с данными для озвучки. В CSV каждая строка должна содержать:
- audio: относительный путь к аудиофайлу.
- speaker: имя говорящего (записи группируются по этому полю для формирования сэмплов тембра).
- 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
.
Модуль 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: Выбор оптимального варианта текста для озвучки.