Kayıt oluşturma
POST /transcriptions tek bir kaynak kabul eder: ya bir file ya da bir url. İkisini de göndermezseniz 422 alırsınız. Her iki alan da, isteğe bağlı language ve title ile birlikte multipart form verisi olarak gönderilebilir; bağlantı gönderiyorsanız JSON da olur.
| Alan | Tür | Notlar |
|---|---|---|
file | file | Ses ya da video, yalnızca multipart olarak. url göndermiyorsanız zorunlu. |
url | string | Herkese açık bir http(s) bağlantısı. file göndermiyorsanız zorunlu. |
language | string | Bir ISO kodu; kabul edilenler GET /languages listesinde. Boş bırakırsanız dili biz buluruz. |
title | string | Kayda kendi verdiğiniz ad; en çok 255 karakter. |
Oluşturma isteklerinde mutlaka bir Idempotency-Key gönderin. Burada iki kez gitmesi hesabınıza mal olan tek istek, oluşturma isteğidir.
Dosyadan
Dosya isteğin gövdesinde gider; bu yüzden HTTP istemcinize geniş bir zaman aşımı tanıyın — yavaş bir hatta büyük bir dosya ne kadar sürüyorsa o kadar sürer. ffmpeg’in okuyabildiği her şeyi alıyoruz: m4a, mp3, wav, flac, ogg, aac, mp4, mov, mkv, webm ve diğerleri.
curl https://heartotext.com/api/public/v1/transcriptions \
-H "Authorization: Bearer $H2T_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-F file=@interview.wav \
-F title="Interview with Dr Yilmaz" \
--max-time 1800Bağlantıdan
Bağlantıyı gönderin, dosyayı biz indirelim: herkese açık video ve ses siteleri, podcast akışlarındaki bölüm dosyaları, düz bir http(s) dosyası. Üç şeyi geri çeviriyoruz:
- Oynatma listeleri. Tek seferde tek kayıt gönderin; oynatma listesi bağlantısı
422ile reddedilir. - DRM korumalı siteler. İçerik korumasını kırmıyoruz.
- Özel adresler. Yerel ya da iç ağdaki bir makineye çözülen her adres geri çevrilir. Bunu hem siz gönderdiğinizde hem de indirmeye başlamadan hemen önce bir kez daha kontrol ediyoruz.
İndirilemeyen bir bağlantı, oluşturma isteğinde hata vermez; kayıt açılır ve status: "failed" durumuna gelir. Denemeden bilemeyiz.
Diller
Kaydın dilini bilmiyorsanız language alanını hiç göndermeyin, dili biz tespit ederiz. Biliyorsanız ISO kodunu gönderin: hem daha hızlı olur hem de tespitin yanılabileceği tek durumu ortadan kaldırır — kaydın, ağırlıklı dilinden başka bir dille açılması. GET /languages kabul ettiğimiz bütün kodları listeler.
{ "data": [ { "code": "ar", "name": "Arabic" }, { "code": "de", "name": "German" }, { "code": "en", "name": "English" } ] }Sınırlar
- 512 MB — bir yüklemenin üst sınırı. Daha büyük bir dosya
422ile geri çevrilir; gövde uygulamaya hiç ulaşamayacak kadar büyükse413gelir. - 6 saat — ücretli bir planda bir kayıt en fazla bu kadar uzun olabilir.
GET /mehesabınız için kesin rakamı verir. - Bütün kayıtları kapsayan günlük bir süre hakkı ve aynı anda kaç kaydın işlenebileceğine dair bir tavan da var. İkisi de hız sınırları sayfasında yazıyor.
Kayıtları listeleme
GET /transcriptions, bu anahtarın görebildiği kayıtları en yeniden başlayarak döner; limit (en çok 1000), cursor ve isteğe bağlı bir status filtresi alır.
curl "https://heartotext.com/api/public/v1/transcriptions?status=completed&limit=50" \
-H "Authorization: Bearer $H2T_API_KEY"Sayfalama her yerde imleçle yapılır, sayfa numarasıyla değil. next_cursor opak bir değerdir: olduğu gibi geri gönderin, kendiniz imleç üretmeye kalkmayın.
Kayıt silme
DELETE /transcriptions/{id} sesi, deşifre metnini ve gömme vektörlerini siler, karşılığında 204 döner. Silme kalıcıdır, geri alınamaz. Henüz bitmemiş, yani sırada bekleyen ya da işlenmekte olan bir kayıt için yanıt 409 transcription_still_processing olur; önce tamamlanmasını ya da başarısız olmasını bekleyin.
