Do Zero ao Jarvis - Criando um Assistente Vitual do Zero com Biblioteca de IA
- #Python
Fala Galera Dev!
Se você gosta do mundo da programação e desenvolvimento de software, fica aqui neste artigo até o final, pois vamos caminhar pelo mundo do desenvolvimento de uma forma bem lúdica. Chega de tanto código massante, ou ainda pior um monte de teoria que devemos aprender para usarmos em projetos futuros de nossa carreira, visando apenas nosso desenvolvimento como dev a logo prazo! Vamos criar um assitente virtual o qual poderemos chamar de JARVIS, SIRI, Alexa, ou qualquer outro nome que deseja. Ele conversará contigo e atentderá suas necessidades de seu computadro, abrindo programamas e aplicativos e respndendo questões. Tudo isso utilizando a linguagem python, algumas bibliotecas classicae e outras bibliotecas de IA. tudo de forma bem simples e fácil. Vamos nessa?
Mas o que vamos usar neste nosso projeto?
Sempre tive a vontade de recriar o J.A.R.V.I.S., porém achama isso um ambição muito longe da minha realidade de desenvolvedor. Afianl quem criou o jarvis foi o Tony Stark, um super gênio do filme da Marvel. Quem sou eu na fila do pão para conseguir algo assim. Mas fui estudando e aprendendo um pouco a cada dia, a cada curso, a cada live, a cada bootcamp, fui aprendendo um pouco mais, até que durante um curso foi me apresentado a api do google, e junto da linguagem python me veio a cabeça unir as duas coisas, usando a chave api para conectar meu codigo e conseguir conversar com meu aplicativo, o qual poderia manipular os aplicativos do meu windos facilmente através de bibliotecas gratuitas e responder as minhas questões com auxilio da Inteligência artificial, que receber minhas perguntas ditas por mim, e retorna as respostas da IA usando as bibliotecas e me responde. Simulando o JARVIS.
Fiquei muito feliz com essa conquista e me deu ânimo em continuar a aprender um pouco mais a cada dia, pois vi se matreizlizar um sonho. abaixo vou mostrar como fiz para criar todo esse projeto.
Neste projeto vamos usar apenas quatro bibliotecas, sendo elas:
- 🔊 speechRecognition (Usada para fazer o reconhecimento da voz)
- 🎙️ pyaudio (Gerencia a interface com os microfones e os autofalantes de seu dispositivo)
- 🗣️ pyttsx3 (Usada para transformar o texto em fala)
- 🤖 google.generativeai (Utilizamos através de sua chave-api, para fazer conexão gratuita com uma IA do google e trazer respostas a nossas questões)
Todas elas nos facilitam nosso trabalho de desenvolvimento, pois ao invés de reinventarmos a roda, utilizaremos as bibliotecas de python, inclusive a biblioteca de IA(Google.generativeai) para fazer todo o trabalho pesado e nós como desenvolvedores, focarmos em prender a usara biblioteca, e adapta-las ao nosso código, precisando aprender apenas as configurações inicias.
Falar é fácil, mostre-me o código!
# pip install speechRecognition
# pip install pyaudio
# pip install pyttsx3
# pip install -U google.generativeai
import speech_recognition as sr
import os
import pyttsx3
import google.generativeai as genai
# CONFIGURAÇÕES JARVIS
# Inicializar o engine de síntese de fala
engine = pyttsx3.init()
def falar(texto):
# Faz o computador falar
engine.say(texto)
engine.runAndWait()
def apresentacao():
# Apresentação
print("Iniciando o Sistema. Software 100% carregado e operando. Me chamo Jarvis.")
falar("Iniciando o Sistema. Software 100% carregado e operando. Me chamo Jarvis.")
# Função para ouvir e reconhecer fala:
def ouvir_microfone(primeira_vez):
# Habilita microfone usuário
microfone = sr.Recognizer()
# Apresentação apenas na primeira vez
if primeira_vez:
apresentacao()
primeira_vez = False
# Usando o microfone
with sr.Microphone() as source:
# Chama um algoritmo de redução de ruídos no som
microfone.adjust_for_ambient_noise(source)
# Frase para o usuário dizer algo
print("Como posso te ajudar?")
falar("Como posso te ajudar?")
# Armazena o que foi dito numa variável
audio = microfone.listen(source)
try:
# Passa a variável para o algoritmo reconhecer os padrões
frase = microfone.recognize_google(audio, language="pt-BR")
if "Iniciar navegador" in frase:
os.system("start chrome.exe")
falar("Abrindo o navegador")
elif "Iniciar calculadora" in frase:
os.system("start calc.exe")
falar("Abrindo a calculadora")
elif "Iniciar Paint" in frase:
os.system("start mspaint.exe")
falar("Abrindo o Paint")
elif "Iniciar bloco de notas" in frase:
os.system("start notepad.exe")
falar("Abrindo o bloco de notas")
elif "Iniciar Excel" in frase:
os.system("start Excel.exe")
falar("Abrindo o Excel")
elif "Iniciar Word" in frase:
os.system("start winword.exe")
falar("Abrindo o Word")
elif "Iniciar CMD" in frase:
os.system("start cmd.exe")
falar("Abrindo o prompt de comando")
elif "Pesquisar" in frase:
falar("Estou pesquisando.")
pesquisa = frase.split("Pesquisar", 1)[1].strip()
if pesquisa:
resposta = pesquisar_no_google(f"Responda de forma discursiva, com no máximo 30 palavras: {pesquisa}")
falar(resposta)
else:
falar("Por favor, diga o que você quer pesquisar.")
elif "Desligar o sistema" in frase:
falar("Finalizando o sistema. Até logo.")
return True
else:
falar(f"O comando {frase} não foi reconhecido, tente novamente.")
except sr.UnknownValueError:
print("Não entendi, repita o que deseja.")
falar("Não entendi, repita o que deseja.")
return False
# Função para pesquisar no Google usando a API de IA
def pesquisar_no_google(pesquisa):
# Configurando a API do Google
GOOGLE_AI_KEY = "SUA CHAVE API AKI"
genai.configure(api_key=GOOGLE_AI_KEY)
# Configurando a Temperatura das Respostas
configurar_geracao = {
"candidate_count": 1,
"temperature": 0.8,
}
# Configurando os Níveis de Segurança das Respostas (Ofensivas, Raciais, Sexuais, etc.)
configurar_seguranca = {
"HARASSMENT": "BLOCK_NONE",
"HATE": "BLOCK_NONE",
"SEXUAL": "BLOCK_NONE",
"DANGEROUS": "BLOCK_NONE",
}
# Definindo o Modelo Usado para Pesquisa
model = genai.GenerativeModel(
model_name="gemini-1.0-pro",
generation_config=configurar_geracao,
safety_settings=configurar_seguranca,
)
# Configurando o Histórico de Pesquisa
chat = model.start_chat(history=[])
response = chat.send_message(pesquisa)
return response.text
# LOOP DE EXECUÇÃO DO JARBAS
primeira_vez = True
while True:
if ouvir_microfone(primeira_vez):
break
primeira_vez = False
Nesso código conseguimos criar um assistente virtual o qual eu chamo de JARVIS, sim, igual o do homem de ferro! Sou um grande fã e inclusive tenho um newslleeter no Linkedin chamado CodeVersePython2025 onde ensino a programação python desde o inicio, e a partir da metade do ano vou ensinando a criar esse código completo parte a parte, apresentando cada biblioteca usada e como desevolver cada parte do código, explicando para que serve e como usar.
Mas vamos voltar a este código! Nele eu utilizo a bilbioteca de IA do google a qual preciso criar e gerar uma chave API de forma gratuita na plataforma do GoogleAiStudio e a usamos em nosso código apenas informando o código da API o local onde eu coloquei SUA CHAVE API AKI.
Conseguimos dentro do nosso código fazer configurações de qual modelo generativo queremos utilizar, definirmos a temperatura das repostas geradas pelas ias, sendo mais ou menos criativas, níveis de segurança com relação a bloqueios de conteúdos com relação a conteúdos de cunho Ofensivo, racial e sexuais. Mas lembre com grandes poderem vem grandes responsabilidades, então vamos com calma ao que vamos pedir ao nosso assitente de IA pessoal.
Abaixo, mostro o código em minha IDE do Visual Studio Code com o código em funcionamento, porém este é apneas meu código inicial, o qual já fiz upgrades e alterações que deixaram o código muito mais assertivo e prático, porém é ótimo para mostrar como que com um pouco de codigo e um pouco de boa vontade conseguimos criar nossos projetos.
Para saber mais sobre todas as configurações de implementação da chave api do google acesso o link a seguir: DocumentaçãoGoogleAPIKey
Concluindo...
Chegamos ao final de mais um artigo, o qual apresentei e mosytrei de uma forma bem sussinta como é fácil a implementação de bibliotecas de IA, as quais foram feitas para facilitar nossa vida como devs e agilizarem a programação de nossos códigos. Elas nos poupam tempo, pois trazem diversas fucnionalidades embutidas as quais aprenas precisamos aprender a chamar suas funções dentro de nossos códigos e usa-los da forma como melhor nos atende. Então abuse e uso das bibliotecas python, desde bibliotecas nativas, importadas ou de IA.
Se gostou desse conteúdo e quer conhecer mais sobre a linguagem python e como usar bibliotecas de inteligências artificial para agregarnos em nosso projeto, me segue no LinkedIn e confira meu repositórios no GitHub. Eu não sou especialista em python, mas procuro sempre aprender um pouco a cada dia e compartilhar com a comunidade meu aprendizado, pois com isso fortaleco o que aprendi e contibui nem que seja um pouquinho com a jornado dos colegas devs.
"Vamos Disseminar os conhecimentos e tranbordar tudo o que aprendemos!"