Hear2Text

Sonuçlar

Deşifre metni segmentler hâlinde, konuşmacı etiketinin ne anlama geldiği ve beş dışa aktarma biçimi.

Segmentler

GET /transcriptions/{id}/segments deşifre metnini okuma sırasıyla döner: konuşulan her bölüm bir nesne, zamanlar kaydın başından itibaren saniye olarak.

200 OK
{
  "data": [
    { "index": 0, "start": 0.0,  "end": 4.24, "speaker": "A", "text": "Right, shall we start?" },
    { "index": 1, "start": 4.24, "end": 9.81, "speaker": "B", "text": "Yes -- I have the numbers here." }
  ],
  "has_more": false,
  "next_cursor": null
}
  • index, segmentin kayıttaki sırasıdır: sıfırdan başlar ve sayfalar boyunca kesintisiz ilerler. Veritabanı kimliği değildir; bizim hiçbir kimliğimiz bu sınırı geçmez.
  • start ve end saniye cinsindendir, milisaniye hassasiyetinde.
  • text, o bölümün metnidir; kaydın kendi dilinde.

Segmentler ancak kayıt completed olduktan sonra var olur. Daha erken sorarsanız hata değil, boş bir sayfa alırsınız; kodunuzun status alanına bakması için bir sebep daha.

Uzun bir deşifre metninde sayfalama

limit varsayılan olarak 100’dür, en çok 1000 olabilir. next_cursor değerini, has_more true olduğu sürece izlemeye devam edin. İmleç opaktır; size geldiği hâliyle geri gönderin.

curl "https://heartotext.com/api/public/v1/transcriptions/$ID/segments?limit=500" \
  -H "Authorization: Bearer $H2T_API_KEY"

curl "https://heartotext.com/api/public/v1/transcriptions/$ID/segments?limit=500&cursor=eyJvIjo1MDB9" \
  -H "Authorization: Bearer $H2T_API_KEY"

Konuşmacılar

speaker, konuşmacı ayrımından gelen bir etikettir: A, B, C — sesler kayıtta ilk hangi sırayla duyuluyorsa o sırayla. Bundan üç sonuç çıkar, üçü de önemli:

  • Kişi değildir. Kimsenin kim olduğunu tespit etmiyoruz. A etiketini bir isimle eşleştirmek yalnızca size düşer.
  • Yalnızca tek bir kaydın içinde tutarlıdır. Bir kayıttaki A konuşmacısıyla bir sonraki kayıttaki A konuşmacısının birbiriyle ilgisi yoktur; odadakiler aynı kişiler olsa bile.
  • null olabilir. Konuşmacı ayrımı ayıracak bir şey bulamadığında böyle olur; genelde tek sesli kayıtlarda.

Dışa aktarma biçimleri

formatDosyaNerede işe yarar
txtDüz metinDizinleme, arama, başka bir modele girdi.
srtSubRip altyazıVideo oynatıcılar ve kurgu programları.
vttWebVTT<track> etiketiyle web’de altyazı.
pdfPDFMüşteriye gönderilecek bir belge.
docxWordElden geçirilecek bir dosya.

text değeri txt ile aynı kapıya çıkar, word değeri de docx ile. Hangi biçimlerin açık olduğunu isteği yapan anahtar değil, kaydın sahibi olan hesabın planı belirler; ücretli bir planda beşi de açıktır.

Dışa aktarılan dosyayı indirme

Dosyanın kendisi, doğru içerik tipiyle doğrudan yanıtta gelir. Peşinden gideceğiniz imzalı bir bağlantı yok: bu dosyalar saklanmıyor, her istekte yeniden üretiliyor; imzalanacak bir şey de yok. Uzun bir kaydın PDF’i birkaç saniye sürer, zaman aşımınızı ona göre ayarlayın.

curl "https://heartotext.com/api/public/v1/transcriptions/$ID/export?format=srt" \
  -H "Authorization: Bearer $H2T_API_KEY" \
  -o episode-42.srt

Yalnızca completed durumundaki bir kayıt dışa aktarılabilir; başka bir durumdaki kayıt 409 transcription_is_not_ready alır. Bilinmeyen bir biçimin karşılığı ise 422.