Speech to Text multicanal
Este guia mostra como usar o modo de transcrição multicanal com a API de Speech to Text.
Guia prático · Pressupõe que você concluiu o guia de início rápido de Speech to Text .
Visão geral
O recurso multicanal de Speech to Text permite transcrever arquivos de áudio em que cada canal contém um falante distinto. Isso é especialmente útil para gravações em que os falantes estão isolados em canais de áudio separados, proporcionando transcrições mais limpas sem a necessidade de diarização de falantes.
Cada canal é processado de forma independente e recebe automaticamente um ID de falante com base no número do canal (canal 0 → speaker_0, canal 1 → speaker_1 etc.). O sistema extrai canais individuais do seu arquivo de áudio de entrada e os transcreve em paralelo. Por padrão, a API retorna uma transcrição por canal; defina multichannel_output_style=combined para receber uma única transcrição com todos os canais combinados em uma lista ordenada pelo horário de início, com cada palavra identificada pelo seu channel_index.
Casos de uso comuns
- Gravações de entrevistas em estéreo - Entrevistador no canal esquerdo, entrevistado no canal direito
- Gravações de podcasts com várias faixas - Cada participante gravado em uma faixa separada
- Gravações de central de atendimento - Atendente e cliente separados em canais diferentes
- Gravações de conferências - Participantes individuais isolados em canais separados
- Processos judiciais - Várias partes gravadas em canais distintos
Requisitos
- Uma conta ElevenLabs com uma chave de API
- Arquivo de áudio multicanal (WAV, MP3 ou outros formatos compatíveis)
- Máximo de 5 canais por arquivo de áudio
- Cada canal deve conter apenas um falante
Como funciona
Prepare seu áudio multicanal
Verifique se os falantes do seu arquivo de áudio estão isolados em canais separados. O recurso multicanal aceita até 5 canais, com cada canal mapeado para um falante específico:
- Canal 0 →
speaker_0 - Canal 1 →
speaker_1 - Canal 2 →
speaker_2 - Canal 3 →
speaker_3 - Canal 4 →
speaker_4
Configure os parâmetros da API
Ao fazer uma solicitação de Speech to Text, você deve definir:
use_multi_channel:truediarize:false(o modo multicanal separa os falantes pelos canais)
Opcionalmente, controle o formato da resposta com:
multichannel_output_style:separate(padrão) retorna uma transcrição por canal.combinedcombina todos os canais em uma única transcrição, cujas palavras são ordenadas pelo horário de início e incluem umchannel_index— correspondendo ao formato de resposta padrão para canal único.combinedrequer timestamps (timestamps_granularitynão pode sernone) e não é compatível com entrega por webhook ou detecção/remoção de entidades.
O parâmetro num_speakers não pode ser usado com o modo multicanal, pois a quantidade de falantes é determinada automaticamente pelo número de canais. O modo multicanal pressupõe que haverá exatamente um falante por canal. Se houver mais de um, o mesmo ID de falante será atribuído a todos os falantes do canal.
Processe a resposta
Por padrão (multichannel_output_style=separate), o áudio multicanal retorna um formato de resposta diferente do áudio de canal único:
Se você definir use_multi_channel: true, mas fornecer um arquivo de áudio de canal único (mono), receberá
uma resposta padrão de canal único, não o formato multicanal. O formato de resposta multicanal
só é retornado quando o arquivo de áudio realmente contém vários canais.
Com multichannel_output_style=combined, a resposta usa o mesmo formato simples de uma transcrição de canal único (text e words no nível superior, sem a matriz transcripts), com todos os canais combinados em uma lista ordenada pelo horário de início. Cada palavra inclui um channel_index (e speaker_id) que identifica seu canal.
Implementação
Transcrição multicanal básica
Este é um exemplo completo de transcrição de um arquivo de áudio estéreo com dois falantes:
Criação de transcrições de conversas
A maneira mais fácil de obter uma transcrição de conversa ordenada cronologicamente é solicitar multichannel_output_style=combined — a API retorna uma única lista de words, já ordenada pelo horário de início, com um channel_index e speaker_id em cada palavra:
Se você estiver usando a saída padrão separate, também pode combinar as transcrições por canal no cliente:
Uso de webhooks com multicanal
A transcrição multicanal é compatível com a entrega por webhook para processamento assíncrono:
Os webhooks retornam o formato separate (por canal). multichannel_output_style=combined não é
compatível atualmente com a entrega por webhook — use uma solicitação síncrona ou combine os payloads
de webhook por canal no cliente.
Tratamento de erros
Erros de validação comuns
Definir diarize=true com o modo multicanal
Erro: O modo multicanal não oferece suporte à diarização e atribui falantes com base no canal em que falam.
Solução: Sempre defina diarize=false ao usar o modo multicanal.
Fornecer o parâmetro num_speakers
Erro: Não é possível especificar num_speakers quando use_multi_channel está ativado. O número de falantes
é determinado automaticamente pelo número de canais. Solução: Remova o parâmetro
num_speakers da sua solicitação.
Arquivo de áudio com mais de 5 canais
Erro: O modo multicanal aceita até 5 canais, mas o arquivo de áudio contém X canais.
Solução: Processe apenas os primeiros 5 canais ou faça o pré-processamento do áudio para reduzir a quantidade de canais.
Usar saída combinada sem timestamps
Erro: multichannel_output_style=‘combined’ requer timestamps; defina timestamps_granularity como ‘word’ ou ‘character’.
Solução: A saída combinada ordena as palavras pelo tempo, então defina timestamps_granularity como word
(o padrão) ou character.
Usar saída combinada com webhooks
Erro: multichannel_output_style=‘combined’ ainda não é compatível com a entrega por webhook.
Solução: Use uma solicitação síncrona com combined ou mantenha a saída padrão separate
ao usar webhooks e combine os dados no cliente.
Boas práticas
Preparação do áudio
Para obter os melhores resultados: - Use taxa de amostragem de 16 kHz para melhor desempenho - Remova canais silenciosos ou não utilizados antes do processamento - Verifique se cada canal contém apenas um falante - Use formatos sem perda (WAV) sempre que possível para obter a melhor qualidade
Otimização de desempenho
O custo de simultaneidade aumenta linearmente com o número de canais. Um arquivo de 60 segundos com 3 canais tem um custo de simultaneidade 3 vezes maior que o de um arquivo de canal único.
Você pode estimar o tempo de processamento de áudio multicanal usando a seguinte fórmula:
Em que:
- = duração do arquivo em segundos
- = número de canais
- = fator de velocidade de processamento (aproximadamente 30% do tempo real)
- = sobrecarga fixa em segundos
- = sobrecarga por canal em segundos
Exemplo: Para um arquivo estéreo de 60 segundos (2 canais):
Considerações sobre memória
Para arquivos multicanal grandes, considere fazer streaming ou dividir em partes:
Perguntas frequentes
O que acontece se meu áudio tiver mais de 5 canais?
A API retornará um erro. Você precisará selecionar quais 5 canais enviar para a API ou mixar alguns canais antes de enviá-los para a API.
Posso processar áudio mono com o modo multicanal?
Sim, mas não é necessário. Se você enviar áudio mono com use_multi_channel=true, receberá
uma resposta padrão de canal único, não o formato multicanal.
Posso obter uma transcrição combinada em vez de transcrições separadas por canal?
Sim. Defina multichannel_output_style=combined para receber uma única transcrição com todos os canais
combinados e ordenados pelo horário de início, com cada palavra identificada pelo seu channel_index. Isso corresponde ao
formato de resposta padrão para canal único. Requer timestamps e não está disponível com entrega por
webhook.
Como os IDs de falante são atribuídos?
Os IDs de falante são determinísticos com base no número do canal: o canal 0 se torna speaker_0, o canal 1 se torna speaker_1 e assim por diante.
Os canais podem ter idiomas diferentes?
Sim, cada canal é processado de forma independente e pode detectar idiomas diferentes. A detecção de idioma
ocorre por canal. Com multichannel_output_style=combined, o language_code
de nível superior reflete o canal com maior confiança, enquanto cada palavra ainda inclui seu
channel_index.