PatientDesk Alania ve Duyu (Türkçe ses)
Alania ve Duyu, PatientDesk tarafından Türkçe için geliştirilmiş iki ses modelidir. Alania metni sese çevirir, Duyu ses kaydını yazıya döker. Modellerin teknik ayrıntıları ve ölçüm sonuçları geliştiricinin kendi sitesinde yer alır: speech.patientdesk.ai.
İki model de 25 Ekim 2026'ya kadar ücretsizdir ve bu tarihte kullanımdan kalkar (bkz. Emeklilik).
Modeller
Bölüm başlığı “Modeller”| Model | İş | Uç nokta |
|---|---|---|
patientdesk/alania-v1 |
Metinden sese (TTS) | POST /v1/audio/speech |
patientdesk/duyu-1 |
Sesten metne (STT) | POST /v1/audio/transcriptions |
Metinden sese: Alania
Bölüm başlığı “Metinden sese: Alania”curl "$LLMTR_BASE_URL/v1/audio/speech" \ -H "Authorization: Bearer llmtr-your_key" \ -H "Content-Type: application/json" \ -d '{ "model": "patientdesk/alania-v1", "input": "Randevunuz yarın saat 14:05 için oluşturuldu. Lütfen on dakika önce gelin.", "voice": "alania", "response_format": "mp3" }' \ --output randevu.mp3| Alan | Zorunlu | Açıklama |
|---|---|---|
model |
Evet | patientdesk/alania-v1 |
input |
Evet | Okunacak metin, en fazla 5.000 karakter. Daha uzun metni birden fazla isteğe bölün. |
voice |
Hayır | Tek ses vardır: alania (varsayılan). |
response_format |
Hayır | wav (varsayılan; 24 kHz, mono, 16 bit), mp3, opus, flac, aac veya pcm (başlıksız 16 bit; örnekleme hızı Content-Type içinde gelir: audio/L16; rate=24000). |
temperature |
Hayır | Varsayılan 0,30. Yükseltmek okuyuşu çeşitlendirir, sesin tutarlılığını azaltır. |
seed |
Hayır | Sağlayıcıya iletilir. Aynı metin ve aynı seed aynı sesi garanti etmez. |
Yanıt ses dosyasının kendisidir; Content-Type seçtiğiniz biçimi söyler (audio/wav, audio/mpeg vb.). Ses, üretimi bitince tek parça döner; stream alanı dikkate alınmaz. Bekleme süresi metnin uzunluğuyla artar ve uzun metinlerde dakikalar sürebilir; istemcinizin okuma zaman aşımını buna göre ayarlayın.
Her yanıtta X-Disclosure: ai-generated başlığı bulunur. Sesin yapay zekâ ile üretildiğini dinleyicilerinize bildirmek size aittir.
Sesten metne: Duyu
Bölüm başlığı “Sesten metne: Duyu”Ses, JSON gövdesinde base64 olarak gönderilir:
AUDIO_B64=$(base64 < kayit.m4a | tr -d '\n')printf '{"model":"patientdesk/duyu-1","audio_format":"m4a","language":"tr","audio_base64":"%s"}' \ "$AUDIO_B64" > istek.json
curl "$LLMTR_BASE_URL/v1/audio/transcriptions" \ -H "Authorization: Bearer llmtr-your_key" \ -H "Content-Type: application/json" \ --data @istek.json{ "text": "Randevumuz yarın saat 14.05 için oluşturuldu. Lütfen 10 dakika önce gelin." }| Alan | Zorunlu | Açıklama |
|---|---|---|
model |
Evet | patientdesk/duyu-1 |
audio_base64 |
Evet | Base64 ile kodlanmış ses. İstek başına yaklaşık 9 MB sesle sınırlıdır. |
audio_format |
Hayır | wav, mp3, m4a, webm, ogg veya flac. Gönderilmezse dosyanın ilk baytlarından anlaşılır; anlaşılamazsa istek 400 ile reddedilir. |
language |
Hayır | tr (varsayılan) veya auto. Model Türkçe içindir. |
prompt |
Hayır | Yazım ipucu: ilaç adları, kişi adları, kimlik numarası biçimi gibi terimler doğruluğu artırır. |
response_format |
Hayır | json (varsayılan), text, verbose_json, srt veya vtt. |
timestamp_granularities |
Hayır | ["segment"], ["word"] veya ikisi. Yalnızca verbose_json ile. |
temperature |
Hayır | 0 ile 1 arası, varsayılan 0. |
file_id bu modelde kabul edilmez; OpenAI SDK'nın dosya yüklemeli (multipart) çağrısı da bu uç noktada çalışmaz, isteği yukarıdaki gibi JSON olarak gönderin.
Çıktı biçimleri
Bölüm başlığı “Çıktı biçimleri”verbose_json, timestamp_granularities: ["word"] ile:
{ "task": "transcribe", "language": "tr", "duration": 8.533, "text": "Randevumuz yarın saat 14.05 için oluşturuldu. Lütfen 10 dakika önce gelin.", "segments": [ { "id": 0, "start": 0.0, "end": 8.288, "text": "Randevumuz yarın saat 14.05 için oluşturuldu. Lütfen 10 dakika önce gelin." } ], "words": [ { "word": "Randevumuz", "start": 0.0, "end": 0.968, "probability": 0.872 }, { "word": "yarın", "start": 0.968, "end": 2.888, "probability": 0.995 } ]}srt:
100:00:00,000 --> 00:00:08,288Randevumuz yarın saat 14.05 için oluşturuldu. Lütfen 10 dakika önce gelin.text düz metin, vtt WebVTT altyazı döndürür.
Ücretsiz dönem ve günlük sınır
Bölüm başlığı “Ücretsiz dönem ve günlük sınır”İki model de 25 Ekim 2026'ya kadar bakiyenizden ücret düşmeden çalışır. Bu dönemde kullanıcı başına günlük sınır vardır:
| Model | Günlük sınır |
|---|---|
patientdesk/alania-v1 |
20.000 karakter |
patientdesk/duyu-1 |
30 dakika ses |
Sınırlar her gün 00:00'da (İstanbul) sıfırlanır. Alania'da metnin uzunluğu baştan bilindiği için sınırı aşacak istek gönderilmeden reddedilir. Duyu'da kaydın süresi ancak işlendikten sonra bilinir: sınır dolmadığı sürece istek kabul edilir ve kaydın tamamı sayılır, sınır dolduktan sonraki istekler reddedilir.
Reddedilen istek 429 döner. Retry-After başlığı ve error.details.resetAt alanı ne zaman yeniden deneyebileceğinizi söyler:
{ "error": { "message": "This request would exceed your free daily allowance for this model (20,000 characters). 1,200 characters remain today. It resets at 00:00 Europe/Istanbul (2026-09-26 21:00 UTC).", "type": "rate_limit_error", "details": { "reason": "free_quota_exhausted", "scope": "user", "resetAt": "2026-09-26T21:00:00.000Z", "retryAfterSeconds": 3600 } }}Kendi sınırınıza ulaşmadan da 429 alabilirsiniz: ücretsiz dönemde tüm kullanıcılar için ortak bir günlük toplam vardır. Bu durumda scope alanı pool olur ve sıfırlanma zamanı aynıdır.
Emeklilik
Bölüm başlığı “Emeklilik”25 Ekim 2026 00:00 (İstanbul) itibarıyla iki model de istekleri 410 model_retired ile yanıtlar. Hata gövdesi, aynı uç noktada çalışan ücretli bir modeli önerir. İstekleriniz sessizce başka bir modele yönlendirilmez; model kimliğini siz değiştirene kadar hesabınızdan ücret çıkmaz.
- Metinden ses için
xai/grok-voice-tts:languagealanı zorunludur (ör."tr"), ses biçiminiresponse_formatdeğiloutput_formatalanından okur ve kendi sesleri vardır;alaniasesi bu modelde yoktur. - Sesten metin için
xai/grok-voice-stt: aynıaudio_base64isteğini kabul eder, yanıtı her zaman JSON olarak verir (text,srt,vttyoktur).
İsteğinizdeki metin ve ses, işlenmek üzere PatientDesk'e iletilir. PatientDesk'in gizlilik politikasına göre ses bellekte işlenir ve yanıttan hemen sonra silinir, transkriptler saklanmaz; model Hollanda'da (AB) çalışır. Politika, Alania'ya seslendirilmek üzere gönderilen metnin saklanıp saklanmadığını belirtmez. LLMTR bu modellerde metni, sesi ve transkripti kullanım kaydına yazmaz; kayıtta karakter sayısı ve ses süresi tutulur.
Hatalar
Bölüm başlığı “Hatalar”| Durum | Ne zaman |
|---|---|
400 invalid_request |
input 5.000 karakteri aşıyor, bilinmeyen voice, desteklenmeyen audio_format / language / response_format, biçimi anlaşılamayan veya çözülemeyen ses. |
400 unsupported_input |
Duyu'ya file_id gönderildi. |
413 |
Ses dosyası modelin kabul ettiği boyutu ya da süreyi (2 saat) aşıyor. Kaydı bölün. |
429 rate_limit_error |
Günlük ücretsiz sınır doldu. Retry-After sıfırlanmaya kalan süreyi saniye olarak verir. |
503 model_unavailable |
Model geçici olarak meşgul veya kullanılamıyor. Retry-After varsa o süre sonra tekrar deneyin. |
410 model_retired |
25 Ekim 2026 00:00 (İstanbul) sonrası. |
Genel hata biçimi için Hatalar sayfasına bakın.