Transkrypcja

Dowiedz się, jak zamieniać nagrania mowy na tekst z ElevenLabs.

Omówienie

Interfejs Speech to Text (STT) API od ElevenLabs zamienia mowę na tekst z najnowocześniejszą dokładnością. Nasz model Scribe v2 dostosowuje się do wskazówek tekstowych w ponad 90 językach i do różnych stylów mowy. Aby wypróbować demo na żywo, odwiedź stronę prezentującą Speech to Text.

Firmy wymagające zgodności z HIPAA muszą skontaktować się z działem sprzedaży ElevenLabs Sales, aby podpisać umowę Business Associate Agreement (BAA). Upewnij się, że ten krok został wykonany przed wdrożeniem lub integracją związaną z HIPAA.

Modele

Przykładowa odpowiedź API

Poniższy przykład pokazuje wynik API Speech to Text dla przykładowego pliku audio z użyciem modelu Scribe v2.

{
"language_code": "en",
"language_probability": 1,
"text": "With a soft and whispery American accent, I'm the ideal choice for creating ASMR content, meditative guides, or adding an intimate feel to your narrative projects.",
"words": [
{
"text": "With",
"start": 0.119,
"end": 0.259,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 0.239,
"end": 0.299,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "a",
"start": 0.279,
"end": 0.359,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 0.339,
"end": 0.499,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "soft",
"start": 0.479,
"end": 1.039,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 1.019,
"end": 1.2,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "and",
"start": 1.18,
"end": 1.359,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 1.339,
"end": 1.44,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "whispery",
"start": 1.419,
"end": 1.979,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 1.959,
"end": 2.179,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "American",
"start": 2.159,
"end": 2.719,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 2.699,
"end": 2.779,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "accent,",
"start": 2.759,
"end": 3.389,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 4.119,
"end": 4.179,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "I'm",
"start": 4.159,
"end": 4.459,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 4.44,
"end": 4.52,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "the",
"start": 4.5,
"end": 4.599,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 4.579,
"end": 4.699,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "ideal",
"start": 4.679,
"end": 5.099,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 5.079,
"end": 5.219,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "choice",
"start": 5.199,
"end": 5.719,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 5.699,
"end": 6.099,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "for",
"start": 6.099,
"end": 6.199,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 6.179,
"end": 6.279,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "creating",
"start": 6.259,
"end": 6.799,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 6.779,
"end": 6.979,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "ASMR",
"start": 6.959,
"end": 7.739,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 7.719,
"end": 7.859,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "content,",
"start": 7.839,
"end": 8.45,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 9,
"end": 9.06,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "meditative",
"start": 9.04,
"end": 9.64,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 9.619,
"end": 9.699,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "guides,",
"start": 9.679,
"end": 10.359,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 10.359,
"end": 10.409,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "or",
"start": 11.319,
"end": 11.439,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 11.42,
"end": 11.52,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "adding",
"start": 11.5,
"end": 11.879,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 11.859,
"end": 12,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "an",
"start": 11.979,
"end": 12.079,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 12.059,
"end": 12.179,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "intimate",
"start": 12.179,
"end": 12.579,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 12.559,
"end": 12.699,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "feel",
"start": 12.679,
"end": 13.159,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 13.139,
"end": 13.179,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "to",
"start": 13.159,
"end": 13.26,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 13.239,
"end": 13.3,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "your",
"start": 13.299,
"end": 13.399,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 13.379,
"end": 13.479,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "narrative",
"start": 13.479,
"end": 13.889,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 13.919,
"end": 13.939,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "projects.",
"start": 13.919,
"end": 14.779,
"type": "word",
"speaker_id": "speaker_0"
}
]
}

Dane wyjściowe są klasyfikowane w trzech kategoriach:

  • word – słowo w języku audio
  • spacing – odstęp między słowami; nie dotyczy języków bez spacji, takich jak japoński, mandaryński, tajski, laotański, birmański i kantoński
  • audio_event – dźwięki inne niż mowa, np. śmiech lub oklaski

Współbieżność i priorytet

Współbieżność oznacza liczbę żądań, które mogą być przetwarzane jednocześnie.

W Speech to Text pliki dłuższe niż 8 minut są wewnętrznie transkrybowane równolegle, aby przyspieszyć przetwarzanie. Audio jest dzielone na cztery segmenty transkrybowane jednocześnie.

Limit współbieżności możesz obliczyć tak:

Concurrency=min⁡(4,round_up(audio_ duration_secs480))Concurrency = \min(4, \text{round\_up}(\frac{\text{audio\_ duration\_secs}}{480}))

Na przykład plik audio o długości 15 minut zostanie transkrybowany ze współbieżnością 2, a plik o długości 120 minut – ze współbieżnością 4.

Powyższe obliczenie dotyczy tylko Scribe v2 i Scribe v2 Medical. W przypadku Scribe v2 Realtime zobacz wykres limitów współbieżności.

Zaawansowane funkcje

Podpowiedzi keyterm i edycja transkrypcji wiążą się z dodatkową opłatą. Szczegółowe informacje o cenach znajdziesz na stronie cennika API.

Podpowiedzi keyterm

Podpowiedzi keyterm są dostępne w Scribe v2, Scribe v2 Medical (batch) i Scribe v2 Realtime.

Wyróżnij słowa lub frazy, aby zwiększyć prawdopodobieństwo ich transkrypcji przez model. Przydaje się to do transkrypcji rzadko występujących w audio konkretnych słów lub zdań, np. nazw produktów, imion i nazwisk czy innych określonych terminów. Keyterms są skuteczniejsze niż słowa kluczowe z preferencją lub własne słowniki oferowane przez inne modele, ponieważ wykorzystują kontekst, by zdecydować, czy transkrybować dany termin. Tryb batch obsługuje do 1000 keyterms (po 50 znaków), a realtime – do 50 keyterms (po 20 znaków).

Aby dowiedzieć się więcej o podpowiedziach keyterm, zobacz dokumentację podpowiedzi keyterm.

Tryb bez dosłownej transkrypcji

Tryb bez dosłownej transkrypcji jest dostępny w Scribe v2, Scribe v2 Medical (batch) i Scribe v2 Realtime.

Gdy no_verbatim jest włączone, model usuwa z transkrypcji wypełniacze, fałszywe początki i niepłynności mowy. Zapewnia to czystszy wynik, odpowiedni dla napisów, podsumowań i zastosowań, w których czytelność jest ważniejsza niż zapisanie każdego wypowiedzianego słowa.

Wykrywanie encji

Wykrywanie encji jest dostępne we wszystkich modelach batch oraz w Scribe v2 Realtime.

Modele batch i Scribe v2 Realtime mogą wykrywać w transkrypcji kilka kategorii encji oraz podawać ich dokładne znaczniki czasu. Przydaje się to do wyróżniania numerów kart kredytowych, imion i nazwisk, schorzeń lub numerów SSN.

Pełną listę obsługiwanych encji znajdziesz w dokumentacji wykrywania encji.

Edycja transkrypcji

Edycja transkrypcji to eksperymentalna funkcja dostępna we wszystkich modelach batch i Scribe v2 Realtime.

Przekaż instrukcję w języku naturalnym za pomocą parametru transcript_edit, a zostanie zastosowana do gotowej transkrypcji. Edytowany tekst jest zwracany w edited_transcript obok oryginalnej transkrypcji, więc znaczniki czasu i etykiety mówców pozostają bez zmian. Przydaje się to do ujednolicania zapisu dat, godzin lub jednostek, stosowania innego stylu albo przeredagowania transkrypcji w jednym żądaniu.

Więcej informacji znajdziesz w dokumentacji edycji transkrypcji oraz przewodniku edycji transkrypcji w czasie rzeczywistym.

Obsługiwane języki

Scribe v2 obsługuje ponad 90 języków, w tym:

Afrykanerski (afr), amharski (amh), arabski (ara), armeński (hye), asamski (asm), asturyjski (ast), azerski (aze), białoruski (bel), bengalski (ben), bośniacki (bos), bułgarski (bul), birmański (mya), kantoński (yue), kataloński (cat), cebuański (ceb), cziczewa (nya), chorwacki (hrv), czeski (ces), duński (dan), niderlandzki (nld), angielski (eng), estoński (est), filipiński (fil), fiński (fin), francuski (fra), fulani (ful), galicyjski (glg), ganda (lug), gruziński (kat), niemiecki (deu), grecki (ell), gudżaracki (guj), hausa (hau), hebrajski (heb), hindi (hin), węgierski (hun), islandzki (isl), igbo (ibo), indonezyjski (ind), irlandzki (gle), włoski (ita), japoński (jpn), jawajski (jav), kriolu kabowerdeńskie (kea), kannada (kan), kazachski (kaz), khmerski (khm), koreański (kor), kurdyjski (kur), kirgiski (kir), laotański (lao), łotewski (lav), lingala (lin), litewski (lit), luo (luo), luksemburski (ltz), macedoński (mkd), malajski (msa), malajalam (mal), maltański (mlt), mandaryński chiński (zho), maoryski (mri), marathi (mar), mongolski (mon), nepalski (nep), sotho północny (nso), norweski (nor), oksytański (oci), odia (ori), paszto (pus), perski (fas), polski (pol), portugalski (por), pendżabski (pan), rumuński (ron), rosyjski (rus), serbski (srp), shona (sna), sindhi (snd), syngaleski (sin), słowacki (slk), słoweński (slv), somalijski (som), hiszpański (spa), suahili (swa), szwedzki (swe), tamilski (tam), tadżycki (tgk), telugu (tel), tajski (tha), turecki (tur), ukraiński (ukr), umbundu (umb), urdu (urd), uzbecki (uzb), wietnamski (vie), walijski (cym), wolof (wol), xhosa (xho) i zulu (zul).

Szczegóły obsługi języków

Współczynnik błędów słów (WER) to kluczowa miara oceny dokładności systemów transkrypcji. Mierzy liczbę błędów w transkrypcji w porównaniu z transkrypcją referencyjną. Poniżej znajdziesz WER dla każdego języka obsługiwanego przez Scribe v2.

białoruski (bel), bośniacki (bos), bułgarski (bul), kataloński (cat), chorwacki (hrv), czeski (ces), duński (dan), niderlandzki (nld), angielski (eng), estoński (est), fiński (fin), francuski (fra), galicyjski (glg), niemiecki (deu), grecki (ell), węgierski (hun), islandzki (isl), indonezyjski (ind), włoski (ita), japoński (jpn), kannada (kan), łotewski (lav), macedoński (mkd), malajski (msa), malajalam (mal), norweski (nor), polski (pol), portugalski (por), rumuński (ron), rosyjski (rus), słowacki (slk), hiszpański (spa), szwedzki (swe), turecki (tur), ukraiński (ukr) i wietnamski (vie).

ormiański (hye), azerski (aze), bengalski (ben), kantoński (yue), filipiński (fil), gruziński (kat), gudżarati (guj), hindi (hin), kazachski (kaz), litewski (lit), maltański (mlt), mandaryński (cmn), marathi (mar), nepalski (nep), orija (ori), perski (fas), serbski (srp), słoweński (slv), suahili (swa), tamilski (tam) i telugu (tel)

afrikaans (afr), arabski (ara), asamski (asm), asturyjski (ast), birmański (mya), hausa (hau), hebrajski (heb), jawajski (jav), koreański (kor), kirgiski (kir), luksemburski (ltz), maoryski (mri), oksytański (oci), pendżabski (pan), tadżycki (tgk), tajski (tha), uzbecki (uzb) i walijski (cym).

amharski (amh), ganda (lug), igbo (ibo), irlandzki (gle), khmerski (khm), kurdyjski (kur), laotański (lao), mongolski (mon), sotho północny (nso), paszto (pus), shona (sna), sindhi (snd), syngaleski (sin), somalijski (som), urdu (urd), wolof (wol), xhosa (xho), joruba (yor) i zulu (zul).

FAQ

Tak, API obsługuje przesyłanie plików audio i wideo do transkrypcji.

Obsługiwane są pliki do 3 GB. Limity czasu trwania zależą od trybu transkrypcji:

  • Tryb standardowy (use_multi_channel=false): do 10 godzin
  • Tryb wielokanałowy (use_multi_channel=true): łączny czas trwania wszystkich kanałów musi być krótszy niż 10 godzin

API obsługuje następujące formaty audio i wideo:

  • audio/aac
  • audio/x-aac
  • audio/x-aiff
  • audio/ogg
  • audio/mpeg
  • audio/mp3
  • audio/mpeg3
  • audio/x-mpeg-3
  • audio/opus
  • audio/wav
  • audio/x-wav
  • audio/webm
  • audio/flac
  • audio/x-flac
  • audio/mp4
  • audio/aiff
  • audio/x-m4a

Obsługiwane formaty wideo obejmują:

  • video/mp4
  • video/x-msvideo
  • video/x-matroska
  • video/quicktime
  • video/x-ms-wmv
  • video/x-flv
  • video/webm
  • video/mpeg
  • video/3gpp

ElevenLabs stale rozszerza liczbę języków obsługiwanych przez nasze modele. Zaglądaj tu często, aby sprawdzać aktualizacje.

Tak, asynchroniczne wyniki transkrypcji można wysyłać do webhooków skonfigurowanych w ustawieniach webhooków w interfejsie. Więcej informacji znajdziesz w przewodniku po webhookach.

Tak, funkcja wielokanałowego STT pozwala transkrybować audio, w którym każdy kanał jest przetwarzany niezależnie i otrzymuje identyfikator mówcy na podstawie numeru kanału. Funkcja obsługuje do 5 kanałów. Więcej informacji znajdziesz w przewodniku po transkrypcji wielokanałowej.

ElevenLabs nalicza opłaty za zamianę mowy na tekst na podstawie czasu trwania audio przesłanego do transkrypcji. Rozliczenie jest obliczane za godzinę audio, a stawki zależą od planu i modelu. Szczegółowe informacje znajdziesz na stronie cennika API.

Kluczowe informacje

  • Obsługiwane dane wejściowe: akceptowane są pliki audio i wideo
  • Maksymalny rozmiar pliku: 3 GB
  • Maksymalny czas trwania: 10 godzin (tryb standardowy), 1 godzina (tryb wielokanałowy)
  • Tryb wielokanałowy: do 5 kanałów; każdy przetwarzany niezależnie z identyfikatorem mówcy przypisanym według numeru kanału
  • Webhooki: asynchroniczne wyniki transkrypcji mogą być dostarczane do webhooka — skonfiguruj go w ustawieniach obszaru roboczego
  • Obsługiwane formaty audio: AAC, AIFF, OGG, MP3, OPUS, WAV, FLAC, M4A, WebM
  • Obsługiwane formaty wideo: MP4, AVI, MKV, MOV, WMV, FLV, WebM, MPEG, 3GPP