# Озвучка трёх версий ролика

Содержание и 19 сцен одинаковы; отличаются голос, измеренная длительность сцен, таймлайн и итоговый MP4. Все три дорожки создаются локально моделью Silero `v5_5_ru.pt`: Xenia, Aidar, Eugene. Eugene выбран третьим голосом из [официальной таблицы Silero](<https://github.com/snakers4/silero-models/blob/master/README.md>).

## Что установлено и сколько занимает

17.09.2026 через установленный `uv 0.6.17` в отдельной среде, не меняя системный Python:

```bash
uv venv локальный источник --python 3.12
uv pip install --python локальный источник numpy==2.5.3
uv pip install --python локальный источник \
  torch==2.8.0 --index-url https://download.pytorch.org/whl/cpu
```

Фактически установлен `torch 2.8.0+cpu`; CUDA-библиотеки и GPU не требуются. Виртуальная среда занимает 800 MiB, из них пакет `torch` — 689 MiB, `numpy` с библиотеками — около 60 MiB. Веса модели — 145 420 684 байта (139 MiB); `node_modules` текущего видеопроекта — 364 MiB. Это измеренный размер **на диске**, а не расход RAM и не размер загрузки по сети. Chrome и ffmpeg были установлены заранее, их вес в эти цифры не входит. На три итоговых файла и промежуточные WAV/MP4 требуется дополнительное место.

Взят ранее скачанный с `https://models.silero.ai/models/tts/ru/v5_5_ru.pt` файл; SHA-256 `50081637b602126ee06cb3bc8a744d25651d2da149ee8864b9a379bfdd934437`. Для новой установки сравните контрольную сумму после загрузки. Пакет модели загружается как доверенный исполняемый `torch.package`, поэтому не подменяйте источник случайным зеркалом. Веса в репозиторий и в skill не добавлены.

## Машина и ограничения

Проверенный хост: Ubuntu Linux x86_64, AMD Ryzen 7 7730U с AVX2, 16 логических CPU, 15 GiB RAM, без NVIDIA GPU. Синтез шёл на CPU в 4 потоках; аудио — mono PCM 48 кГц. Это **проверенный стенд**, не подтверждённые минимальные требования. Для сборки кадров дополнительно использовались Node 22.14, pnpm 11.19, Remotion 4.0.507, Google Chrome 152 и ffmpeg/ffprobe 6.1.1. Без видео Node/Chrome/ffmpeg не нужны. Свободного места при подготовке было 68 GiB.

После однократной установки и загрузки модели синтез выполняется без сетевого TTS: текст сценария не отправляется третьей стороне. У `v5_5_ru.pt` [CC BY-NC-SA 4.0](<https://github.com/snakers4/silero-models/blob/master/LICENSE>), поэтому эти версии подготовлены для заявленного некоммерческого использования и не публиковались. Исключение MIT в README относится к CIS base, не к `v5_5_ru`. Перед коммерческим применением нужно отдельное разрешение или иная модель с подходящей лицензией.

## Воспроизведение

Сначала создаётся WAV и таймлайн, потом видео. Голоса звучат с разной скоростью, поэтому аудио одного голоса нельзя подкладывать под кадры другого без пересборки.

```bash
локальный источник scripts/codex_audio.py \
  --project . --model локальный источник \
  --speaker xenia --threads 4
env -u NODE_OPTIONS pnpm exec tsc --noEmit
env -u NODE_OPTIONS node scripts/codex_render.mjs full
python3 scripts/mux.py
локальный источник scripts/final_qc.py
```

Повторите цикл с `--speaker aidar` и `--speaker eugene`, сохраняя отдельно WAV, `film-timeline.json`, SRT и MP4 каждого варианта. `NODE_OPTIONS` снимается только у дочернего Node-процесса, потому что на этом хосте он содержит неподдерживаемый Node флаг. Путь к уже установленной проверочной среде для `final_qc.py` приведён только как журнал текущей сборки: для новой установки понадобятся `Pillow` и `ffmpeg`, либо эквивалентная проверка.

Основная процедура и лицензии также описаны в `anything2explainer-codex/reference/silero-setup.md`. Исходная версия Piper сохранена отдельно в `voice-variants/piper-original/` и не выдаётся за один из трёх новых вариантов.
