Tutorial: Criando um Assistente de IA com Voz (Passo a Passo em 2025)

Nível: Intermediário ⚙️ | Tempo estimado: 45 min

Neste guia prático, você vai criar um assistente de IA com reconhecimento e síntese de voz – parecido com Alexa ou Google Assistant, mas personalizável e rodando localmente. Usaremos ferramentas gratuitas e código aberto.

🛠️ Pré-requisitos

📦 Passo 1: Configurando o Ambiente

No terminal:

bash

pip install openai elevenlabs speechrecognition pyttsx3 python-dotenv

Crie um arquivo .env para suas chaves de API:

plaintext

OPENAI_API_KEY="sua-chave"
ELEVENLABS_API_KEY="sua-chave"  # Opcional para voz premium


🎙️ Passo 2: Reconhecimento de Voz (STT)

Crie um arquivo assistente.py:

python

import speech_recognition as sr

def ouvir_microfone():
    r = sr.Recognizer()
    with sr.Microphone() as source:
        print("Diga algo...")
        audio = r.listen(source)
        try:
            texto = r.recognize_google(audio, language='pt-BR')
            return texto
        except Exception as e:
            print("Erro:", e)
            return None

Teste:

python

comando = ouvir_microfone()
print("Você disse:", comando)

🤖 Passo 3: Processamento com IA (GPT-4 Turbo)

Adicione ao código:

python

from openai import OpenAI
import os
from dotenv import load_dotenv

load_dotenv()
client = OpenAI()

def perguntar_ao_gpt(prompt):
    resposta = client.chat.completions.create(
        model="gpt-4-turbo",
        messages=[{"role": "user", "content": prompt}],
        temperature=0.7
    )
    return resposta.choices[0].message.content

Exemplo de uso:

python

resposta_ia = perguntar_ao_gpt("Explique quantum computing para uma criança de 5 anos")
print(resposta_ia)

🔊 Passo 4: Síntese de Voz (TTS)

Opção 1: ElevenLabs (Voz Realista)

python

from elevenlabs import generate, play

def falar_com_elevenlabs(texto):
    audio = generate(
        text=texto,
        voice="Rachel",  # Experimente "Bella", "Antoni", etc.
        model="eleven_multilingual_v2"
    )
    play(audio)

Opção 2: pyttsx3 (Offline e Grátis)

python

import pyttsx3

def falar_offline(texto):
    engine = pyttsx3.init()
    engine.setProperty('voice', 'pt-br')  # Requer pacote de voz PT-BR
    engine.say(texto)
    engine.runAndWait()

🔄 Passo 5: Loop Principal do Assistente

python

while True:
    print("\nAguardando comando...")
    comando = ouvir_microfone()
    
    if comando:
        print("Processando...")
        resposta = perguntar_ao_gpt(comando)
        print("IA:", resposta)
        falar_com_elevenlabs(resposta)  # Ou falar_offline()
        
    if "parar" in comando.lower():
        break

🚀 Funcionalidades Extras (Opcionais)

1. Personalização de Voz

  • Grave sua própria voz no ElevenLabs (requer plano pago)
  • Ajuste velocidade e entonação:pythonCopyDownloadaudio = generate(texto, voice=”sua_voz”, stability=0.7, similarity_boost=0.8)

2. Memória de Contexto

Modifique perguntar_ao_gpt() para manter histórico:

python

historico = []

def perguntar_ao_gpt(prompt):
    historico.append({"role": "user", "content": prompt})
    resposta = client.chat.completions.create(
        model="gpt-4-turbo",
        messages=historico[-6:],  # Mantém as últimas 6 interações
    )
    historico.append({"role": "assistant", "content": resposta.choices[0].message.content})
    return resposta.choices[0].message.content

3. Acionamento por Palavra-Chave

python

if "assistente" in comando.lower():
    resposta = perguntar_ao_gpt(comando.replace("assistente", ""))

📱 Deploy em Dispositivos Móveis

Para Android (Termux):

  1. Instale o Termux e execute:bashCopyDownloadpkg install python clang pip install -r requirements.txt
  2. Use termux-microphone-record para captura de áudio

Para iOS (Shortcuts):

  1. Crie um atalho que:
    • Grave áudio → Envie para API do seu servidor Python
    • Reproduza a resposta

💡 Ideias para Personalizar

  • Integre com APIs (ex.: ChatGPT + clima/traffic)
  • Adicione emoções à voz (ex.: feliz/triste conforme contexto)
  • Crie um bot Discord com o mesmo código

⚠️ Solução de Problemas

ErroSolução
Microphone not foundInstale pyaudiopip install pyaudio
ElevenLabs API limitUse pyttsx3 ou espere 1 hora
GPT não respondeVerifique créditos na OpenAI

🎁 Código Completo no GitHub

Acesse aqui o projeto completo com:

  • Controle por gestos (mediapipe)
  • Tradução automática para 5 idiomas
  • Interface gráfica simples

👉 Próximo tutorial: “Como hospedar seu assistente na nuvem de graça”

Gostou? Deixe nos comentários qual funcionalidade você adicionaria! 🚀

(Tags para SEO: “assistente de voz python”, “criar alexa personalizada”, “IA com reconhecimento de voz 2025”)

New chat

Deixe um comentário