> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-ru/audio-i-golos/fish-speech.md).

# Fish Speech

Fish Speech — это передовая многоязычная система преобразования текста в речь (TTS) с возможностью клонирования голоса в режиме zero-shot. Имея более 15 000 звёзд на GitHub, она поддерживает английский, китайский, японский, корейский, французский, немецкий, арабский, испанский и другие языки — всё это на основе одной модели. Используя всего 10–15 секунд референсного аудио, Fish Speech может клонировать любой голос с поразительной точностью, что делает её идеальной для производства аудиокниг, дубляжа, виртуальных ассистентов и масштабного создания контента.

Fish Speech использует архитектуру на основе трансформера с вокодером VQGAN, достигая показателей естественности, близких к человеческим, на стандартных бенчмарках TTS. WebUI (Gradio) делает систему доступной без написания ни одной строки кода, а REST API обеспечивает бесшовную интеграцию в производственные пайплайны.

{% hint style="success" %}
Все примеры можно запускать на GPU-серверах, арендованных через [маркетплейс CLORE.AI](https://clore.ai/marketplace).
{% endhint %}

***

## Требования к серверу

| Параметр | Минимум                 | Рекомендуется           |
| -------- | ----------------------- | ----------------------- |
| GPU      | NVIDIA RTX 3080 (10 ГБ) | NVIDIA RTX 4090 (24 ГБ) |
| VRAM     | 8 ГБ                    | 16–24 ГБ                |
| ОЗУ      | 16 ГБ                   | 32 ГБ                   |
| CPU      | 4 ядра                  | 8+ ядер                 |
| Диск     | 20 ГБ                   | 40 ГБ                   |
| ОС       | Ubuntu 20.04+           | Ubuntu 22.04            |
| CUDA     | 11.8+                   | 12.1+                   |
| Порты    | 22, 7860                | 22, 7860                |

{% hint style="info" %}
Fish Speech эффективно работает на GPU среднего уровня (RTX 3080/3090). Для пакетного инференса или обслуживания нескольких одновременных пользователей рекомендуется RTX 4090 или A100.
{% endhint %}

***

## Быстрое развертывание на CLORE.AI

Самый быстрый способ запустить Fish Speech — использовать официальный Docker-образ напрямую из Docker Hub.

### 1. Найдите подходящий сервер

Перейдите на [маркетплейс CLORE.AI](https://clore.ai/marketplace) и отфильтруйте по:

* **VRAM**: ≥ 8 ГБ
* **GPU**: RTX 3080, 3090, 4080, 4090, A100, H100
* **Диск**: ≥ 20 ГБ

### 2. Настройте своё развёртывание

В форме заказа CLORE.AI задайте следующее:

**Docker-образ:**

```
fishaudio/fish-speech:latest
```

**Сопоставление портов:**

```
22   → доступ по SSH
7860 → веб-интерфейс Gradio
```

**Переменные среды:**

```
NVIDIA_VISIBLE_DEVICES=all
CUDA_VISIBLE_DEVICES=0
```

**Команда запуска (необязательно — автоматически запускает WebUI):**

```bash
python -m tools.webui --listen 0.0.0.0 --port 7860
```

### 3. Откройте интерфейс

После развёртывания откройте браузер и перейдите по адресу:

```
http://<your-clore-server-ip>:7860
```

Загрузится интерфейс Gradio WebUI с полным интерфейсом Fish Speech, готовым к использованию.

***

## Пошаговая настройка

### Шаг 1: Подключитесь к серверу по SSH

```bash
ssh root@<your-clore-server-ip> -p <ssh-port>
```

### Шаг 2: загрузите и запустите Docker-контейнер

```bash
docker pull fishaudio/fish-speech:latest

docker run -d \
  --name fish-speech \
  --gpus all \
  -p 7860:7860 \\
  -p 22:22 \
  -v /workspace/fish-speech:/workspace \
  -e NVIDIA_VISIBLE_DEVICES=all \
  fishaudio/fish-speech:latest \
  python -m tools.webui --listen 0.0.0.0 --port 7860
```

### Шаг 3: проверьте доступ к GPU

```bash
docker exec fish-speech nvidia-smi
```

Вы должны увидеть ваш GPU в списке с доступной VRAM.

### Шаг 4: проверьте загрузку модели

Fish Speech автоматически загружает веса модели при первом запуске (\~3–5 ГБ). Отслеживайте прогресс:

```bash
docker logs -f fish-speech
```

Дождитесь, пока не увидите:

```
Запущено по локальному URL:  http://0.0.0.0:7860
```

### Шаг 5: откройте WebUI

Перейдите по адресу `http://<server-ip>:7860` в вашем браузере.

### Шаг 6: (необязательно) включите API-сервер

```bash
docker exec -d fish-speech \
  python -m tools.api_server --listen 0.0.0.0 --port 8080
```

***

## Примеры использования

### Пример 1: базовое преобразование текста в речь через WebUI

1. Откройте WebUI по адресу `http://<server-ip>:7860`
2. Введите текст в **"Text"** поле:

   ```
   Добро пожаловать в Clore.ai — GPU-облачный маркетплейс для задач ИИ.
   ```
3. Выберите язык: **Английский**
4. Нажмите **"Generate"**
5. Скачайте получившийся `.wav` файл

***

### Пример 2: Клонирование голоса zero-shot

Клонируйте любой голос, используя всего 10–15 секунд референсного аудио:

1. В WebUI перейдите к **"Voice Clone"** вкладка
2. Загрузите файл референсного аудио (`.wav` или `.mp3`, 10–30 секунд)
3. Введите расшифровку референсного аудио (необязательно, но повышает качество)
4. Введите целевой текст для синтеза
5. Нажмите **"Clone & Generate"**

Модель проанализирует характеристики голоса и синтезирует речь этим голосом.

***

### Пример 3: TTS через API (Python)

```python
import requests
import base64

# API-эндпоинт Fish Speech
API_URL = "http://<your-clore-server-ip>:8080/v1/tts"

payload = {
    "text": "Привет, это тест Fish Speech, работающего на GPU-инфраструктуре Clore.ai.",
    "reference_id": None,  # Использовать голос по умолчанию
    "format": "wav",
    "streaming": False
}

response = requests.post(API_URL, json=payload)

if response.status_code == 200:
    with open("output.wav", "wb") as f:
        f.write(response.content)
    print("Аудио сохранено в output.wav")
else:
    print(f"Ошибка: {response.status_code} - {response.text}")
```

***

### Пример 4: многоязычный TTS

```python
import requests

API_URL = "http://<your-clore-server-ip>:8080/v1/tts"

texts = {
    "en": "Clore.ai предоставляет доступные облачные вычисления на GPU для исследователей ИИ.",
    "zh": "Clore.ai предоставляет доступные облачные вычисления на GPU для исследователей ИИ.",
    "ja": "Clore.ai предоставляет доступные облачные вычисления на GPU для исследователей ИИ.",
    "ko": "Clore.ai предоставляет доступные облачные вычисления на GPU для исследователей ИИ.",
    "fr": "Clore.ai предоставляет доступные облачные вычисления на GPU для исследователей ИИ.",
}

for lang, text in texts.items():
    payload = {"text": text, "format": "wav"}
    response = requests.post(API_URL, json=payload)
    if response.status_code == 200:
        filename = f"output_{lang}.wav"
        with open(filename, "wb") as f:
            f.write(response.content)
        print(f"Сохранено {filename}")
```

***

### Пример 5: пакетная обработка аудиофайлов

```python
import requests
import os
from pathlib import Path

API_URL = "http://<your-clore-server-ip>:8080/v1/tts"
OUTPUT_DIR = Path("./tts_outputs")
OUTPUT_DIR.mkdir(exist_ok=True)

# Пакет текстов для преобразования
texts = [
    "Глава первая: начало новой эры в искусственном интеллекте.",
    "Глава вторая: как GPU-вычисления изменили машинное обучение.",
    "Глава третья: рост технологий синтеза голоса.",
    "Глава четвёртая: создание будущего с инфраструктурой Clore.ai.",
    "Глава пятая: выводы и следующие шаги.",
]

for i, text in enumerate(texts):
    payload = {
        "text": text,
        "format": "wav",
        "streaming": False
    }
    response = requests.post(API_URL, json=payload, timeout=60)
    if response.status_code == 200:
        output_path = OUTPUT_DIR / f"chapter_{i+1:02d}.wav"
        with open(output_path, "wb") as f:
            f.write(response.content)
        print(f"✓ Сгенерировано: {output_path}")
    else:
        print(f"✗ Не удалось обработать главу {i+1}: {response.status_code}")

print(f"\nВсе файлы сохранены в {OUTPUT_DIR}")
```

***

## Конфигурация

### Docker Compose (настройка для продакшена)

```yaml
version: '3.8'

services:
  fish-speech:
    image: fishaudio/fish-speech:latest
    container_name: fish-speech
    runtime: nvidia
    environment:
      - NVIDIA_VISIBLE_DEVICES=all
      - CUDA_VISIBLE_DEVICES=0
    ports:
      - "7860:7860"
      - "8080:8080"
    volumes:
      - ./models:/workspace/models
      - ./outputs:/workspace/outputs
      - ./references:/workspace/references
    command: >
      bash -c "python -m tools.webui --listen 0.0.0.0 --port 7860 &
               python -m tools.api_server --listen 0.0.0.0 --port 8080 &
               wait"
    restart: unless-stopped
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]
```

### Основные параметры конфигурации

| Параметр           | По умолчанию | Описание                                              |
| ------------------ | ------------ | ----------------------------------------------------- |
| `--listen`         | `0.0.0.0`    | Интерфейс, к которому привязывается сервер            |
| `--port`           | `7860`       | Порт для Gradio WebUI                                 |
| `--compile`        | `false`      | Включить torch.compile для более быстрого инференса   |
| `--device`         | `cuda`       | Устройство для использования (`cuda`, `cpu`, `mps`)   |
| `--half`           | `true`       | Использовать половинную точность FP16 (экономит VRAM) |
| `--num_samples`    | `1`          | Количество аудиосэмплов для генерации                 |
| `--max_new_tokens` | `1024`       | Максимальное количество новых токенов для генерации   |

### Варианты модели

| Модель                | Размер   | Языки    | Примечания                  |
| --------------------- | -------- | -------- | --------------------------- |
| `fish-speech-1.4`     | \~3 ГБ   | 8 языков | Последняя стабильная версия |
| `fish-speech-1.2-sft` | \~2.5 ГБ | 8 языков | Дообученная версия          |
| `fish-speech-1.2`     | \~2.5 ГБ | 8 языков | Базовая модель              |

***

## Советы по производительности

### 1. Включите torch.compile для более быстрого инференса

```bash
# Добавьте флаг --compile при запуске
python -m tools.webui --listen 0.0.0.0 --port 7860 --compile
```

Первый запуск будет медленнее (компиляция занимает 2–5 минут), но последующий инференс будет на 20–40% быстрее.

### 2. Используйте половинную точность (FP16)

FP16 снижает использование VRAM примерно на 50% при минимальной потере качества:

```bash
python -m tools.webui --listen 0.0.0.0 --port 7860 --half
```

### 3. Предзагрузите референсные голоса

Храните часто используемые референсные голоса в каталоге references контейнера, чтобы избежать повторной обработки:

```bash
# Скопируйте референсное аудио в контейнер
docker cp my_voice.wav fish-speech:/workspace/references/my_voice.wav
```

### 4. Оптимизация памяти GPU

```bash
# Установите оптимальную долю памяти CUDA
export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512

# Очищайте кэш GPU между большими пакетами
docker exec fish-speech python -c "import torch; torch.cuda.empty_cache()"
```

### 5. Настройка размера пакета

Для пакетных API-запросов оптимальные размеры пакета:

* **RTX 3080 (10 ГБ)**: batch\_size = 1–2
* **RTX 3090/4090 (24 ГБ)**: batch\_size = 4–8
* **A100 (40/80 ГБ)**: batch\_size = 16–32

***

## Устранение неполадок

### Проблема: контейнер не запускается — CUDA не найдена

```bash
# Проверьте драйвер NVIDIA внутри контейнера
docker exec fish-speech nvidia-smi

# Если не работает, проверьте драйвер на хосте
nvidia-smi

# Повторно запустите с явными флагами GPU
docker run --gpus all --rm fishaudio/fish-speech:latest nvidia-smi
```

### Проблема: ошибка нехватки памяти (OOM)

```bash
# Проверьте использование VRAM
docker exec fish-speech nvidia-smi

# Используйте FP16, чтобы вдвое снизить использование VRAM
# Перезапустите контейнер с флагом --half
docker stop fish-speech
docker run -d --name fish-speech --gpus all -p 7860:7860 \
  fishaudio/fish-speech:latest \
  python -m tools.webui --listen 0.0.0.0 --port 7860 --half
```

### Проблема: порт 7860 недоступен

```bash
# Проверьте, что контейнер запущен
docker ps | grep fish-speech

# Проверьте привязку порта
docker port fish-speech

# Проверьте файрвол (на сервере Clore)
# Убедитесь, что порт 7860 сопоставлен в вашей конфигурации заказа CLORE.AI
```

### Проблема: загрузка модели не удаётся / идёт слишком медленно

```bash
# Проверьте подключение к интернету из контейнера
docker exec fish-speech curl -I https://huggingface.co

# Загрузите модели вручную заранее
docker exec fish-speech python -c "
from huggingface_hub import snapshot_download
snapshot_download('fishaudio/fish-speech-1.4')
"
```

### Проблема: качество аудио низкое

* Убедитесь, что референсное аудио чистое (без фонового шума, частота дискретизации 16 кГц+ )
* Держите референсное аудио длительностью 10–30 секунд
* Добавьте расшифровку референсного аудио для лучшего выравнивания
* Попробуйте увеличить `--num_samples` чтобы сгенерировать несколько вариантов и выбрать лучший

### Проблема: WebUI загружается, но генерация зависает

```bash
# Проверьте загрузку GPU во время генерации
docker exec fish-speech watch -n1 nvidia-smi

# Проверьте логи на наличие ошибок
docker logs fish-speech --tail 50
```

***

## Ссылки

* **GitHub**: <https://github.com/fishaudio/fish-speech>
* **Docker Hub**: <https://hub.docker.com/r/fishaudio/fish-speech>
* **Официальная документация**: <https://speech.fish.audio>
* **Модели Hugging Face**: <https://huggingface.co/fishaudio/fish-speech-1.4>
* **маркетплейс CLORE.AI**: <https://clore.ai/marketplace>
* **Сообщество Discord**: <https://discord.gg/Es5qTB9BcN>

***

## Рекомендации по GPU для Clore.ai

| Сценарий использования          | Рекомендуемый GPU | Оценочная стоимость на Clore.ai             |
| ------------------------------- | ----------------- | ------------------------------------------- |
| Разработка/тестирование         | RTX 3090 (24 ГБ)  | $0.07–0.21/гпу/ч                            |
| TTS для продакшена              | RTX 4090 (24 ГБ)  | $0.14–0.42/гпу/ч                            |
| Высокопроизводительный инференс | A100 80 ГБ        | [голое железо](https://clore.ai/bare-metal) |

> 💡 Все примеры в этом руководстве можно развернуть на [Clore.ai](https://clore.ai/marketplace) GPU-серверах. Просматривайте доступные GPU и арендуйте по часам — без обязательств, с полным root-доступом.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-ru/audio-i-golos/fish-speech.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
