CodeShadow – Telegram
CodeShadow
76 subscribers
181 photos
11 videos
7 files
127 links
👋 Я Артемий — преподаватель Python и фрилансер.

💻 Показываю, как код и нейросети помогают зарабатывать и упрощать работу.

🚀 Делюсь проектами, опытом и лайфхаками из реальной практики.

✍🏻 Вопросы и идеи: @MifmanRu
Download Telegram
Быстрый старт для использования локальных нейросетей. Что это такое и для чего нужно 💪
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
322
💬 Мотивация: Как не бросить Python на второй неделе

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

Когда ты видишь результат своего кода — просыпается азарт.
Сначала делай рабочий прототип, а потом оптимизируй.
Маленькие шаги каждый день дают больше, чем штурм раз в месяц.
💯42🤓11
Локальная нейро-говорилка. Что вообще происходит 👀

Я давно хотел показать пример нейросети, которая работает с голосом локально, без API, без облаков и без подписок.

Сегодня начнём простой кейс:
нейро-говорилка на основе XTTS, которую потом можно легко адаптировать под ChatterBox.


Что умеет этот проект:
берёт обычный текст
использует пример голоса (wav/mp3)
генерирует реалистичную речь
работает полностью локально (если модель скачана)

Структура проекта будет максимально простой:
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
222
Генерируем голос из текста (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
222
⚙️ Лайфхак: Используй f-строки как профи

Забудь про склеивание строк через плюс. Это неудобно и часто ведет к ошибкам.
В Python есть f-строки, которые позволяют вставлять переменные и даже код прямо в текст.

name = "Артемий"
income = 50000
print(f"Фрилансер {name} заработал {income / 80:.2f} $ за вечер")


Это делает код чище, а структуру понятнее — особенно когда данные сложные.
2🤔1🤩1