Search
Close this search box.
Assistente virtual em Python para a automação pessoal
aprendiz artificial

Posts Relacionados:

Explore o mundo da inteligência artificial ​​e da automação enquanto orientamos você na criação de um assistente virtual escrito em Python.

Receba nossa newsletter

aprendiz artificial

Uma das maiores vantagens de se saber programar é poder usar nossos dons em benefício próprio. Nesse post, vamos utilizar esta capacidade para criar um assistente virtual escrito em Python para uso pessoal. Essa tarefa inclui uma viagem pelo reino da inteligência artificial e da automação.

Com um toque do poder do Python, vamos criar nosso próprio companheiro digital que poderá ser utilizado depois para agilizar tarefas, responder perguntas e tornar nossas vidas mais eficientes.

O que é um assistente virtual escrito em Python?

Assistentes virtuais desenvolvidos em Python são aplicativos projetados para executar tarefas e fornecer serviços aos usuários de maneira conversacional e interativa. Um assistente virtual escrito em Python é criado usando várias bibliotecas, estruturas e APIs. Ele pode ser desenvolvido para executar uma ampla gama de funções, incluindo:

  • Responder a perguntas
  • Automação de tarefas repetitivas
  • Recuperação de dados
  • Reconhecimento de voz para interações verbais com usuários
  • Processamento de linguagem natural para que o assistente virtual tenha conversas mais humanas
  • Agendamento de tarefas
  • Integração com APIs
  • Personalização

Para este post, iremos desenvolver um assistente virtual com reconhecimento de fala para aceitar comandos linguísticos e realizar algumas tarefas.

Bibliotecas para interações linguísticas

Utilizaremos as seguintes bibliotecas para realizar interações linguísticas com nosso assistente virtual.

  • gtts
  • playsound
  • speech_recognition

A biblioteca speech_recognition realiza reconhecimento de fala acessando várias APIs de inteligência artificial. Já a biblioteca gtts converte textos em áudios e será utilizada para que o assistente virtual seja capaz de falar. A biblioteca playsound executa áudios em Python. Após instalar as bibliotecas, crie um arquivo do Python e faça as importações necessárias como mostrado abaixo.

				
					from gtts import gTTS 
from playsound import playsound
import speech_recognition as sr
  
				
			

Reconhecimento de fala

A primeira função do código realiza a escuta de sons e o reconhecimento de fala. Ela recebe áudios diretamente do microfone. Essa função utiliza uma API de inteligência artificial (recognize_google). Por isso, é preciso testar se o acesso à API foi bem-sucedido e também se o reconhecimento da fala ocorreu.

				
					def escuta():
    r = sr.Recognizer()
    with sr.Microphone() as source:
        print("Escutando ...")
        audio = r.listen(source)
    data = ""
    try:
        data = r.recognize_google(audio, language='pt')
    except sr.UnknownValueError:
        print("Google Speech Recognition não entendeu o que voce falou")
    except sr.RequestError as e:
        print("Houve um problema com sua solicitação")
    return data
				
			

Acorda e fala

Para que o assistente possa interagir de forma conversacional, ele precisa ter uma fala. Isso é realizado através da função abaixo.

				
					
def fala_assistente(fala):
    language = 'pt'
    audio = gTTS(text=fala, lang=language, slow=False) 
    audio.save("audio.mp3") 
    playsound("audio.mp3")
				
			

Também é importante que o assistente apenas acorde, ou seja, interaja, quando uma palavra específica é mencionada (wakeword). A palavra escolhida para este post é “assistente”. A função para acordar o assistente é mostrada abaixo. Ela identifica a palavra “assistente” no áudio recebido e muda o status de uma variável chamada escutando para True.

				
					
def acorda(data, escutando, wakeword="assistente"):
    data2 = " "
    palavras = data.split()
    for i in range(len(palavras)):
        if palavras[i].lower() == wakeword:
            escutando = True
    return escutando
				
			

Definindo alguns comportamentos

Depois vamos definir alguns comportamentos para nosso assistente. O primeiro comportamento é uma saudação, o segundo é informar a hora e o terceiro e terminar a interação.

No código abaixo, quando o assistente está acordado (status de escutando é True), as palavras “como vai” fazem ele responder “tudo bem”. A palavra horas faz ele informar o horário atual. Já a palavra terminar encerra a interação (status de escutando atualizado para False) até que o assistente seja acordado de novo.

				
					from time import ctime
def assistente_virtual(data, escutando):
    if "como vai" in data:
        escutando = True
        fala_assistente("Tudo bem")

    if "horas" in data:
        escutando = True
        fala_assistente(ctime())

    if "terminar" in data:
        escutando = False
    return escutando

				
			

As funções são chamadas com os comandos abaixo. Note que o assistente apenas começará a interagir depois que a palavra “assistente” for mencionada.

				
					escutando = False
while True:
    data = escuta()

    escutando = acorda(data, escutando, wakeword="assistente")
    if escutando == True:
        escutando = assistente_virtual(data, escutando)
				
			

Adicionando comportamentos mais complexos

O próximo passo é inserir comportamentos mais elaborados para nosso assistente. Neste post, realizaremos uma busca com o Google. Para isso, será necessário instalar o selenium e baixar um webdriver como chomedriver.

O primeiro passo para essa expansão no código é inserir um item a mais na função assistente_virtual definida anteriormente (linhas em destaque abaixo). Esse item identifica a palavra “procure” e chama duas funções. A primeira, busca_google_alvo, é responsável por identificar a palavra-alvo que será buscada. A palavra-alvo é então passada para a função que realiza a busca (busca_google).

				
					

def assistente_virtual(data, escutando):
    if "como vai" in data:
        escutando = True
        fala_assistente("Tudo bem")

    if "horas" in data:
        escutando = True
        fala_assistente(ctime())

    if "procure" in data:
        escutando = True
        fala_assistente("procurando")
        alvo = busca_google_alvo(data)
        print(alvo)
        busca_google(alvo)

    if "terminar" in data:
        escutando = False
    return escutando

				
			

Identificando a palavra-alvo

A função busca_google_alvo é mostrada abaixo. Ela simplesmente cria uma lista com as palavras no arquivo de áudio e, mediante um loop, busca a palavra “procure”. A palavra imediatamente após “procure” é considerada a palavra-alvo.

				
					

def busca_google_alvo(data):
    alvo = ''
    palavras = data.split()
    for i, palavra in enumerate(palavras):
        palavra = palavra.lower()
        if palavra == "procure":
            alvo = palavras[i+1]
            break
    return alvo

				
			

Realizando a busca

A função busca_google utiliza a palavra-alvo com o webdriver do selenium para acessar o Google e realizar a busca solicitada. Usamos time.sleep() para que a página retornada com os resultados da busca fique aberta por 5 segundos, mas esse valor pode ser modificado.

				
					

import time
from selenium import webdriver 
def busca_google(alvo):
    browser = webdriver.Chrome()
    browser.get("https://www.google.com/search?q="+alvo) 
    time.sleep(5)

				
			

Com a inserção dessas novas funções, a execução do código completo possibilita a realização de buscas na web através de interações com nosso assistente virtual. E tudo isso via comandos de voz.

Conclusão

Neste post, criamos um pequeno assistente virtual que reconhece fala, responde linguisticamente e executa comandos a partir das instruções recebidas. Nosso assistente pode ser facilmente modificado para adquirir uma interface de usuário e várias outras funcionalidades.

Algumas funcionalidades que podem ser inseridas são agendas de compromissos, execuções de tarefas repetitivas e realizações de interações linguísticas mais complexas com processamento de linguagem natural. Além disso, também é possível usar redes neurais para aprimorar a captação do áudio e adicionar reconhecimento de voz personalizado.

Imagem com IA Generativa – Dia 274

IA generativa img 274

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial