Appearance
Быстрый старт
Начните работу с GenVoice API за 2 минуты.
Что потребуется
- Аккаунт GenVoice (зарегистрироваться)
- API-ключ (как создать)
1. Проверьте баланс
Формат ответа и ошибки: операция проверки баланса.
bash
curl https://api.genvoice.ru/v1/api/balance \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"Ответ:
json
{
"balance": 10.00,
"currency": "RUB"
}2. Получите список голосов
bash
curl https://api.genvoice.ru/v1/api/voices/public \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"Ответ:
json
[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Алексей",
"description": "Мужской, нейтральный тон",
"published_at": "2026-01-15T10:00:00Z",
"favorites_count": 42
}
]3. Синтезируйте речь
С использованием публичного голоса. Замените демонстрационный voice_id ниже на настоящий id из ответа на предыдущий запрос; показанный UUID — только пример.
bash
curl --fail -X POST https://api.genvoice.ru/v1/api/tts \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Привет! Это тестовый запрос к GenVoice API.",
"voice_id": "550e8400-e29b-41d4-a716-446655440000",
"output_format": "mp3_24000_48"
}' \
--output speech.mp3Тело успешного ответа — аудиофайл. Сохраните его с помощью --output в curl. При HTTP-ошибке curl завершится с ненулевым кодом, не записывая тело ошибки в MP3. Все параметры: операция синтеза речи.
Пример на Python
python
import requests
API_KEY = "sk_live_YOUR_API_KEY"
BASE_URL = "https://api.genvoice.ru/v1"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
# Получить список публичных голосов
voices_response = requests.get(
f"{BASE_URL}/api/voices/public", headers=HEADERS, timeout=(10, 30)
)
voices_response.raise_for_status()
voices = voices_response.json()
if not voices:
raise RuntimeError("В публичном каталоге нет доступных голосов")
voice_id = voices[0]["id"]
# Синтезировать речь
response = requests.post(
f"{BASE_URL}/api/tts",
headers=HEADERS,
json={
"text": "Привет! Это тестовый запрос к GenVoice API.",
"voice_id": voice_id,
"output_format": "mp3_24000_48",
},
timeout=(10, 120),
)
response.raise_for_status()
with open("speech.mp3", "wb") as f:
f.write(response.content)
print(f"Сохранено {len(response.content)} байт в speech.mp3")Что дальше
- Распознавание речи — отправка файла и получение текста
- Клонирование голоса — создание собственного голоса для TTS
- Форматы аудио — все поддерживаемые форматы вывода
- Ошибки и лимиты — коды ошибок и ограничения
- Тарифы и ограничения — лимиты по тарифам
- API Reference — полное описание эндпоинтов