Перейти к содержанию

Техническая архитектура (обновлено)

Ключевое изменение

Coqui AI закрылась — домен захвачен спамерами. Новый фреймворк: Fish Audio S1 (4B параметров, zero-shot voice cloning за 15 сек). Альтернативы: GPT-SoVITS, Coqui TTS (repo жив, но без поддержки).

Сдвиг парадигмы: zero-shot вместо fine-tuning

Старый подход (план v1)

Записать 10+ часов → Обучить модель (72+ часа GPU) → Деплой
Стоимость: $6,000+ | Время: 2–4 месяца

Новый подход (2025–2026)

Записать 15 секунд → Zero-shot voice clone → Готово
Стоимость: $0 | Время: 2 часа

Выбор TTS фреймворка (обновлённый)

Фреймворк Статус Качество Min аудио GPU Кыргызский Лицензия
~~Coqui TTS~~ ⚠️ Компания закрыта ⭐⭐⭐⭐ 6 сек (XTTS) 4–8GB Multilingual MPL-2.0
Fish Audio S1 ✅ Активный лидер ⭐⭐⭐⭐⭐ 15 сек 8GB+ 30+ языков Apache 2.0 (код) / CC-BY-NC-SA (веса)
Fish Audio S1 mini ✅ Лёгкая версия ⭐⭐⭐⭐ 15 сек 4–8GB 30+ языков Apache 2.0 / CC-BY-NC-SA
GPT-SoVITS ✅ Активный ⭐⭐⭐⭐⭐ 1 мин 8GB EN/JP/KR/CN только MIT
VITS 🟡 Стабильный ⭐⭐⭐⭐ 2–4 часа 6–12GB Требует fine-tuning MIT
StyleTTS2 🟡 Стабильный ⭐⭐⭐⭐⭐ 2–4 часа 8–16GB Limited MIT
Bark 🟡 Стабильный ⭐⭐⭐ Reference audio 8–16GB Multilingual MIT

Рекомендация: Fish Audio S1 mini

Почему Fish Audio S1?

  • Best-in-class quality — #1 на TTS-Arena V2 (HuggingFace)
  • 15 секунд аудио для voice clone (не 10 часов!)
  • Open-source — self-hosting возможен
  • 30+ языков — нужно протестировать кыргызский
  • RTF 0.014 на 4090 — ультра-быстрый инференс

⚠️ Лицензионное ограничение

Веса модели Fish Audio S1 под CC-BY-NC-SA-4.0 — некоммерческое использование. Для коммерции нужно:

  1. Купить коммерческую лицензию у Fish Audio, ИЛИ
  2. Использовать их платный API (fish.audio), ИЛИ
  3. Fine-tuning собственной модели на Apache 2.0 коде с собственными данными

Альтернативный путь: Coqui XTTS v2

Хотя компания Coqui закрылась, репозиторий на GitHub жив (35K+ stars). XTTS v2 работает: - 16 языков из коробки - 6 секунд reference audio - Код под MPL-2.0 (можно коммерчески) - Но: нет поддержки, баги не фиксятся, зависимости устаревают

Архитектура системы (минимальная)

Вариант C: API-wrapper (рекомендуемый старт)

graph TB subgraph "Минимальный MVP (2 недели)" A["Пользователь"] --> B["FastAPI сервер"] B --> C["Fish Audio S1 mini"] C --> D["GPU 8GB"] B --> E["SQLite"] B --> F["Файловое хранилище"] end style A fill:#4CAF50,color:white style C fill:#2196F3,color:white

Что нужно: - 1 сервер с GPU 8GB (уже есть) - FastAPI + Fish Audio S1 mini - SQLite для пользователей/токенов - Nginx + SSL - Время: 1–2 недели, 1 разработчик

Вариант A: Full Platform (если B2B подтверждён)

graph TB subgraph "Client Layer" A["Web Dashboard<br/>React + Next.js"] B["API клиенты<br/>cURL/SDK"] end subgraph "API Layer" C["NGINX"] --> D["FastAPI"] D --> E["JWT Auth"] D --> F["Rate Limiting"] end subgraph "Business Logic" G["PostgreSQL"] H["Redis + Celery"] I["S3/MinIO"] end subgraph "TTS Engine" J["Fish Audio S1"] --> K["GPU 8GB"] L["Coqui XTTS v2<br/>(backup)"] --> K end A --> C B --> C D --> G D --> H H --> J J --> I

Процесс: от 0 до первого голоса

Шаг 1: PoC (2 часа)

# Установить Fish Audio S1 mini
git clone https://github.com/fishaudio/fish-speech
cd fish-speech
pip install -e .

# Скачать модель
huggingface-cli download fishaudio/openaudio-s1-mini

# Записать 15–30 секунд кыргызской речи (телефон/микрофон)
# reference_audio.wav

# Тест генерации
python tools/inference.py \
    --text "Салам алейкум! Бул KG Labs TTS платформасы." \
    --reference_audio reference_audio.wav \
    --output output.wav

Шаг 2: Оценка качества

Критерий Проходной балл Как проверить
Разборчивость >90% слов понятны 5 нативных слушателей
Естественность >3.5/5.0 MOS A/B тест с реальной речью
Произношение имён Корректное Тест на топонимах и ФИО
Интонация Адекватная Вопросы, утверждения, перечисления

Если качество <3.0/5.0

Стоп. Кыргызский — агглютинативный язык с длинными словами и сложными ударениями. Если zero-shot не справляется — потребуется fine-tuning, что увеличивает сроки и бюджет на порядок.

Шаг 3: Fine-tuning (если zero-shot недостаточно)

Данные с HuggingFace:

from datasets import load_dataset

# 58K аудиозаписей кыргызской речи
kyrgyz_asr = load_dataset("samil24/kyrgyz-asr")

# 4.2K записей speech dataset
kyrgyz_speech = load_dataset("shunyalabs/kyrgyz-speech-dataset")

# Фильтрация по качеству
high_quality = [s for s in kyrgyz_asr if s['snr'] > 20]  # SNR > 20dB

Требования для fine-tuning:

Параметр Требование Доступно
Аудио записей 500+ клипов ✅ 62K+ на HuggingFace
Длительность клипов 3–15 сек Нужно проверить
Качество записи SNR >20dB Нужно фильтровать
Формат WAV, 22050+ Hz Нужно конвертировать
GPU время 8–48 часов ✅ Есть GPU

API спецификация (MVP)

Минимальные эндпоинты

# Генерация речи
POST /api/v1/tts/generate
{
  "text": "Салам алейкум!",
  "voice_id": "kyrgyz_male_v1",
  "format": "mp3"
}
→ { "audio_url": "...", "duration": 3.5 }

# Список голосов
GET /api/v1/voices
→ [{ "id": "kyrgyz_male_v1", "name": "Азамат", "sample_url": "..." }]

# Баланс
GET /api/v1/balance
→ { "tokens": 5000, "used": 1200 }

Тарифы (скорректированные для КР)

Тариф Токенов/мес Цена $/1K Аудитория
Free 10,000 0 0 Trial
Starter 50,000 500 сом (~$5) $0.10 Блогеры
Pro 200,000 1,500 сом (~$15) $0.075 Агентства
Business 1,000,000 5,000 сом (~$50) $0.05 B2B
Enterprise Custom Custom Custom Банки, госы

Инфраструктурные требования

Текущий сервер (достаточно для MVP)

Имеющееся:
  GPU: NVIDIA 8GB
  CPU: 8 cores
  RAM: 15GB (32GB лучше)
  Storage: 50GB

Достаточно для:
  - Fish Audio S1 mini inference
  - До 50–100 concurrent users
  - Queue: 5–10 req/sec

НЕ достаточно для:
  - Fish Audio S1 full (4B параметров, нужно 16GB+ VRAM)
  - Fine-tuning больших моделей
  - 1000+ concurrent users

Масштабирование (только при доказанном спросе)

Этап Пользователей Решение Стоимость
MVP 0–100 Текущий сервер $0
Growth 100–1,000 + Cloud GPU overflow $200–500/мес
Scale 1,000+ Собственный GPU кластер $12,000–15,000 единоразово