Skip to content

Latest commit

 

History

History
426 lines (339 loc) · 13.1 KB

Assistente_Virtual.md

File metadata and controls

426 lines (339 loc) · 13.1 KB

Desenvolvendo uma assistente virtual

Requisitos:

  • Um microfone.
  • Python e o pacote pip instalados na máquina.
Já pensou em desenvolver uma nova siri?
Já pensou em desenvolver a sua cortana?
Então, você está no lugar certo.
Neste .md te ensinarei a desenvolver sua própria assistente virtual.

Instalação

Como primeiro passo, precisamos baixar a biblioteca e ferramenta cli, gtts (Google Text-to-Speech) para interagir com a API do google translate. Para gravar os dados falados num arquivo .mp3.
Para instalar é preciso usar o seguinte comando: (Use este comando no seu terminal)

pip install gTTS

Após, instalado o gtts é necessário a biblioteca playsound para reproduzir este áudio. Para instalar só preciso usar o seguinte comando: (Use este comando no seu terminal)
pip install playsound

Agora, com todas as bibliotecas instaladas podemos iniciar a parte de desenvolvimento.

1° linhas de código

Função de fala

Vamos começar!!!

  1. Abra o seu editor de código favorito.
  2. Crie um arquivo .py

Para iniciar, devemos importar as bibliotecas instaladas.

#biblioteca de criação do áudio
from gtts import gTTS
#biblioteca de reprodução do áudio
import playsound

Agora, vamos criar a função que faz nossa assistente virtual.

#biblioteca de criação do áudio
from gtts import gTTS
#biblioteca de reprodução do áudio
import playsound

#Função que faz a assistente virtual falar
#O parâmetro text é o texto que desejamos que seja falado
def falar(text):
    #Nesta linha acontece a mágica
    tts = gTTS(text=text,lang="pt")
    arquivo = "voz.mp3"
    #Aqui salvamos o arquivo .mp3
    tts.save(arquivo)
    #Aqui reproduzimos
    playsound.playsound(arquivo)
A função de fala está pronta. Basta agora usarmos ela
#biblioteca de criação do áudio
from gtts import gTTS
#biblioteca de reprodução do áudio
import playsound

#Função que faz a assistente virtual falar
#O parâmetro text é o texto que desejamos que seja falado
def falar(text):
    #Nesta linha acontece a mágica
    tts = gTTS(text=text,lang="pt")
    arquivo = "voz.mp3"
    #Aqui salvamos o arquivo .mp3
    tts.save(arquivo)
    #Aqui reproduzimos
    playsound.playsound(arquivo)

#Fazendo falar
falar("Bom dia")
Agora, é só executar.

Função para escutar

Para que nossa assistente nos escute é necessário baixar mais uma biblioteca. (Use este comando no seu terminal)

pip install SpeechRecognition

Com ela instalada vamos criar a função escutar. Não esqueça de importar a biblioteca baixada.

#biblioteca de criação do áudio
from gtts import gTTS
#biblioteca de reprodução do áudio
import playsound
#biblioteca que recebe o áudio do microfone
import speech_recognition as sr

#Função que faz a assistente virtual falar
#O parâmetro text é o texto que desejamos que seja falado
def falar(text):
    #Nesta linha acontece a mágica
    tts = gTTS(text=text,lang="pt")
    arquivo = "voz.mp3"
    #Aqui salvamos o arquivo .mp3
    tts.save(arquivo)
    #Aqui reproduzimos
    playsound.playsound(arquivo)

#Função que faz a assistente virtual capturar áudio do microfone
def escutar():
    #Cria "ouvidos"
    r = sr.Recognizer()
    #procura por um microfone     
    with sr.Microphone() as s:
        #Configura o ambiente
        r.adjust_for_ambient_noise(s)
        #Captura o audio 
        audio = r.listen(s)
        #Transforma em texto
        fala = r.recognize_google(audio, language="pt-br")
    return fala       

Agora, com a função escutar pronta, basta inicializarmos ela.

#biblioteca de criação do áudio
from gtts import gTTS
#biblioteca de reprodução do áudio
import playsound
#biblioteca que recebe o áudio do microfone
import speech_recognition as sr

#Função que faz a assistente virtual falar
#O parâmetro text é o texto que desejamos que seja falado
def falar(text):
    #Nesta linha acontece a mágica
    tts = gTTS(text=text,lang="pt")
    arquivo = "voz.mp3"
    #Aqui salvamos o arquivo .mp3
    tts.save(arquivo)
    #Aqui reproduzimos
    playsound.playsound(arquivo)

#Função que faz a assistente virtual capturar áudio do microfone
def escutar():
    #Cria "ouvidos"
    r = sr.Recognizer()
    #procura por um microfone     
    with sr.Microphone() as s:
        #Configura o ambiente
        r.adjust_for_ambient_noise(s)
        #Captura o audio 
        audio = r.listen(s)
        #Transforma em texto
        fala = r.recognize_google(audio, language="pt-br")
    return fala  

print(escutar())
Por fim, é só executar no script e conferir como ficou.

Contando piadas

Vamos, dar uma funcionalidade muito boa a nossa assistente virtual que é contar piadas. Para isso, busquei algumas na internet e a salvei-as num vetor.

#biblioteca de criação do áudio
from gtts import gTTS
#biblioteca de reprodução do áudio
import playsound
#biblioteca que recebe o áudio do microfone
import speech_recognition as sr
#biblioteca que gera números aleatórios
import random    

#Função que faz a assistente virtual falar
#O parâmetro text é o texto que desejamos que seja falado
def falar(text):
    #Nesta linha acontece a mágica
    tts = gTTS(text=text,lang="pt")
    arquivo = "voz.mp3"
    #Aqui salvamos o arquivo .mp3
    tts.save(arquivo)
    #Aqui reproduzimos
    playsound.playsound(arquivo)

#Função que faz a assistente virtual capturar áudio do microfone
def escutar():
    #Cria "ouvidos"
    r = sr.Recognizer()
    #procura por um microfone     
    with sr.Microphone() as s:
        #Configura o ambiente
        r.adjust_for_ambient_noise(s)
        #Captura o audio 
        audio = r.listen(s)
        #Transforma em texto
        fala = r.recognize_google(audio, language="pt-br")
    return fala
   
escutar()

#Número aleatório
#Não se esqueça de importar a biblioteca random
num = random.radint(0,2)

#Vetor com três piadas
Piadas = ["Então, porque a aranha é o animal mais carente do mundo? Por que, ela é uma ar",
"Afinal, você conhece a piada do pônei? Pô nei eu kkkkkkkkkkkk.",
"Afinal, o que a vaca disse para o boi? Te amuuuuuuuuuuuuuuuu."]

"""Se a função escutar, retornar "piadas", então nossa assistente conta uma piada"""

if escutar() == "piadas":
    falar(piadas[num])

Enviando e-mails

Enviar e-mails é uma tarefa tão repetitiva, por que não deixarmos nossa assistente fazer isso por nós.

OBS: Para darmos esta funcionalidade a nossa assistente usaremos uma biblioteca no próprio python.

#biblioteca de criação do áudio
from gtts import gTTS
#biblioteca de reprodução do áudio
import playsound
#biblioteca que recebe o áudio do microfone
import speech_recognition as sr
#biblioteca que gera números aleatórios
import random    
#biblioteca para envio de e-mails
import smtplib    

#Função que faz a assistente virtual falar
#O parâmetro text é o texto que desejamos que seja falado
def falar(text):
    #Nesta linha acontece a mágica
    tts = gTTS(text=text,lang="pt")
    arquivo = "voz.mp3"
    #Aqui salvamos o arquivo .mp3
    tts.save(arquivo)
    #Aqui reproduzimos
    playsound.playsound(arquivo)

#Função que faz a assistente virtual capturar áudio do microfone
def escutar():
    #Cria "ouvidos"
    r = sr.Recognizer()
    #procura por um microfone     
    with sr.Microphone() as s:
        #Configura o ambiente
        r.adjust_for_ambient_noise(s)
        #Captura o audio 
        audio = r.listen(s)
        #Transforma em texto
        fala = r.recognize_google(audio, language="pt-br")
    return fala

escutar()   
#Número aleatório
#Não se esqueça de importar a biblioteca random
num = random.radint(0,2)

#Vetor com três piadas
Piadas = ["Então, porque a aranha é o animal mais carente do mundo? Por que, ela é uma ar",
"Afinal, você conhece a piada do pônei? Pô nei eu kkkkkkkkkkkk.",
"Afinal, o que a vaca disse para o boi? Te amuuuuuuuuuuuuuuuu."]

"""Se a função escutar, retornar "piadas", então nossa assistente conta uma piada"""

if escutar() == "piadas":
    falar(piadas[num])
#Envia um e-mail
elif escutar() == "e-mail":
    email_remetente = "Digite aqui seu e-mail"
    senha_rementente = "Digite aqui a senha do seu e-mail"
    email_destinatario = "Digite o e-mail que vai receber sua mensagem"
    mensagem = "Digite aqui a mensagem que você deseja enviar"

    #Conexão com o servidor do gmail, via protocolo SMTP
    """Caso, deseje mudar o servidor de e-mail, verifique o endereço smtp e a porta, do novo servidor""" 
    email = smtplib.SMTP("smtp.gmail.com",587)

    #Inicia conexão com protocolo TTLS
    email.starttls()

    #Faz login na sua conta de e-mail, no caso gmail
    email.login(email_remetente,senha_remetente)

    #Envia o e-mail
    email.sendmail(email_remetente,email_destinatario,mensagem)

    falar("Enviei o e-mail")

OBS1: Caso, esteja usando o gmail você terá que liberar o acesso da nossa assistente nas configurações do gmail.

Acessando sites

Nossa assistente, já tem 4 funcionalidades, por que não programarmos mais uma?
Vamos, ensinar ela a abrir um site agora.

OBS: Usaremos a biblioteca webbrowser não se esqueça de importa-la.

#biblioteca de criação do áudio
from gtts import gTTS
#biblioteca de reprodução do áudio
import playsound
#biblioteca que recebe o áudio do microfone
import speech_recognition as sr
#biblioteca que gera números aleatórios
import random    
#biblioteca para envio de e-mails
import smtplib  
#biblioteca para controlar o navegador
import webbrowser as nav

#Função que faz a assistente virtual falar
#O parâmetro text é o texto que desejamos que seja falado
def falar(text):
    #Nesta linha acontece a mágica
    tts = gTTS(text=text,lang="pt")
    arquivo = "voz.mp3"
    #Aqui salvamos o arquivo .mp3
    tts.save(arquivo)
    #Aqui reproduzimos
    playsound.playsound(arquivo)

#Função que faz a assistente virtual capturar áudio do microfone
def escutar():
    #Cria "ouvidos"
    r = sr.Recognizer()
    #procura por um microfone     
    with sr.Microphone() as s:
        #Configura o ambiente
        r.adjust_for_ambient_noise(s)
        #Captura o audio 
        audio = r.listen(s)
        #Transforma em texto
        fala = r.recognize_google(audio, language="pt-br")
    return fala

escutar()   
#Número aleatório
#Não se esqueça de importar a biblioteca random
num = random.radint(0,2)

#Vetor com três piadas
Piadas = ["Então, porque a aranha é o animal mais carente do mundo? Por que, ela é uma ar",
"Afinal, você conhece a piada do pônei? Pô nei eu kkkkkkkkkkkk.",
"Afinal, o que a vaca disse para o boi? Te amuuuuuuuuuuuuuuuu."]

"""Se a função escutar, retornar "piadas", então nossa assistente conta uma piada"""

if escutar() == "piadas":
    falar(piadas[num])
#Envia um e-mail
elif escutar() == "e-mail":
    email_remetente = "Digite aqui seu e-mail"
    senha_rementente = "Digite aqui a senha do seu e-mail"
    email_destinatario = "Digite o e-mail que vai receber sua mensagem"
    mensagem = "Digite aqui a mensagem que você deseja enviar"

    #Conexão com o servidor do gmail, via protocolo SMTP
    """Caso, deseje mudar o servidor de e-mail, verifique o endereço smtp e a porta, do novo servidor""" 
    email = smtplib.SMTP("smtp.gmail.com",587)

    #Inicia conexão com protocolo TTLS
    email.starttls()

    #Faz login na sua conta de e-mail, no caso gmail
    email.login(email_remetente,senha_remetente)

    #Envia o e-mail
    email.sendmail(email_remetente,email_destinatario,mensagem)

    falar("Enviei o e-mail")
    
    elif escutar() == "google":
        nav.open("www.google.com.br")

Enfim, projeto concluido, nomeie sua AV e divirta-se.

Caso precise de ajuda

Caso, tenha ficado uma dúvida sobre o conteúdo apresentado neste readme, acesse o discord da heartdevs que a comunidade fornecerá o melhor suporte para você.
Discord: discord