Клонирование голоса из фильма «Проект «Аве Мария»: пайплайн за 2 дня | AiManual
AiManual Logo Ai / Manual.
22 Май 2026 Гайд

Клонирование голоса из фильма «Проект «Аве Мария»: полный открытый пайплайн за 2 дня

Пошаговый гайд по клонированию голоса персонажа из фильма с помощью открытых инструментов: ffmpeg, Demucs, Whisper, pyannote и RVC v2. Сделайте свой synthesis з

Вы серьёзно хотите клонировать голос Райана Гослинга из научной фантастики?

Честно? Я сам фанат «Проекта «Аве Мария». Когда вышел фильм, я сидел в зале и думал: «Вот бы заставить Райана (вернее, его персонажа Райланда Грейса) прочитать вслух мой конфиг Kubernetes». Звучит безумно, но технически это вполне реально. За два дня, используя только открытые инструменты, вы можете создать голосовую модель, которая будет звучать на 90% как оригинал. Без облачных API, без платных подписок.

💡
Я не юрист. Если вы решите клонировать голос актёра без разрешения — вас ждут серьёзные проблемы. Эта статья строго для образовательных целей и экспериментов с собственным голосом или голосом, на который у вас есть права. Например, чтобы озвучить свой подкаст голосом аниме-персонажа, которого вы придумали.

Проблема: откуда взять чистый голос, если в фильме есть музыка, шум и другие актёры?

У вас есть Blu-ray рип (или торрент, но я этого не говорил). В аудиодорожке перемешаны диалоги, музыка, звуки космического корабля, дыхание и, возможно, голос Rocky (инопланетного паучка). Вам нужно выделить только реплики Райана Гослинга — без фонового шума и чужих голосов. И сделать это так, чтобы модель RVC v2 смогла обучиться на чистом материале.

Звучит как задача для обработки сигналов, верно? На практике это пайплайн из четырёх этапов:

  1. Извлечение аудио и разбивка на фрагменты (ffmpeg + Demucs)
  2. Диаризация — определение кто и когда говорит (pyannote)
  3. Транскрипция и чистка (Whisper)
  4. Обучение модели RVC v2 и генерация

Почему именно RVC v2, а не коммерческие сервисы?

В 2026 году RVC (Retrieval-based Voice Conversion) остаётся золотым стандартом для локального клонирования. Он не требует тонны данных — достаточно 10-30 минут чистого голоса. Качество на выходе близко к ElevenLabs, но вы полностью контролируете процесс. Никаких цензур, никаких логов. И да, он работает на обычной видеокарте с 8 ГБ VRAM.

Есть альтернативы, например, Kanade Tokenizer, который работает на CPU, но качество пока уступает RVC для длинных фрагментов. Я рекомендую RVC v2 как основной инструмент.

Пошаговый план за 48 часов

1 День 1 — подготовка аудиоматериала (6-8 часов)

1.1 Извлекаем аудиодорожку

ffmpeg -i Project_Hail_Mary.mkv -map 0:a:0 -ac 1 -ar 44100 -b:a 192k original_audio.wav

Флаг -ac 1 переводит в моно — для обучения RVC это обязательно. Частота 44100 — стандарт для Voice Conversion.

1.2 Разделяем на источники с помощью Demucs

Demucs (модель Hybrid Transformer Demucs v4, 2025) умеет раскладывать аудио на 4 трека: bass, drums, other, vocals. Нам нужен только vocals.wav.

demucs --two-stems=vocals original_audio.wav -o ./separated

Это займёт час-два, в зависимости от длины фильма. Результат — файл vocals.wav с минимальным количеством шума. Не идеально, но терпимо.

1.3 Диаризация: находим реплики Райана

Теперь нужно понять, какие фрагменты вокала принадлежат Гослингу, а какие — другим персонажам. Используем pyannote-audio (версия 3.1, 2026).

⚠️ pyannote может ошибаться на перекрывающейся речи. Если в сцене одновременно говорят два героя, модель часто «схлопывает» их в одного. В статье «Диаразация в 2026: pyannote сломался на перекрывающейся речи, что делать?» я подробно разбирал, как решить эту проблему с помощью post-processing. Советую прочитать — это спасёт вам несколько часов.

pyannote-audio diarize --model pyannote/speaker-diarization-3.1 vocals.wav --output ./diarization.rttm

На выходе получаем RTTM-файл с временными метками для каждого спикера. Назовём их SPEAKER_00, SPEAKER_01 и т.д. Нам нужен тот, который говорит больше всего — скорее всего, это главный герой.

1.4 Нарезаем аудио по меткам

Скрипт на Python (ffmpeg-python) нарезает vocals.wav на фрагменты, соответствующие только нужному спикеру. Фильтруем фрагменты короче 1 секунды (они бесполезны для обучения) и с низкой громкостью.

import subprocess, json
# читаем RTTM, группируем по спикеру, выбираем SPEAKER_00
# режем ffmpeg: ffmpeg -i vocals.wav -ss start -to end -c copy snippet_%04d.wav

В итоге у вас может получиться от 200 до 600 фрагментов общей длительностью 20-40 минут чистого голоса. Этого более чем достаточно.

2 День 2 — обучение RVC v2 (8-10 часов)

2.1 Транскрипция для alignment

RVC v2 не требует транскрипции, но для точного выравнивания фонем внутри модели используются embedded features. Лучше всего предварительно прогнать фрагменты через Whisper (large-v3-turbo, 2026) и сохранить тексты. Это не обязательно для обучения, но поможет при постобработке.

whisper snippet_0001.wav --model large-v3-turbo --language en --output_dir ./transcripts

2.2 Подготовка датасета для RVC

Клонируем репозиторий RVC-WebUI (v2.5+). Создаём папку dataset/rylan_gray и копируем туда все нарезанные WAV-файлы. Убедитесь, что они моно, 44100 Гц, 16 бит.

# normalization
for f in dataset/rylan_gray/*.wav; do
  ffmpeg -i "$f" -af loudnorm=I=-16:TP=-1.5:LRA=11 "${f%.wav}_norm.wav" -y
done

2.3 Запуск обучения

В WebUI выбираем: Train -> Model name -> rylan_gray. Выставляем параметры:

  • Sample rate: 44100
  • Version: v2 (использует HuBERT + RVQ)
  • Pretrained: download latest (base для английского)
  • Batch size: 4 (для 8GB VRAM) или 2 (для 6GB)
  • Total epochs: 300 (обычно хватает 150-200)
  • Save every 50 epochs

Нажмите Train. Первая итерация загрузит HuBERT backbone, затем пойдёт обучение. На RTX 4060 (~8 ГБ) одна эпоха на 30 минутах данных занимает около 40 секунд. 200 эпох — примерно 2,5 часа.

2.4 Извлечение индекса

После обучения обязательно запустите Index - Extract feature для созданной модели. Это ускоряет инференс.

3 Генерация: заставляем Райана говорить ваши слова

Теперь самое весёлое. В том же WebUI на вкладке Inference:

  1. Загружаем модель rylan_gray.pth
  2. Вставляем аудиофайл с вашим голосом (или любым другим) — это будет source.
  3. Настраиваем pitch shift: обычно 0, но если голос выше/ниже оригинала, можно подкрутить.
  4. Нажимаем Convert.

Через 2-3 секунды получаем WAV, где ваша интонация и слова, но тембр — Райана Гослинга (ну, почти).

💡
Для реалистичности советуем использовать повышение качества через post-processing: подавить шумы (Noise Gate в Audacity), выровнять громкость и добавить лёгкую реверберацию комнаты. Если вы хотите speech-to-speech конверсию в реальном времени, посмотрите обзор лучших open-source инструментов — там есть решения с задержкой менее 500 мс.

Нюансы и грабли, на которые я наступил

  • Слишком мало данных. Если фильм короткий, или у персонажа мало реплик — модель будет звучать как робот. Минимум 15 минут чистого голоса, лучше 25+.
  • Эмоции. RVC v2 передаёт эмоции из исходного аудио. Если вы говорите монотонно, на выходе будет монотонный гослинг. Используйте выразительный source.
  • Перекрывающаяся речь. В фильме «Проект «Аве Мария» много сцен, где Грейс говорит одновременно с Rocky или с бортовым компьютером. Demucs их разделит, но вокальные остатки могут попасть в датасет. Лучше вручную прослушать подозрительные фрагменты.
  • Права. Даже если вы используете модель для личных целей, публиковать её в открытом доступе — риск. Во многих юрисдикциях голос считается биометрией, а клонирование без согласия — нарушением. Прочитайте статью «Голос как товарный знак» — Макконахи уже запатентовал свой голос, и индустрия катится к тому, что клонирование без лицензии станет дорогим удовольствием.

Куда бежать, если что-то пошло не так?

Demucs выдаёт шипение? Попробуйте модельhtdemucs_ft — она лучше для киношных саундтреков.
pyannote не видит второго спикера? Возможно, перекрывающаяся речь. Я подробно описал решение в статье про диаризацию.
RVC отказывается учиться? Проверьте, чтобы все WAV были моно, 44100, 16 бит. Битые файлы или тишина — частая причина ошибок.
Голос звучит неестественно? Увеличьте количество эпох до 400, но следите за переобучением (loss не должен падать ниже 0.3 до 200 эпох).

Кстати, если вы хотите использовать голосовой ввод для управления системами — на Хабре есть отличное исследование эффективности голосового ввода вместо клавиатуры.

Лайфхак: ускорение в 4 раза на CPU

На этапе инференса можно использовать Qwen3-TTS.cpp, который даёт 4-кратное ускорение даже на MacBook Air. Но это больше для TTS, а не для voice conversion. Если вам нужно быстрое прототипирование, а не максимальное качество — присмотритесь.

В любом случае, главное — не бойтесь экспериментировать. За два дня вы можете получить результат, о котором 5 лет назад мечтали только голливудские студии. И да, когда ваш Kubernetes заговорит голосом Райана Гослинга — пришлите мне аудио. Я посмеюсь.

Подписаться на канал