Техническая архитектура (обновлено)¶
Ключевое изменение
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 — некоммерческое использование. Для коммерции нужно:
- Купить коммерческую лицензию у Fish Audio, ИЛИ
- Использовать их платный API (fish.audio), ИЛИ
- Fine-tuning собственной модели на Apache 2.0 коде с собственными данными
Альтернативный путь: Coqui XTTS v2¶
Хотя компания Coqui закрылась, репозиторий на GitHub жив (35K+ stars). XTTS v2 работает: - 16 языков из коробки - 6 секунд reference audio - Код под MPL-2.0 (можно коммерчески) - Но: нет поддержки, баги не фиксятся, зависимости устаревают
Архитектура системы (минимальная)¶
Вариант C: API-wrapper (рекомендуемый старт)¶
Что нужно: - 1 сервер с GPU 8GB (уже есть) - FastAPI + Fish Audio S1 mini - SQLite для пользователей/токенов - Nginx + SSL - Время: 1–2 недели, 1 разработчик
Вариант A: Full Platform (если B2B подтверждён)¶
Процесс: от 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 единоразово |