# webrtc-komaroff — версия с синтетическим голосом из локального образца

Это новая полная версия 19-сценного объясняющего ролика. Видеоряд и технические утверждения взяты из [основной версии](</experiments/voice-ai/archive/c/videos/webrtc-explainer-2026-09-17/README.md>); речь синтезирована заново через Fish Audio, поэтому здесь свои длительности сцен, субтитры и MP4. На каждом кадре указано, что голос синтетический и ролик не является выступлением Владимира Путина или подтверждением им проекта.

- [Готовый MP4](#archive-availability), [30-секундный пилот](#archive-availability).
- [Сценарий](</experiments/voice-ai/archive/c/videos/webrtc-explainer-2026-09-17/voice-variants/fish-pupkin/story.json>), [текст диктора](</experiments/voice-ai/archive/c/videos/webrtc-explainer-2026-09-17/voice-variants/fish-pupkin/narration.md>), [субтитры](</experiments/voice-ai/archive/c/videos/webrtc-explainer-2026-09-17/voice-variants/fish-pupkin/subtitles.srt>), [измеренный таймлайн](</experiments/voice-ai/archive/c/videos/webrtc-explainer-2026-09-17/voice-variants/fish-pupkin/src/film-timeline.json>).
- [Транскрипция образца и происхождение](</experiments/voice-ai/archive/c/videos/webrtc-explainer-2026-09-17/voice-variants/fish-pupkin/reference-transcript.md>), [параметры синтеза](</experiments/voice-ai/archive/c/videos/webrtc-explainer-2026-09-17/voice-variants/fish-pupkin/synthesis-manifest.json>), [контроль качества](</experiments/voice-ai/archive/c/videos/webrtc-explainer-2026-09-17/voice-variants/fish-pupkin/QC.md>).

## Голос и ограничения

Входной образец — 19,40 с из файла `локальный источник Локально извлечённый [WAV](#archive-availability) имеет SHA-256 `9415f693598c54d004b6ac20d7a750527a8f5321281f74a843cadc86917a63c0`. Транскрипция сделана локальным faster-whisper и сверена с полной записью; человеческого прослушивания образца не было. Пользователь подтвердил наличие разрешения на использование записи и голоса.

Для каждой фразы использован разовый [`ReferenceAudio`](<https://docs.fish.audio/developer-guide/sdk-guide/cookbook/oneshot-vs-persistent-cloning>) без создания сохраняемой модели голоса. Модель Fish: `s2.1-pro-free`, скорость `1.14`, формат MP3. Текст сцен и образец передавались в Fish Audio; не используйте этот вариант для закрытых материалов без отдельной оценки. Ключ вводился в скрытом терминальном запросе и не сохранялся в каталоге или репозитории. Бесплатная модель работает на [условиях Fish Audio](<https://docs.fish.audio/developer-guide/models-pricing/pricing-and-rate-limits>) и может иметь ограничения доступности и fair-use; возможность повторить сборку в будущем не гарантирована.

## Повторная сборка

Команды из этого каталога. Требуются Python 3, `uv` с `fish-audio-sdk`, ffmpeg/ffprobe, Node, Remotion-зависимости из корневого каталога ролика и локальный браузер Chrome. Синтез через Fish требует ключ API и отправляет туда образец и текст; сборка из уже сохранённых MP3 не требует ключа.

```bash
uv run --with fish-audio-sdk --no-project python synthesize.py
python3 build_audio.py
env -u NODE_OPTIONS ../../node_modules/.bin/tsc --noEmit
env -u NODE_OPTIONS node render.mjs stills
env -u NODE_OPTIONS node render.mjs pilot
env -u NODE_OPTIONS node render.mjs full
python3 mux.py
python3 final_qc.py
```

Синтез пропускает уже сохранённые блоки в `raw/`; для смены текста или параметров удаляйте только соответствующие MP3 после проверки имён. `build_audio.py` декодирует каждый блок в PCM 48 кГц и выравнивает таймлайн по 30 кадрам/с. Пустые интервалы между фразами задаются в кадрах; SRT берётся из того же таймлайна.

Версия основана на снимке исходников `772de4a` от 16.09.2026 и не является проверкой работающего кластера. Сцены 13–18 показывают предложения, не внедрённые изменения. Лицензия toolkit — [PolyForm Noncommercial](#archive-availability); у Remotion, шрифтов, исходной записи и Fish Audio собственные условия.
