Speech to Text multicanal
Ce guide explique comment utiliser le mode de transcription multicanal avec l’API Speech to Text.
Guide pratique · Suppose que vous avez suivi le guide de démarrage rapide de Speech to Text .
Vue d’ensemble
La fonctionnalité Speech to Text multicanal vous permet de transcrire des fichiers audio dont chaque canal contient un locuteur distinct. Elle est particulièrement utile pour les enregistrements dans lesquels les locuteurs sont isolés sur des canaux audio séparés, afin d’obtenir des transcriptions plus propres sans recourir à la diarisation des locuteurs.
Chaque canal est traité indépendamment et reçoit automatiquement un identifiant de locuteur selon son numéro de canal (canal 0 → speaker_0, canal 1 → speaker_1, etc.). Le système extrait les différents canaux de votre fichier audio d’entrée et les transcrit en parallèle. Par défaut, l’API renvoie une transcription par canal. Définissez multichannel_output_style=combined pour recevoir à la place une seule transcription regroupant tous les canaux dans une liste triée par heure de début, chaque mot étant étiqueté avec son channel_index.
Cas d’utilisation courants
- Enregistrements d’entretiens stéréo : interviewer sur le canal gauche, personne interrogée sur le canal droit
- Enregistrements de podcasts multipistes : chaque participant est enregistré sur une piste distincte
- Enregistrements de centres d’appels : agent et client séparés sur différents canaux
- Enregistrements de conférences : participants individuels isolés sur des canaux distincts
- Procédures judiciaires : plusieurs parties enregistrées sur des canaux distincts
Prérequis
- Un compte ElevenLabs avec une clé API
- Un fichier audio multicanal (WAV, MP3 ou autres formats pris en charge)
- Maximum 5 canaux par fichier audio
- Chaque canal ne doit contenir qu’un seul locuteur
Fonctionnement
Préparez votre audio multicanal
Assurez-vous que les locuteurs de votre fichier audio sont isolés sur des canaux distincts. La fonctionnalité multicanal prend en charge jusqu’à 5 canaux, chaque canal étant associé à un locuteur spécifique :
- Canal 0 →
speaker_0 - Canal 1 →
speaker_1 - Canal 2 →
speaker_2 - Canal 3 →
speaker_3 - Canal 4 →
speaker_4
Configurez les paramètres de l’API
Lorsque vous effectuez une requête Speech to Text, vous devez définir :
use_multi_channel:truediarize:false(le mode multicanal sépare les locuteurs via les canaux)
Vous pouvez également contrôler le format de la réponse avec :
multichannel_output_style:separate(par défaut) renvoie une transcription par canal.combinedfusionne tous les canaux en une seule transcription dont les mots sont triés par heure de début et comportent chacun unchannel_index, conformément au format de réponse standard pour un seul canal.combinednécessite des horodatages (timestamps_granularityne doit pas êtrenone) et n’est pas pris en charge avec la livraison par webhook ni avec la détection ou la suppression d’entités.
Le paramètre num_speakers ne peut pas être utilisé avec le mode multicanal, car le nombre de locuteurs est automatiquement déterminé par le nombre de canaux. Le mode multicanal suppose qu’il y a exactement un locuteur par canal. S’il y en a davantage, le même identifiant de locuteur sera attribué à tous les locuteurs du canal.
Traitez la réponse
Par défaut (multichannel_output_style=separate), l’audio multicanal renvoie un format de réponse différent de celui d’un seul canal :
Si vous définissez use_multi_channel: true mais fournissez un fichier audio à un seul canal (mono), vous
recevrez une réponse standard à un seul canal, et non le format multicanal. Le format de réponse multicanal
est uniquement renvoyé lorsque le fichier audio contient réellement plusieurs canaux.
Avec multichannel_output_style=combined, la réponse utilise le même format plat qu’une transcription à un seul canal (text et words au niveau supérieur, sans tableau transcripts), tous les canaux étant fusionnés dans une liste triée par heure de début. Chaque mot comprend un channel_index (ainsi qu’un speaker_id) qui identifie son canal.
Mise en œuvre
Transcription multicanal de base
Voici un exemple complet de transcription d’un fichier audio stéréo contenant deux locuteurs :
Création de transcriptions de conversation
Le moyen le plus simple d’obtenir une transcription de conversation triée par heure est de demander multichannel_output_style=combined : l’API renvoie une seule liste words, déjà triée par heure de début, avec un channel_index et un speaker_id pour chaque mot :
Si vous utilisez la sortie separate par défaut, vous pouvez plutôt fusionner côté client les transcriptions par canal :
Utiliser des webhooks avec le mode multicanal
La transcription multicanal prend en charge la livraison par webhook pour le traitement asynchrone :
Les webhooks renvoient le format separate (par canal). multichannel_output_style=combined n’est pas
actuellement pris en charge avec la livraison par webhook. Utilisez une requête synchrone ou fusionnez
côté client la charge utile du webhook par canal.
Gestion des erreurs
Erreurs de validation courantes
Définir diarize=true avec le mode multicanal
Erreur : le mode multicanal ne prend pas en charge la diarisation et attribue les locuteurs selon le canal sur lequel ils parlent.
Solution : définissez toujours diarize=false lorsque vous utilisez le mode multicanal.
Fournir le paramètre num_speakers
Erreur : impossible de spécifier num_speakers lorsque use_multi_channel est activé. Le nombre de locuteurs
est automatiquement déterminé par le nombre de canaux. Solution : retirez le paramètre num_speakers
de votre requête.
Fichier audio comportant plus de 5 canaux
Erreur : le mode multicanal prend en charge jusqu’à 5 canaux, mais le fichier audio contient X canaux.
Solution : traitez uniquement les 5 premiers canaux ou prétraitez votre audio pour réduire le nombre de canaux.
Utiliser la sortie combinée sans horodatages
Erreur : multichannel_output_style=‘combined’ nécessite des horodatages ; définissez timestamps_granularity sur ‘word’ ou ‘character’.
Solution : la sortie combinée trie les mots par heure. Définissez donc timestamps_granularity sur word
(valeur par défaut) ou character.
Utiliser la sortie combinée avec des webhooks
Erreur : multichannel_output_style=‘combined’ n’est pas encore pris en charge avec la livraison par webhook.
Solution : utilisez une requête synchrone avec combined, ou conservez la sortie separate par défaut
lorsque vous utilisez des webhooks et fusionnez côté client.
Bonnes pratiques
Préparation de l’audio
Pour des résultats optimaux : - Utilisez une fréquence d’échantillonnage de 16 kHz pour de meilleures performances - Supprimez les canaux silencieux ou inutilisés avant le traitement - Assurez-vous que chaque canal ne contient qu’un seul locuteur - Utilisez des formats sans perte (WAV) lorsque cela est possible pour une qualité optimale
Optimisation des performances
Le coût en requêtes simultanées augmente linéairement avec le nombre de canaux. Un fichier de 60 secondes comportant 3 canaux coûte 3 fois plus en requêtes simultanées qu’un fichier à un seul canal.
Vous pouvez estimer le temps de traitement d’un audio multicanal à l’aide de la formule suivante :
Où :
- = durée du fichier en secondes
- = nombre de canaux
- = facteur de vitesse de traitement (environ 30 % du temps réel)
- = surcharge fixe en secondes
- = surcharge par canal en secondes
Exemple : pour un fichier stéréo de 60 secondes (2 canaux) :
Considérations liées à la mémoire
Pour les fichiers multicanaux volumineux, envisagez le streaming ou le découpage en segments :
FAQ
Que se passe-t-il si mon audio comporte plus de 5 canaux ?
L’API renverra une erreur. Vous devrez sélectionner les 5 canaux à envoyer à l’API ou mixer certains canaux avant de les envoyer à l’API.
Puis-je traiter un audio mono avec le mode multicanal ?
Oui, mais ce n’est pas nécessaire. Si vous envoyez un audio mono avec use_multi_channel=true, vous recevrez
une réponse standard à un seul canal, et non le format multicanal.
Puis-je obtenir une transcription combinée au lieu de transcriptions distinctes par canal ?
Oui. Définissez multichannel_output_style=combined pour recevoir une seule transcription regroupant tous les canaux
et triée par heure de début, chaque mot étant étiqueté avec son channel_index. Cela correspond au format de réponse
standard pour un seul canal. Des horodatages sont requis et cette option n’est pas disponible avec la livraison par webhook.
Comment les identifiants de locuteur sont-ils attribués ?
Les identifiants de locuteur sont déterministes selon le numéro de canal : le canal 0 devient speaker_0, le canal 1 devient speaker_1, et ainsi de suite.
Les canaux peuvent-ils avoir des langues différentes ?
Oui, chaque canal est traité indépendamment et peut détecter différentes langues. La détection de la langue
s’effectue par canal. Avec multichannel_output_style=combined, le language_code de niveau supérieur
reflète le canal détecté avec le plus de certitude, tandis que chaque mot conserve son channel_index.