Apostila completa de IA de Voz e Áudio: STT, TTS e Voice Agents
A voz virou uma interface de primeira classe: assistentes que conversam em tempo real, transcrição instantânea, dublagem que preserva a voz original, podcasts editados por texto. Esta apostila cobre reconhecimento de fala (STT/ASR), síntese (TTS), a arquitetura de voice agents e o orçamento de latência, clonagem de voz e áudio generativo, pipelines de produção, voz no navegador e no dispositivo, e a avaliação, segurança e acessibilidade que separam uma demo de um produto.
O panorama da IA de voz
Objetivo: mapear as peças (STT, TTS, voice agents, diarização, VAD, wake word, tradução de fala), entender o áudio como sinal, e por que latência é a métrica-rainha.
1.1 As peças
| Peça | O que faz |
|---|---|
| STT / ASR (speech-to-text / automatic speech recognition) | áudio → texto |
| TTS (text-to-speech) | texto → áudio de fala |
| Voice agent | conversa falada de ida e volta: ouve, entende, decide, responde — em tempo real |
| VAD (voice activity detection) | detecta quando há fala (vs silêncio/ruído) — porteiro do pipeline |
| Endpointing | decide quando o interlocutor terminou de falar |
| Diarização | "quem falou quando" — separa locutores |
| Wake word | detecta uma palavra de ativação ("Ok, ...") localmente, sem enviar áudio |
| Tradução de fala | fala em um idioma → texto/fala em outro (às vezes mantendo a voz) |
| Áudio generativo | clonagem de voz, música, efeitos, foley, restauração |
1.2 Áudio como sinal (o mínimo)
- Waveform amostrada a uma sample rate: 16 kHz é o padrão de fala (telefonia é 8 kHz); música e broadcast usam 44.1/48 kHz.
- Bit depth (16-bit PCM é o comum), canais (mono para fala; estéreo para música/ambiente).
- Formatos: WAV/PCM (cru, sem perda, grande), FLAC (sem perda comprimido), Opus (o melhor para voz em tempo real — baixa latência, robusto a perda de pacote), MP3/AAC (distribuição).
- Modelos de fala geralmente esperam mono 16 kHz PCM — reamostrar é a primeira etapa de qualquer pipeline.
1.3 Latência é a métrica-rainha
Numa conversa humana, o intervalo entre um turno e outro é de ~200 ms. Um voice agent que demora > ~1 segundo para começar a responder soa "burro" ou "quebrado". Todo o resto — qualidade de STT, naturalidade de TTS, inteligência do LLM — é avaliado através da latência. Por isso a apostila volta a ela em quase todo módulo.
Streaming em todos os estágios. Não espere a frase inteira para transcrever; não espere a resposta inteira do LLM para sintetizar; não espere o áudio inteiro para tocar. Cada etapa consome e produz parcialmente. É o que transforma 3 segundos de espera em 500 ms.
Perguntas de abertura: "Quais as peças de um sistema de voz?" (STT, TTS, VAD, endpointing, diarização, wake word, o agente), "Que sample rate a fala usa?" (16 kHz mono), "Por que Opus para tempo real?" (baixa latência, robusto a perda), "Qual a métrica que domina um voice agent?" (latência ponta a ponta — alvo < ~1 s).
✏️ Exercício 1 — Identifique as peças
Para cada produto, liste as peças de IA de voz envolvidas: (a) um app que transcreve reuniões e gera ata com quem disse o quê; (b) um assistente de carro que responde a "E aí, carro..." sem internet para ativar; (c) um atendimento telefônico automatizado que resolve pedidos; (d) um app de estudo de idiomas que corrige a pronúncia do usuário.
Gabarito (uma boa resposta): (a) STT (batch, com timestamps), diarização, VAD; depois um LLM para sumarizar (fora do escopo de voz). (b) wake word local ("E aí, carro"), VAD, STT (idealmente on-device), LLM, TTS, endpointing e barge-in; tudo offline (ver Módulo 8 e a apostila IA Local & SLMs). (c) voice agent completo por telefonia (SIP): VAD + STT streaming + endpointing + LLM com function calling + TTS streaming + barge-in; robustez a 8 kHz e ruído de linha. (d) STT com timestamps por fonema/palavra e escore de confiança/pronúncia (às vezes um modelo de "pronunciation scoring" dedicado), comparando com a referência.
Reconhecimento de fala (STT / ASR)
Objetivo: entender Whisper e alternativas, streaming vs batch, a métrica WER, diarização, e os cuidados com português, ruído e vocabulário.
2.1 Os modelos
- Whisper (OpenAI, pesos abertos) — multilíngue, robusto, com pontuação e capitalização; várias tamanhos (tiny → large); a base de grande parte do ecossistema. Derivados otimizados: faster-whisper (CTranslate2), whisper.cpp (local/edge), WhisperX (+ alinhamento e diarização), distil-whisper.
- APIs: Deepgram, AssemblyAI, OpenAI, Google, Azure, ElevenLabs Scribe — muitas com streaming, diarização, formatação, tópicos, redação de PII.
- Streaming nativo: modelos e serviços feitos para transcrever enquanto a pessoa fala, com hipóteses parciais e "finais".
- Para português do Brasil, teste o modelo no seu áudio — desempenho varia muito por sotaque, domínio e qualidade de captação.
2.2 Batch × streaming
| Batch (arquivo) | Streaming (ao vivo) | |
|---|---|---|
| Uso | transcrição de gravações, legendas, análise | voice agents, legendas ao vivo, ditado |
| Qualidade | maior (contexto completo, pode reprocessar) | menor (decide com contexto parcial); hipóteses mudam |
| Latência | não crítica | crítica — parciais em < 300 ms |
| Custo | por minuto de áudio | por minuto de conexão/stream |
2.3 WER e o que ele esconde
- Word Error Rate = (substituições + inserções + deleções) / nº de palavras de referência. WER de 10% = 1 em 10 palavras errada.
- WER agregado esconde: erros concentrados em nomes próprios, números, termos do domínio; pior desempenho em um sotaque ou locutor; degradação com ruído. Sempre quebre o WER por segmento, locutor, domínio e condição (Módulo 9).
- Para muitos usos, o que importa não é o WER e sim se a informação-chave saiu certa (o CPF, o valor, o nome do produto).
2.4 Recursos que você vai usar
- Timestamps por palavra/segmento — para legendas, edição por texto, "pular para".
- Pontuação e capitalização, formatação de números/datas/moeda ("cento e vinte reais" → "R$ 120,00").
- Diarização ("Locutor 1/2") e, se possível, atribuição de nomes.
- Hotwords / vocabulário customizado / boosting: dar ao modelo a lista de nomes de produtos, jargões, siglas — melhora muito no domínio.
- Redação de PII na transcrição (mascarar CPF, cartão, telefone).
- Confiança por palavra — para destacar trechos duvidosos e para roteamento.
Escolher o modelo pelo WER de um benchmark em inglês. Não reamostrar para 16 kHz mono. Ignorar o vocabulário customizado (e depois reclamar que erra os nomes dos produtos). Usar batch onde precisava de streaming (e vice-versa). Não tratar as hipóteses parciais como provisórias na UI. Guardar transcrições com PII sem redação nem política de retenção (Módulo 9).
Perguntas: "O que é WER e o que ele não mostra?" (taxa de erro de palavra; esconde erros concentrados em nomes/números e diferenças por sotaque/ruído), "Batch ou streaming — como decidir?" (gravação vs ao vivo; latência), "Como melhorar a transcrição de jargão do domínio?" (hotwords/vocabulário customizado), "Whisper local ou API?" (privacidade/custo/volume vs facilidade e recursos; testar no áudio real, sobretudo PT-BR).
✏️ Exercício 2 — Escolha e avalie STT
Você vai transcrever ligações de suporte (PT-BR, 8 kHz, ruído de fundo, muitos nomes de planos e siglas), ao vivo, para alimentar um agente. Descreva: modelo/serviço, batch ou streaming, os recursos que você ativaria, e como você mediria se está bom o suficiente.
Gabarito (uma boa resposta): Streaming (é ao vivo e alimenta um agente). Um serviço com bom PT-BR e streaming (Deepgram/Google/AssemblyAI) ou Whisper streaming self-hosted se privacidade/volume exigirem. Recursos: vocabulário customizado com os nomes de planos e siglas; endpointing ajustado para linha telefônica; formatação de números; redação de PII; confiança por palavra. Pré-processar: garantir 8→16 kHz, ganho, talvez denoise leve. Avaliação: um conjunto de 100–200 ligações reais transcritas por humanos como referência; medir WER e uma métrica de "campos-chave corretos" (nome do plano, valor, protocolo); quebrar por nível de ruído e por sotaque; testar a latência das parciais. Meta: campos-chave > 95% e parciais em < 400 ms; iterar no vocabulário e no endpointing.
Síntese de fala (TTS)
Objetivo: entender a qualidade neural atual, o controle via SSML/markup, o streaming de áudio, a latência (time-to-first-audio), e os cuidados de pronúncia em português.
3.1 Onde o TTS está
- TTS neural moderno é quase indistinguível de voz humana em muitos casos; a "voz de robô" hoje é escolha ou limitação de latência/modelo antigo.
- APIs: ElevenLabs, Cartesia, OpenAI, PlayHT, Azure, Google — vozes prontas, vozes custom, streaming de baixa latência, multilíngue.
- Local / aberto: Piper (rápido, leve, on-device), Kokoro (pequeno e bom), XTTS/Coqui, F5-TTS, Parler — para privacidade, custo ou offline (ver a apostila IA Local & SLMs).
3.2 Controle: SSML e markup
<speak> Bom dia. <break time="300ms"/> O seu pedido <emphasis level="moderate">número 4-7-2</emphasis> <say-as interpret-as="currency">R$ 120,00</say-as> foi enviado. <prosody rate="95%" pitch="-1st">Alguma outra coisa?</prosody> </speak>
- SSML (ou markup próprio do provedor): pausas, ênfase, velocidade (
rate), tom (pitch), volume,say-as(número, moeda, data, telefone, soletrar),phoneme(pronúncia forçada),sub(ler diferente do escrito). - Modelos recentes fazem parte disso por instrução em linguagem natural ("diga de forma calma e empática") ou por voice design.
- Números, siglas, nomes e estrangeirismos em português são a maior fonte de erro — normalize o texto antes (expandir abreviações, formatar valores) e use
say-as/phonemeonde precisar.
3.3 Streaming e latência
- Time-to-first-audio (TTFA): quanto até o primeiro som sair. Para conversa, alvo < ~150–300 ms.
- TTS de streaming produz áudio em chunks conforme recebe o texto — comece a sintetizar a primeira frase enquanto o LLM ainda escreve o resto (Módulo 5).
- Formato de saída: PCM/Opus em chunks para tempo real; MP3/WAV para arquivos.
- Trade-off qualidade × latência × custo: modelos "flash/turbo" para conversa; modelos "HD" para narração gravada.
3.4 Vozes
- Prontas: catálogo do provedor; rápido, sem questões de consentimento.
- Custom / clonadas: a voz da marca, de um locutor, do usuário — ver o Módulo 6 e os cuidados legais.
- Consistência: fixar a voz, a "seed"/estilo e a normalização de texto para o produto soar igual sempre.
Perguntas: "Como você controla pausa, ênfase e pronúncia no TTS?" (SSML: break, emphasis, prosody, say-as, phoneme; ou instrução natural nos modelos novos), "O que é TTFA e qual o alvo para conversa?" (time-to-first-audio, < ~200–300 ms), "Por que números e siglas em português dão problema?" (normalização de texto; say-as), "Modelo turbo ou HD?" (conversa vs narração gravada).
✏️ Exercício 3 — Roteiro que soa bem
Uma confirmação de agendamento por voz: "Seu horário com Dr. Sá está confirmado para 03/09 às 14h30, na unidade Av. Paulista 1000, sala 512. Custo: R$ 250. Chegue 15min antes." Reescreva com o markup necessário para o TTS não errar, e diga que decisões de latência você tomaria se isso for parte de uma ligação ao vivo.
Gabarito (uma boa resposta): normalizar antes: "Dr. Sá" → garantir pronúncia ("doutor Sá"); "03/09" → <say-as interpret-as="date" format="dm"> ou escrever "três de setembro"; "14h30" → "quatorze e trinta" ou say-as de hora; "512" → provavelmente soletrar dígitos (say-as interpret-as="characters" ou "cinco, um, dois") para não virar "quinhentos e doze" se for número de sala; "R$ 250" → <say-as interpret-as="currency"> ("duzentos e cinquenta reais"); "15min" → "quinze minutos"; "Av." → "avenida"; "1000" → "mil". Inserir <break time="250ms"/> entre os blocos de informação e uma leve redução de rate nos números. Latência ao vivo: usar TTS de streaming com voz "turbo", começar a sintetizar a primeira frase assim que o LLM a terminar, e tocar em chunks; ter a confirmação como um template pré-normalizado (não gerar via LLM) para reduzir variabilidade e permitir cache de áudio de partes fixas.
Voice agents em tempo real
Objetivo: as duas arquiteturas (pipeline vs speech-to-speech), a orquestração, o turn-taking (endpointing, barge-in), a telefonia, e o function calling por voz.
4.1 Duas arquiteturas
| Pipeline (cascata) | Speech-to-speech (nativo) | |
|---|---|---|
| Como | VAD → STT → LLM (texto) → TTS | um modelo de voz recebe áudio e devolve áudio, sem passar por texto explícito |
| + | controle total, troca de peças, logs em texto, function calling maduro, barato | latência mínima, entoação/emoção preservadas, capta pausas e hesitações |
| − | latência acumulada, perde entoação, erros de STT propagam | menos controle e observabilidade, mais caro, ecossistema mais novo, function calling em evolução |
| Quando | a maioria dos casos hoje: suporte, agendamento, triagem, IVR | experiências onde naturalidade máxima é o produto; cresce rápido |
Muitos produtos usam híbrido: speech-to-speech para a conversa e chamadas de ferramenta/consulta em texto por baixo.
4.2 Orquestração
- Frameworks que montam o pipeline, o transporte (WebRTC/telefonia), o turn-taking e a integração com LLM/ferramentas: Pipecat, LiveKit Agents, Vapi, Retell, além dos SDKs "Realtime" dos provedores de modelo.
- Eles cuidam de: buffers de áudio, VAD, endpointing, interrupção, reconexão, métricas, e o "loop" ouvir→pensar→falar.
- Você foca em: o prompt/sistema do agente, as ferramentas (consultar pedido, agendar, transferir), a lógica de negócio e os guardrails.
4.3 Turn-taking
- Endpointing: decidir que o usuário terminou. Silêncio fixo (ex.: 500–800 ms) é o básico; melhor é um modelo que considera entoação e conteúdo ("...e o meu nome é" → ainda não terminou). Curto demais = corta o usuário; longo demais = conversa arrastada.
- Barge-in (interrupção): o usuário fala por cima do agente → parar o TTS imediatamente, descartar o resto da resposta, e ouvir. Sem isso, a experiência é insuportável. Exige echo cancellation (Módulo 5) para o agente não "se ouvir".
- Backchannel: "uhum", "certo" enquanto o usuário fala — alguns agentes fazem, com cuidado.
- Fillers: "deixa eu ver aqui..." enquanto uma ferramenta roda, para não haver silêncio morto.
4.4 Telefonia
- Conectar o agente à rede telefônica: SIP / provedores (Twilio, Telnyx, Plivo, Vonage) que entregam o áudio da chamada como um stream.
- Desafios: 8 kHz, codecs de linha, ruído, DTMF (teclas), latência de rede, transferência para humano, gravação e consentimento.
4.5 Function calling por voz
- O agente identifica a intenção e chama uma ferramenta (buscar pedido, criar agendamento) — igual a um agente de texto (ver a apostila Criação de Agentes de IA e MCP), mas com pressão de latência.
- Padrões: confirmar dados críticos em voz antes de agir ("Confirmo: cancelar o pedido 472?"); ferramentas rápidas (< 1 s) ou um filler; human handoff quando sai do escopo.
Perguntas: "Pipeline vs speech-to-speech?" (controle/observabilidade/custo vs latência/naturalidade; híbrido é comum), "O que é barge-in e por que é essencial?" (interromper o agente na hora — exige echo cancellation), "O que é endpointing e o trade-off?" (detectar fim do turno; curto corta, longo arrasta; melhor usar entoação+conteúdo), "Como conectar um agente ao telefone?" (SIP/Twilio; 8 kHz, DTMF, handoff).
✏️ Exercício 4 — Projete o agente
Um agente de voz para uma clínica: marca, remarca e cancela consultas, e transfere o resto para a recepção. Descreva a arquitetura, o turn-taking, as ferramentas, os pontos de confirmação em voz, e o fallback para humano.
Gabarito (uma boa resposta): Arquitetura: pipeline (controle e logs) ou híbrido; orquestrado por Pipecat/LiveKit/Vapi; telefonia via Twilio; STT streaming PT-BR com vocabulário (nomes de médicos, especialidades); LLM com function calling; TTS turbo. Turn-taking: endpointing por conteúdo+entoação (~600 ms de base), barge-in ativo com AEC, fillers durante consultas ao sistema. Ferramentas: buscar_paciente, listar_horarios(medico, data), agendar, remarcar, cancelar, transferir_recepcao. Confirmações em voz: repetir nome do paciente e data de nascimento para identificar; antes de agendar/cancelar, ler de volta ("Vou marcar para quarta, dia 10, às 15h com a Dra. Lima. Confirma?"). Fallback: qualquer coisa fora de marcar/remarcar/cancelar (dúvidas clínicas, convênio, reclamação, frustração detectada, 2 falhas de entendimento seguidas) → "vou te passar para a recepção" + transferir_recepcao com um resumo do contexto. Gravação com aviso de consentimento no início; retenção definida; PII redigida nos logs.
Latência, streaming e qualidade de conversa
Objetivo: montar um orçamento de latência ponta a ponta, aplicar streaming em cada etapa, e lidar com eco, ruído, jitter e a naturalidade da conversa.
5.1 O orçamento de latência
Do fim da fala do usuário ao início da resposta em áudio. Alvo para soar natural: < 800 ms (aceitável até ~1.2 s).
| Etapa | Orçamento típico | Como cortar |
|---|---|---|
| Rede (captura → servidor) | 20–150 ms | servidor próximo (região), WebRTC/Opus |
| Endpointing (detectar fim do turno) | 200–600 ms | endpointing "inteligente" (conteúdo+entoação), não só silêncio fixo |
| STT final | 50–300 ms | streaming — o texto já está quase pronto quando o turno acaba |
| LLM (time-to-first-token) | 150–500 ms | modelo rápido/menor, prompt curto, prefix cache, streaming |
| TTS (time-to-first-audio) | 100–300 ms | modelo turbo, sintetizar a 1ª frase assim que sair do LLM |
| Rede (servidor → alto-falante) + buffer | 20–150 ms | chunks pequenos, jitter buffer ajustado |
As etapas se sobrepõem com streaming: enquanto o LLM gera a 2ª frase, o TTS já sintetiza a 1ª e o usuário já a ouve.
5.2 Streaming em cada estágio
- STT emite parciais → o LLM pode até começar a "pensar" antes do fim (com cuidado).
- LLM em streaming → assim que fecha a primeira frase (ou cláusula), manda para o TTS.
- TTS em streaming → toca o primeiro chunk enquanto sintetiza o resto.
- Segmentação: quebrar a resposta em unidades faláveis (frases/cláusulas) para o TTS não esperar o parágrafo.
5.3 Eco, ruído e rede
- AEC (acoustic echo cancellation): impedir que o microfone capte o alto-falante e o agente "se transcreva". WebRTC traz AEC; em telefonia e hardware, atenção.
- Supressão de ruído e ganho automático na captura — modelos de denoise (RNNoise, ou serviços) ajudam em ambientes ruins.
- Jitter buffer: absorve variação de chegada dos pacotes; grande = robusto mas com mais latência; pequeno = ágil mas com falhas em rede ruim.
- Perda de pacote: Opus com FEC/PLC disfarça bem; monitore a taxa.
5.4 Naturalidade
- Respostas curtas e conversacionais — um voice agent que "lê um parágrafo" cansa; instrua o LLM a falar como gente ao telefone.
- Prosódia: pausas nos lugares certos, não soletrar tudo, variar entonação.
- Evitar o "uncanny valley" da voz: quase-perfeita com um erro de prosódia incomoda mais que uma voz claramente sintética e consistente.
- Recuperação: quando não entendeu, pedir de forma humana ("desculpa, pode repetir o número?"), não "erro: entrada inválida".
Perguntas: "Monte o orçamento de latência de um voice agent" (rede + endpointing + STT + LLM TTFT + TTS TTFA + buffer; alvo < 800 ms; etapas se sobrepõem com streaming), "Como o streaming reduz a latência percebida?" (cada etapa consome/produz parcialmente; TTS da 1ª frase enquanto o LLM escreve o resto), "O que é AEC e por que importa?" (echo cancellation — sem ele o agente se ouve e o barge-in quebra), "O que é o 'uncanny valley' da voz?".
✏️ Exercício 5 — Corte a latência
Um voice agent está com ~2.5 s entre o usuário parar de falar e o áudio começar. Medições: endpointing 900 ms, STT final 400 ms, LLM TTFT 700 ms, TTS TTFA 350 ms, resto 150 ms. Proponha melhorias etapa por etapa e a latência-alvo.
Gabarito (uma boa resposta): Endpointing 900→~450 ms: trocar silêncio fixo por endpointing baseado em conteúdo+entoação; reduzir o timeout base. STT 400→~150 ms: garantir streaming de verdade (a hipótese final deve estar quase pronta no fim do turno); modelo/serviço com boa latência. LLM 700→~300 ms: modelo menor/mais rápido para a conversa (rotear as tarefas difíceis), encurtar o system prompt, prefix cache do prompt fixo, começar o TTS na primeira cláusula em vez de esperar a resposta inteira. TTS 350→~200 ms: voz "turbo", chunks menores, templates pré-sintetizados para saudações/confirmações fixas. Sobreposição: deixar as etapas correrem em paralelo (LLM streaming → segmentar → TTS streaming). Alvo: ~450 (endpoint) + ~150 (STT, mas já sobreposto) + ~300 (LLM TTFT) + ~200 (TTS TTFA) + 150 ≈ ~800–900 ms percebidos, dentro do aceitável; continuar medindo p95.
Clonagem de voz e áudio generativo
Objetivo: entender voice cloning e seus usos legítimos, o consentimento e os riscos (deepfake, watermarking), e o panorama de áudio generativo (música, efeitos, restauração, separação).
6.1 Clonagem de voz
- Few-shot / instant: poucos segundos a poucos minutos de áudio de referência → uma voz utilizável. Rápido, qualidade boa, menos fiel a nuances.
- Fine-tune / professional: dezenas de minutos a horas, gravadas com qualidade → voz muito fiel, com controle de estilo.
- Usos legítimos: a voz da marca/locutor oficial; narração de conteúdo próprio em escala; acessibilidade (bancar a própria voz antes de perdê-la; "voz personalizada" para quem usa comunicação alternativa); dublagem mantendo a voz do ator (com contrato).
6.2 Consentimento, direitos e risco
- Só clone uma voz com consentimento explícito e por escrito do dono, com escopo definido (onde, por quanto tempo, para quê). A voz de uma pessoa é um dado biométrico e um traço de identidade/imagem.
- Deepfake de voz é vetor de fraude (o "golpe do parente", fraude bancária por voz) e de desinformação. Produtos sérios exigem verificação de consentimento e barram vozes de pessoas públicas.
- Watermarking e detecção de áudio sintético: marcas d'água inaudíveis (ex.: SynthID e afins) e classificadores de "isto foi gerado" — ainda imperfeitos, mas parte da postura responsável.
- Disclosure: em muitos contextos (e por regulação crescente), é preciso avisar que a voz é sintética.
Esta seção é orientação prática, não aconselhamento jurídico. Direitos de voz/imagem, biometria e uso de IA variam por país (LGPD no Brasil, leis estaduais de "voz e imagem", regras específicas para publicidade e para vozes de artistas) e mudam rápido. Para produto comercial, envolva o jurídico e obtenha consentimentos formais.
6.3 Tradução e dublagem que preservam a voz
- Fluxo: STT + tradução do texto + TTS na mesma voz do locutor original, no outro idioma, sincronizando o tempo (e às vezes os lábios, no vídeo).
- Cuidados: fidelidade da tradução, prosódia natural no idioma-alvo, direitos do locutor para a nova língua, e o "timing" (a frase traduzida cabe no espaço da original?).
6.4 Outro áudio generativo
- Música (Suno, Udio e afins) e efeitos sonoros / foley por prompt — úteis para protótipo, trilha temporária, ambientação; atenção a direitos de treino e de uso comercial. Ver Produção e Edição Musical.
- Restauração: denoise, de-reverb, remoção de cliques, "upmix" de qualidade — modelos que limpam gravações ruins.
- Separação de fontes (stems): isolar voz, bateria, baixo de uma mixagem — para remix, karaokê, edição.
- Super-resolução de áudio: reconstruir frequências altas de um áudio 8 kHz.
Perguntas: "Quais os usos legítimos de clonagem de voz e os cuidados?" (voz de marca, narração própria, acessibilidade, dublagem com contrato — sempre com consentimento explícito, escopo e disclosure), "Como mitigar o risco de deepfake de voz?" (verificação de consentimento, bloqueio de vozes públicas, watermarking, detecção, disclosure), "Como funciona dublagem que mantém a voz?" (STT → tradução → TTS na mesma voz + sincronização), "O que é separação de fontes?".
✏️ Exercício 6 — Política de voz clonada
Um produto vai oferecer "clone sua voz para narrar seus vídeos". Escreva a política e os controles: o que exigir do usuário, o que bloquear, o que registrar, e o que comunicar ao ouvinte.
Gabarito (uma boa resposta): Exigir: o usuário grava uma frase de consentimento ditada pelo sistema ("Eu, [nome], autorizo a clonagem da minha voz para uso em [produto]...") — prova de consentimento e de que é a própria voz; aceite dos termos com escopo (uso pessoal/comercial, prazo, revogação). Bloquear: uploads que não batem com a frase de consentimento (anti-spoofing / verificação de locutor); tentativas de clonar vozes de pessoas públicas (lista + detecção); conteúdo gerado que viole as políticas (fraude, difamação). Registrar: a gravação de consentimento, o hash do modelo de voz, quem criou, quando, e um log de gerações. Comunicar: aplicar watermark inaudível em todo áudio gerado; oferecer/estimular disclosure ("voz sintetizada") conforme o contexto e a regulação; permitir revogação (apagar o modelo de voz e cessar novas gerações). Reter o mínimo, com prazo, e dar ao usuário o controle de exclusão.
Pipelines de produção de áudio com IA
Objetivo: montar o fluxo de pós-produção de podcast/vídeo com IA — transcrição, edição por texto, limpeza, correção, capítulos, legendas e dublagem — com qualidade de publicação.
7.1 O fluxo
- Ingestão: normalizar formato/sample rate; separar faixas por locutor se houver.
- Transcrição com timestamps por palavra e diarização (Módulo 2).
- Edição por texto ("Descript-style"): apagar uma frase no transcript apaga o áudio correspondente; remover silêncios longos e muletas ("é...", "tipo", "né") automaticamente, com revisão.
- Limpeza de áudio: denoise, de-reverb, de-ess, de-plosive, redução de respiração; leveling para uma loudness alvo.
- Correção: consertar uma palavra trocada regenerando um trecho na voz do locutor (com consentimento), ou regravar.
- Enriquecimento: capítulos/marcadores por tópico, resumo, shownotes, títulos, citações, timestamps de destaque.
- Legendas: SRT/VTT alinhadas, revisadas, com quebras legíveis (ver a apostila Acessibilidade Digital & WCAG).
- Dublagem multilíngue (opcional): tradução + TTS na voz, sincronizada.
- Export: masters por plataforma (podcast, YouTube, cortes verticais).
7.2 Loudness e qualidade de broadcast
- Alvos de loudness integrada (LUFS): podcast/streaming em torno de −16 LUFS (mono) / −14 a −16 (estéreo); TV broadcast −23 LUFS (EBU R128) / −24 (ATSC A/85). True peak abaixo de −1 dBTP.
- Consistência entre episódios e entre locutores importa mais que "alto".
- Ver a apostila Produção e Edição Musical para mixagem, EQ e masterização em profundidade.
7.3 Batch, custo e revisão
- Processar horas de áudio: filas, paralelismo, e um passo de revisão humana nos pontos de risco (nomes, números, cortes, trechos regenerados).
- Custo domina por minuto de áudio (STT) e por caractere (TTS/dublagem) — estime antes; STT local pode compensar em alto volume (ver IA Local & SLMs).
- Não confie cegamente na remoção automática de muletas e silêncios — ela corta respirações e ritmo; sempre com preview.
Perguntas: "Descreva um pipeline de pós de podcast com IA" (transcrição+diarização → edição por texto → limpeza → correção → capítulos/shownotes → legendas → dublagem → export), "Qual a loudness alvo de um podcast?" (~−16 LUFS, true peak < −1 dBTP), "O que revisar manualmente?" (nomes/números, cortes automáticos, trechos regenerados), "Onde o custo mora?" (minuto de STT, caractere de TTS).
✏️ Exercício 7 — Automatize um podcast
Um podcast semanal de 2 locutores, 60 min por episódio, quer: transcrição, remoção de muletas/silêncios, nivelamento, capítulos, shownotes, legendas PT + dublagem EN. Descreva o pipeline, os pontos de revisão humana, e uma estimativa grosseira de onde vai o tempo/custo.
Gabarito (uma boa resposta): Ingestão (faixas separadas por locutor, se gravadas assim; senão diarização). STT com timestamps + diarização (~60 min de áudio por episódio). Edição por texto: sugerir remoção de silêncios > 700 ms e muletas, apresentar como diff para o editor aprovar (revisão humana nº 1). Limpeza: denoise + de-ess + leveling para −16 LUFS por faixa, depois soma. Capítulos: LLM sobre o transcript detecta tópicos → marcadores (revisão nº 2: títulos de capítulo). Shownotes/título/citações: LLM (revisão nº 3). Legendas PT: gerar VTT do transcript final, revisar quebras. Dublagem EN: traduzir o transcript (revisão nº 4 por alguém que fale EN), TTS nas vozes clonadas dos locutores com consentimento, sincronizar por segmento, checar timing. Export: master do episódio PT, versão EN, cortes. Tempo/custo: a maior parte do tempo humano vai na revisão da edição por texto e na revisão da tradução/dublagem; o maior custo de máquina é a dublagem (TTS por caractere de 60 min de fala) e, se em volume, o STT — considerar STT local.
Voz no navegador e on-device
Objetivo: capturar, processar e reproduzir voz no navegador (Web Audio, WebRTC, AudioWorklet), rodar STT/TTS/VAD localmente, e cuidar de privacidade.
8.1 Captura e transporte no navegador
getUserMediapara o microfone; peça só quando necessário e mostre estado claro (áudio é sensível).- WebRTC traz AEC, supressão de ruído e AGC "de graça" no
getUserMedia(echoCancellation,noiseSuppression,autoGainControl) e é o transporte de baixa latência para um servidor de agente (via um SFU como LiveKit, ou peer). MediaRecorderpara gravar em Opus/WebM;AudioWorkletpara processar amostras em tempo real na thread de áudio (VAD no cliente, medição de nível, envio em chunks).- Web Audio API para reprodução com controle (gerenciar a fila de chunks do TTS, crossfade, interromper no barge-in).
8.2 STT/TTS/VAD locais no navegador
| Peça | Opção no navegador |
|---|---|
| VAD | Silero VAD (ONNX) ou webrtcvad no cliente — barato, roda em qualquer lugar |
| Wake word | openWakeWord, Porcupine (Picovoice) — local, sem enviar áudio |
| STT | whisper.cpp/whisper via transformers.js + WebGPU; ou a Web Speech API (SpeechRecognition) — cômoda mas com suporte irregular e, em alguns navegadores, processada na nuvem do fornecedor |
| TTS | Piper/Kokoro via WASM/ONNX; ou speechSynthesis da Web Speech API (vozes do SO, qualidade variável); ou a API de modelo do navegador quando existir |
- Mesmos limites da apostila IA Local & SLMs: tamanho de download, WebGPU nem sempre disponível, bateria, variabilidade de hardware → tenha fallback para servidor.
8.3 On-device em mobile
- STT do sistema (Apple Speech, Android SpeechRecognizer) — grátis, offline em muitos idiomas, integrado ao teclado de ditado.
- whisper.cpp compilado para iOS/Android; Piper para TTS offline; VAD e wake word locais.
- Apple Intelligence / on-device models para partes do pipeline sem enviar áudio.
8.4 Privacidade do áudio
- Áudio de voz é biométrico e altamente pessoal — trate como PII sensível (LGPD).
- Processar no dispositivo quando possível; se enviar, dizer o quê, para onde e por quanto tempo; consentimento para gravar; retenção curta e apagável.
- Wake word local é o padrão ético: nada sai antes da ativação.
- Transcrições podem conter mais PII que o áudio (nomes, documentos ditados) — redigir e proteger.
Perguntas de front-end/mobile: "Como você captura voz no navegador com baixa latência e sem eco?" (getUserMedia com echoCancellation/noiseSuppression, WebRTC, AudioWorklet para chunks), "Dá para rodar STT no navegador?" (whisper via transformers.js + WebGPU, ou Web Speech API com ressalvas), "O que roda local por padrão num assistente?" (wake word e VAD), "Como você trata a privacidade do áudio?" (biométrico/PII sensível; on-device quando dá; consentimento e retenção).
✏️ Exercício 8 — Voz no navegador
Um web app de estudo quer um "modo conversa": o usuário fala, a IA responde por voz, e ele pode interromper. Descreva a stack no navegador (captura, VAD, STT, transporte, TTS, barge-in) e o fallback, priorizando latência e privacidade.
Gabarito (uma boa resposta): Captura via getUserMedia com echoCancellation, noiseSuppression, autoGainControl. VAD no cliente (Silero via ONNX/WASM) para saber quando enviar e para o barge-in. Transporte: WebRTC para um servidor de agente (LiveKit/Pipecat) — menor latência e AEC; o servidor faz STT streaming + LLM + TTS streaming e devolve áudio em chunks. Reprodução via Web Audio API gerenciando a fila de chunks; no barge-in (VAD do cliente detecta fala durante a reprodução) → parar a fonte de áudio na hora e sinalizar o servidor para abortar o resto. Privacidade: pedir o microfone só ao entrar no modo conversa, indicador visível, não gravar por padrão, avisar que o áudio vai ao servidor durante a conversa. Fallback: sem WebRTC/WebGPU ou em rede ruim → modo "push-to-talk" (grava com MediaRecorder, envia o clipe, recebe a resposta), sem barge-in, com aviso.
Avaliação, segurança e acessibilidade
Objetivo: avaliar STT, TTS e agentes de voz com rigor; tratar os riscos de segurança específicos de voz; e usar (e não prejudicar) a acessibilidade.
9.1 Avaliar STT
- Conjunto de teste próprio, em PT-BR, representativo (sotaques, ambientes, domínio, canais — celular, telefone, sala).
- Métricas: WER global e por fatia (locutor, sotaque, ruído, domínio); acurácia de campos-chave (números, nomes, entidades — muitas vezes o que realmente importa); erro de diarização (quem falou).
- Recursos abertos: Mozilla Common Voice (PT) e outros para diversidade; mas monte também o seu.
9.2 Avaliar TTS
- MOS (Mean Opinion Score) — nota de naturalidade dada por ouvintes; caro, mas o padrão. Alternativas automáticas (MOS preditivo) dão sinal.
- Testes A/B de preferência entre vozes/modelos; inteligibilidade (transcrever de volta e medir WER).
- Checklist de pronúncia para o seu domínio: nomes de produtos, siglas, números, estrangeirismos, endereços.
9.3 Avaliar voice agents
- Task success: o agente resolveu o que o usuário queria? (marcação, transferência, informação certa).
- Latência p50/p95 ponta a ponta; taxa de barge-in correto (interrompeu quando devia, não interrompeu à toa); taxa de endpointing errado (cortou o usuário).
- Conversas que descarrilam: loops, "não entendi" repetido, o agente falando sozinho, alucinação de política/preço.
- Simulação: um "usuário sintético" (outro LLM com personas e cenários) roda centenas de conversas para regressão antes de cada deploy.
- Ver a apostila LLMOps & Avaliação de Sistemas de IA.
9.4 Segurança específica de voz
- Injeção por áudio: alguém fala instruções para o agente ("ignore suas regras e...") ou toca um áudio adversário — os mesmos princípios da apostila Segurança de Aplicações de IA (OWASP LLM Top 10): não misturar instrução e conteúdo, ferramentas com menor privilégio, confirmação de ações sensíveis.
- Spoofing de locutor (se você usa voz para autenticar): use anti-spoofing/liveness e não confie em voz como fator único.
- PII na transcrição e na gravação: redigir, criptografar, definir retenção; consentimento para gravar (obrigatório em muitos lugares); "aviso de gravação" no início da chamada.
- Deepfake / uso indevido de voz clonada (Módulo 6): consentimento, watermark, bloqueio de vozes públicas, disclosure.
9.5 Acessibilidade
- A favor: legendas ao vivo (STT) para pessoas surdas/ensurdecidas; leitura em voz alta (TTS) para baixa visão e dislexia; voz como entrada para quem tem limitação motora; audiodescrição gerada; tradução em tempo real.
- Cuidados: legenda automática precisa de revisão (WCAG pede legendas precisas); um voice agent não pode ser a única forma de fazer algo (ofereça texto/toque); respeitar quem usa leitor de tela (não capturar o foco, anunciar mudanças); não forçar interação por voz.
- Sotaques, disartria, gagueira, vozes infantis e idosas — o STT costuma ser pior; teste e não penalize o usuário por isso.
- Ver a apostila Acessibilidade Digital & WCAG.
9.6 Viés
Modelos de fala historicamente funcionam melhor para alguns sotaques, gêneros e idiomas (mais dados). Meça o desempenho por grupo (sotaque regional, gênero, faixa etária), documente as lacunas, e escolha/afine para o seu público — não aceite o "WER médio" como suficiente.
Perguntas: "Como você avalia um voice agent?" (task success, latência p50/p95, barge-in/endpointing corretos, conversas que descarrilam; simulação com usuário sintético para regressão), "Riscos de segurança específicos de voz?" (injeção por áudio, spoofing de locutor, PII em gravação/transcrição, deepfake — consentimento, redação, retenção, anti-spoofing), "Como a IA de voz ajuda e como pode prejudicar a acessibilidade?" (legendas/TTS/entrada por voz vs legendas não revisadas, voz como único caminho, viés de sotaque).
✏️ Exercício 9 — Plano de avaliação e risco
Você vai lançar um voice agent de cobrança (liga para clientes, negocia parcelamento). Liste: o plano de avaliação antes do go-live, os riscos de segurança/compliance e as mitigações, e dois cuidados de acessibilidade.
Gabarito (uma boa resposta): Avaliação: conjunto de ~300 cenários simulados (personas: cooperativo, irritado, confuso, tenta enganar, pede humano) rodados por um usuário sintético; medir task success (proposta correta feita/registrada), latência p95, taxa de endpointing/barge-in errados, e "descarrilamentos" (o agente prometeu desconto não autorizado? entrou em loop?). Eval de STT em PT-BR com ruído de telefone e campos-chave (valor, CPF, data). Piloto com % pequeno de chamadas + escuta humana. Segurança/compliance: aviso de gravação e identificação no início (exigência de cobrança); nunca revelar dívida a quem não é o titular (verificar identidade sem expor dados — perguntar, não afirmar); limites rígidos de negociação por ferramenta (o agente não "inventa" condição); injeção por áudio → confirmar toda ação financeira em voz e registrar; PII redigida em logs; retenção conforme a norma; anti-spoofing se houver qualquer autenticação por voz; respeitar horário legal de contato e pedido de "não me ligue mais". Acessibilidade: se a pessoa pede, oferecer o mesmo por outro canal (SMS/portal/humano) — o agente não pode ser o único caminho; ser paciente com fala atípica e não desligar após uma falha de entendimento; permitir falar com humano a qualquer momento.
Mercado de trabalho: roadmap, entrevistas e portfólio
Objetivo: converter o conteúdo dos módulos em contratação — onde a habilidade é usada, um plano de estudo, um banco de perguntas e projetos que geram entrevista.
10.1 Onde IA de voz pesa
- Voice / conversational AI engineer: montar e operar voice agents (suporte, vendas, agendamento, IVR).
- Applied AI engineer: integrar STT/TTS em produtos, pipelines de mídia, acessibilidade.
- Audio ML: treinar/afinar modelos de fala, diarização, denoise, avaliação.
- Realtime / infra: WebRTC, telefonia, latência, escala de conexões concorrentes.
- Media / creator tools: transcrição, edição por texto, dublagem, legendas.
10.2 Roadmap de estudo (6–8 semanas)
| Semanas | Foco | Prática |
|---|---|---|
| 1 | Panorama, áudio como sinal, STT (Módulos 1–2) | Transcrever 10 áudios PT-BR com Whisper (local e API); calcular WER contra referência; testar vocabulário customizado |
| 2 | TTS (Módulo 3) | Gerar o mesmo roteiro em 3 vozes/serviços; SSML para números e siglas; medir TTFA |
| 3 | Voice agents (Módulo 4) | Um agente simples com Pipecat/LiveKit/Vapi: VAD → STT → LLM → TTS, com uma ferramenta |
| 4 | Latência e conversa (Módulo 5) | Instrumentar o orçamento de latência do agente; ativar streaming em cada etapa; barge-in |
| 5 | Pipeline de mídia (Módulo 7) | Automatizar a pós de um episódio: transcrição → limpeza → capítulos → legendas VTT → dublagem de um trecho |
| 6 | Navegador/on-device (Módulo 8) | Um "modo conversa" web com captura WebRTC, VAD no cliente e fallback push-to-talk |
| 7 | Avaliação, segurança, a11y (Módulo 9) | Um harness de simulação com usuário sintético; checklist de segurança e acessibilidade |
| 8 | Portfólio | Publicar o agente (com números de latência), o pipeline e a avaliação de STT PT-BR |
10.3 Banco de perguntas (com a resposta que aprova)
Júnior/pleno — "Quais as peças de um sistema de voz?"
VAD (detectar fala), STT/ASR (áudio→texto), o "cérebro" (LLM ou lógica), TTS (texto→áudio), e o turn-taking (endpointing = quando o usuário terminou; barge-in = interromper o agente). Mais diarização e wake word conforme o caso. A métrica que domina é a latência ponta a ponta.
Pleno — "O que é WER e o que ele esconde?"
Word Error Rate = (substituições + inserções + deleções) / palavras de referência. Esconde erros concentrados em nomes/números/jargão, e diferenças por sotaque, locutor e ruído. Para produto, medir também "acurácia de campos-chave" e quebrar por fatia.
Pleno — "Pipeline vs speech-to-speech num voice agent?"
Pipeline (VAD→STT→LLM→TTS): controle, observabilidade em texto, function calling maduro, barato — mas latência acumulada e perde entoação. Speech-to-speech (modelo de voz nativo): latência mínima e prosódia preservada — menos controle/observabilidade, mais caro. Híbrido (voz nativa + ferramentas em texto) é comum.
Pleno — "Monte o orçamento de latência."
Rede + endpointing (200–600 ms) + STT final + LLM time-to-first-token + TTS time-to-first-audio + buffer, com alvo < ~800 ms. As etapas se sobrepõem com streaming: sintetiza a primeira frase enquanto o LLM escreve o resto; endpointing inteligente (conteúdo+entoação) em vez de silêncio fixo é onde mais se ganha.
Pleno/eng — "O que é barge-in e o que ele exige?"
O usuário fala por cima do agente e o agente para de falar na hora, descarta o resto da resposta e ouve. Exige VAD sensível e echo cancellation (AEC), senão o agente capta a própria voz e "se interrompe" ou nunca para. Sem barge-in, a conversa é insuportável.
Sénior — "Como você avalia um voice agent antes do go-live?"
Simulação com usuário sintético (personas e cenários adversos) rodando centenas de conversas: task success, latência p50/p95, taxa de endpointing/barge-in errados, e detecção de "descarrilamentos" (loops, alucinação de política/preço). Eval de STT em PT-BR com as condições reais e foco em campos-chave. Piloto com % pequeno + escuta humana. Regressão a cada deploy.
Sénior — "Cuidados legais e de segurança com clonagem de voz?"
Consentimento explícito e por escrito do dono da voz, com escopo (uso, prazo, revogação); prova de que é a própria voz (frase de consentimento gravada, verificação de locutor); bloqueio de vozes de pessoas públicas; watermark no áudio gerado; disclosure conforme o contexto/regulação; retenção mínima. E que não é aconselhamento jurídico — direitos de voz/imagem e biometria variam por país.
Armadilha — "A demo do voice agent ficou ótima, é só publicar"
Demos escondem o p95 de latência em rede ruim, o barge-in que falha com eco, os sotaques que o STT erra, as conversas que descarrilam, a PII nas gravações e o consentimento. Produção exige orçamento de latência medido, simulação de regressão, avaliação por fatia, e o pacote de segurança/compliance/acessibilidade.
10.4 Projetos de portfólio que geram entrevista
- Voice agent em tempo real (âncora): um agente de um domínio (agendamento, suporte), com pipeline instrumentado, streaming em todas as etapas, barge-in, uma ou duas ferramentas, e um relatório de latência p50/p95 e task success.
- Pipeline de pós de podcast: transcrição → edição por texto → limpeza (LUFS alvo) → capítulos/shownotes → legendas VTT → dublagem de um trecho, com os pontos de revisão humana.
- Avaliação de STT PT-BR: um conjunto de teste próprio com sotaques/ruído/domínio, comparando 3 modelos/serviços, com WER por fatia e acurácia de campos-chave.
- Transcrição on-device: um app web/mobile que transcreve sem enviar áudio (whisper.cpp/transformers.js), com estratégia de download e fallback.
- Estudo de clonagem responsável: um fluxo de "clone sua voz" com consentimento gravado, verificação, watermark e política — documentado.
10.5 Fontes para continuar
- STT: o paper e o repo do Whisper; faster-whisper, whisper.cpp, WhisperX; docs de Deepgram, AssemblyAI; Mozilla Common Voice.
- TTS: docs de ElevenLabs, Cartesia, OpenAI, Azure Speech (SSML); Piper, Kokoro, Coqui/XTTS, F5-TTS.
- Voice agents / realtime: Pipecat, LiveKit Agents, Vapi, Retell; os guias "Realtime" dos provedores; a documentação do WebRTC (MDN); posts sobre "latency budget" de voice AI.
- Áudio e broadcast: EBU R128 / ITU-R BS.1770 (loudness/LUFS); a apostila Produção e Edição Musical.
- Segurança/ética: a apostila Segurança de Aplicações de IA (OWASP LLM Top 10); materiais sobre audio deepfake detection e watermarking.
- Nesta trilha: IA Local, On-Device & Small Language Models, Criação de Agentes de IA, MCP, IA Generativa & RAG, LLMOps & Avaliação de Sistemas de IA, Criação e Edição de Vídeos com IA, Workflows de Mídia com IA, Acessibilidade Digital & WCAG, Observabilidade & SRE.
Cinco ideias sustentam IA de voz: (1) latência é a métrica-rainha — alvo < ~800 ms, e o segredo é streaming em todos os estágios; (2) STT: teste no seu áudio PT-BR, meça WER por fatia e a acurácia dos campos-chave, use vocabulário customizado; (3) TTS: normalize o texto (números, siglas), controle com SSML, priorize time-to-first-audio; (4) voice agent = pipeline ou speech-to-speech + orquestrador, com endpointing inteligente e barge-in (que exige AEC); (5) produção pede avaliação por simulação, segurança de voz (injeção, spoofing, PII, deepfake com consentimento) e acessibilidade — voz nunca como caminho único.