Голос и эмоция героя

Дать герою другой голос, эмоцию, темп.

PATCH /characters/{character_id} · всё

Герои — в GET /books/{id} → characters. После смены голоса озвученные главы станут «изменены после озвучки»: переозвучьте их — заново озвучатся только куски этого героя.

Параметры пути

Параметр Что это
character_id Id героя

Тело запроса

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

Поле Тип Обязательно Что это
voice_id строка нет Голос из GET /voices
emotion строка нет Эмоция героя по умолчанию
controls объект нет {"speed": 0.9} — темп от 0,6 до 1,4
name / aliases строка / массив нет Имя и другие имена героя
gender / age строка нет m/f; child, young, adult, old
curl -X PATCH "https://golosar-kniga.tech/api/v1/characters/$CHARACTER_ID" \
  -H "x-api-key: $KEY" \
  -H "content-type: application/json" \
  -d '{"voice_id": "01a134c9-6206-79f0-b812-4f2c0a9d5302", "emotion": "Спокойно"}'
import os, requests

API = "https://golosar-kniga.tech/api/v1"
H = {"x-api-key": os.environ["GOLOSAR_KEY"]}
character_id = "01a134d0-ddae-7737-9ff4-0672f189eef8"

r = requests.patch(f"{API}/characters/{character_id}", headers=H, json={"voice_id": "01a134c9-6206-79f0-b812-4f2c0a9d5302", "emotion": "Спокойно"})
r.raise_for_status()
print(r.json())
const API = "https://golosar-kniga.tech/api/v1";
const H = { "x-api-key": process.env.GOLOSAR_KEY, "content-type": "application/json" };
const characterId = "01a134d0-ddae-7737-9ff4-0672f189eef8";

const r = await fetch(`${API}/characters/${characterId}`, { method: "PATCH", headers: H, body: JSON.stringify({"voice_id": "01a134c9-6206-79f0-b812-4f2c0a9d5302", "emotion": "Спокойно"}) });
if (!r.ok) throw new Error(await r.text());
console.log(await r.json());

json Ответ 200 { "character": { "id": "01a134d0-ddae-7737-9ff4-0672f189eef8", "name": "Мира", "aliases": [ "Мира" ], "is_narrator": false, "voice_id": "01a134c9-6206-79f0-b812-4f2c0a9d5302", "emotion": "Спокойно", "controls": { "pitch": 0, "speed": 1.0, "formant": 1.0 }, "position": 1, "gender": "f", "age": "", "description": "", "preset_id": null, "source": "manual" } }