2. Explicación del código
Por lo tanto creemos nuestro propio asistente virtual.
Notas
- Todos los códigos están disponibles en mi GitHub.
- El video de demostración de YouTube y el código de video de YouTube además están disponibles en mi canal.
- Los links y paquetes necesarios se mencionan a continuación.
- Se agradecería compartir.
Vamos a codificar
2.1. Paquetes y bibliotecas requeridos
pip install JarvisAI
Este es el último módulo de asistente virtual, creado por mí. Proporciona la funcionalidad básica de cualquier asistente virtual. El requisito previo es solo Python (> 3.6).
Uso y características
Después de instalar la biblioteca, puede importar el módulo:
import JarvisAI
obj = JarvisAI.JarvisAssistant()
response = obj.mic_input()
print(response)
La funcionalidad se borra con el nombre del método. Puede chequear el código, a modo de ejemplo.
- entrada_micrófono
- text2speech
- apagar
- sitio web_opener
- enviar correo
- tell_me_date
- tell_me_time
- launch_any_app
- clima
- Noticias
- dígame
Leer más sobre esto aquí y además puedes contribuir a este repositorio aquí.
2.2. Código-
Importaciones
import JarvisAI
import re
import pprint
import random
Creación de objetos de JarvisAI según documentación–
obj = JarvisAI.JarvisAssistant()
Hemos creado esta función ‘t2s (texto)’. Esto convertirá cualquier texto a voz. Todo el programa utilizaremos (llamaremos) a esta función para producir voz a partir de texto.
def t2s(text):
obj.text2speech(text)
Queremos escuchar de forma continua las aportaciones del usuario, por lo que este ‘mic_input ()’ intentará obtener audio del micrófono de la computadora de forma continua. Procesará el audio y devolverá el texto en la variableEn estadística y matemáticas, una "variable" es un símbolo que representa un valor que puede cambiar o variar. Existen diferentes tipos de variables, como las cualitativas, que describen características no numéricas, y las cuantitativas, que representan cantidades numéricas. Las variables son fundamentales en experimentos y estudios, ya que permiten analizar relaciones y patrones entre diferentes elementos, facilitando la comprensión de fenómenos complejos.... ‘res’. Podemos utilizar esta variable ‘res’ para realizar alguna acción de acuerdo con la entrada del usuario.
while True:
res = obj.mic_input()
Pronóstico del tiempo: Estamos usando una expresión regular para hacer coincidir las consultas en la entrada del usuario. Si se encuentra ‘clima’ o ‘temperatura’ en la entrada del usuario ‘res’, entonces queremos hacer un pronóstico del tiempo. No es necesario escribir cosas desde cero, simplemente llame a ‘obj.weather (city = city)’.
Solo necesita obtener la ciudad de la entrada del usuario y pasarla a la función de clima. Le dirá el pronóstico del tiempo para su ciudad.
Podemos pasar este ‘weather_res’ devuelto a ‘t2s (weather_res)’ para producir voz desde la cadena ‘weather_res’.
while True:
res = obj.mic_input()
if re.search('weather|temperature', res):
city = res.split(' ')[-1]
weather_res = obj.weather(city=city)
print(weather_res)
t2s(weather_res)
Noticias: De manera semejante a la anterior, haga coincidir la palabra ‘noticias’ de la entrada del usuario ‘res’. Si coincide, llame a ‘obj.news’.
Devolverá 15 noticias como una lista de cadenas. Entonces, podemos buscar noticias como ‘news_res[0]’y pasarlo a’ t2s (news_res[0]) ‘.
while True:
res = obj.mic_input()
if re.search('news', res):
news_res = obj.news()
pprint.pprint(news_res)
t2s(f"I have found {len(news_res)} news. You can read it. Let me tell you first 2 of them")
t2s(news_res[0])
t2s(news_res[1])
Cuenta casi todo: Obtendrá los primeros 500 caracteres de Wikipedia y los devolverá como una cadena. Puede utilizar ‘obj.tell_me (topic)’.
Debe pasar ‘tema’ a ‘tell_me (tema = tema)’. El tema es la keyword que desea conocer.
while True:
res = obj.mic_input()
if re.search('tell me about', res):
topic = res.split(' ')[-1]
wiki_res = obj.tell_me(topic)
print(wiki_res)
t2s(wiki_res)
Fecha y hora: Le dirá la fecha y hora actuales de su sistema.
while True:
res = obj.mic_input()
if re.search('date', res):
date = obj.tell_me_date()
print(date)
print(t2s(date))
if re.search('time', res):
time = obj.tell_me_time()
print(time)
t2s(time)
Abra cualquier portal web: Este ‘obj.website_opener (domain)’ abrirá cualquier portal web para usted. Solo necesita obtener el dominio de la entrada del usuario y después pasar a ‘obj.website_opener (dominio)’. Abrirá el portal web en su navegador predeterminado.
while True:
res = obj.mic_input()
if re.search('open', res):
domain = res.split(' ')[-1]
open_result = obj.website_opener(domain)
print(open_result)
Inicie cualquier aplicación, juego, etc.
Esto es un poco complicado, en ‘obj.launch_any_app (path_of_app = path)’ la función que necesita para pasar la ruta de su archivo ‘.exe’.
Por lo tanto hemos creado el diccionario ‘dict_app’ que tiene un ‘nombre de aplicación’ como clave y una ‘ruta’ como valor. Podemos utilizar este ‘dict_app’ para realizar búsquedas. Si la aplicación de entrada del usuario existe en el diccionario, la abriremos obteniendo la ruta.
El siguiente ejemplo es solo para Chrome y Epic Games.
while True:
res = obj.mic_input()
if re.search('launch', res):
dict_app = {
'chrome': 'C:Program Files (x86)GoogleChromeApplicationchrome.exe',
'epic games': 'C:Program Files (x86)Epic GamesLauncherPortalBinariesWin32EpicGamesLauncher.exe'
}
app = res.split(' ', 1)[1]
path = dict_app.get(app)
if path is None:
t2s('Application path not found')
print('Application path not found')
else:
t2s('Launching: ' + app)
obj.launch_any_app(path_of_app=path)
Saludos y Charla, puedes crear saludos y chatear así por ahora.
Estoy trabajando en https://pypi.org/project/JarvisAI/ para agregar el tipo de funcionalidad de chat usando Tensorflow. Usted puede contribuir para hacerlo mejor.
while True:
res = obj.mic_input()
if re.search('hello', res):
print('Hi')
t2s('Hi')
if re.search('how are you', res):
li = ['good', 'fine', 'great']
response = random.choice(li)
print(f"I am {response}")
t2s(f"I am {response}")
if re.search('your name|who are you', res):
print("My name is Jarvis, I am your personal assistant")
t2s("My name is Jarvis, I am your personal assistant")
Pregunte- ‘¿Qué puedes hacer?’: Aquí simplemente estamos usando ‘obj.t2s ()’ para producir algo de voz. Si conoce Python, comprenderá fácilmente el siguiente código:
while True:
res = obj.mic_input()
if re.search('what can you do', res):
li_commands = {
"open websites": "Example: 'open youtube.com",
"time": "Example: 'what time it is?'",
"date": "Example: 'what date it is?'",
"launch applications": "Example: 'launch chrome'",
"tell me": "Example: 'tell me about India'",
"weather": "Example: 'what weather/temperature in Mumbai?'",
"news": "Example: 'news for today' ",
}
ans = """I can do lots of things, for example you can ask me time, date, weather in your city,
I can open websites for you, launch application and more. See the list of commands-"""
print(ans)
pprint.pprint(li_commands)
t2s(ans)
3. Complete el código
import JarvisAI import re import pprint import random obj = JarvisAI.JarvisAssistant() def t2s(text): obj.text2speech(text) while True: res = obj.mic_input() if re.search('weather|temperature', res): city = res.split(' ')[-1] weather_res = obj.weather(city=city) print(weather_res) t2s(weather_res) if re.search('news', res): news_res = obj.news() pprint.pprint(news_res) t2s(f"I have found {len(news_res)} news. You can read it. Let me tell you first 2 of them") t2s(news_res[0]) t2s(news_res[1]) if re.search('tell me about', res): topic = res.split(' ')[-1] wiki_res = obj.tell_me(topic) print(wiki_res) t2s(wiki_res) if re.search('date', res): date = obj.tell_me_date() print(date) print(t2s(date)) if re.search('time', res): time = obj.tell_me_time() print(time) t2s(time) if re.search('open', res): domain = res.split(' ')[-1] open_result = obj.website_opener(domain) print(open_result) if re.search('launch', res): dict_app = { 'chrome': 'C:Program Files (x86)GoogleChromeApplicationchrome.exe', 'epic games': 'C:Program Files (x86)Epic GamesLauncherPortalBinariesWin32EpicGamesLauncher.exe' } app = res.split(' ', 1)[1] path = dict_app.get(app) if path is None: t2s('Application path not found') print('Application path not found') else: t2s('Launching: ' + app) obj.launch_any_app(path_of_app=path) if re.search('hello', res): print('Hi') t2s('Hi') if re.search('how are you', res): li = ['good', 'fine', 'great'] response = random.choice(li) print(f"I am {response}") t2s(f"I am {response}") if re.search('your name|who are you', res): print("My name is Jarvis, I am your personal assistant") t2s("My name is Jarvis, I am your personal assistant") if re.search('what can you do', res): li_commands = { "open websites": "Example: 'open youtube.com", "time": "Example: 'what time it is?'", "date": "Example: 'what date it is?'", "launch applications": "Example: 'launch chrome'", "tell me": "Example: 'tell me about India'", "weather": "Example: 'what weather/temperature in Mumbai?'", "news": "Example: 'news for today' ", } ans = """I can do lots of things, for example you can ask me time, date, weather in your city, I can open websites for you, launch application and more. See the list of commands-""" print(ans) pprint.pprint(li_commands) t2s(ans)
4. Repositorio de 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 install -r requirements.txt
Instalará todo automáticamente.
Solo abre esto Repositorio de GitHub, léelo y comprenderá cómo puede contribuir.