Озвучить текст

Текст до 1000 знаков → звук одним запросом, без очереди глав.

POST /tts · озвучка

Для реплики бота, подписи, уведомления. Ответ обычно за 1–10 секунд. Числа, даты и сокращения прочтутся словами; ударение можно подсказать знаком + перед гласной: з+амок. Длиннее 1000 знаков — книгой: длинный текст читается ровнее и с паузами.

Тот же текст тем же голосом второй раз — бесплатно и мгновенно.

Тело запроса

JSON, заголовок content-type: application/json.

Поле Тип Обязательно Что это
text строка да Текст, до 1000 знаков
voice_id строка да Голос из GET /voices
emotion строка нет Нейтрально (по умолчанию) или другая — если голос умеет играть эмоции
speed число нет Темп от 0,6 до 1,4
output строка нет audio (по умолчанию) — сам звук WAV; url — JSON со ссылкой

Что в ответе

Поле Что это
тело Звук WAV (content-type: audio/wav) — при output: audio
audio_url Ссылка на звук — при output: url
generated false — звук был готов, не списан
expires_s Сколько секунд живёт ссылка

Ошибки

Код Когда
402 Не хватает знаков
409 Голос сейчас не работает
503 Озвучка не ответила вовремя — повторите
curl -X POST "https://golosar-kniga.tech/api/v1/tts" \
  -H "x-api-key: $KEY" \
  -H "content-type: application/json" \
  -d '{"text": "Здравствуйте! Ваш заказ готов.", "voice_id": "01a134c9-6206-79f0-b812-4f2c0a9d5302"}' \
  -o hello.wav
import os, requests

API = "https://golosar-kniga.tech/api/v1"
H = {"x-api-key": os.environ["GOLOSAR_KEY"]}

r = requests.post(f"{API}/tts", headers=H, json={"text": "Здравствуйте! Ваш заказ готов.", "voice_id": "01a134c9-6206-79f0-b812-4f2c0a9d5302"})
r.raise_for_status()
open("hello.wav", "wb").write(r.content)
import { writeFile } from "node:fs/promises";
const API = "https://golosar-kniga.tech/api/v1";
const H = { "x-api-key": process.env.GOLOSAR_KEY, "content-type": "application/json" };

const r = await fetch(`${API}/tts`, { method: "POST", headers: H, body: JSON.stringify({"text": "Здравствуйте! Ваш заказ готов.", "voice_id": "01a134c9-6206-79f0-b812-4f2c0a9d5302"}) });
if (!r.ok) throw new Error(await r.text());
await writeFile("hello.wav", Buffer.from(await r.arrayBuffer()));

json Ответ 200 при output: url { "audio_url": "https://golosar-kniga.tech/files/eyJrIjoi…", "prepared": "До́брый ве́чер! Э́то прове́рка голоса.", "generated": false, "duration_s": 2.9, "expires_s": 3600 }