Integrando Wake Words ao nosso J.A.R.V.I.S.
- #Python
🌌 Projeto CodeVerse Python – #38/2025
👋 Fala, galera dev! 🚀
Estamos no artigo #38 ou melhor dizendo na nossa trigéssima oitava semana deste ano e seguimos com nosso Projeto CodeVersePython2025, e hoje vamos implementar uma função que já apareceu em artigos anteriores mas de forma sucundária, e devido a sua importancia que ele tem em nosso projeto, resolvi escrever um artigop especídifico sobre ela. Afinal é ela que deixa o nosso Jarvis ainda mais parecido com assistentes reais, como Alexa, Siri e Google Assistente: o wake word, ou palavra de ativação.
👉 Mas o que é isso? É o mecanismo que faz o software ficar ouvindo continuamente, mas só entrar em ação quando escuta a palavra correta, como:
- “Ok Google”
- “E aí Siri”
- “Alexa”
No nosso caso, vamos usar a clássica frase: “Olá Jarvis”. Isso evita que o assistente fique respondendo qualquer coisa que captou do ambiente, deixando a interação muito mais fluida e natural. Se tornando um assitente real, que fica nos ouvindo e nos auxilia quando chamamos, enõa que nos interrompe em nosso dia a dia para dizer que não entendeu o que falamos. Levando nossa aplicação para outro patamar. rs.
As bibliotecas que vamos usar já são nossas velhas conhecidas:
- speech_recognition → converte fala em texto;
- pyttsx3 → faz o Jarvis falar;
- if/else → identifica quando a palavra-chave foi dita.
🦸♂️ O que é uma wake word?
Pensa no Jarvis dos filmes da Marvel. O Tony Stark não precisa ficar apertando botões ou digitando para falar com ele. Ele só chama: “Jarvis”, e pronto, o assistente já está “acordado” e pronto para agir.
É exatamente isso que significa wake word (em inglês, “palavra de despertar”): é uma palavra ou frase que “acorda” o assistente virtual. É como uma senha falada, só que sem segredo, basta dizer a palavra certa e ele entra em ação.
📌 Origem: esse conceito começou a ser usado em assistentes como a Siri (“E aí, Siri”), a Alexa (“Ei, Alexa”) e o Google Assistente (“Ok, Google”). Eles ficam em silêncio, ouvindo o ambiente, mas só prestam atenção de verdade quando escutam a palavra mágica.
⚡ No nosso Jarvis: vamos fazer a mesma coisa. O Jarvis ficará ali quietinho, como se estivesse em “modo repouso”, mas quando você disser “Olá, Jarvis”, ele “acorda” e entra no modo de escuta para entender seu comando, seja abrir o Word, o Excel, o Paint ou até responder como um verdadeiro parceiro de equipe.
É como se estivéssemos dando ao Jarvis o mesmo comportamento do original do Tony Stark: sempre pronto, mas só entra em ação quando o chamamos.
import speech_recognition as sr
import pyttsx3
import os
import random
# Inicializa o motor de voz
engine = pyttsx3.init()
def falar(texto):
engine.say(texto)
engine.runAndWait()
# Inicializa reconhecimento
r = sr.Recognizer()
# Lista de respostas para ativação
respostas_ativacao = [
"Sim, senhor Carlos?",
"Estou ouvindo, senhor.",
"Às suas ordens.",
"Jarvis pronto para ajudar.",
"O que deseja, senhor?"
]
while True:
with sr.Microphone() as source:
print("Esperando pelo comando: 'Olá Jarvis'... 🎤")
r.adjust_for_ambient_noise(source, duration=0.8)
audio = r.listen(source)
try:
comando = r.recognize_google(audio, language="pt-BR").lower()
print("Você disse:", comando)
if "olá jarvis" in comando:
resposta = random.choice(respostas_ativacao)
falar(resposta)
# Aqui entram os comandos básicos
with sr.Microphone() as source:
audio = r.listen(source)
comando = r.recognize_google(audio, language="pt-BR").lower()
if "abrir word" in comando:
falar("Abrindo o Word, senhor.")
os.system("start winword.exe")
elif "abrir excel" in comando:
falar("Abrindo o Excel, senhor.")
os.system("start excel.exe")
elif "abrir powerpoint" in comando:
falar("Abrindo o PowerPoint, senhor.")
os.system("start powerpnt.exe")
else:
falar("Infelizmente ainda não sei abrir esse programa, senhor.")
except sr.UnknownValueError:
pass
except sr.RequestError:
falar("Erro de conexão com o serviço de voz.")
Dentro de todo o código acima, implementamos a lógica da wake word, que é justamente a parte responsável por “acordar” o Jarvis quando chamamos por ele. Na prática, ela funciona como uma espécie de “guarda de portão”: o sistema fica ouvindo, mas só executa os próximos passos se identificar a nossa “senha” — no caso, “olá Jarvis”.
Esse mecanismo é representado por uma simples estrutura de decisão (if):
if "olá jarvis" in comando:
resposta = random.choice(respostas_ativacao)
falar(resposta)
Ou seja, sempre que o programa escuta a frase “olá Jarvis”, ele seleciona uma resposta aleatória da lista de frases pré-definidas e responde em voz alta. É assim que o nosso Jarvis deixa de ser um robô frio e passa a parecer um verdadeiro assistente inteligente, pronto para ouvir o que você tem a dizer.
🤖 Parte 2 – Personalizando as respostas do Jarvis
Para não ficar robótico, criamos uma lista de frases que o Jarvis pode usar sempre que for ativado. Isso faz com que ele soe mais natural e divertido.
👉 Exemplos de respostas ao ouvir “Olá Jarvis”:
- “Sim, senhor Carlos?”
- “Às suas ordens.”
- “Jarvis pronto para servir.”
- “Estou ouvindo, senhor.”
- “O que deseja que eu faça agora?”
Para entender melhor, quando o nosso código reconhece a frase “Olá Jarvis”, ele entra na condição if que mostramos no parte anterior. Nesse momento, o sistema aciona o método abaixo, que escolhe aleatoriamente uma frase de ativação e a armazena dentro da variável resposta:
resposta = random.choice(respostas_ativacao)
Em seguida, essa resposta é exibida pelo Jarvis, mostrando que ele está pronto para nos ouvir. Só depois disso é que o assistente entra no bloco de comandos possíveis do nosso algoritmo, onde pode executar ações como abrir a calculadora, iniciar o Excel, ou até realizar pesquisas conectadas à API do Google, etc.
Cada desenvolvedor pode personalizar essa lista de acordo com seu estilo. Quer que o Jarvis seja sarcástico? Fofo? Super formal? É só mudar as frases! Esse pequeno detalhe dá muito mais personalidade ao assistente.
🔮 Concluindo...
Hoje demos ao Jarvis uma habilidade que é marca registrada dos grandes assistentes virtuais: a palavra de ativação (wake word). Agora ele fica em modo de escuta contínua, mas só entra em ação quando realmente chamamos — no nosso caso, com o clássico “Olá Jarvis”.
- ✅ Vimos como ele pode ficar em escuta contínua, mas só responder quando ouvir “Olá Jarvis”.
- ✅ Implementamos alguns comandos básicos como abrir Word, Excel e PowerPoint.
- ✅ Aprendemos a personalizar respostas, deixando o Jarvis mais humano e menos robótico.
Nos próximos artigos, vamos evoluir ainda mais essa função: implementaremos em cima dela um sistema para liberar o modo desbloqueado do Jarvis, que coloca o Google Gemini no máximo de criatividade, sem filtros — o famoso Protocolo Festa de Arromba 🎉.
👉 Gostou do artigo? Então me siga no GitHub e no LinkedIn para acompanhar cada passo do Projeto CodeVersePython2025 e aprender a construir o seu próprio Jarvis.
Porque o futuro não é esperar a tecnologia chegar. É a gente criar ela hoje. ⚡