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 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 intervenant distinct. Elle est particulièrement utile pour les enregistrements où les intervenants sont isolés sur des canaux audio séparés, afin d’obtenir des transcriptions plus nettes sans recourir à la diarisation des intervenants.
Chaque canal est traité indépendamment et reçoit automatiquement un ID d’intervenant 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 transcription unique 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 : enquêteur 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 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 autre format pris en charge)
- Maximum 5 canaux par fichier audio
- Chaque canal ne doit contenir qu’un seul intervenant
Fonctionnement
Préparez votre audio multicanal
Assurez-vous que les intervenants de votre fichier audio sont isolés sur des canaux distincts. La fonctionnalité multicanal prend en charge jusqu’à 5 canaux, chacun étant associé à un intervenant 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
Lors d’une requête Speech to Text, vous devez définir :
use_multi_channel:truediarize:false(le mode multicanal sépare les intervenants 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 transcription unique dont les mots sont triés par heure de début, chacun comportant 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 le masquage d’entités.
Le paramètre num_speakers ne peut pas être utilisé avec le mode multicanal, car le nombre d’intervenants est automatiquement déterminé par le nombre de canaux. Le mode multicanal suppose qu’il y aura exactement un intervenant par canal. S’il y en a plusieurs, le même ID d’intervenant sera attribué à tous les intervenants 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 monocanal (mono), vous recevrez
une réponse standard pour 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 monocanal (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 inclut un channel_index (et un speaker_id) identifiant son canal.
Implémentation
Transcription multicanal de base
Voici un exemple complet de transcription d’un fichier audio stéréo avec deux intervenants :
Création de transcriptions de conversations
La manière la plus simple d’obtenir une transcription de conversation classée par heure consiste à 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 à la place fusionner côté client les transcriptions de chaque canal :
Utiliser des webhooks avec le 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
les charges utiles webhook de chaque 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 intervenants 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 d’intervenants
est automatiquement déterminé par le nombre de canaux. Solution : supprimez 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 afin de 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
(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
avec les 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 intervenant - Utilisez des formats sans perte (WAV) lorsque 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 représente un coût en requêtes simultanées trois fois supérieur à celui d’un fichier monocanal.
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 relatives à la mémoire
Pour les fichiers multicanaux volumineux, envisagez le streaming ou le découpage en fragments :
FAQ
Que se passe-t-il si mon audio comporte plus de 5 canaux ?
L’API renverra une erreur. Vous devrez soit sélectionner les 5 canaux à envoyer à l’API, soit 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 pour un seul canal, et non le format multicanal.
Puis-je obtenir une transcription combinée plutôt que des transcriptions distinctes par canal ?
Oui. Définissez multichannel_output_style=combined pour recevoir une transcription unique regroupant tous les canaux
et triée par heure de début, chaque mot étant étiqueté avec son channel_index. Ce format correspond à la
réponse standard pour un seul canal. Il nécessite des horodatages et n’est pas disponible avec la livraison par webhook.
Comment les ID d’intervenant sont-ils attribués ?
Les ID d’intervenant sont déterministes selon le numéro du 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 des langues différentes. La détection de langue
s’effectue par canal. Avec multichannel_output_style=combined, le language_code de niveau supérieur
reflète le canal présentant la meilleure confiance, tandis que chaque mot conserve son
channel_index.