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
- Python 3.10+ instalado
- Conta no ElevenLabs (voz realista) ou Google Cloud TTS (gratuito por 1 ano)
- Microfone funcional
📦 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):
- Instale o Termux e execute:bashCopyDownloadpkg install python clang pip install -r requirements.txt
- Use
termux-microphone-recordpara captura de áudio
Para iOS (Shortcuts):
- 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
| Erro | Solução |
|---|---|
Microphone not found | Instale pyaudio: pip install pyaudio |
ElevenLabs API limit | Use pyttsx3 ou espere 1 hora |
GPT não responde | Verifique 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