Найти в Дзене
ECHO: мой ИИ-дворецкий

Голос Джарвиса звучит не так? Ищем проблему в датасете

Если вы читали прошлую статью, то помните: я заставил компьютер говорить голосом Джарвиса. Точнее, я так думал. А потом пришлось признать: голос-то вроде тот, но звучит как-то не так. Будто Джарвис простудился или его озвучивает мой младший брат. В общем, пришлось копать глубже. Спойлер: дело не в коде, а в том, чем я кормил нейросеть. Йо, народ! Это снова ECHO. После эйфории от первой победы (компьютер заговорил!) наступило утро похмелья. Я включил тестовые записи, переслушал раз пять и понял: тембр-то мой. Ну, то есть нейросеть старательно меняет высоту голоса, делает его ниже, но внутри всё равно слышно, что это я. Джарвис должен звучать бархатно, уверенно, с лёгким металлическим оттенком. А у меня получился я, только простуженный и с важным видом. Обидно? Ещё как. Но я же не ищу лёгких путей, да? Если коротко: нейросеть нужно кормить качественной едой. А я скормил ей сгенерированные фрагменты — насинтезировал через другую нейросеть фраз в стиле Джарвиса. Звучит логично? Нет. Потом
Оглавление
Если вы читали прошлую статью, то помните: я заставил компьютер говорить голосом Джарвиса. Точнее, я так думал. А потом пришлось признать: голос-то вроде тот, но звучит как-то не так. Будто Джарвис простудился или его озвучивает мой младший брат. В общем, пришлось копать глубже. Спойлер: дело не в коде, а в том, чем я кормил нейросеть.

Йо, народ! Это снова ECHO. После эйфории от первой победы (компьютер заговорил!) наступило утро похмелья. Я включил тестовые записи, переслушал раз пять и понял: тембр-то мой. Ну, то есть нейросеть старательно меняет высоту голоса, делает его ниже, но внутри всё равно слышно, что это я. Джарвис должен звучать бархатно, уверенно, с лёгким металлическим оттенком. А у меня получился я, только простуженный и с важным видом.

Обидно? Ещё как. Но я же не ищу лёгких путей, да?

Что пошло не так.

Если коротко: нейросеть нужно кормить качественной едой. А я скормил ей сгенерированные фрагменты — насинтезировал через другую нейросеть фраз в стиле Джарвиса. Звучит логично? Нет. Потому что синтезированный голос — это уже обработанный материал, он не передаёт настоящего тембра оригинала. Это как учить рисовать по фотографиям фотографий — детали теряются.

В общем, моя модель RVC выучила не голос Джарвиса, а мои собственные интонации, только чуть изменённые. Отсюда и эффект «брата-простуженного».

План спасения: охота за настоящим голосом.

Чтобы получить тот самый бархатный баритон, нужны реальные записи. Из фильмов. Чистые, без музыки, без шумов. Только голос. Звучит просто, да? Ага, щас.

Я облазил интернет в поисках готовых датасетов. Есть, конечно, но всё не то: то качество плохое, то наложена музыка, то фразы короткие и невыразительные. Придётся делать самому.

План такой:

  1. Нарезать фрагменты из фильмов. Беру оригинальную озвучку «Железного человека» и «Мстителей», вырезаю все фразы Джарвиса. По 5–15 секунд каждая. Нужно набрать хотя бы 20–30 минут чистого материала.
  2. Очистить от шумов и музыки. Тут в дело вступает нейросеть Demucs. Это такая штука, которая умеет разделять аудиодорожку на голос, музыку, шумы. Запускаю её в Docker-контейнере, скормил нарезки — на выходе получаю чистый вокал. Магия, да.
  3. Постобработка. Отсеиваю неудачные фрагменты, где голос всё-таки перекрыт или есть помехи. Нормализую громкость, привожу к единому формату. Работы дофига, но без этого никак.

Техническая кухня: что уже готово.

Пока я разбирался с голосом, параллельно докрутил инфраструктуру. Теперь у меня есть:

  1. Рабочий Docker-контейнер с RVC, куда смонтирована папка для обмена файлам
  2. Все чекпоинты обученной модели (от 20 до 100 эпох) лежат в правильных папках.
  3. Индекс для поиска тоже на месте.
  4. Скрипт инференса отлажен до автоматизма.

То есть технически всё готово для нового обучения. Осталось только накормить модель нормальными данными.

Что дальше.

Ближайшие дни уйдут на сбор и подготовку датасета. Буду переслушивать фильмы, вырезать фразы, чистить, нормализовать. Нудно? Ещё как. Но без этого не получить тот самый голос.

Потом — переобучение RVC на новом датасете. Запущу эпох на 100 и буду сравнивать результаты на слух. Как только получу вменяемый тембр — встрою эту модель в голосового помощника.

Параллельно думаю над заменой tinyllama на что-то более адекватное. Она пока отвечает как философ-шизофреник, но это тема для отдельной статьи.

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

Где следить за процессом

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