# F5-TTS

Генерируйте естественную речь с F5-TTS — быстрым и плавным TTS-системой.

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

## Аренда на CLORE.AI

1. Посетите [CLORE.AI Marketplace](https://clore.ai/marketplace)
2. Отфильтруйте по типу GPU, объему VRAM и цене
3. Выберите **On-Demand** (фиксированная ставка) или **Spot** (цена по ставке)
4. Настройте ваш заказ:
   * Выберите Docker-образ
   * Установите порты (TCP для SSH, HTTP для веб-интерфейсов)
   * Добавьте переменные окружения при необходимости
   * Введите команду запуска
5. Выберите способ оплаты: **CLORE**, **BTC**, или **USDT/USDC**
6. Создайте заказ и дождитесь развертывания

### Доступ к вашему серверу

* Найдите данные для подключения в **Моих заказах**
* Веб-интерфейсы: используйте URL HTTP-порта
* SSH: `ssh -p <port> root@<proxy-address>`

## Что такое F5-TTS?

F5-TTS предлагает:

* Быструю генерацию (быстрее реального времени)
* Естественную просодию и интонацию
* Клонирование голоса в режиме zero-shot
* Поддержку нескольких языков

## Ресурсы

* **GitHub:** [SWivid/F5-TTS](https://github.com/SWivid/F5-TTS)
* **HuggingFace:** [SWivid/F5-TTS](https://huggingface.co/SWivid/F5-TTS)
* **Статья:** [Статья F5-TTS](https://arxiv.org/abs/2410.06885)
* **Демо:** [HuggingFace Space](https://huggingface.co/spaces/mrfakename/E2-F5-TTS)

## Рекомендованное оборудование

| Компонент | Минимум       | Рекомендуется | Оптимально    |
| --------- | ------------- | ------------- | ------------- |
| GPU       | RTX 3060 12GB | RTX 4080 16GB | RTX 4090 24GB |
| VRAM      | 6 ГБ          | 12GB          | 16GB          |
| CPU       | 4 ядра        | 8 ядер        | 16 ядер       |
| ОЗУ       | 16GB          | 32GB          | 64GB          |
| Хранилище | 20 ГБ SSD     | 50GB NVMe     | 100GB NVMe    |
| Интернет  | 100 Мбит/с    | 500 Мбит/с    | 1 Гбит/с      |

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

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

```
pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime
```

**Порты:**

```
22/tcp
7860/http
```

**Команда:**

```bash
pip install f5-tts && \
f5-tts-webui
```

## Доступ к вашему сервису

После развертывания найдите ваш `http_pub` URL в **Моих заказах**:

1. Перейдите на **Моих заказах** страницу
2. Нажмите на ваш заказ
3. Найдите `http_pub` URL (например, `abc123.clorecloud.net`)

Используйте `https://YOUR_HTTP_PUB_URL` вместо `localhost` в примерах ниже.

## Установка

```bash
pip install f5-tts

# Или из исходников
git clone https://github.com/SWivid/F5-TTS.git
cd F5-TTS
pip install -e .
```

## Что вы можете создать

### Содержимое голоса

* Производство подкастов
* Чтение аудиокниг
* Озвучивание видео

### Доступность

* Программы чтения с экрана
* Читалки документов
* Учебные материалы

### Интерактивные приложения

* Голосовые ассистенты
* NPC в играх
* Боты для обслуживания клиентов

### Творческие проекты

* Голоса персонажей
* Аудиодрамы
* Вокал для музыки

## Базовое использование

### Простой TTS

```python
from f5_tts import F5TTS

# Инициализация
tts = F5TTS(device="cuda")

# Сгенерировать речь
audio = tts.generate(
    text="Hello! This is F5-TTS generating natural speech.",
    output_path="output.wav"
)
```

### Клонирование голоса

```python
from f5_tts import F5TTS

tts = F5TTS(device="cuda")

# Клонировать голос из образца аудио
audio = tts.generate(
    text="This is my cloned voice speaking new text.",
    ref_audio="reference_voice.wav",
    ref_text="This is the reference text spoken in the audio.",
    output_path="cloned_output.wav"
)
```

## Поддержка нескольких языков

```python
from f5_tts import F5TTS

tts = F5TTS(device="cuda")

# Английский
tts.generate(
    text="Hello, how are you today?",
    ref_audio="english_speaker.wav",
    output_path="english.wav"
)

# Китайский
tts.generate(
    text="你好，今天怎么样？",
    ref_audio="chinese_speaker.wav",
    output_path="chinese.wav"
)

# Французский
tts.generate(
    text="Bonjour, comment allez-vous?",
    ref_audio="french_speaker.wav",
    output_path="french.wav"
)
```

## Пакетная обработка

```python
from f5_tts import F5TTS
import os

tts = F5TTS(device="cuda")

texts = [
    "Welcome to our product demonstration.",
    "Today we'll show you the key features.",
    "Let's start with the main dashboard.",
    "As you can see, the interface is intuitive.",
    "Thank you for watching!"
]

ref_audio = "narrator_voice.wav"
ref_text = "Sample text from the reference audio."
output_dir = "./narration"
os.makedirs(output_dir, exist_ok=True)

for i, text in enumerate(texts):
    print(f"Generating {i+1}/{len(texts)}: {text[:50]}...")

    tts.generate(
        text=text,
        ref_audio=ref_audio,
        ref_text=ref_text,
        output_path=f"{output_dir}/segment_{i:03d}.wav"
    )
```

## Длительное аудио

```python
from f5_tts import F5TTS

tts = F5TTS(device="cuda")

long_text = """
Добро пожаловать в это подробное руководство по машинному обучению.
В этой главе мы изучим основы нейронных сетей.
Нейронные сети — это вычислительные системы, вдохновлённые биологическими нейронными сетями.
Они состоят из взаимосвязанных узлов, которые обрабатывают информацию.
Давайте начнём с основных понятий.
"""

# F5-TTS обрабатывает длинный текст, разбивая его на предложения
audio = tts.generate(
    text=long_text,
    ref_audio="narrator.wav",
    output_path="long_narration.wav",
    chunk_size=200  # Символов в одном фрагменте
)
```

## Интерфейс Gradio

```python
import gradio as gr
from f5_tts import F5TTS
import tempfile

tts = F5TTS(device="cuda")

def generate_speech(text, ref_audio, ref_text):
    with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as f:
        tts.generate(
            text=text,
            ref_audio=ref_audio,
            ref_text=ref_text,
            output_path=f.name
        )
        return f.name

demo = gr.Interface(
    fn=generate_speech,
    inputs=[
        gr.Textbox(label="Text to Speak", lines=5),
        gr.Audio(type="filepath", label="Reference Voice"),
        gr.Textbox(label="Reference Text", lines=2)
    ],
    outputs=gr.Audio(label="Generated Speech"),
    title="F5-TTS Voice Cloning",
    description="Clone any voice with F5-TTS on CLORE.AI servers"
)

demo.launch(server_name="0.0.0.0", server_port=7860)
```

## API-сервер

```python
from fastapi import FastAPI, UploadFile, File, Form
from fastapi.responses import FileResponse
from f5_tts import F5TTS
import tempfile

app = FastAPI()
tts = F5TTS(device="cuda")

@app.post("/synthesize")
async def synthesize(
    text: str = Form(...),
    ref_audio: UploadFile = File(...),
    ref_text: str = Form(...)
):
    with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as ref_file:
        ref_file.write(await ref_audio.read())
        ref_path = ref_file.name

    with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as out_file:
        tts.generate(
            text=text,
            ref_audio=ref_path,
            ref_text=ref_text,
            output_path=out_file.name
        )
        return FileResponse(out_file.name, media_type="audio/wav")

# Запуск: uvicorn server:app --host 0.0.0.0 --port 8000
```

## Производительность

| Длина текста  | GPU      | Время генерации | Коэффициент реального времени |
| ------------- | -------- | --------------- | ----------------------------- |
| 100 символов  | RTX 3090 | 0.5 с           | 5x                            |
| 100 символов  | RTX 4090 | 0.3 с           | 8x                            |
| 500 символов  | RTX 4090 | 1.2 с           | 10x                           |
| 1000 символов | A100     | 2.0с            | 12x                           |

## Распространённые проблемы и решения

### Плохое соответствие голоса

**Проблема:** Сгенерированный голос не соответствует образцу

**Решения:**

* Используйте 5–15 секунд чистого образца аудио
* Предоставьте точную расшифровку текста образца
* Избегайте фонового шума в образце
* Совпадение языка текста и образца

### Проблемы с произношением

**Проблема:** Неправильно произносит слова или имена

**Решения:**

```python

# Используйте фонетические подсказки для трудных слов
text = "Welcome to CLORE (pronounced KLOR) AI platform."

# Или используйте форматирование, похожее на SSML
text = "The CEO, John Smith (SMIHTH), will speak."
```

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

**Проблема:** Выход звучит роботизированно или искажённо

**Решения:**

* Используйте высококачественный образец аудио (24 кГц+)
* Очистите образец от шума
* Попробуйте другие образцы
* Увеличьте настройки качества генерации

### Проблемы с памятью

**Проблема:** Недостаточно памяти для длинных текстов

**Решения:**

```python

# Обрабатывайте меньшими фрагментами
tts.generate(
    text=long_text,
    chunk_size=100,  # Меньшие фрагменты
    overlap=20  # Плавные переходы
)
```

### Медленная генерация

**Проблема:** Генерация занимает слишком много времени

**Решения:**

* Используйте инференс на GPU (CUDA)
* Уменьшите chunk\_size для более быстрой обработки
* Используйте RTX 4090 или лучше
* Включите половинную точность (fp16)

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

### Голос не соответствует образцу

* Используйте 5–15 секунд чистого образца аудио
* Точно расшифруйте текст образца
* Избегайте фонового шума в образце

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

* Используйте образец с высокой частотой дискретизации (24 кГц+)
* Очистите образец от шума
* Попробуйте другие образцы

### Медленная генерация

* Используйте CUDA (не CPU)
* Уменьшите длину текста или разбейте его на фрагменты
* Используйте меньшие размеры батчей

### Несоответствие языка

* Совпадайте язык текста с языком образца аудио
* Некоторым языкам требуются специфические модели

## Оценка стоимости

Типичные ставки на маркетплейсе CLORE.AI (по состоянию на 2024):

| GPU       | Почасовая ставка | Дневная ставка | Сессия 4 часа |
| --------- | ---------------- | -------------- | ------------- |
| RTX 3060  | \~$0.03          | \~$0.70        | \~$0.12       |
| RTX 3090  | \~$0.06          | \~$1.50        | \~$0.25       |
| RTX 4090  | \~$0.10          | \~$2.30        | \~$0.40       |
| A100 40GB | \~$0.17          | \~$4.00        | \~$0.70       |
| A100 80GB | \~$0.25          | \~$6.00        | \~$1.00       |

*Цены варьируются в зависимости от провайдера и спроса. Проверьте* [*CLORE.AI Marketplace*](https://clore.ai/marketplace) *для текущих тарифов.*

**Экономьте деньги:**

* Используйте **Spot** рынок для гибких рабочих нагрузок (часто на 30–50% дешевле)
* Платите с помощью **CLORE** токенов
* Сравнивайте цены у разных провайдеров

## Дальнейшие шаги

* [XTTS](/guides/guides_v2-ru/audio-i-golos/xtts-coqui.md) - Альтернативный TTS
* [Bark TTS](/guides/guides_v2-ru/audio-i-golos/bark-tts.md) - Экспрессивный TTS
* [SadTalker](/guides/guides_v2-ru/govoryashie-golovy/sadtalker.md) - Говорящие головы


---

# Agent Instructions: 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:

```
GET https://docs.clore.ai/guides/guides_v2-ru/audio-i-golos/f5-tts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
