Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
💬 Мотивация: Как не бросить Python на второй неделе
Секрет прост: делай то, что можно потрогать руками.
Вместо того чтобы зубрить теорию списков, напиши бота, который скидывает тебе курс валют или мемы.
Когда ты видишь результат своего кода — просыпается азарт.
Сначала делай рабочий прототип, а потом оптимизируй.
Маленькие шаги каждый день дают больше, чем штурм раз в месяц.
Секрет прост: делай то, что можно потрогать руками.
Вместо того чтобы зубрить теорию списков, напиши бота, который скидывает тебе курс валют или мемы.
Когда ты видишь результат своего кода — просыпается азарт.
Сначала делай рабочий прототип, а потом оптимизируй.
Маленькие шаги каждый день дают больше, чем штурм раз в месяц.
💯4 2🤓1 1
Локальная нейро-говорилка. Что вообще происходит 👀
Что умеет этот проект:
✅ берёт обычный текст
✅ использует пример голоса (wav/mp3)
✅ генерирует реалистичную речь
✅ работает полностью локально (если модель скачана)
Структура проекта будет максимально простой:
Начнём с конфига — это мозг всей настройки.
Вот базовый config.py:
Я давно хотел показать пример нейросети, которая работает с голосом локально, без API, без облаков и без подписок.
Сегодня начнём простой кейс:
нейро-говорилка на основе XTTS, которую потом можно легко адаптировать под ChatterBox.
Что умеет этот проект:
Структура проекта будет максимально простой:
project/
├─ config.py
├─ voice.py
├─ text.txt
└─ voice_example.mp3
Начнём с конфига — это мозг всей настройки.
Вот базовый config.py:
CONFIG = {
"model": "tts_models/multilingual/multi-dataset/xtts_v2",
"language": "ru",
"speaker_wav": "voice_example.mp3",
"output_file": "result.wav",
"temperature": 0.5,
"length_penalty": 1.0,
"repetition_penalty": 5.0,
"top_k": 50,
"top_p": 0.85,
"speed": 1.0,
"enable_text_splitting": True,
}
Что важно понять сразу:🤔 ❗️ модель не скачивается кодом, она подтягивается локально через TTS❗️ при первом запуске XTTS может долго грузиться❗️ нужен пример голоса (любой короткий wav/mp3 на 1-2 минуты)
В следующем посте — напишем сам скрипт генерации голоса👨💻
Будет уже слышимый результат.
Please open Telegram to view this post
VIEW IN TELEGRAM
Генерируем голос из текста (XTTS) 👩💻
Сначала базовые импорты и загрузка текста:
Теперь инициализация модели:
🗣 И вот самый главный кусок — генерация аудио:
Продолжаем.
Теперь напишем сам скрипт, который читает текст и превращает его в голос.
Создаём файл voice.py.
Сначала базовые импорты и загрузка текста:
from TTS.api import TTS
import torch
from config import *
text = open('text.txt', 'r', encoding='utf-8').read()
Теперь инициализация модели:
print("🔄 Загрузка модели...")
tts = TTS(
CONFIG["model"],
progress_bar=True,
gpu=torch.cuda.is_available()
)
print("🎤 Генерация аудио...")
tts.tts_to_file(
text=text,
file_path=CONFIG["output_file"],
speaker_wav=CONFIG["speaker_wav"],
language=CONFIG["language"],
temperature=CONFIG["temperature"],
length_penalty=CONFIG["length_penalty"],
repetition_penalty=CONFIG["repetition_penalty"],
top_k=CONFIG["top_k"],
top_p=CONFIG["top_p"],
speed=CONFIG["speed"],
enable_text_splitting=CONFIG["enable_text_splitting"]
)
Если всё ок — после запуска появится файл result.wav.
Что важно:❗️ speaker_wav сильно влияет на результат❗️ короткий, чистый голос работает лучше❗️ параметры можно крутить бесконечно (и это кайф)
В следующем посте:💎 как запускать это стабильно💎 как адаптировать под ChatterBox💎 и где чаще всего всё ломается🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Лайфхак: Используй f-строки как профи
Забудь про склеивание строк через плюс. Это неудобно и часто ведет к ошибкам.
В Python есть f-строки, которые позволяют вставлять переменные и даже код прямо в текст.
Это делает код чище, а структуру понятнее — особенно когда данные сложные.
Забудь про склеивание строк через плюс. Это неудобно и часто ведет к ошибкам.
В Python есть f-строки, которые позволяют вставлять переменные и даже код прямо в текст.
name = "Артемий"
income = 50000
print(f"Фрилансер {name} заработал {income / 80:.2f} $ за вечер")
Это делает код чище, а структуру понятнее — особенно когда данные сложные.