image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Article image
Carlos CGS
Carlos CGS25/08/2025 07:43
Compartilhe

🎙️Reconhecimento de Voz com Python (Speech-to-Text) no Jarvis

  • #Python
  • #Inteligência Artificial (IA)
  • #LLMs

🌌 Projeto CodeVersePython - #34/2025

👋 Fala, galera dev! 🚀

No CodeVersePython2025 a gente já conectou APIs, usou IA e fez análise de sentimentos. Agora é hora de dar ouvidos ao nosso Jarvis: vamos ver como transformar voz em texto com a biblioteca speech_recognition e integrar isso ao seu app.

Ela é uma biblioteca Python que capta o som do microfone, processa o áudio e transforma a fala em texto. Assim, o que você fala vira palavras que o computador consegue entender e usar para executar comandos.

Imagine que essa biblioteca funciona como os ouvidos do seu J.A.R.V.I.S., entendendo o que voce diz, e transforma em texto, para que o aplicativo consiga entender e executar os comandos com o texto dito por você. Você fala “Jarvis, abra o navegador” e ela traduz essa fala para o Python como se fosse uma ordem escrita.

É como se ela fosse o “intérprete universal” entre a sua voz (no mundo real) e o cérebro do Jarvis (seu código Python). Sem ela, o Jarvis não entenderia nada do que você fala, seria como o Thor chegando à Terra sem tradutor do Groot. 🌱⚡

🎙️ O que o speech_recognition faz no seu Jarvis

No nosso código, o coração do reconhecimento de voz está dentro da função ouvir_microfone, e ela é implementada usando os cinco parâmetros abaixo:

  1. sr.Recognizer() cria o reconhecedor (cérebro que entende fala);
  2. sr.Microphone() abre o microfone para captura;
  3. adjust_for_ambient_noise(source) ajusta o ruído ambiente (melhora muito em ambientes barulhentos);
  4. listen(source) grava o áudio dito pelo usuário;
  5. recognize_google(audio, language="pt-BR") manda o áudio para o serviço do Google Web Speech e retorna o texto transcrito.
Observação importante: esse método depende de internet e pode sofrer limites de uso. Para uso totalmente offline, considere Vosk (depois a gente pode fazer um artigo só disso 😉).

Abaixo esta um exemplo simples do código em funcionamento, onde usamos apenas a biblioteca speech-recognition pra transcrever os audios ditos por você ao cérebro do nosso J.A.R.V.I.S. para que ele processe e nos retorne o que precisamos:

✅ Checklist de instalação, estamos usando uma biblioteca de terceiros, então devemos importa-la para pode usa-la:

pip install SpeechRecognition
# 👂 Importando a biblioteca SpeechRecognition
# O apelido "sr" serve apenas para escrever menos depois.
import speech_recognition as sr

# 🧠 Criando o "ouvido" do Jarvis, chamado de r (Recognizer).
r = sr.Recognizer()

# 🎤 Ligando o microfone (usado apenas no momento certo com o "with").
with sr.Microphone() as source:
  print("Jarvis está ouvindo... 🎤")
  # 🔊 Ajusta o microfone para ignorar ruídos do ambiente (0.8s de adaptação).
  r.adjust_for_ambient_noise(source, duration=0.8)
  # 🎙️ Grava o que você falar em até 5 segundos e guarda na variável "audio".
  audio = r.listen(source, timeout=5)

try:
  # ⚡ Envia o áudio para o Google e recebe de volta o texto falado.
  comando = r.recognize_google(audio, language="pt-BR")
  print("Você disse:", comando)

  # 🤖 Mini-cérebro do Jarvis: respostas programadas.
  if "oi" in comando.lower():
      print("Jarvis: Olá, senhor. Pronto para ajudá-lo.")
  elif "qual seu nome" in comando.lower():
      print("Jarvis: Eu sou o J.A.R.V.I.S., seu assistente pessoal.")
  else:
      print("Jarvis: Infelizmente ainda não tenho resposta para isso, senhor.")

# ⚠️ Tratamento de erros: caso não entenda ou falhe a conexão.
except sr.UnknownValueError:
  print("Jarvis: Não entendi o que foi dito.")
except sr.RequestError:
  print("Jarvis: Falha ao conectar ao serviço de reconhecimento.")

🤖🧠 Entendendo o mini-cérebro do Jarvis

Depois que você fala algo no microfone, a biblioteca speech_recognition converte sua fala em texto e armazena esse resultado na variável comando.

A partir daí, usamos estruturas de decisão (if, elif, else) para comparar o conteúdo de comando com diferentes frases possíveis.

  • if → Verifica se o texto em comando contém determinada palavra. Exemplo: “SE comando tiver a palavra ‘oi’, responda com uma saudação.”
  • elif → Caso o if não seja verdadeiro, o Jarvis verifica outra condição. Exemplo: “SENÃO, SE comando tiver a frase ‘qual seu nome’, responda com sua identidade.”
  • else → Se nenhuma condição anterior for atendida, o Jarvis usa uma resposta padrão. Exemplo: “Não sei responder isso ainda, senhor.”

➡ Em resumo: o Jarvis pega o que você disse (comando), compara com as opções que ele conhece e escolhe a resposta mais adequada. Essa lógica é o início do que chamamos de “mini-cérebro” do Jarvis — e, quanto mais condições adicionarmos, mais inteligente ele vai parecer. 🤖✨

image

Exemplo do Código rodando no VSCode

🧩 Como o “wake word” funciona

Um assistente de voz precisa saber quando deve prestar atenção de verdade e quando pode apenas “escutar de longe”. No nosso caso, essa palavra mágica é “Jarvis”, sempre que o usuário fala isso, o sistema entende que deve acordar e interagir.

O fluxo é bem simples e direto:

  1. Jarvis escuta continuamente o ambiente.
  2. Quando detectar “Jarvis”, responde com uma saudação aleatória, deixando a experiência mais natural.
  3. Depois disso, escuta o comando principal do usuário e executa a ação, pode ser uma pesquisa, previsão do tempo, abrir aplicativos, etc.

Esse padrão é muito usado em UX (User Experience) porque evita que o assistente responda a tudo o que ouve. Você já deve ter visto isso em “Alexa”, “Ok Google” ou “Hey Siri”. 😉

Agora, vamos ver como fica esse conceito aplicado ao nosso mini-Jarvis em Python:

import speech_recognition as sr
import random

# Criando o "ouvido" do Jarvis
r = sr.Recognizer()

# Lista de saudações possíveis
saudacoes = [
  "Sim, senhor?",
  "Às suas ordens!",
  "Como posso ajudar?",
  "Estou ouvindo, senhor."
]

print("Jarvis está em modo de espera... diga 'Jarvis' para ativar.")

while True:
  with sr.Microphone() as source:
      r.adjust_for_ambient_noise(source, duration=0.8)
      audio = r.listen(source, timeout=5)

  try:
      comando = r.recognize_google(audio, language="pt-BR").lower()
      print("Você disse:", comando)

      # 👇 Se a palavra "jarvis" for dita, ele responde e aguarda o comando real
      if "jarvis" in comando:
          resposta = random.choice(saudacoes)
          print("Jarvis:", resposta)

          # Agora escuta o próximo comando
          with sr.Microphone() as source:
              audio = r.listen(source, timeout=5)
          comando = r.recognize_google(audio, language="pt-BR").lower()
          print("Comando recebido:", comando)

          # Mini-cérebro de decisões
          if "pesquisar" in comando:
              print("Jarvis: Vou pesquisar sobre isso para o senhor...")
          elif "qual seu nome" in comando:
              print("Jarvis: Eu sou o J.A.R.V.I.S., à sua disposição.")
          elif "clima" in comando:
              print("Jarvis: Hoje está ensolarado com céu limpo, senhor.")
          else:
              print("Jarvis: Ainda não aprendi a fazer isso, mas vou evoluir.")

  except sr.UnknownValueError:
      print("Jarvis: Não entendi o que foi dito.")
  except sr.RequestError:
      print("Jarvis: Erro de conexão com o serviço de reconhecimento.")

🎯 O que conseguimos aqui?

  • Wake word (“Jarvis”) → só ativa o assistente quando chamado.
  • Saudação aleatória → deixa a experiência menos robótica.
  • Execução de comandos → depois da ativação, o Jarvis entende e responde ao que pedimos.

👉 Esse é um grande passo para dar ao nosso projeto aquele ar de assistente real, parecido com os que vemos em filmes e já usamos no dia a dia.

image

Exemplo do Código no VSCode

🔮 Mas será que ainda tem mais por vir? rs

Chegamos até aqui com um grande avanço: o Jarvis já entende quando deve ser ativado e responde aos nossos comandos por texto. Mas isso é apenas o começo.

Nos próximos artigos do Projeto CodeVersePython2025, vamos integrar novas bibliotecas para que o Jarvis também consiga converter texto em voz, tornando-se capaz de responder e conversar de forma interativa com a gente. Além disso, vamos conectar outras tecnologias para que tudo rode junto em harmonia, criando um verdadeiro assistente inteligente e funcional.

💡 Estamos dando vida ao nosso Jarvis! Mas fica a pergunta no ar: 👉 Como será quando ele ouvir, falar e ainda estiver conectado a uma IA, pronto para responder qualquer tipo de pergunta que fizermos?

🚀 Concluindo...

O conceito de wake word é um divisor de águas para a experiência do usuário. Ele garante que o Jarvis não responda a tudo o que ouve, mas sim quando realmente for chamado. Essa etapa é essencial para construirmos um assistente de voz funcional e mais próximo do que vemos em tecnologias reais, como Alexa, Siri e Google Assistant.

Estamos apenas começando, mas já podemos sentir que o sonho de recriar o Jarvis do Homem de Ferro está ficando cada vez mais próximo da realidade.

🔗 Quer acompanhar cada passo dessa jornada e aprender a construir o seu próprio Jarvis comigo? 👉 Me siga no LinkedIn e no GitHub para mais conteúdos como este, sempre trazendo código prático e conceitos aplicados.

Porque o futuro não é esperar a tecnologia chegar. É a gente construir ela agora. ⚡

image

Compartilhe
Recomendados para você
Suzano - Python Developer #2
Suzano - Python Developer
BairesDev - Machine Learning Practitioner
Comentários (0)