我的程序应该使用 pywhatkit 库通过语音识别获取用户的输入来发送whatsapp消息。
这是发送消息的功能。
def WhatsApp():
speak("For Whom should i send message")
Contacts = {
'mom' : 63XXXXXXX, # these are numbers (hidden)
'karthik' : 75XXXXXXx,
'me' : 81XXXXXXX,
'jayaram' : 99XXXXXXXX
}
to = takeCommand() #takes my voice input using speech_recognition
speak("what message should i send")
msg = takeCommand()
speak(f"sending message to {to}")
try:
pwt.sendwhatmsg_instantly(f"+91{Contacts[to]}",msg,5,True,15)
except Exception as e:
speak(f"error sending message")
print(e)
当我说发送whatsapp消息到我的语音助手时,它会问我要发送给谁以及应该发送什么消息。
我使用 pywhatkit 立即发送 Whatsapp 消息功能,以便消息可以快速发送,但它只是打开 Whatsapp 网页并返回。
我的问题:
- Whatsapp网页正在打开并转到联系号码,我的消息将准备发送,但它不会发送我的消息并在一段时间后关闭选项卡。
注意:
- 我还尝试更改关闭选项卡时间pwt.sendWhatmsg_instantly(a,b,c,d,closetab time) 的函数参数但没有使用结果是相同的。
请帮助我找到一种更好的方法来通过 pywhatkit 立即发送消息并解决错误。
此错误发生的原因是 WhatsApp Web 最近更新了安全协议。现在需要使用“pywhatkit.sendwhats_image”函数发送图像才能使代码正常工作。
以下是对代码的更正和解释:
import pywhatkit as pwt
import speech_recognition as sr
import pyttsx3
listener = sr.Recognizer()
engine = pyttsx3.init()
def speak(text):
engine.say(text)
engine.runAndWait()
def takeCommand():
try:
with sr.Microphone() as source:
print("Listening...")
listener.pause_threshold = 1 # Wait for 1 second after user stops speaking
voice = listener.listen(source)
command = listener.recognize_google(voice)
command = command.lower()
print(f"You said: {command}")
return command
except sr.UnknownValueError:
print("Sorry, I didn't understand.")
except sr.RequestError as e:
print(f"Could not request results from Google Speech Recognition service; {e}")
return ""
def WhatsApp():
speak("For whom should I send a message?")
contacts = {
'mom': 63XXXXXXX, # these are numbers (hidden)
'karthik': 75XXXXXXx,
'me': 81XXXXXXX,
'jayaram': 99XXXXXXXX
}
to = takeCommand()
speak("What message should I send?")
msg = takeCommand()
speak(f"Sending message to {to}")
try:
# Replace 'image.png' with the actual path to your image
pwt.sendwhats_image(f"+91{contacts[to]}", 'image.png', msg, 15, True, 5)
speak("Message sent successfully!")
except Exception as e:
speak("Error sending message")
print(e)
WhatsApp()
解释:
- 导入必要的库:
-
pywhatkit
用于 WhatsApp 自动化 -
speech_recognition
用于语音识别 -
pyttsx3
用于文本转语音 -
初始化语音识别器和文本转语音引擎:
-
listener = sr.Recognizer()
创建一个语音识别器对象。 -
engine = pyttsx3.init()
初始化文本转语音引擎。 -
定义
speak
函数: -
此函数接受文本作为输入并使用文本转语音引擎将其说出。
-
定义
takeCommand
函数: -
此函数使用语音识别从用户那里获取语音输入,将其转换为文本,并返回该文本。
-
定义
WhatsApp
函数: - 存储联系人及其电话号码的字典。
-
使用
takeCommand()
函数询问用户要向谁发送消息。 -
使用
takeCommand()
函数询问用户要发送什么消息。 -
使用
sendwhats_image()
函数发送消息。-
重要:
需要将
'image.png'
替换为的图像的实际路径。
-
重要:
需要将
-
包含错误处理以捕获发送消息时可能发生的任何异常。
-
调用
WhatsApp()
函数以启动该过程。
如何运行代码:
-
安装必要的库:
pip install pywhatkit speechrecognition pyttsx3
-
将代码保存为 Python 文件(例如,
whatsapp_message.py
)。 -
在与代码文件相同的目录中放置一张图像(例如,
image.png
)。 -
运行代码:
python whatsapp_message.py
这将启动语音助手,并提示说出要向谁发送消息以及要发送什么消息。
标签:python,whatsapp,pywhatkit From: 75578301