Requisitos:
- Um microfone.
- Python e o pacote pip instalados na máquina.
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.
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.
Vamos começar!!!
- Abra o seu editor de código favorito.
- 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.
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.
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])
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.
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, 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