2. Explicação do código
Por isso criamos nosso próprio assistente virtual.
Notas
- Todos os códigos estão disponíveis no meu GitHub.
- Vídeo de demonstração do YouTube e código de vídeo do YouTube também estão disponíveis no meu canal.
- Os links e pacotes necessários são mencionados abaixo.
- Compartilhar seria apreciado.
Vamos codificar
2.1. Pacotes e bibliotecas necessários
pip instalar JarvisAI
Este é o mais recente módulo de assistente virtual, criado por mim. Fornece a funcionalidade básica de qualquer assistente virtual. O pré-requisito é apenas Python (> 3.6).
Uso e Recursos
Depois de instalar a biblioteca, você pode importar o módulo:
import JarvisAI
obj = JarvisAI.JarvisAssistant()
resposta = obj.mic_input()
imprimir(resposta)
A funcionalidade é limpa com o nome do método. Você pode verificar o código, como um exemplo.
- entrada_microfone
- text2speech
- apagar
- website_opener
- enviar correio
- tell_me_date
- diga_me_tempo
- launch_any_app
- clima
- Notícias
- Conte-me
Leia mais sobre isso aqui e você também pode contribuir para este repositório aqui.
2.2. Código-
Importações
importar Jarvis AI
importar ré
importar pprint
importar aleatória
Criação de objeto por JarvisAI de acordo com documentação–
obj = JarvisAI.JarvisAssistant()
Criamos esta função 't2s (texto)’. Isso converterá qualquer texto em fala. Todo o programa usará (nós vamos ligar) a esta função para produzir fala a partir de texto.
def t2s(texto):
obj.text2speech(texto)
Queremos ouvir continuamente a entrada do usuário, então este 'mic_input ()’ tentará obter áudio do microfone do computador continuamente. Procesará el audio y devolverá el texto en la variávelEm estatística e matemática, uma "variável" é um símbolo que representa um valor que pode mudar ou variar. Existem diferentes tipos de variáveis, e qualitativo, que descrevem características não numéricas, e quantitativo, representando quantidades numéricas. Variáveis são fundamentais em experimentos e estudos, uma vez que permitem a análise de relações e padrões entre diferentes elementos, facilitando a compreensão de fenômenos complexos.... ‘res’. Podemos usar esta variável 'res’ para executar alguma ação de acordo com a entrada do usuário.
enquanto verdadeiro:
res = obj.mic_input()
Previsão do tempo: Estamos usando uma expressão regular para corresponder às consultas na entrada do usuário. Se você encontrar 'clima’ o ‘temperatura’ na entrada do usuário 'res', por isso queremos fazer uma previsão do tempo. Não há necessidade de escrever coisas do zero, é só chamar 'obj.weather (cidade = cidade)’.
Você só precisa obter a cidade da entrada do usuário e passá-la para a função meteorológica. Ele informará a previsão do tempo para sua cidade.
Podemos passar este 'weather_res’ voltou para 't2s (clima_res)’ para produzir voz a partir da string 'weather_res'.
enquanto verdadeiro:
res = obj.mic_input()
E se pesquisa('clima|temperatura', res):
cidade = res.split('')[-1]
weather_res = obj.weather(cidade=cidade)
imprimir(clima_res)
t2s(clima_res)
Notícias: De forma semelhante ao anterior, corresponder à palavra 'notícias’ da entrada do usuário 'res'. Coincide, ligue para 'obj.news'.
retornará 15 notícias como uma lista de cadeias. Então, podemos pesquisar notícias como 'news_res[0]' e passe para’ t2s (news_res[0]) ‘.
enquanto verdadeiro:
res = obj.mic_input()
E se pesquisa('notícias', res):
news_res = obj.news()
pprint.pprint(news_res)
t2s(f"eu encontrei {len(news_res)} notícias. Você pode lê-lo. Deixe-me dizer-lhe primeiro 2 deles")
t2s(news_res[0])
t2s(news_res[1])
contar quase tudo: Você receberá o primeiro 500 caracteres da Wikipedia e os retornará como uma string. Você pode usar 'obj.tell_me (tema)’.
Deve passar 'tópico’ um 'diga-me (tema = tema)’. O tópico é a palavra-chave que você deseja saber.
enquanto verdadeiro:
res = obj.mic_input()
E se pesquisa('fale-me sobre', res):
tópico = res.split('')[-1]
wiki_res = obj.tell_me(tema)
imprimir(wiki_res)
t2s(wiki_res)
Data e hora: Ele informará a data e hora atuais do seu sistema.
enquanto verdadeiro:
res = obj.mic_input()
E se pesquisa('encontro', res):
data = obj.tell_me_date()
imprimir(encontro)
imprimir(t2s(encontro))
E se pesquisa('Tempo', res):
tempo = obj.tell_me_time()
imprimir(Tempo)
t2s(Tempo)
Abra qualquer portal da web: Este 'obj.website_opener (domínio)’ abrir qualquer portal web para você. Você só precisa obter o domínio da entrada do usuário e, em seguida, mover-se para 'obj.website_opener (domínio)’. Ele abrirá o portal web no seu navegador padrão.
enquanto verdadeiro:
res = obj.mic_input()
E se pesquisa('aberto', res):
domínio = res.split('')[-1]
open_result = obj.website_opener(domínio)
imprimir(open_result)
Inicie qualquer aplicativo, Toque, etc.
Isso é um pouco complicado., em 'obj.launch_any_app (path_of_app = caminho)’ a função que você precisa para passar o caminho do seu arquivo '.exe'.
Por isso criamos o dicionário 'dict_app’ que tem um 'nome de aplicativo'’ como uma chave e uma "rota"’ como um valor. Podemos usar este "dict_app’ para realizar pesquisas. Se o aplicativo de entrada do usuário existe no dicionário, vamos abri-lo obtendo a rota.
O exemplo a seguir é apenas para Chrome e Epic Games.
enquanto verdadeiro:
res = obj.mic_input()
E se pesquisa('lançar', res):
dict_app = {
'cromado': 'C:Arquivos do programa (x86)GoogleChromeApplicationchrome.exe',
'Jogos épicos': 'C:Arquivos do programa (x86)Epic GamesLauncherPortalBinariesWin32EpicGamesLauncher.exe'
}
app = res.split('', 1)[1]
caminho = dict_app.get(aplicativo)
E se caminho é Nenhum:
t2s('Caminho de aplicação não encontrado')
imprimir('Caminho de aplicação não encontrado')
outro:
t2s('Lançamento: ' + aplicativo)
obj.launch_any_app(path_of_app=caminho)
Saudações e Palestras, você pode criar saudações e conversar assim por enquanto.
Estou trabalhando em https://pypi.org/project/JarvisAI/ para adicionar o tipo de funcionalidade de bate-papo usando Tensorflow. Você pode contribuir para torná-lo melhor.
enquanto verdadeiro:
res = obj.mic_input()
E se pesquisa('Olá', res):
imprimir('Oi')
t2s('Oi')
E se pesquisa("Como você está", res):
li = ['bom', 'multar', 'excelente']
resposta = aleatório.escolha(no)
imprimir(f"Eu sou {resposta}")
t2s(f"Eu sou {resposta}")
E se pesquisa(Seu nome|quem é você., res):
imprimir("Meu nome é Jarvis., Eu sou seu assistente pessoal.")
t2s("Meu nome é Jarvis., Eu sou seu assistente pessoal.")
Pedir- "O que você pode fazer??’: Aqui estamos simplesmente usando 'obj.t2s ()’ para produzir alguma voz. Se você conhece Python, você vai entender facilmente o seguinte código:
enquanto verdadeiro:
res = obj.mic_input()
E se pesquisa("O que você pode fazer", res):
li_commands = {
"sites abertos": "Exemplo: 'youtube.com aberto",
"Tempo": "Exemplo: "Que horas são?'",
"encontro": "Exemplo: 'Que data é?'",
"aplicativos de lançamento": "Exemplo: 'lançar cromo'",
"Me conta": "Exemplo: 'Fale-me sobre a Índia'",
"tempo": "Exemplo: 'que clima/temperatura em Mumbai?'",
"notícias": "Exemplo: 'Notícias por hoje' ",
}
ans = """Eu posso fazer muitas coisas, por exemplo, você pode me perguntar tempo, encontro, tempo em sua cidade,
Posso abrir sites para você, aplicativo de lançamento e mais. Veja a lista de comandos..."""
imprimir(Ans)
pprint.pprint(li_commands)
t2s(Ans)
3. Completo el código
import JarvisAI
import re
import pprint
import random
obj = JarvisAI.JarvisAssistant()
def t2s(texto):
obj.text2speech(texto)
enquanto verdadeiro:
res = obj.mic_input()
se re.search('clima|temperatura', res):
cidade = res.split('')[-1]
weather_res = obj.weather(cidade=cidade)
imprimir(clima_res)
t2s(clima_res)
se re.search('notícias', res):
news_res = obj.news()
pprint.pprint(news_res)
t2s(f"eu encontrei {len(news_res)} notícias. Você pode lê-lo. Deixe-me dizer-lhe primeiro 2 deles")
t2s(news_res[0])
t2s(news_res[1])
se re.search('fale-me sobre', res):
tópico = res.split('')[-1]
wiki_res = obj.tell_me(tema)
imprimir(wiki_res)
t2s(wiki_res)
se re.search('encontro', res):
data = obj.tell_me_date()
imprimir(encontro)
imprimir(t2s(encontro))
se re.search('Tempo', res):
tempo = obj.tell_me_time()
imprimir(Tempo)
t2s(Tempo)
se re.search('aberto', res):
domínio = res.split('')[-1]
open_result = obj.website_opener(domínio)
imprimir(open_result)
se re.search('lançar', res):
dict_app = {
'cromado': 'C:Arquivos do programa (x86)GoogleChromeApplicationchrome.exe',
'Jogos épicos': 'C:Arquivos do programa (x86)Epic GamesLauncherPortalBinariesWin32EpicGamesLauncher.exe'
}
app = res.split('', 1)[1]
caminho = dict_app.get(aplicativo)
se o caminho é Nenhum:
t2s('Caminho de aplicação não encontrado')
imprimir('Caminho de aplicação não encontrado')
outro:
t2s('Lançamento: ' + aplicativo)
obj.launch_any_app(path_of_app=caminho)
se re.search('Olá', res):
imprimir('Oi')
t2s('Oi')
se re.search("Como você está", res):
li = ['bom', 'multar', 'excelente']
resposta = aleatório.escolha(no)
imprimir(f"Eu sou {resposta}")
t2s(f"Eu sou {resposta}")
se re.search(Seu nome|quem é você., res):
imprimir("Meu nome é Jarvis., Eu sou seu assistente pessoal.")
t2s("Meu nome é Jarvis., Eu sou seu assistente pessoal.")
se re.search("O que você pode fazer", res):
li_commands = {
"sites abertos": "Exemplo: 'youtube.com aberto",
"Tempo": "Exemplo: "Que horas são?'",
"encontro": "Exemplo: 'Que data é?'",
"aplicativos de lançamento": "Exemplo: 'lançar cromo'",
"Me conta": "Exemplo: 'Fale-me sobre a Índia'",
"tempo": "Exemplo: 'que clima/temperatura em Mumbai?'",
"notícias": "Exemplo: 'Notícias por hoje' ",
}
ans = """Eu posso fazer muitas coisas, por exemplo, você pode me perguntar tempo, encontro, tempo em sua cidade,
Posso abrir sites para você, aplicativo de lançamento e mais. Veja a lista de comandos..."""
imprimir(Ans)
pprint.pprint(li_commands)
t2s(Ans)
4. Repositório Github
Puedes utilizar mi código con total libertad. Destaca si te gusta mi trabajo, suscríbete Youtube si amas.
Simplemente clona el repositorio https://github.com/Dipeshpal/Jarvis-Assisant.git
Después ejecute pip instalar -r requisitos.txt
Instalará todo automáticamente.
Solo abre esto Repositório GitHub, léelo y comprenderá cómo puede contribuir.