> 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/bark-tts.md).

# Bark TTS

Создавайте реалистичную речь и аудио с Bark AI на Clore.ai

Создавайте реалистичную речь и аудио с Bark AI.

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

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

| Параметр      | Минимум      | Рекомендуется   |
| ------------- | ------------ | --------------- |
| ОЗУ           | 8 ГБ         | 16 ГБ+          |
| VRAM          | 4 ГБ (малый) | 8 ГБ+ (обычный) |
| Сеть          | 200 Мбит/с   | 500 Мбит/с+     |
| Время запуска | 3–5 минут    | -               |

{% hint style="warning" %}
**Время запуска:** При первом запуске загружаются модели Bark (3–5 минут в зависимости от скорости сети). HTTP 502 в это время — это нормально.
{% endhint %}

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

1. Перейдите на [маркетплейс CLORE.AI](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>`

## Что такое Bark?

Bark от Suno AI может генерировать:

* Реалистичную речь на нескольких языках
* Различные голоса дикторов
* Невербальные звуки (смех, вздохи)
* Музыку и звуковые эффекты
* Многоязычную речь

## Требования

| Качество | VRAM | Рекомендуется |
| -------- | ---- | ------------- |
| Малый    | 4 ГБ | RTX 3060      |
| Обычный  | 8 ГБ | RTX 3070      |
| Высокий  | 12GB | RTX 3090      |

## Быстрое развёртывание

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

```
pytorch/pytorch:2.11.0-cuda12.8-cudnn9-runtime
```

**Порты:**

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

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

```bash
pip install git+https://github.com/suno-ai/bark.git gradio scipy && \\
python -c "
import gradio as gr
from bark import SAMPLE_RATE, generate_audio, preload_models
import scipy.io.wavfile as wav
import numpy as np
import tempfile

preload_models()

def generate(text, voice):
    audio = generate_audio(text, history_prompt=voice)
    with tempfile.NamedTemporaryFile(suffix='.wav', delete=False) as f:
        wav.write(f.name, SAMPLE_RATE, (audio * 32767).astype(np.int16))
        return f.name

voices = ['v2/en_speaker_0', 'v2/en_speaker_1', 'v2/en_speaker_2', 'v2/en_speaker_3',
          'v2/en_speaker_4', 'v2/en_speaker_5', 'v2/en_speaker_6', 'v2/en_speaker_7',
          'v2/en_speaker_8', 'v2/en_speaker_9']

demo = gr.Interface(fn=generate, inputs=[gr.Textbox(lines=5), gr.Dropdown(voices)],
                   outputs=gr.Audio(), title='Bark TTS')
demo.launch(server_name='0.0.0.0', server_port=7860)
"
```

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

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

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

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

### Проверьте, что он работает

```bash
# Проверьте, доступен ли интерфейс Gradio
curl https://your-http-pub.clorecloud.net/
```

{% hint style="warning" %}
Если вы получаете HTTP 502, подождите 3–5 минут — сервис загружает модели.
{% endhint %}

## Установка

```bash
pip install git+https://github.com/suno-ai/bark.git
pip install scipy
```

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

```python
from bark import SAMPLE_RATE, generate_audio, preload_models
import scipy.io.wavfile as wav
import numpy as np

# Предварительная загрузка моделей (скачиваются при первом запуске)
preload_models()

# Генерация аудио
text = "Привет, это тест преобразования текста в речь Bark."
audio = generate_audio(text)

# Сохранить как WAV
wav.write("output.wav", SAMPLE_RATE, (audio * 32767).astype(np.int16))
```

## Выбор голоса

### Встроенные голоса

```python

# Англоязычные голоса (0–9)
audio = generate_audio("Привет!", history_prompt="v2/en_speaker_0")
audio = generate_audio("Привет!", history_prompt="v2/en_speaker_3")
audio = generate_audio("Привет!", history_prompt="v2/en_speaker_9")

# Другие языки
audio = generate_audio("Bonjour!", history_prompt="v2/fr_speaker_0")  # Французский
audio = generate_audio("Hallo!", history_prompt="v2/de_speaker_0")    # Немецкий
audio = generate_audio("Hola!", history_prompt="v2/es_speaker_0")     # Испанский
audio = generate_audio("Ciao!", history_prompt="v2/it_speaker_0")     # Итальянский
audio = generate_audio("Olá!", history_prompt="v2/pt_speaker_0")      # Португальский
audio = generate_audio("Привет!", history_prompt="v2/ru_speaker_0")   # Русский
audio = generate_audio("こんにちは!", history_prompt="v2/ja_speaker_0") # Японский
audio = generate_audio("你好!", history_prompt="v2/zh_speaker_0")      # Китайский
```

### Доступные языки

| Язык          | Код | Дикторы |
| ------------- | --- | ------- |
| Английский    | en  | 0-9     |
| Немецкий      | de  | 0-9     |
| Испанский     | es  | 0-9     |
| Французский   | fr  | 0-9     |
| Хинди         | hi  | 0-9     |
| Итальянский   | it  | 0-9     |
| Японский      | ja  | 0-9     |
| Корейский     | ko  | 0-9     |
| Польский      | pl  | 0-9     |
| Португальский | pt  | 0-9     |
| Русский       | ru  | 0-9     |
| Турецкий      | tr  | 0-9     |
| Китайский     | zh  | 0-9     |

## Невербальные звуки

Bark может генерировать невербальное аудио:

```python

# Смех
audio = generate_audio("Привет! [laughs] Это так смешно!")

# Вздохи
audio = generate_audio("[sighs] Я так устал сегодня.")

# Вздох удивления
audio = generate_audio("[gasps] Боже мой!")

# Прочищение горла
audio = generate_audio("[clears throat] Кхм, внимание, пожалуйста.")

# Ноты музыки
audio = generate_audio("♪ La la la ♪")
```

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

Для текста длиннее 13 секунд:

```python
from bark import generate_audio
from bark.generation import SAMPLE_RATE
import numpy as np

def generate_long_audio(text, voice="v2/en_speaker_6"):
    # Разбить на предложения
    sentences = text.replace(".", ".|").replace("?", "?|").replace("!", "!|").split("|")
    sentences = [s.strip() for s in sentences if s.strip()]

    audio_segments = []
    for sentence in sentences:
        audio = generate_audio(sentence, history_prompt=voice)
        audio_segments.append(audio)
        # Добавить небольшую паузу между предложениями
        audio_segments.append(np.zeros(int(0.25 * SAMPLE_RATE)))

    return np.concatenate(audio_segments)

long_text = """
Это более длинный фрагмент текста, который будет разделён на несколько сегментов.
Каждый сегмент будет сгенерирован отдельно. Затем они будут объединены.
Это позволяет генерировать аудио любой длины.
"""

audio = generate_long_audio(long_text)
```

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

Создайте пользовательские голосовые подсказки:

```python
from bark.generation import preload_models, generate_text_semantic
from bark.api import semantic_to_waveform
from bark import generate_audio, SAMPLE_RATE
import numpy as np

# Генерация с определёнными характеристиками

# Подсказка может включать описание диктора

# Сначала сгенерируйте эталон
voice_prompt = "v2/en_speaker_6"
text = "Вот как я звучу, когда говорю обычно."
audio = generate_audio(text, history_prompt=voice_prompt)

# Сохранить как пользовательский голос (упрощённый пример)
np.savez("custom_voice.npz", audio=audio)
```

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

```python
import os
from bark import generate_audio, SAMPLE_RATE
import scipy.io.wavfile as wav
import numpy as np

texts = [
    "Добро пожаловать в наш подкаст.",
    "Сегодня мы обсудим искусственный интеллект.",
    "Давайте начнём с введения.",
]

output_dir = "./audio_clips"
os.makedirs(output_dir, exist_ok=True)

voice = "v2/en_speaker_6"

for i, text in enumerate(texts):
    print(f"Генерация {i+1}/{len(texts)}")
    audio = generate_audio(text, history_prompt=voice)
    wav.write(
        os.path.join(output_dir, f"clip_{i:03d}.wav"),
        SAMPLE_RATE,
        (audio * 32767).astype(np.int16)
    )
```

## API-сервер

```python
from fastapi import FastAPI
from fastapi.responses import FileResponse
from bark import generate_audio, preload_models, SAMPLE_RATE
import scipy.io.wavfile as wav
import numpy as np
import tempfile
import os

app = FastAPI()
preload_models()

@app.post("/generate")
async def generate_speech(text: str, voice: str = "v2/en_speaker_6"):
    audio = generate_audio(text, history_prompt=voice)

    with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as f:
        wav.write(f.name, SAMPLE_RATE, (audio * 32767).astype(np.int16))
        return FileResponse(f.name, media_type="audio/wav")

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

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

```bash
curl -X POST "http://localhost:8000/generate?text=Hello%20world&voice=v2/en_speaker_6" \\
    --output speech.wav
```

## Оптимизация памяти

### Для ограниченной VRAM

```python
import os

# Используйте меньшую модель
os.environ["SUNO_USE_SMALL_MODELS"] = "1"

# Выгрузить на CPU
os.environ["SUNO_OFFLOAD_CPU"] = "1"

from bark import generate_audio
audio = generate_audio("Привет, мир")
```

### Включить FP16

```python
os.environ["SUNO_ENABLE_MPS"] = "0"

from bark import generate_audio
audio = generate_audio("Привет!", history_prompt="v2/en_speaker_6")
```

## Объединение с другим аудио

```python
from pydub import AudioSegment
import numpy as np
from bark import generate_audio, SAMPLE_RATE
import scipy.io.wavfile as wav
import tempfile

def bark_to_pydub(audio_array):
    with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as f:
        wav.write(f.name, SAMPLE_RATE, (audio_array * 32767).astype(np.int16))
        return AudioSegment.from_wav(f.name)

# Сгенерировать речь
speech = generate_audio("Добро пожаловать на шоу!")
speech_audio = bark_to_pydub(speech)

# Загрузить фоновую музыку
music = AudioSegment.from_mp3("background.mp3")

# Смешать вместе
music = music - 20  # Уменьшить громкость музыки
combined = speech_audio.overlay(music)
combined.export("output.mp3", format="mp3")
```

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

| Режим   | GPU      | Время (10 слов) |
| ------- | -------- | --------------- |
| Обычный | RTX 3090 | \~5 с           |
| Обычный | RTX 4090 | \~3 с           |
| Малый   | RTX 3060 | \~8 с           |
| CPU     | -        | \~60 с          |

## Сравнение с другими TTS

| Функция     | Bark        | Coqui   | Piper  |
| ----------- | ----------- | ------- | ------ |
| Качество    | Лучше всего | Отлично | Хорошо |
| Скорость    | Медленно    | Средне  | Быстро |
| Языки       | 13+         | 20+     | 30+    |
| Невербально | Да          | Нет     | Нет    |
| VRAM        | 8 ГБ+       | 4 ГБ    | 1 ГБ   |

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

### Недостаточно памяти

```python

# Используйте маленькие модели
os.environ["SUNO_USE_SMALL_MODELS"] = "1"
os.environ["SUNO_OFFLOAD_CPU"] = "1"
```

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

* Используйте GPU (не 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 40 ГБ | \~$0.17          | \~$4.00        | \~$0.70          |
| A100 80 ГБ | \~$0.25          | \~$6.00        | \~$1.00          |

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

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

* Используйте **Spot** рынок для прерываемых задач — примерно треть серверов оценивает spot-цены ниже on-demand (медиана \~13% скидки), остальные совпадают с ними
* Платите **CLORE** токенами
* Сравните цены у разных провайдеров

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

* [Клонирование голоса RVC](/guides/guides_v2-ru/audio-i-golos/rvc-voice-clone.md)
* [Whisper Transcription](/guides/guides_v2-ru/audio-i-golos/whisper-transcription.md)
* [Музыка AudioCraft](/guides/guides_v2-ru/audio-i-golos/audiocraft-music.md)


---

# 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/bark-tts.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.
