API belgeleri
Kurdî TTS API'si Kurmancî metni WAV sese çevirir. API erişimi Başlangıç ve Pro paketlerinde vardır.
Kimlik doğrulama
Panelin API anahtarları bölümünden anahtar oluşturun ve her istekte Authorization: Bearer başlığıyla gönderin. Anahtar yalnız oluşturulduğu anda gösterilir. Anahtarı tarayıcı veya mobil uygulama koduna koymayın, kendi sunucunuzdan kullanın.
Ses üretme
POST /api/v1/tts
| Alan | Tür | Açıklama |
|---|---|---|
text | metin, zorunlu | Latin alfabesiyle Kurmancî metin. En fazla 1.000 karakter. |
voice | metin | Ses kimliği. Varsayılan erkek2. |
speed | sayı | 0.75 ile 1.4 arası konuşma hızı. Varsayılan 1. |
Başarılı yanıt audio/wav (22.050 Hz, 16 bit, tek kanal) döner. X-Characters-Remaining başlığı kalan aylık karakteri, X-Synthetic-Voice başlığı sesin yapay olduğunu bildirir.
cURL
curl -X POST https://kurditts.com/api/v1/tts \
-H "Authorization: Bearer $KURDI_TTS_ANAHTARI" \
-H "Content-Type: application/json" \
-d '{"text": "Roj baş, tu çawa yî?", "voice": "erkek2", "speed": 1}' \
--output ses.wavPython
import os, requests
yanit = requests.post(
"https://kurditts.com/api/v1/tts",
headers={"Authorization": f"Bearer {os.environ['KURDI_TTS_ANAHTARI']}"},
json={"text": "Roj baş, tu çawa yî?", "voice": "kadin1"},
timeout=120,
)
yanit.raise_for_status()
open("ses.wav", "wb").write(yanit.content)Node.js
const yanit = await fetch("https://kurditts.com/api/v1/tts", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.KURDI_TTS_ANAHTARI}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ text: "Roj baş, tu çawa yî?", voice: "erkek2" }),
});
if (!yanit.ok) throw new Error((await yanit.json()).error.message);
const ses = Buffer.from(await yanit.arrayBuffer());Sesler
GET /api/v1/sesler sesleri listeler, anahtar gerektirmez.
| Kimlik | Ad | Tür |
|---|---|---|
kadin1 | Kadın 1 | Kadın |
kadin2 | Kadın 2 | Kadın |
erkek1 | Erkek 1 | Erkek |
erkek2 | Erkek 2 | Erkek |
Sınırlar
Başlangıç paketinde dakikada 20, Pro paketinde dakikada 60 istek yapılabilir. Uzun metinleri cümle sonlarından bölerek gönderin. Yoğunlukta istekler sıraya girer, bu yüzden en az 120 saniyelik zaman aşımı kullanın.
Hatalar
{
"error": {
"code": "aylik_kota",
"message": "Aylık karakter kotanız doldu.",
"limit": 100000
}
}| Durum | Kod | Anlamı |
|---|---|---|
| 400 | gecersiz_istek | Eksik ya da hatalı alan |
| 401 | gecersiz_anahtar | Anahtar yanlış ya da iptal edilmiş |
| 402 | aylik_kota | Aylık karakter kotası doldu |
| 403 | api_paket_gerekli | Paket API erişimi içermiyor |
| 413 | metin_uzun | Metin istek başına sınırı aşıyor |
| 429 | hiz_siniri | Dakikalık istek sınırı aşıldı |
| 503 | servis_hazir_degil | Ses hizmeti geçici olarak hazır değil, karakterler iade edildi |
Yapay ses bildirimi
API ile üretilen sesi dinleyicilere sunarken sesin yapay olduğunu belirtmelisiniz. Ayrıntılar için yapay ses beyanına bakın.