Vai alla navigazione

Trascrizione

Scopri come trasformare l'audio parlato in testo con ElevenLabs.

Panoramica

L’API Speech to Text (STT) di ElevenLabs trasforma l’audio parlato in testo con un’accuratezza all’avanguardia. Il nostro modello Scribe v2 si adatta agli indizi testuali in oltre 90 lingue e a più stili vocali. Per provare una demo dal vivo, visita la nostra pagina dedicata a Speech to Text.

Le aziende che richiedono la conformità HIPAA devono contattare il reparto Vendite di ElevenLabs per firmare un Business Associate Agreement (BAA). Assicurati di completare questo passaggio prima di procedere con integrazioni o deployment relativi all’HIPAA.

Modelli

Esempio di risposta API

L’esempio seguente mostra l’output dell’API Speech to Text che usa il modello Scribe v2 per un file audio di esempio.

{
"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"
}
]
}

L’output è classificato in tre tipi di categorie:

  • word - Una parola nella lingua dell’audio
  • spacing - Lo spazio tra le parole, non applicabile alle lingue che non usano spazi come giapponese, mandarino, thai, lao, birmano e cantonese
  • audio_event - Suoni non vocali come risate o applausi

Concorrenza e priorità

La concorrenza indica quante richieste possono essere elaborate contemporaneamente.

Per Speech to Text, i file di durata superiore a 8 minuti vengono trascritti internamente in parallelo per velocizzare l’elaborazione. L’audio viene suddiviso in quattro segmenti da trascrivere simultaneamente.

Puoi calcolare il limite di concorrenza con la seguente formula:

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

Ad esempio, un file audio di 15 minuti verrà trascritto con una concorrenza di 2, mentre un file audio di 120 minuti verrà trascritto con una concorrenza di 4.

Il calcolo precedente si applica solo a Scribe v2 e Scribe v2 Medical. Per Scribe v2 Realtime, consulta il grafico dei limiti di concorrenza.

Funzionalità avanzate

Il prompting dei termini chiave e la modifica della trascrizione comportano un costo aggiuntivo. Consulta la pagina dei prezzi dell’API per informazioni dettagliate sui prezzi.

Prompting dei termini chiave

Il prompting dei termini chiave è disponibile con Scribe v2, Scribe v2 Medical (batch) e Scribe v2 Realtime.

Evidenzia parole o frasi per orientare il modello verso la loro trascrizione. È utile per trascrivere parole o frasi specifiche che non sono comuni nell’audio, come nomi di prodotti, nomi propri o altri termini specifici. I termini chiave sono più efficaci delle parole chiave orientate o dei vocabolari personalizzati offerti da altri modelli, perché si basano sul contesto per decidere se trascrivere o meno quel termine. La modalità batch supporta fino a 1000 termini chiave (50 caratteri ciascuno), mentre quella in tempo reale ne supporta fino a 50 (20 caratteri ciascuno).

Per scoprire di più su come usare il prompting dei termini chiave, consulta la documentazione sul prompting dei termini chiave.

Modalità senza trascrizione letterale

La modalità senza trascrizione letterale è disponibile con Scribe v2, Scribe v2 Medical (batch) e Scribe v2 Realtime.

Quando no_verbatim è attivato, il modello rimuove dalla trascrizione le parole riempitive, le false partenze e le disfluenze. In questo modo produce un output più pulito, adatto a sottotitoli, riepiloghi o qualsiasi caso d’uso in cui la leggibilità sia più importante di catturare ogni parola pronunciata.

Rilevamento delle entità

Il rilevamento delle entità è disponibile con tutti i modelli batch e Scribe v2 Realtime.

I modelli batch e Scribe v2 Realtime possono rilevare varie categorie di entità nella trascrizione, fornendo i relativi timestamp esatti. È utile per evidenziare numeri di carte di credito, nomi, condizioni mediche o numeri di previdenza sociale statunitensi.

Per un elenco completo delle entità supportate, consulta la documentazione sul rilevamento delle entità.

Modifica della trascrizione

La modifica della trascrizione è una funzionalità sperimentale disponibile con tutti i modelli batch e Scribe v2 Realtime.

Passa un’istruzione in linguaggio naturale con il parametro transcript_edit e verrà applicata alla trascrizione completata. Il testo modificato viene restituito in edited_transcript insieme alla trascrizione originale, così i timestamp e le etichette dei parlanti rimangono intatti. È utile per standardizzare la scrittura di date, orari o unità, applicare uno stile diverso o riscrivere la trascrizione in un’unica richiesta.

Per scoprire di più, consulta la documentazione sulla modifica della trascrizione e la guida alla modifica della trascrizione in tempo reale.

Lingue supportate

Scribe v2 supporta oltre 90 lingue, tra cui:

Afrikaans (afr), amarico (amh), arabo (ara), armeno (hye), assamese (asm), asturiano (ast), azero (aze), bielorusso (bel), bengalese (ben), bosniaco (bos), bulgaro (bul), birmano (mya), cantonese (yue), catalano (cat), cebuano (ceb), chichewa (nya), croato (hrv), ceco (ces), danese (dan), olandese (nld), inglese (eng), estone (est), filippino (fil), finlandese (fin), francese (fra), fulah (ful), galiziano (glg), ganda (lug), georgiano (kat), tedesco (deu), greco (ell), gujarati (guj), hausa (hau), ebraico (heb), hindi (hin), ungherese (hun), islandese (isl), igbo (ibo), indonesiano (ind), irlandese (gle), italiano (ita), giapponese (jpn), giavanese (jav), capoverdiano (kea), kannada (kan), kazako (kaz), khmer (khm), coreano (kor), curdo (kur), kirghiso (kir), lao (lao), lettone (lav), lingala (lin), lituano (lit), luo (luo), lussemburghese (ltz), macedone (mkd), malese (msa), malayalam (mal), maltese (mlt), cinese mandarino (zho), māori (mri), marathi (mar), mongolo (mon), nepalese (nep), sotho settentrionale (nso), norvegese (nor), occitano (oci), odia (ori), pashtu (pus), persiano (fas), polacco (pol), portoghese (por), punjabi (pan), rumeno (ron), russo (rus), serbo (srp), shona (sna), sindhi (snd), singalese (sin), slovacco (slk), sloveno (slv), somalo (som), spagnolo (spa), swahili (swa), svedese (swe), tamil (tam), tagico (tgk), telugu (tel), thailandese (tha), turco (tur), ucraino (ukr), umbundu (umb), urdu (urd), uzbeko (uzb), vietnamita (vie), gallese (cym), wolof (wol), xhosa (xho) e zulu (zul).

Dettaglio del supporto linguistico

Il Word Error Rate (WER) è una metrica fondamentale per valutare l’accuratezza dei sistemi di trascrizione. Misura il numero di errori presenti in una trascrizione rispetto a una trascrizione di riferimento. Di seguito è riportato il dettaglio del WER per ogni lingua supportata da Scribe v2.

Bielorusso (bel), bosniaco (bos), bulgaro (bul), catalano (cat), croato (hrv), ceco (ces), danese (dan), olandese (nld), inglese (eng), estone (est), finlandese (fin), francese (fra), galiziano (glg), tedesco (deu), greco (ell), ungherese (hun), islandese (isl), indonesiano (ind), italiano (ita), giapponese (jpn), kannada (kan), lettone (lav), macedone (mkd), malese (msa), malayalam (mal), norvegese (nor), polacco (pol), portoghese (por), rumeno (ron), russo (rus), slovacco (slk), spagnolo (spa), svedese (swe), turco (tur), ucraino (ukr) e vietnamita (vie).

Armeno (hye), azero (aze), bengalese (ben), cantonese (yue), filippino (fil), georgiano (kat), gujarati (guj), hindi (hin), kazako (kaz), lituano (lit), maltese (mlt), mandarino (cmn), marathi (mar), nepalese (nep), odia (ori), persiano (fas), serbo (srp), sloveno (slv), swahili (swa), tamil (tam) e telugu (tel)

Afrikaans (afr), arabo (ara), assamese (asm), asturiano (ast), birmano (mya), hausa (hau), ebraico (heb), giavanese (jav), coreano (kor), kirghiso (kir), lussemburghese (ltz), māori (mri), occitano (oci), punjabi (pan), tagiko (tgk), thai (tha), uzbeko (uzb) e gallese (cym).

Amarico (amh), ganda (lug), igbo (ibo), irlandese (gle), khmer (khm), curdo (kur), lao (lao), mongolo (mon), sotho settentrionale (nso), pashto (pus), shona (sna), sindhi (snd), singalese (sin), somalo (som), urdu (urd), wolof (wol), xhosa (xho), yoruba (yor) e zulu (zul).

Domande frequenti

Sì, l’API supporta il caricamento di file audio e video per la trascrizione.

Sono supportati file fino a 3 GB. I limiti di durata dipendono dalla modalità di trascrizione:

  • Modalità standard (use_multi_channel=false): Fino a 10 ore
  • Modalità multicanale (use_multi_channel=true): La durata combinata di tutti i canali deve essere inferiore a 10 ore

L’API supporta i seguenti formati audio e video:

  • 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

I formati video supportati includono:

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

ElevenLabs amplia costantemente il numero di lingue supportate dai nostri modelli. Torna a consultarci spesso per gli aggiornamenti.

Sì, i risultati della trascrizione asincrona possono essere inviati ai webhook configurati nelle impostazioni dei webhook nell’interfaccia utente. Scopri di più nel cookbook sui webhook.

Sì, la funzionalità multicanale STT ti permette di trascrivere audio in cui ogni canale viene elaborato in modo indipendente e riceve un ID parlante in base al numero del canale. Questa funzionalità supporta fino a 5 canali. Scopri di più nel cookbook sulla trascrizione multicanale.

ElevenLabs addebita Speech to Text in base alla durata dell’audio inviato per la trascrizione. La fatturazione viene calcolata per ora di audio, con tariffe che variano in base al piano e al modello. Consulta la pagina dei prezzi dell’API per informazioni dettagliate sui prezzi.

Informazioni principali

  • Input supportato: Sono accettati file audio e video
  • Dimensione massima del file: 3 GB
  • Durata massima: 10 ore (modalità standard), 1 ora (modalità multicanale)
  • Modalità multicanale: Fino a 5 canali; ciascuno viene elaborato in modo indipendente con un ID parlante assegnato in base al numero del canale
  • Webhook: I risultati della trascrizione asincrona possono essere inviati a un webhook — configura nelle impostazioni del workspace
  • Formati audio supportati: AAC, AIFF, OGG, MP3, OPUS, WAV, FLAC, M4A, WebM
  • Formati video supportati: MP4, AVI, MKV, MOV, WMV, FLV, WebM, MPEG, 3GPP