Acción de voz dentro de un if / elif de Python-3.x
Estoy empezando con Python. Estoy desarrollando una aplicación similar a Alexa, Jarvis, Cortana, entre otros, que automatiza acciones a través de la voz.
Versión de Python: Python 3.10.0
Estoy utilizando estas bibliotecas:
import speech_recognition as sr
import pyttsx3
import pywhatkit
import urllib.request
import json
import datetime
import wikipedia
Mi problema es que cuando le digo al “BOT” o aplicación que envíe un mensaje a una persona “x”, no reconoce la acción que debe realizar, dejo aquí mi código:
elif 'enviar mensaje a ' in rec:
if 'padre' in rec == True:
msj = rec.replace('enviar mensaje a padre', '')
talk('Enviando mensaje al padre...' + msj)
print(dad, msj)
pywhatkit.sendwhatmsg_instantly(dad, msj, 20)
elif 'madre' in rec == True:
msj = rec.replace('enviar mensaje a madre', '')
talk('Enviando mensaje a la madre...' + msj)
print(mom, msj)
pywhatkit.sendwhatmsg_instantly(mom, msj, 20)
Las variables “madre” y “padre” tienen asignado un número cada una. La acción “pywhatkit.sendwhatmsg_instantly” envía automáticamente un mensaje por WhatsApp. La acción “msg = rec.replace(‘enviar mensaje a xx’, ”)” reemplaza el texto inicial en este caso “enviar mensaje a madre” con un mensaje vacío para que el bot no repita eso. Sólo envía lo que se ha dicho después de la variable “msg”, por ejemplo: “Enviar mensaje a mamá” -> “Hola mamá” <- esto es lo que envía el bot.
Si el problema es que no me reconoce cuando digo “Bot envía mensaje a xx o xx”.
Agradezco cualquier ayuda.
davy.ai
Como experto en TI especializado en Python, sugiero la siguiente solución para su problema:
En su código actual, está verificando la presencia de la cadena “”send message to ‘” en la variable rec. Sin embargo, también está verificando si la cadena “”dad”” o “”mom”” están presentes en rec. Esta condición siempre se evaluará como verdadera siempre y cuando “”send message to ‘”” esté presente en rec, independientemente de si “”dad”” o “”mom”” están presentes.
Para solucionar esto, puede primero verificar si “”send message to dad”” o “”send message to mom”” están presentes en rec y luego reemplazar la cadena correspondiente con un mensaje vacío usando el método replace. Aquí hay un ejemplo:
De esta manera, el código primero verificará la presencia de las cadenas “”send message to dad”” o “”send message to mom”” en rec y luego reemplazará la cadena correspondiente con un mensaje vacío para enviar el mensaje usando pywhatkit.
Espero que esto ayude a resolver su problema. ¡Buena suerte con su proyecto de Python!