Entrar ou criar conta

Laboratório: Agente de Voz com ElevenLabs e Avatar de Vídeo HeyGen Integrados via Python

Você implementará um agente de voz que recebe texto, converte para voz realista com ElevenLabs, transcreve o áudio de volta para texto, e gera um vídeo com avatar no HeyGen. Em cerca de 2 horas, terá um pipeline completo de texto para vídeo com IA, usando apenas software livre e SDKs oficiais.

Voz e vídeo com IA: ElevenLabs e HeyGen para atendimento, treinamento e comunicação
Ligado ao treinamento Voz e vídeo com IA: ElevenLabs e HeyGen para atendimento, treinamento e comunicação

Roteiro para estudo em ambiente de laboratório ou de teste. Execute apenas em equipamentos, redes e contas que você tenha autorização para usar, com backup e homologação próprios. Comandos podem causar indisponibilidade ou perda de dados. Software e marcas citados pertencem aos seus titulares. Termos de Uso.

Status de validaçãoNão validado pela Upnetix: roteiro derivado da documentação oficial, para você executar e validar
Duração estimada
120 min
Passos
11
Validações
4
Versões da documentação consultada
Python 3.10 ou superior · ElevenLabs Python SDK a versão estável atual · Requests a versão estável atual
Objetivo

Demonstrar, em bancada, a integração de Text-to-Speech e Speech-to-Text da ElevenLabs com a geração de vídeo avatar do HeyGen, orquestrando tudo via Python. O laboratório mostra como transformar um texto em áudio realista, recuperar o texto a partir do áudio, e criar um vídeo avatar automatizado. O objetivo é evidenciar o fluxo ponta a ponta, a manipulação de APIs assíncronas e a importância de validações e supervisão em aplicações de IA multimodal.

Topologia

Um computador local (192.168.56.10) executa scripts Python que interagem diretamente com as APIs ElevenLabs (TTS e STT) e HeyGen (criação de vídeo). O áudio gerado é salvo localmente, enviado para transcrição, e o texto resultante é usado para criar um vídeo avatar. Todo o tráfego é iniciado do host local para as APIs públicas, sem servidores intermediários.


+---------------------+
|  Host Local (Python)|
| 192.168.56.10       |
+----------+----------+
           |
   +-------+-------+
   |               |
ElevenLabs      HeyGen
(TTS/STT API)   (Video API)

Equipamentos e software

ItemRequisito, licença ou versão
PC ou VM local2 vCPU, 4 GB RAM, porta 443 liberada para saída, Python 3.10+
PythonPSF · 3.10 ou superior
ElevenLabs Python SDKMIT · a versão estável atual
RequestsApache-2.0 · a versão estável atual

Roteiro

  1. Preparar ambiente Python isolado

    Evite conflitos de dependências criando um ambiente virtual. Isso garante reprodutibilidade.

    python3 -m venv venv
    source venv/bin/activate

    O que você deve ver: Prompt do terminal mostra (venv) indicando ambiente ativado.

  2. Instalar SDKs e dependências

    Instale os SDKs oficiais e requests para chamadas HTTP. Use versões estáveis.

    pip install elevenlabs requests

    O que você deve ver: Mensagens de sucesso para cada pacote instalado.

  3. Configurar variáveis de ambiente para segredos

    Nunca exponha chaves de API no código. Use variáveis de ambiente para as chaves da ElevenLabs e HeyGen.

    export ELEVEN_API_KEY='sua-chave-elevenlabs'
    export HEYGEN_API_KEY='sua-chave-heygen'

    O que você deve ver: Variáveis disponíveis na sessão (confira com 'echo $ELEVEN_API_KEY').

  4. Gerar áudio a partir de texto (TTS ElevenLabs)

    Converta um texto para voz realista usando a API TTS. Escolha um voice_id disponível em sua conta ElevenLabs.

    python -c "from elevenlabs import ElevenLabs; import os; client = ElevenLabs(api_key=os.environ['ELEVEN_API_KEY']); audio = client.text_to_speech(text='Bem-vindo ao laboratório de IA.', voice_id='insira_seu_voice_id'); with open('saida.mp3','wb') as f: f.write(audio)"

    O que você deve ver: Arquivo 'saida.mp3' criado no diretório atual, contendo o áudio sintetizado.

  5. Reproduzir o áudio gerado localmente

    Garanta que o áudio está correto ouvindo o arquivo.

    ffplay saida.mp3

    O que você deve ver: Áudio reproduzido com clareza e sem cortes.

  6. Transcrever o áudio para texto (STT ElevenLabs)

    Use a API de Speech-to-Text para recuperar o texto a partir do áudio gerado.

    python -c "from elevenlabs import ElevenLabs; import os; client = ElevenLabs(api_key=os.environ['ELEVEN_API_KEY']); with open('saida.mp3','rb') as f: transcript = client.speech_to_text(audio=f, model_id='scribe_v2'); print(transcript)"

    O que você deve ver: Texto transcrito impresso no terminal, próximo ao original.

  7. Preparar payload para criação de vídeo avatar HeyGen

    Monte o corpo da requisição com o texto transcrito, selecionando um avatar e voz disponíveis em sua conta HeyGen.

    # Exemplo de payload, consulte a documentação para campos exatos
    payload = {
      'video_inputs': {'script': 'Bem-vindo ao laboratório de IA.'},
      'character': 'insira_id_avatar',
      'voice': 'insira_id_voice'
    }
    

    O que você deve ver: Dicionário Python pronto para envio à API HeyGen.

  8. Enviar requisição de criação de vídeo (HeyGen Videos API)

    Envie o payload para a API de criação de vídeo. O processo é assíncrono: guarde o ID retornado.

    import requests, os
    headers = {'x-api-key': os.environ['HEYGEN_API_KEY']}
    resp = requests.post('https://api.heygen.com/v1/videos', headers=headers, json=payload)
    print(resp.json())

    O que você deve ver: Resposta JSON com status 'processing' e um 'video_id' para consulta posterior.

  9. Consultar status do vídeo até finalizar

    Acompanhe o status do vídeo usando o video_id. Repita até status 'success'.

    import time
    video_id = 'insira_video_id'
    while True:
      r = requests.get(f'https://api.heygen.com/v1/videos/{video_id}', headers=headers)
      status = r.json().get('status')
      print('Status:', status)
      if status == 'success':
        print('URL:', r.json().get('video_url'))
        break
      time.sleep(10)

    O que você deve ver: Status alterna entre 'processing' e 'success'. Ao finalizar, exibe URL do vídeo.

  10. Baixar e assistir ao vídeo gerado

    Acesse a URL final e baixe o vídeo para validação local.

    wget 'URL_do_video' -O avatar_final.mp4
    ffplay avatar_final.mp4

    O que você deve ver: Vídeo com avatar falando o texto original, sincronizado e com áudio claro.

  11. Registrar logs e outputs para revisão

    Salve logs de requisições, respostas e arquivos gerados para auditoria e revisão humana.

    cp saida.mp3 avatar_final.mp4 logs.txt ~/laboratorio_ia/

    O que você deve ver: Arquivos organizados para revisão e rastreabilidade.

Como saber que funcionou

TesteComandoCritério
Ouvir o áudio TTS geradoffplay saida.mp3Áudio corresponde ao texto original, sem distorções.
Comparar texto original e transcritodiff <(echo 'Bem-vindo ao laboratório de IA.') <(cat transcript.txt)Diferença mínima entre texto original e transcrição.
Verificar status do vídeo HeyGenrequests.get(f'https://api.heygen.com/v1/videos/{video_id}', headers=headers)Status 'success' e campo 'video_url' presente.
Assistir ao vídeo finalffplay avatar_final.mp4Avatar sincronizado, áudio claro, sem artefatos visuais.

Troubleshooting

SintomaCausa provávelCorreção
Arquivo de áudio não é criadoVoice_id incorreto ou chave de API inválidaConfirme voice_id e variável ELEVEN_API_KEY
Transcrição retorna erroFormato de áudio incompatível ou modelo_id ausenteGaranta que o arquivo está em MP3 e modelo_id='scribe_v2'
Resposta da HeyGen não contém video_idPayload incompleto ou chave de API inválidaRevise campos obrigatórios e HEYGEN_API_KEY
Status do vídeo nunca muda para 'success'Erro de processamento na HeyGen ou payload inválidoVerifique logs, aguarde mais tempo ou ajuste o payload
Vídeo final sem áudio ou com avatar mudoVoice_id ou script incompatívelUse voice_id e avatar suportados, consulte a documentação

Segurança e hardening

  • Nunca exponha chaves de API em código ou repositórios
  • Use variáveis de ambiente para segredos
  • Apague arquivos de áudio e vídeo após uso se contiverem dados sensíveis
  • Limite permissões dos arquivos gerados (chmod 600)
  • Reveja logs antes de compartilhar para evitar vazamento de dados pessoais

Checklist final

Referências

  1. ElevenLabs API Documentation · Elevenlabs (elevenlabs.io)
  2. HeyGen API Reference · Developers.heygen (developers.heygen.com)
  3. Python Official Documentation · Python Software Foundation (docs.python.org)
Verificação editorial
Publicado
13/09/2026
Última revisão
14/09/2026
Versão do conteúdo
1.0
Referências
3 oficiais
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.