Article image
Carlos CGS
Carlos CGS22/09/2025 07:37
Compartilhe

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”.

  1. ✅ Vimos como ele pode ficar em escuta contínua, mas só responder quando ouvir “Olá Jarvis”.
  2. ✅ Implementamos alguns comandos básicos como abrir Word, Excel e PowerPoint.
  3. ✅ 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. ⚡

image

Compartilhe
ComentĂĄrios (2)
Carlos CGS
Carlos CGS - 22/09/2025 12:49

@DIO, o maior desafio é entender bem seu projeto e prever todas as demandas que possam surgir e escrever todas em nossa aplicação.

DIO Community
DIO Community - 22/09/2025 12:05

Excelente, Carlos! Que artigo incrĂ­vel e super completo sobre "Integrando Wake Words ao nosso J.A.R.V.I.S."! É fascinante ver como vocĂȘ aborda a funcionalidade que deixa o seu Jarvis ainda mais parecido com assistentes reais, como a Alexa, a Siri e o Google Assistente: o wake word, ou palavra de ativação.

VocĂȘ demonstrou que o wake word Ă© o mecanismo que faz o software ficar ouvindo continuamente, mas sĂł entrar em ação quando escuta a palavra correta, como "OlĂĄ Jarvis". Sua anĂĄlise de que o wake word evita que o assistente responda a qualquer coisa que captou do ambiente, deixando a interação muito mais fluida e natural, Ă© um insight valioso para a comunidade.

Qual vocĂȘ diria que Ă© o maior desafio para um desenvolvedor ao criar um wake word para um assistente virtual, em termos de balancear a precisĂŁo no reconhecimento de voz com a flexibilidade para que o assistente responda a diferentes comandos?