Speech to Text multicanale
Questa guida mostra come utilizzare la modalità di trascrizione multicanale con l’API Speech to Text.
Guida pratica · Presuppone che tu abbia completato la guida rapida di Speech to Text .
Panoramica
La funzionalità Speech to Text multicanale ti consente di trascrivere file audio in cui ciascun canale contiene un interlocutore distinto. È particolarmente utile per le registrazioni in cui gli interlocutori sono isolati su canali audio separati, offrendo trascrizioni più pulite senza necessità di diarizzazione degli interlocutori.
Ogni canale viene elaborato in modo indipendente e riceve automaticamente un ID interlocutore in base al suo numero di canale (canale 0 → speaker_0, canale 1 → speaker_1 e così via). Il sistema estrae i singoli canali dal file audio di input e li trascrive in parallelo. Per impostazione predefinita, l’API restituisce una trascrizione per canale; imposta multichannel_output_style=combined per ricevere invece un’unica trascrizione con tutti i canali uniti in un elenco ordinato per ora di inizio, con ogni parola contrassegnata dal relativo channel_index.
Casi d’uso comuni
- Registrazioni di interviste stereo - Intervistatore sul canale sinistro, intervistato sul canale destro
- Registrazioni di podcast multitraccia - Ogni partecipante registrato su una traccia separata
- Registrazioni di call center - Agente e cliente separati su canali diversi
- Registrazioni di conferenze - Singoli partecipanti isolati su canali separati
- Procedimenti giudiziari - Più parti registrate su canali distinti
Requisiti
- Un account ElevenLabs con una chiave API
- File audio multicanale (WAV, MP3 o altri formati supportati)
- Massimo 5 canali per file audio
- Ogni canale deve contenere un solo interlocutore
Come funziona
Prepara l'audio multicanale
Assicurati che gli interlocutori siano isolati su canali separati nel file audio. La funzionalità multicanale supporta fino a 5 canali, con ogni canale associato a un interlocutore specifico:
- Canale 0 →
speaker_0 - Canale 1 →
speaker_1 - Canale 2 →
speaker_2 - Canale 3 →
speaker_3 - Canale 4 →
speaker_4
Configura i parametri dell'API
Quando effettui una richiesta speech-to-text, devi impostare:
use_multi_channel:truediarize:false(la modalità multicanale gestisce la separazione degli interlocutori tramite i canali)
Facoltativamente, puoi controllare la struttura della risposta con:
multichannel_output_style:separate(predefinito) restituisce una trascrizione per canale.combinedunisce tutti i canali in un’unica trascrizione le cui parole sono ordinate per ora di inizio e ciascuna contiene unchannel_index, corrispondendo alla struttura standard della risposta a canale singolo.combinedrichiede i timestamp (timestamps_granularitynon deve esserenone) e non è supportato con la consegna tramite webhook o il rilevamento/oscuramento delle entità.
Il parametro num_speakers non può essere utilizzato con la modalità multicanale, poiché il numero di interlocutori viene determinato automaticamente dal numero di canali. La modalità multicanale presuppone che vi sia esattamente un interlocutore per canale. Se ce ne sono di più, assegnerà lo stesso ID interlocutore a tutti gli interlocutori del canale.
Elabora la risposta
Per impostazione predefinita (multichannel_output_style=separate), l’audio multicanale restituisce un formato di risposta diverso da quello a canale singolo:
Se imposti use_multi_channel: true ma fornisci un file audio a canale singolo (mono), riceverai
una risposta standard a canale singolo, non il formato multicanale. Il formato di risposta multicanale
viene restituito solo quando il file audio contiene effettivamente più canali.
Con multichannel_output_style=combined, la risposta usa la stessa struttura piatta di una trascrizione a canale singolo (text e words di livello superiore, senza array transcripts), con tutti i canali uniti in un elenco ordinato per ora di inizio. Ogni parola include un channel_index (e speaker_id) che identifica il relativo canale.
Implementazione
Trascrizione multicanale di base
Ecco un esempio completo per trascrivere un file audio stereo con due interlocutori:
Creazione di trascrizioni conversazionali
Il modo più semplice per ottenere una trascrizione in stile conversazione, ordinata nel tempo, è richiedere multichannel_output_style=combined: l’API restituisce un unico elenco words, già ordinato per ora di inizio, con un channel_index e speaker_id su ogni parola:
Se utilizzi l’output separate predefinito, puoi invece unire lato client le trascrizioni per canale:
Utilizzo dei webhook con il multicanale
La trascrizione multicanale supporta la consegna tramite webhook per l’elaborazione asincrona:
I webhook restituiscono il formato separate (per canale). multichannel_output_style=combined non è
attualmente supportato con la consegna tramite webhook: usa una richiesta sincrona oppure unisci lato client
il payload del webhook per canale.
Gestione degli errori
Errori di convalida comuni
Impostazione di diarize=true con la modalità multicanale
Errore: La modalità multicanale non supporta la diarizzazione e assegna gli interlocutori in base al canale su cui parlano.
Soluzione: Imposta sempre diarize=false quando utilizzi la modalità multicanale.
Fornitura del parametro num_speakers
Errore: Non puoi specificare num_speakers quando use_multi_channel è abilitato. Il numero di interlocutori
viene determinato automaticamente dal numero di canali. Soluzione: Rimuovi il parametro
num_speakers dalla richiesta.
File audio con più di 5 canali
Errore: La modalità multicanale supporta fino a 5 canali, ma il file audio contiene X canali.
Soluzione: Elabora solo i primi 5 canali o pre-elabora l’audio per ridurre il numero di canali.
Utilizzo dell'output combinato senza timestamp
Errore: multichannel_output_style=‘combined’ richiede timestamp; imposta timestamps_granularity su ‘word’ o ‘character’.
Soluzione: L’output combinato ordina le parole per tempo, quindi imposta timestamps_granularity su word
(l’impostazione predefinita) o character.
Utilizzo dell'output combinato con i webhook
Errore: multichannel_output_style=‘combined’ non è ancora supportato con la consegna tramite webhook.
Soluzione: Utilizza una richiesta sincrona con combined oppure mantieni l’output separate predefinito
quando usi i webhook e unisci lato client.
Best practice
Preparazione dell’audio
Per risultati ottimali: - Usa una frequenza di campionamento di 16 kHz per prestazioni migliori - Rimuovi i canali silenziosi o inutilizzati prima dell’elaborazione - Assicurati che ogni canale contenga un solo interlocutore - Usa formati lossless (WAV) quando possibile per la migliore qualità
Ottimizzazione delle prestazioni
Il costo di concorrenza aumenta linearmente con il numero di canali. Un file di 60 secondi con 3 canali ha un costo di concorrenza 3 volte superiore rispetto a un file a canale singolo.
Puoi stimare il tempo di elaborazione per l’audio multicanale usando la seguente formula:
Dove:
- = durata del file in secondi
- = numero di canali
- = fattore di velocità di elaborazione (circa il 30% del tempo reale)
- = overhead fisso in secondi
- = overhead per canale in secondi
Esempio: Per un file stereo di 60 secondi (2 canali):
Considerazioni sulla memoria
Per file multicanale di grandi dimensioni, valuta lo streaming o la suddivisione in blocchi:
FAQ
Cosa succede se il mio audio ha più di 5 canali?
L’API restituirà un errore. Dovrai selezionare quali 5 canali inviare all’API oppure mixare alcuni canali prima di inviarli all’API.
Posso elaborare audio mono con la modalità multicanale?
Sì, ma non è necessario. Se invii audio mono con use_multi_channel=true, riceverai una risposta
standard a canale singolo, non il formato multicanale.
Posso ottenere un'unica trascrizione combinata invece di trascrizioni separate per canale?
Sì. Imposta multichannel_output_style=combined per ricevere un’unica trascrizione con tutti i canali
uniti e ordinati per ora di inizio, con ogni parola contrassegnata dal relativo channel_index. Questo corrisponde alla
struttura standard della risposta a canale singolo. Richiede i timestamp e non è disponibile con la consegna tramite
webhook.
Come vengono assegnati gli ID interlocutore?
Gli ID interlocutore sono deterministici in base al numero di canale: il canale 0 diventa speaker_0, il canale 1 diventa speaker_1 e così via.
I canali possono avere lingue diverse?
Sì, ogni canale viene elaborato in modo indipendente e può rilevare lingue diverse. Il rilevamento della lingua
avviene per canale. Con multichannel_output_style=combined, il valore language_code di livello superiore
riflette il canale con maggiore confidenza, mentre ogni parola conserva il proprio
channel_index.