Полноценный дубляж стоит дорого. Очень и очень дорого. Особенно это заметно в аниме. Чтобы у каждого героя был свой голос, а реплики попадали в движение губ, нужен переводчик, который перепишет текст под длину каждой фразы, режиссер, студия и отдельный актер на каждую роль, который вытянет то, что озвучил сэйю (так называют актеров дубляжа аниме). Фанатским командам такое и не снилось. Почему? Как я и сказал, все упирается в деньги, поэтому фанатская озвучка обычно закадровая: один-три человека читают за всех героев поверх приглушенного японского оригинала, перевод уже сделали энтузиасты и выложили субтитры, а зритель, в итоге, слышит обе дорожки сразу.

Но сейчас же есть нейросети, и они продавали (и продолжают продавать) идею мира, в котором языковой барьер сломан. ElevenLabs продает дубляж как услугу, YouTube уже переводит голос в роликах части каналов автоматически, а открытые модели клонируют голос по нескольким секундам звука и запускаются на домашней видеокарте. Для фанатов это выглядит как мечта: взять голос актера дубляжа прямо из серии, заставить его говорить по-русски и уложить слова в губы. Трудностей у такой мечты четыре. Давайте по порядку. 

Четыре трудности

Голос должен остаться голосом героя, игра должна остаться игрой, реплика должна попасть в губы персонажа, а русский должен звучать действительно «по-русски». Про последнее обычно говорят меньше всего, хотя именно на этом я застрял дольше, чем на всех остальных проблемах вместе взятых.

Проверял я на своем любимом JoJo's Bizarre Adventure, на новом сезоне, который сейчас только выходит. В отрывке одиннадцать реплик на троих (Джонни, Джайро и Бумбум). 12 дней я пытался сделать озвучку на своей GTX 1660 Super с 6 ГБ видеопамяти и 8 ГБ оперативки, три четверти которой обычно уже чем-то заняты. 

Но каждая попытка заканчивалась по одному из двух сценариев. В первом Джонни звучал похоже, но с таким акцентом, будто учил русский по разговорнику в самолете до Токио. Во втором речь была чистой, зато голос принадлежал кому угодно, только не ему. Потом я провел вечер за компьютером друга с RTX 4080, а решение в итоге нашлось на моей же 1660, и вот что вышло в последней версии. 

Тест озвучки OmniVoice на GTX 1660. Видеоряд: аниме «JoJo’s Bizarre Adventure».

Дальше моя история повествует о том, как проходили 12 дней на одной машине, что поменял один вечер, в какой модели в итоге нашелся акцент и как решение все это время пролежало в соседней папке. 

Перед тем как продолжить, одна ремарка — многие элементы в этой статье могут показаться избыточными для рядового пользователя или интересными только узкому кругу читателей. Но выбрасывать их я посчитал неправильным (ведь есть же люди, которым интересно поглубже окунуться в суть). Поэтому если вы один из них, то особо сложные моменты я обернул в спойлер с пометкой «техническое отступление». Все, не отвлекаю, приятного чтения.

12 дней на GTX 1660

Сначала про то, где клонирование уже работает. На своей 1660 я экспериментировал с роликами, озвученными ИИ (забавы ради), клоном своего голоса через OmniVoice, и образцом служили десять секунд моей же русской речи. Этот клон я после нескольких проб признал очень достойным. Вот живая запись и клон, который читает тот же текст и немного больше:

Сравнение оригинала и клона голоса (OmniVoice).

С JoJo я начал с той же OmniVoice. Схема казалась очевидной: каждую реплику клонировать с японской реплики того же героя в том же месте серии. У каждой фразы своя эмоция, значит, модель заберет оттуда и голос, и подачу. 

Голос она копировала хорошо, но вместе с ним в русский текст переезжал и японский акцент, и короткий крик «Джайро!» выходил то «Джайло», то «Зайло», а еще добавьте странный роботизированный привкус, который, вероятно, перекочевал от хрипотцы сказанной фразы.

9 октября я перебрал почти все модели для генерации речи, что помещались в мои 6 ГБ. Higgs, CosyVoice и Chatterbox с японским образцом дали тот же акцент. Русская ESpeech на базе F5 говорила чисто, но расставляла паузы в странных местах и читала с интонацией школьника у доски. Seed-VC поверх нее перекрашивал голос в Джонни и возвращал акцент обратно. К вечеру в папке проекта лежало пятнадцать подпапок с вариантами.

По цифрам лучше всех выступил X-Voice. Whisper признавал его речь русской на 85–98%. Правда, слушать это было очень тяжело. Акцента было уж очень много, да и интонация отдавала робовойсом. В общем, никто из героев так бы не разговаривал. Тогда я в первый раз увидел, как метрика «русскости» уверенно хвалит то, что уши бракуют, и к этому мы еще вернемся.

Сравнение OmniVoice и X-Voice. Видеоряд: аниме «JoJo’s Bizarre Adventure».

Последним в тот день шел RVC. Я вытащил голоса из всей третьей серии, вручную разметил, кто где говорит (автоматическое сравнение голосов на аниме путало Джонни с Андре и Маунтейн Тимом), и набрал две с половиной минуты чистого Джонни (что маловато). Модель обучилась за 25 эпох, я прогнал через нее реплики X-Voice, и вот что вышло.

Тест связки X-Voice и RVC Джонни на GTX 1660. Видеоряд: аниме «JoJo’s Bizarre Adventure».

На следующий день я подобрался к цели ближе всего. OmniVoice звучала прилично, если образцом служил ее же русский дубль, а в тексте не было: «ч, ж, щ, ш, ц, л, ы» и длинных скоплений согласных (то есть всех тех мест, где акцент резал ухо сильнее всего). И на паре реплик Джонни это звучало прекрасно. Но попробуйте перевести «Что за судья Цеппели?!» без «ц» и «ч», и станет понятно, почему эта ветка дальше не пошла. 

А 20 октября я полез внутрь модели. Внутри OmniVoice работает языковая модель Qwen, и я искал в ней нейроны японского акцента: прогнал одни и те же тексты с японским образцом Джонни и с русским, сравнил средние активации MLP и нашел около 1 900 нейронов из 86 000, которые заметно отличались. Я сдвигал эти нейроны в «русскую» сторону по-разному, и акцент оставался везде. Потом попробовал другой рычаг. В слоях 16–21 нашлись головки внимания, которые с каждого кадра новой речи прицельно смотрят в образец. Когда я заставил их смотреть на образец равномерно, японский выговор начал слабеть, а голос остался более-менее похожим. Из этого опыта следовало, что модель списывает акцент с образца кадр за кадром, и обычными настройками генерации это не выключить.

21 октября на своей машине (сильно сказано, понимаю) я попробовал еще одну схему: произнести текст своим собственным клоном через OmniVoice, наложить на него мелодию японской фразы через Praat и перекрасить тембр в Джонни. Все двенадцать вариантов звучали ужасно, так что даже не стал их прикладывать. Но в тот же день у меня появилась возможность провести вечер за RTX 4080 MSI Suprim друга.

ИИ‑роутер — доступ к 400+ моделям из одной панели

Подключите OpenAI‑совместимый шлюз по единому API‑ключу. Настраивайте сквозную аналитику, отслеживайте лимиты и квотируйте ресурсы.

Запустить ИИ‑роутер →

Один вечер на 4080

У друга 16 ГБ видеопамяти, 48 ГБ оперативки и Ryzen 7 9800X3D. Этого хватает на Fish Audio Drama 3, свежую модель на 35 млрд параметров (в сборке W4A8 около 25 ГБ), которую моя машина даже не загрузила бы. Запускал я ее через ComfyUI, а весь остальной конвейер собрал на Python: нарезка, проверка распознавателем, перенос тембра, автоотбор и сведение.

Техническое отступление: почему 25 ГБ влезают в 16 

Drama 3 устроена как смесь экспертов (MoE). Внутри каждого слоя лежит много параллельных блоков-экспертов, а маршрутизатор на каждый шаг включает только несколько из них. Большая часть весов в любой момент простаивает, поэтому сборка, которую я брал, держит экспертов в оперативке, а в видеопамяти постоянно живет только общая часть модели. 

Название сборки W4A8 значит, что веса хранятся в четырех битах, а вычисления идут в восьмибитных активациях. На моем ПК этот трюк не спас бы: восьми ГБ оперативки не хватит даже на экспертов.

Пробный запуск я сделал на мемной реплике Годжо Сатору из «Магической битвы». Фраза «そうか、そうだな、そうかもな。» по-русски — «Вот как. Да, пожалуй... Может, и так.» Первый дубль вышел с японским акцентом. Тогда я дописал в промпт ремарку Direction: fluent native Russian speech with no foreign accent, и два дубля из четырех распознаватель речи разобрал правильно. На первый запуск ушло около 55 секунд, и стало ясно, что работать с этой моделью на 4080 можно, да не просто можно… Досмотрите ролик до момента, где я прописал ремарку, думаю, что вам станет понятно мое воодушевление в тот момент. Конечно, над интонацией стоило посидеть подольше, но акцент у меня был на базовых функциях модели, и я этим остался очень доволен.

Тест модели Drama 3 с акцентом и ремарками.

Попытка в лоб

Сначала отрывок нужно было разобрать на части. Скрипт вырезал из серии первые 90 секунд видео, японскую дорожку и субтитры. Дорожку на голоса и фон делил BS-RoFormer, и сейчас это один из самых сильных разделителей для вокала. На 1660 у меня для этого был Demucs. Детектор речи уточнил границы каждой реплики внутри окна субтитров. Из голосовой дорожки вырезался японский оригинал каждой реплики, его расшифровывал Qwen3-ASR, потому что Drama 3 для клонирования нужен точный текст образца.

Перевод я переписал под длину слота с сохранением смысла и к каждой реплике добавил английскую ремарку подачи.

#

Кто

Слот, с

Русская реплика

u01

Джонни

2,59

Джайро...! Те слова Бумбума...

u02

Бумбум

4,33

Думаешь, за твоей жизнью охотимся только мы-ы-ы?

u03

Бумбум

3,71

Ведь за твою голову назначена награда!

u04

Джонни

2,09

Что это вообще значит?

u05

Джайро

2,02

Сказал же, не твое дело.

u06

Джонни

1,48

Нет уж, ты ответишь!

u07

Джонни

3,66

Я имею право знать! Я ведь чуть не погиб!

u08

Джонни

1,57

Что за «судья Цеппели»?!

u09

Джонни

3,72

И миссис Робинсон тоже... пришел за наградой за тебя?

u10

Джонни

1,92

Зачем ты участвуешь в гонке?

u11

Джонни

0,58

Отвечай!

Первая гипотеза повторила мою ошибку с 1660: пусть Drama 3 клонирует голос прямо с японской реплики, тогда совпадут и тембр, и манера. Модель сделала по четыре дубля на реплику, и акцент в них стоял такой густой, что генерацию я остановил на середине. На криках и быстрых репликах выходило заметно хуже, чем на спокойной фразе Годжо Сатору. Ремарка про родной русский с этим уже не справлялась.

Клонирование голоса с японской реплики в Drama 3. Видеоряд: аниме «JoJo’s Bizarre Adventure».

Техническое отступление: как клон списывает акцент

Клонирование по нескольким секундам звука устроено как продолжение записи. Модель получает токены образца, его расшифровку и новый текст, и генерирует так, будто тот же человек в той же записи продолжает говорить дальше. Отсюда и требование точной расшифровки: модель должна понимать, какой звук в образце какой букве соответствует. Из того же устройства растет и акцент: «продолжить того же человека» значит продолжить и то, как он произносит звуки, а японец в образце произносит их по-японски.

В японском почти все слоги открытые, из согласной и гласной, согласные подряд встречаются только как удвоенная согласная или вместе с н. Звук между русскими р и л там один, твердого л отдельно нет вообще, ы тоже нет, а ш, ж и ч звучат мягче русских, щ нет совсем. Когда модель встречает в русском тексте «вздрогнул», ей нечего подсмотреть в образце для такого скопления согласных, и она берет ближайшее японское: вставляет призвуки гласных и смягчает. Тогда мне показалось кристально ясным то, почему на 1660 помог текст без ч, ж, щ, ш, ц, л, ы и длинных скоплений, ведь я выкинул именно те места, где японская фонетика расходится с русской сильнее всего.

Слова отдельно, голос отдельно

Раз голос и акцент приходят из образца вместе, их нужно получать из разных мест. Drama 3 генерирует речь вообще без образца, как носитель языка, а подачу берет из ремарки. Потом Seed-VC перекрашивает получившийся голос в тембр японского оригинала той же реплики. В первой половине конвейера образца нет совсем, и японской фонетике там просто неоткуда взяться.

Ремарки писались под сцену: Бумбум с его «мы-ы-ы» получил a young man taunting menacingly, mocking, dragging out the last word, Джайро с отказом отвечать стал a grown man, cold, curt and dismissive, а у Джонни почти везде есть слово shouting.

Тест генерации эмоций по ремарке в Drama 3 (без аудиообразца).

Каждый дубль прогонялся через распознаватель, который сравнивал услышанное с задуманным. Без этой проверки в монтаж попали бы шедевры вроде «Стрелец, огромен, крут, крут, и дисплей» на месте джайровского «Сказал же, не твое дело». Короткое «Отвечай!» у разных сидов превращалось в «Матвей Чай» и «Диншай» (мое ухо слышит другое, но если прислушаться, то распознаватель не так и далек от истины). В итоге, из первых трех сидов в брак ушла заметная часть, поэтому сидов потом стало восемь.

Тест распознавания речи после генерации в Drama 3. 

Техническое отступление: что делает Seed-VC

Seed-VC v1 разбирает исходную речь на две части. Что сказано, он берет из исходника через энкодер Whisper: тот обучен распознавать речь, и его внутренние признаки хорошо описывают звуки и почти не зависят от голоса. Чей это голос, дорисовывает диффузионный трансформер, которому японский клип подан как пример прямо в контексте, плюс вектор голоса от CAM++. Готовую спектрограмму в звук превращает вокодер BigVGAN. Вариант на 44,1 кГц дополнительно получает кривую высоты тона исходника, поэтому лучше держит интонацию криков.

Первый тест переноса тембра я сделал на реплике Бумбума u02, и за весь вечер это оказался лучший кусок. Позже я понял, чем этот тест отличался от всего, что было после. Seed-VC конвертировал его без растяжки (length_adjust = 1.0), а японский образец у этой реплики самый длинный в отрывке.

Тест связки Drama 3 и Seed-VC. Видеоряд: аниме «JoJo’s Bizarre Adventure».

Для первой версии я взял Seed-VC и растягивал каждую реплику под ее слот, разрешив отклонение до 25%. 

Слушать v1 было уже можно, но три момента резали ухо. Растяжка портила звук. Вариант модели на 22 кГц звучал глуховато, как из соседней комнаты. А «Отвечай!» длилось целую секунду при слоте в 0,58, и Джонни продолжал кричать, когда рот у него уже закрылся.

Автоотбор без ушей

Дальше я хотел, чтобы лучший дубль выбирался вообще без моего участия. Каждая реплика получила восемь сидов, всего 88 исходников. В работу шли только дубли, где распознанный текст совпадал с задуманным хотя бы на 0,85, и из них три, чья естественная длина ближе всего к слоту. Автоотбор — чуть более скучная на мой взгляд вещь, чем все что было выше, но если интересно то, как это технически реализовано, добро пожаловать под спойлер.

Техническое отступление: чем меряли

Слова проверял Qwen3-ASR, а сравнивал услышанное с задуманным обычный difflib.SequenceMatcher из стандартной библиотеки Python по словам в нижнем регистре. Перед сравнением из текста выкидывались знаки и одиночное «ы», иначе «мы-ы-ы» Бумбума ломало бы совпадение на ровном месте.

Сходство голоса считал CAM++, модель верификации диктора, та же, что Seed-VC использует внутри. Она превращает запись в вектор из 192 чисел, и чем ближе косинус между векторами дубля и японского оригинала к единице, тем больше голоса похожи. Обучена эта модель на китайской речи, так что в моем случае она сравнивала русскую речь с японской, имея опыт только с третьим языком... Для отсева брака этого, конечно, хватает, а вот для тонких различий уже вряд ли.

Естественность оценивал UTMOS, предсказатель средней оценки слушателей по шкале от 1 до 5. Его учили на оценках, которые люди ставили синтезированной речи (в основном спокойной и начитанной). А аниме-крик для него выглядит как сломанный звук, поэтому даже хорошие дубли часто получали 1,3–1,7, и порог пришлось ставить на 1,15, то есть чуть выше откровенной каши.

Длину звучащей части считал простой порог: звук режется на окна по десять миллисекунд, и звучащими считаются окна громче, чем максимум минус 35 дБ. Все, что между первым и последним таким окном, и есть длина реплики, которую сравнивают со слотом. Штраф идет по логарифму отношения, чтобы реплики вдвое длиннее и вдвое короче слота наказывались одинаково.

По итогу фильтр прошли 46 конверсий из 66.

По ходу нашлись две ошибки в самой проверке. В режиме автоопределения языка распознаватель записывал короткие русские фразы латиницей, будто это чешский, и реплика u01 отбраковывалась целиком, пока я не зафиксировал русский язык принудительно. Вторая ошибка была в пороге. При мягком пороге совпадения текста проходили сломанные фразы, и порог пришлось поднять до 0,9.

В итоге автоматика выбрала такие дубли.

#

Дубль

Тембр (CAM++)

Длина / слот, с

u01

s2, 44k

0,67

2,41 / 2,59

u02

s5, 22k

0,76

4,46 / 4,33

u03

s2, 22k

0,79

3,72 / 3,71

u04

s5, 44k

0,67

2,33 / 2,09

u05

s3, 22k

0,75

2,00 / 2,02

u06

s1, 22k

0,78

1,46 / 1,48

u07

s1, 22k

0,77

3,70 / 3,66

u08

s5, 22k

0,67

1,55 / 1,57

u09

s3, 22k

0,86

3,64 / 3,72

u10

s1, 44k

0,78

1,92 / 1,92

u11

s6, 44k

0,59

0,51 / 0,58

С таймингом вопрос закрылся полностью: большинство реплик попадает в слот с точностью до нескольких сотых секунды, без пластилиновой растяжки, и с разборчивостью тоже все в порядке.

Перед этим я откалибровал метрики на том самом тесте u02, который понравился больше всего. У него CAM++ 0,71 и UTMOS 1,30, у дубля, который автоматика выбрала для v2, CAM++ 0,76. По цифрам v2 лучше. Брак метрики отсеивают более-менее, а вот лучший на слух вариант находить не умеют.

Сравнение двух версий озвучки. Видеоряд: аниме «JoJo’s Bizarre Adventure».

Whisper слышит польский

Раз акцент остался единственной проблемой, его захотелось превратить в число. Whisper при распознавании выдает вероятность каждого языка, и я решил считать долю русского мерой акцента. Логика простая: чем сильнее японский выговор, тем меньше Whisper уверен в русском.

Что мерили

P(ru)

Комментарий

Японские оригиналы

около 0

P(ja) от 0,93 до 1,00

Исходники Drama 3

0,94–1,00

кроме u01 (0,21, имена собственные) и u11 (0,49, полсекунды звука)

После Seed-VC

местами падает

u09 с 0,99 до 0,45, u10 с 0,99 до 0,16 (Whisper слышит польский), u11 0,03

Понравившийся тест u02

0,70

у той же реплики в v2 0,96

Последняя строка ломает всю идею. Кусок, который мне нравится больше всех, по этой мере звучит самым «нерусским», а версия, где я слышу акцент, получает почти единицу. Тот же прибор во второй раз уверенно показал противоположное тому, что слышат уши, ровно так же, как было с X-Voice на 1660, поэтому для целевой метрики он не годится.

Техническое отступление: почему Whisper прощает акцент

Язык Whisper определяет первым же шагом декодера: перед текстом он предсказывает специальный токен языка, один из 99, и вероятность этого токена я и брал за меру. Учили Whisper на 680 000 часов звука из интернета с готовыми расшифровками, и язык записи там определялся по языку текста. Русская речь с японским, армянским или английским акцентом в таких данных подписана как русская, и модель старательно училась узнавать русский именно сквозь акцент. Вопрос «насколько это похоже на носителя» ей никто не задавал, и с вопросом «какой это язык» она справляется как раз благодаря тому, что акцент игнорирует. Падения до польского и литовского на коротких репликах говорят скорее о каше в звуке, чем об акценте.

Зато таблица показывает, где искать. Исходники Drama 3 Whisper признает русскими почти без исключений, и на слух они чистые, а провалы начинаются после конверсии.

Ты ожидал Drama 3, но это был я, Seed-VC

Улики сходились в одну точку: Drama 3 без образца говорит чисто, а после Seed-VC появляется акцент. Тогда я попробовал Seed-VC в режиме, где он переносит только тембр, на реплике u07, и результат вышел хуже по обоим пунктам: акцента стало еще больше, а тембр Джонни не сохранился.

Последним проверялся OpenVoice, который из образца берет только эмбеддинг голоса, сам клип в генерации не участвует, и фонетике там перетечь некуда.

Сходство тембра CAM++

UTMOS

Seed-VC v1

0,58–0,84

1,3–2,9

OpenVoice v2

0,29–0,50

1,5–3,4

OpenVoice звучит естественнее, только голос почти не похож на персонажа. Получилась та же развилка, что на 1660: модель либо смотрит в образец и забирает из него и тембр, и акцент, либо в образец не смотрит и не дает ни того, ни другого.

Сравнение моделей Seed-VC v1, Seed-VC v2 и OpenVoice. Видеоряд: аниме «JoJo’s Bizarre Adventure».

Механизм у Seed-VC тот же, что у OmniVoice и у Drama 3 с образцом. Японский клип подается как пример прямо в контекст, и вместе с тембром модель протаскивает в русскую речь японскую фонетику. На 1660 я видел это изнутри, через головки внимания, которые прицельно смотрят на образец. На 4080 то же самое проявилось снаружи, через сравнение моделей. Ремарка «без акцента» помогает частично и только там, где ее вообще читают, а Seed-VC ремарок не читает.

Ограничения тут серьезные. Реплик всего одиннадцать, слушатель один, и это я. Whisper в измерителе был small. CAM++ сравнивает русскую речь с японской, имея опыт с китайской. Акцент я оценивал только на слух, потому что прибора, который бы его ловил, у меня так и не появилось. Образцы короче секунды дают кашу и плохой тембр.

Целиком отрывок в версии с 4080 выглядит так, вместе со вступлением и опенингом, которые я оставил японскими.

Длинный тест русского ИИ-дубляжа в Drama 3 (90 секунд). Видеоряд: аниме «JoJo’s Bizarre Adventure».

Решение лежало в соседней папке

После вечера на 4080 я вернулся к своей 1660 и полез в старые папки проекта, чтобы понять, какие из прошлых опытов можно пересобрать по этому принципу. В папке от 10 октября лежал тот самый Джонни, который прекрасно звучал на тексте без ч, ж, щ, ш, ц и л. Тогда я записал успех на счет букв и бросил ветку. Теперь я смотрел на ту же папку другими глазами: образцом там служила русская реплика Джонни, которую OmniVoice сама сделала из японской.

25 октября я проверил это напрямую. Образец тот же, модель та же, зато текст обычный, со всеми ч, ц и л, включая «Что за судья Цеппели?!». Акцент так и не появился, и я впервые за две недели подумал: «это идеально». Работал русский образец, буквы тут были ни при чем. Решение пролежало в соседней папке две недели, пока я искал нейроны акцента и гонял Drama 3 на чужой видеокарте, и именно этот дубль вы видели в самом начале статьи.

Техническое отступление: ксерокопия без акцента

Модель продолжает образец, поэтому копирует из него все, что там есть. Если образец японский, в продолжение переезжают открытые слоги и мягкое л. Если образец уже русский, пусть и сказанный тем же голосом, японской фонетике взяться неоткуда, и модель продолжает русскую. Получается ксерокопия в два шага. 

Первое поколение, русская реплика с японского образца, несет тембр героя и акцент, а второе поколение, клон уже с этой русской реплики, забирает в основном тембр, и японских звуков остается меньше. Строго говоря, это пока гипотеза: отсутствие акцента (или его очень небольшое присутствие) я слышу ушами, а прибора, который бы это подтвердил, у меня так и не появилось.

Отсюда схема для каждого героя. Японский голос нужен ровно один раз, чтобы получить первую русскую реплику героя, а дальше герой клонируется сам с себя по-русски. Для Джонни такой репликой стал дубль от 10 октября. Для Джайро нашлась удачная реплика из опытов с русской ESpeech 9 октября. Бумбуму достался кусок, который я хвалил больше всего за весь вечер на 4080: тест u02, где Drama 3 говорила без образца, а Seed-VC переносил тембр без растяжки.

Конвейер на 1660 я собрал заново. На каждую реплику OmniVoice делает шесть дублей, скорость подбирается под слот, только замедлять реплику не стал, растянутая речь звучит вяло, и пусть уж Джонни договорит чуть раньше, зато бодро. В конце каждого куска модель произносит служебное «Вот.», которое потом отрезается по паузе, иначе последнее слово реплики обрывается на полуслоге (хоть обрыв я и починил через костыли, но почему обрывается, я так и не понял. Жду пояснительную бригаду в комментариях). 

Дальше идет автопроверка: Whisper medium сверяет слова, отдельный счетчик ловит растянутые слова, длина сравнивается со слотом с допуском 12%, а паузы с японским оригиналом. Все, что ее прошло, попадает на маленькую страничку, где японский оригинал стоит рядом с дублями, а под каждым дублем три кнопки: «конфетка», «так себе» и «брак». Одиннадцать реплик по шесть дублей я прослушал минут за десять.

Формула вкуса

Десять минут на 90 секунд слушать нормально, а на серию из 408 реплик ушей уже не хватит. Поэтому все мои клики на страничке (которая была сделана для автоотбора) сразу писались в файл, и по ним я попробовал найти, чем конфетка отличается от остального. Всего я оценил 68 дублей: 14 конфеток, 18 «так себе» и 36 брака. Для каждого дубля я посчитал все, что умел: похожесть голоса по CAM++, естественность по UTMOS, точность слов, попадание в слот, темп в буквах в секунду и живость по размаху высоты и громкости. Добавились и две вещи, которых раньше не было: насколько мелодия дубля повторяет мелодию японской реплики и насколько совпадает рисунок громкости.

Мелодию я снимал как кривую высоты тона в полутонах, выравнивал дубль и оригинал по времени через DTW, который растягивает одну кривую вдоль другой так, чтобы похожие места встали друг напротив друга, и считал корреляцию. Сравнивал я дубли только внутри одной реплики, парами «конфетка против остальных», и если признак ничего не различает, то конфетка выигрывает у него в половине пар. 

Совпадение мелодии с оригиналом выиграло в 70% пар, совпадение громкости — в 66%, темп — в 59%. Точность слов дала ровно 50%, UTMOS — 47%, а CAM++ — всего 33%, то есть у дублей, которые мне нравятся, голос по этой метрике чаще похож на образец меньше.

Из трех лучших признаков сложилась простая формула: сумма z-оценок мелодии, громкости и темпа внутри реплики. На первых 56 оценках лучший по формуле дубль совпал с моей конфеткой в шести репликах из девяти, тогда как случайный выбор угадал бы примерно в двух с половиной. Чтобы не обмануть себя подгонкой, я сгенерировал новые дубли для реплик u02–u04, которые в подборе формулы не участвовали, сначала оценил их на слух и только потом сравнил. Формула оказалась права в десяти парах из одиннадцати, а брак во всех трех репликах ушел в конец списка.

Смысл у формулы довольно прост, если не вдаваться в цифры. Хороший дубль повторяет рисунок игры японского актера, где голос поднимается, где бьет и где затихает, и при этом звучит бодро. Брак в среднем медленнее, 9,6 буквы в секунду против 10,9, и мелодией похож на оригинал меньше, 0,68 против 0,78. Все, что я мерил раньше ( слова, слот и похожесть голоса), хорошо отсеивает кашу и почти ничего не говорит о вкусе.

Во что я уперся

Первая стена называется Бумбум. Джонни в итоге звучит идеально (на мой субъективный и очень замыленный слух), а вот Бумбум вышел на твердую троечку. К тому же первую русскую реплику для него дала Drama 3 на 4080, так что целиком на 1660 цепочка пока не замыкается. Замену я искал на своей машине. Qwen3-TTS VoiceDesign собирает голос по текстовому описанию и говорит по-русски чисто, Whisper разобрал у нее 23 реплики из 24 без единой ошибки. После Seed-VC в тембр героя Бумбум вышел у меня без акцента, а Джонни снова с акцентом, так что пока непонятно, сколько дублей и их ксерокопий нужно делать.

Вторая стена в самом Seed-VC. Я проверил, зависит ли перенос акцента от длины образца. Бумбум с образцом в полторы секунды акцент не получил, а Джонни с образцом в 13 секунд, склеенным из четырех реплик, свой акцент сохранил. На этом месте я запутался окончательно...

Третья стена в тексте перевода. Протяжные гласные вроде бумбумовского «мы-ы-ы» модели тянут до конца лимита, пока звук не превратится в писк, так что переводчику под нейросеть придется обходиться без них. Ударения автоматически не проверяются вовсе. Higgs, который с образцом говорил по-русски, без образца не говорит совсем и выдает вместо речи гул, который Whisper подписывает как «СПОКОЙНАЯ МУЗЫКА».

Железо тоже напоминало о себе. Перед каждым запуском Qwen или OmniVoice приходилось закрывать OneDrive, Steam и лишние окна, иначе Windows жаловалась, что файл подкачки слишком мал. Whisper large-v3 с разметкой слов вылезал из шести ГБ видеопамяти в общую и тратил по 36 секунд на дубль, поэтому проверку делает medium. Две модели на видеокарте одновременно не уживаются, так что каждый следующий шаг ждет, пока досчитается предыдущий.

Главная стена осталась прежней: прибора для акцента у меня нет. Whisper трижды уверенно хвалил то, что уши браковали, CAM++ и UTMOS отсеивают брак и не находят лучший дубль, а формула вкуса ловит игру и молчит про акцент. Последнее слово пока за моим ухом (а говорили, что ИИ всех заменит).

Так насколько мы близки

Теперь про революцию. В серии 408 реплик, в моем отрывке — 11, то есть серия больше отрывка в 37 раз. На 1660 отрывок в 90 секунд занимает около 25 минут работы машины и десять минут моих ушей, так что целая серия по шесть дублей на реплику укладывается в одну ночь генерации, а формула вкуса сократит прослушивание до спорных мест. Конвейер от субтитров до видео уже работает без человека: переводит под длину слота, генерирует, отсеивает брак, укладывает реплики в губы и сводит с фоном.

И все-таки… Революция, на мой взгляд, немного откладывается. Главный вопрос у этой задачи уже не в клонировании голоса, а в клонировании без акцента. 

Ну и результат меня хоть и впечатлил, но до автоматизма его довести я так и не сумел (вернее, сумел, но не до того качества, которого мне хотелось бы добиться). Конечно, эксперимент с Drama 3 можно было продолжить: модель мне показалась очень перспективной, и, возможно, на ней тоже можно было бы избавиться от акцента.

Так что если у вас есть опыт работы с такими моделями, то милости прошу в комментарии, с радостью послушаю, как вы избавлялись от акцента (если у вас стояла такая задача) или вы концептуально знаете, как это решать. 

Комментарии (3)


  1. shadwar
    13.11.2026 08:24

    Если убрать за скобки совсем уж привередливых ценителей, для которых уже трагедия что липсинк чуть не попадает или интонации не всегда соответствуют, то вопрос только во времени и экономике.

    Если подобный нейросетевой перевод выходит в день релиза, а качественный дубляж с живыми актерами озвучки выходит примерно никогда или через годы и за дорого - то результат очевиден. Многие будут смотреть с нейросетевой озвучкой, которая ещё и с каждой новой моделью всё лучше, а классические студии озвучки будут терять заказы и доходы.


  1. longfreakingname
    13.11.2026 08:24

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

    собсно, что я делаю не так?

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


  1. remzalp
    13.11.2026 08:24

    Мне вот интересно попробовать такой пайплайн запустить на AMD Strix Halo, там "видео" памяти 128 гиг, правда ДДР5