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-record
para 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