Ковчег / автоматизация make.com, вайбкодинг и нейросети
IT и технологии · 20 августа 2026 г.
Свой голос на собственном железе
Свой голос на собственном железе Вам понадобиться только ваш компьютер и нейросетевой агент чтоб собрать нейросеть озвучки текста своим голосом или голосом любимого персонажа 😉 Результат: вы получаете собственную автономную станцию озвучки, которая работает в один клик и не зависит от сторонних API Сегодня в 19:00 по МСК на платном канале (https://mayai.ru/) пройдёт занятие, будем разбирать все системы и правила работы с ними - если хотите - присоединяйтесь ➕ Ну и конечно для тех кто хочет попробовать без меня - вот вам промпт для агента, с вас лайк ❤️ Ты ставишь ЛОКАЛЬНЫЙ клон голоса пользователя с нуля на ЕГО компьютере. Чужих путей, GPU, папок и чекпоинтов не существует. Всё исследуешь и строишь сам. ## Цель 1) Исследовать железо и окружение на ПК. 2) Установить рабочее локальное окружение без облачных API. 3) Извлечь и подготовить образец голоса пользователя из его файлов. 4) Озвучить предоставленный текст его тембром. ## Жёсткие правила - Silero TTS (snakers4/silero-models) НЕ использовать для клонирования (там только готовые чужие дикторы). - Движок для клонирования: XTTS v2 через пакет `coqui-tts` (модель `tts_models/multilingual/multi-dataset/xtts_v2`). - Пути: создавать новый изолированный каталог строго по ASCII-пути без пробелов и кириллицы (например, `C:\voice-clone` или `%USERPROFILE%\voice-clone`). Кириллица в пути ломает загрузку пакетов PyTorch на Windows. - Конфиденциальность: работа строго локально. Согласие с лицензией Coqui передавать через переменную окружения `COQUI_TOS_AGREED=1`. - Сначала стабильный Zero-shot (по одному чистому образцу 3–10 сек). Обучение (Fine-tune) запускать ТОЛЬКО если пользователь прямо попросил и есть ≥15 минут чистой студийной начитки. ## Этап 0 — Intake (спроси пользователя, если не указано) 1) Где лежат аудио/видео файлы с голосом пользователя (один спикер). 2) На каком языке озвучивать (по умолчанию `ru`). 3) Какой текст озвучить для первого теста. ## Этап 1 — Аудит системы (выполни и покажи сводку) Проверь и выведи пользователю: - ОС, CPU, объём RAM. - Наличие NVIDIA GPU через `nvidia-smi` (модель, объём VRAM, версия драйвера). - Наличие Python (рекомендуется строго 3.10 или 3.11; если на ПК только 3.12+ — подтянуть 3.10/3.11 через uv/conda). - Наличие `ffmpeg` (если нет в PATH на Windows — скачать portable сборку в папку проекта или использовать `imageio-ffmpeg`). - Свободное место на диске (нужно минимум 5–10 ГБ). Матрица решений: - GPU NVIDIA ≥6 ГБ VRAM: запуск на CUDA (быстро, ~1–3 сек на фразу). - GPU NVIDIA 4–6 ГБ VRAM: запуск на CUDA с короткими чанками текста. - Нет NVIDIA GPU / <4 ГБ VRAM: честно предупредить о работе на CPU (будет медленно). ## Этап 2 — Установка окружения 1) Создай чистый venv (Python 3.10 или 3.11) в ASCII-директории. 2) Установи PyTorch с поддержкой CUDA под найденную карту (например, `--index-url https://download.pytorch.org/whl/cu124` или `cu128`), затем `coqui-tts`, `soundfile`, `scipy`. 3) Зафиксируй `transformers` на версии `4.57.x` (версии 5.x ломают зависимости Coqui). 4) Проверь в Python: `import torch; assert torch.cuda.is_available()`. ## Этап 3 — Подготовка голоса 1) Если на входе видео (`.mp4`, `.mkv`, `.mov`): Извлеки чистый аудиопоток: `ffmpeg -i input.mp4 -vn -acodec pcm_s16le -ar 24000 -ac 1 audio_full.wav` 2) Вырежи 1 идеальный референс (`reference.wav`): - Длина: 4–9 секунд (без музыки, фонового шума, вздохов и перегрузок микрофона). - Формат: WAV, 24000 Hz (или 22050 Hz), Mono. 3) ВАЖНО: - Не использовать multi-reference склейки из разных эфиров (это даёт чужой акцент и фазовые артефакты). - Не расставлять знаки ударения `+` или Unicode-акценты по всему тексту (для XTTS RU это портит дикцию). ## Этап 4 — Скрипт синтеза (Inference) Создай Python-скрипт синтеза со следующим обязательным кодом: ```python import os, re, torch, soundfile as sf, numpy as np # Обязательный патч torchaudio против сбоев FFmpeg 8 / torchcodec на Windows import torchaudio def _load_sf(path, *args, **kwargs): data, sr = sf.read(str(pa