Синтез мовлення через простий REST. Постав текст — забери готове аудіо. 700+ голосів, 27 мов, керування швидкістю, гучністю та емоцією.
BASE https://api.sonapro.appБот і API працюють з одного балансу символів твого акаунта.
sk_user_… — додавай його в заголовок кожного запиту:X-API-Key: sk_user_…
Голос задається нашим ID vc_… з бібліотеки голосів або через GET /v1/voices.
Генерація асинхронна: постав задачу → дочекайся done → забери аудіо.
# базовий URL і твій ключ
API="https://api.sonapro.app"
KEY="sk_user_…"
# 1 · поставити озвучку → отримаєш job_id
curl -X POST $API/v1/tts \
-H "X-API-Key: $KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Привіт, світе!","voice":"vc_xxxxxxxxxx",
"language":"uk","model":"sona-pro"}'
# → {"job_id":"...","status":"queued","chars":13}
# 2 · перевіряй статус, доки не "done"
curl $API/v1/tts/JOB_ID -H "X-API-Key: $KEY"
# 3 · забери готовий файл
curl $API/v1/tts/JOB_ID/audio -H "X-API-Key: $KEY" -o out.mp3
Python/JS: шли JSON через нормальний HTTP-клієнт (requests / fetch) — не збирай тіло руками в shell, щоб не зіпсувати UTF-8.
| Метод | Шлях | Опис |
|---|---|---|
| POST | /v1/tts | поставити озвучку → job_id |
| GET | /v1/tts/{job_id} | статус: queued / processing / done / error |
| GET | /v1/tts/{job_id}/audio | завантажити готове аудіо (доступне 24 год) |
| GET | /v1/voices?language=uk | каталог голосів (vc_…) |
| GET | /v1/me | залишок символів на акаунті |
POST /v1/tts| Поле | Тип | За замовч. | Опис |
|---|---|---|---|
text * | string | — | текст для озвучення |
voice * | string | — | ID голосу vc_… |
language | string | en | uk, en, … (27 мов) |
model | string | sona-pro | sona-fast / sona-pro / sona-hd |
format | string | mp3 | mp3 або wav |
bitrate | int | 128000 | mp3: 32/64/96/128/192 kbps |
sample_rate | int | 44100 | 8000…48000 |
speed | float | — | 0.6 – 1.5 |
volume | float | — | 0.5 – 2.0 |
emotion | string | — | neutral / calm / angry / content / sad |
401 | невірний / неактивний ключ |
402 | недостатньо символів на балансі |
404 | задачу не знайдено |
410 | аудіо прострочене (видалено за давністю) |
422 | помилка валідації / невідомий голос |
429 | забагато активних задач — дочекайся завершення |
503 | технічні роботи — спробуй трохи пізніше |