🎙️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:
- sr.Recognizer() cria o reconhecedor (cérebro que entende fala);
- sr.Microphone() abre o microfone para captura;
- adjust_for_ambient_noise(source) ajusta o ruído ambiente (melhora muito em ambientes barulhentos);
- listen(source) grava o áudio dito pelo usuário;
- 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. 🤖✨
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:
- Jarvis escuta continuamente o ambiente.
- Quando detectar “Jarvis”, responde com uma saudação aleatória, deixando a experiência mais natural.
- 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.
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. ⚡