首先需要安装speech库,然后运行如下代码:
import speech
while True:
say=speech.input() # 接收语音
speech.say("you said:"+say) #说话
if say=="你好":
speech.say("How are you?")
elif say=="天气":
speech.say("今天天气晴!")
你说英语的话它不容易识别出来,但是中文却识别的很好,可能是计算机语言是简体中文。
python3版本使用过程中可能有如下问题:
问题一:报错"Missing parentheses in call to ‘print’. Did you mean print(prompt)?"
Python3应该是print(prompt),即print后要加括号。
问题二:报错 No module named ‘thread’
这个问题的原因是python2里对应的thread,在python3里改名了,前面加了一个_,_thread才对。直接ctrl+f,找到thread的位置,加_就好了。
问题三:No module named ‘win32com’
模块win32com安装请见:
上述三个问题解决就可以成功运行代码了。
第一次启用,语音识别会有设置向导。
以上就完成了人工语音交互的基本设置,赶紧解放双手,语音控制电脑吧。
当然,你可以自建命令,毕竟系统自带的命令功能有限。(深度学习)
import speech
import win32api
import os
import sys
import time
import win32con
command1 = {'关机': 'shutdown -s -t 1',
'重启': 'shutdown -r',
'关闭浏览器': 'taskkill /F /IM chrome.exe',
'google一下': 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe',
'关闭QQ': 'taskkill /F /IM QQ.exe',
'关闭wifi': 'taskkill /F /IM kwifi.exe',
'关闭音乐': 'taskkill /F /IM cloudmusic.exe',
'打开音乐': 'D:\\网易云音乐\\CloudMusic\\cloudmusic.exe',
'放首歌': 'D:\\网易云音乐\\CloudMusic\\cloudmusic.exe',
'打开摄像头': 'D:\\Python源码\\摄像头监控.py',
'打开监控': 'D:\\Python源码\\winSpyon.py',
'打开QQ': 'D:\\腾讯QQ\\Bin\\QQ.exe',
'开启wifi': 'D:\\Chrome\\kwifi\\kwifi.exe',
'连接校园网': 'C:\\Drcom\\DrUpdateClient\\DrMain.exe',
'打开ss': 'D:\\代理服务器\\Shadowsocks-win-dotnet4.0-2.3\\Shadowsocks.exe',
'打开pycharm': 'D:\\PyCharm\\PyCharm 4.0.4\\bin\\pycharm64.exe',
'关闭pycharm': 'taskkill /F /IM pycharm.exe',
'打开everything': 'D:\\Chrome\\Everything\\Everything.exe',
'关闭everything': 'taskkill /F /IM everything.exe',
}
speech.say('语音识别已开启 ')
while True:
phrase = speech.input()
if phrase in command1.keys():
speech.say('即将为您%s' %phrase)
os.system(command1[phrase])
speech.say('任务已完成!')
if phrase == '放首歌':
speech.say('30秒后将播放音乐!')
time.sleep(35)
win32api.keybd_event(17, 0, 0, 0)
win32api.keybd_event(18, 0, 0, 0)
win32api.keybd_event(32, 0, 0, 0)
win32api.keybd_event(32, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(18, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)
if phrase == '退出程序':
speech.say('已退出程序,感谢使用!')
sys.exit()