Voz a Texto multicanal
Esta guía te muestra cómo usar el modo de transcripción multicanal con la API de Voz a Texto.
Guía práctica · Da por hecho que has completado la guía de inicio rápido de Voz a Texto .
Resumen
La función de Voz a Texto multicanal te permite transcribir archivos de audio en los que cada canal contiene un hablante distinto. Es especialmente útil para grabaciones en las que los hablantes están aislados en canales de audio independientes, ya que ofrece transcripciones más limpias sin necesidad de diarización de hablantes.
Cada canal se procesa de forma independiente y se le asigna automáticamente un ID de hablante según su número de canal (canal 0 → speaker_0, canal 1 → speaker_1, etc.). El sistema extrae canales individuales de tu archivo de audio de entrada y los transcribe en paralelo. De forma predeterminada, la API devuelve una transcripción por canal; configura multichannel_output_style=combined para recibir una única transcripción con todos los canales combinados en una lista ordenada por hora de inicio, con cada palabra etiquetada con su channel_index.
Casos de uso habituales
- Grabaciones de entrevistas en estéreo - Entrevistador en el canal izquierdo y entrevistado en el derecho
- Grabaciones de podcasts multipista - Cada participante grabado en una pista independiente
- Grabaciones de centros de llamadas - Agente y cliente separados en canales diferentes
- Grabaciones de conferencias - Participantes individuales aislados en canales independientes
- Procedimientos judiciales - Varias partes grabadas en canales distintos
Requisitos
- Una cuenta de ElevenLabs con una clave de API
- Archivo de audio multicanal (WAV, MP3 u otros formatos compatibles)
- Máximo de 5 canales por archivo de audio
- Cada canal debe contener un solo hablante
Cómo funciona
Prepara tu audio multicanal
Asegúrate de que tu archivo de audio tenga los hablantes aislados en canales independientes. La función multicanal admite hasta 5 canales, cada uno asignado a un hablante específico:
- Canal 0 →
speaker_0 - Canal 1 →
speaker_1 - Canal 2 →
speaker_2 - Canal 3 →
speaker_3 - Canal 4 →
speaker_4
Configura los parámetros de la API
Al realizar una solicitud de voz a texto, debes configurar:
use_multi_channel:truediarize:false(el modo multicanal separa los hablantes mediante canales)
Opcionalmente, controla la estructura de la respuesta con:
multichannel_output_style:separate(valor predeterminado) devuelve una transcripción por canal.combinedcombina todos los canales en una única transcripción cuyas palabras se ordenan por hora de inicio, cada una con unchannel_index, igual que la estructura de respuesta estándar de un solo canal.combinedrequiere marcas de tiempo (timestamps_granularityno debe sernone) y no es compatible con la entrega mediante webhook ni con la detección o redacción de entidades.
El parámetro num_speakers no se puede usar con el modo multicanal, ya que el número de hablantes se determina automáticamente según el número de canales. El modo multicanal presupone que habrá exactamente un hablante por canal. Si hay más, asignará el mismo ID de hablante a todos los hablantes del canal.
Procesa la respuesta
De forma predeterminada (multichannel_output_style=separate), el audio multicanal devuelve un formato de respuesta diferente al de un solo canal:
Si configuras use_multi_channel: true pero proporcionas un archivo de audio de un solo canal (mono),
recibirás una respuesta estándar de un solo canal, no el formato multicanal. El formato de respuesta
multicanal solo se devuelve cuando el archivo de audio contiene realmente varios canales.
Con multichannel_output_style=combined, la respuesta utiliza la misma estructura plana que una transcripción de un solo canal (text y words de nivel superior, sin matriz transcripts), con todos los canales combinados en una lista ordenada por hora de inicio. Cada palabra incluye un channel_index (y speaker_id) que identifica su canal.
Implementación
Transcripción multicanal básica
Aquí tienes un ejemplo completo para transcribir un archivo de audio estéreo con dos hablantes:
Crear transcripciones de conversaciones
La forma más sencilla de obtener una transcripción ordenada por tiempo y al estilo de una conversación es solicitar multichannel_output_style=combined: la API devuelve una única lista words, ya ordenada por hora de inicio, con un channel_index y un speaker_id en cada palabra:
Si utilizas la salida separate predeterminada, puedes combinar las transcripciones por canal en el cliente:
Usar webhooks con multicanal
La transcripción multicanal admite entrega mediante webhook para el procesamiento asíncrono:
Los webhooks devuelven el formato separate (por canal). multichannel_output_style=combined no es
compatible actualmente con la entrega mediante webhook; usa una solicitud síncrona o combina la carga útil
del webhook por canal en el cliente.
Gestión de errores
Errores de validación habituales
Configurar diarize=true con el modo multicanal
Error: El modo multicanal no admite diarización y asigna los hablantes según el canal en el que hablan.
Solución: Configura siempre diarize=false al usar el modo multicanal.
Proporcionar el parámetro num_speakers
Error: No se puede especificar num_speakers cuando use_multi_channel está activado. El número de hablantes
se determina automáticamente según el número de canales. Solución: Elimina el parámetro
num_speakers de tu solicitud.
Archivo de audio con más de 5 canales
Error: El modo multicanal admite hasta 5 canales, pero el archivo de audio contiene X canales.
Solución: Procesa solo los primeros 5 canales o procesa previamente tu audio para reducir el número de canales.
Usar salida combinada sin marcas de tiempo
Error: multichannel_output_style=‘combined’ requiere marcas de tiempo; configura timestamps_granularity como ‘word’ o ‘character’.
Solución: La salida combinada ordena las palabras por tiempo, así que configura timestamps_granularity como word
(el valor predeterminado) o character.
Usar salida combinada con webhooks
Error: multichannel_output_style=‘combined’ aún no es compatible con la entrega mediante webhook.
Solución: Usa una solicitud síncrona con combined o mantén la salida separate predeterminada
al usar webhooks y combina los resultados en el cliente.
Buenas prácticas
Preparación del audio
Para obtener resultados óptimos: - Usa una frecuencia de muestreo de 16 kHz para mejorar el rendimiento - Elimina los canales silenciosos o sin usar antes del procesamiento - Asegúrate de que cada canal contenga un solo hablante - Usa formatos sin pérdida (WAV) siempre que sea posible para obtener la mejor calidad
Optimización del rendimiento
El coste de concurrencia aumenta linealmente con el número de canales. Un archivo de 60 segundos con 3 canales tiene un coste de concurrencia 3 veces mayor que un archivo de un solo canal.
Puedes estimar el tiempo de procesamiento del audio multicanal mediante la siguiente fórmula:
Donde:
- = duración del archivo en segundos
- = número de canales
- = factor de velocidad de procesamiento (aproximadamente el 30 % del tiempo real)
- = sobrecarga fija en segundos
- = sobrecarga por canal en segundos
Ejemplo: Para un archivo estéreo de 60 segundos (2 canales):
Consideraciones de memoria
Para archivos multicanal grandes, considera la transmisión o la división en fragmentos:
Preguntas frecuentes
¿Qué ocurre si mi audio tiene más de 5 canales?
La API devolverá un error. Tendrás que seleccionar qué 5 canales enviar a la API o mezclar algunos canales antes de enviarlos a la API.
¿Puedo procesar audio mono con el modo multicanal?
Sí, pero no es necesario. Si envías audio mono con use_multi_channel=true, recibirás una respuesta estándar de un solo canal, no el formato multicanal.
¿Puedo obtener una transcripción combinada en lugar de transcripciones independientes por canal?
Sí. Configura multichannel_output_style=combined para recibir una única transcripción con todos los canales combinados y ordenados por hora de inicio, con cada palabra etiquetada con su channel_index. Esto coincide con la estructura de respuesta estándar de un solo canal. Requiere marcas de tiempo y no está disponible con la entrega mediante webhook.
¿Cómo se asignan los ID de hablante?
Los ID de hablante se determinan según el número de canal: el canal 0 pasa a ser speaker_0, el canal 1 pasa a ser speaker_1, y así sucesivamente.
¿Pueden los canales tener idiomas diferentes?
Sí, cada canal se procesa de forma independiente y puede detectar idiomas diferentes. La detección de idioma se realiza por canal. Con multichannel_output_style=combined, el language_code de nivel superior refleja el canal con mayor confianza, mientras que cada palabra mantiene su channel_index.