用Python构建自己的桌面语音助手
建立像Alexa或Siri这样的个人助理有多酷?它不是很复杂,可以在Python中轻松实现。个人数字助理最近引起了很多关注。聊天机器人在大多数商业网站中都很常见。随着
人工智能的不断发展,对机器进行培训以处理日常任务已成为常态。
在这个智能家居和智能设备时代,基于语音的私人助理已变得越来越流行。只需发出语音命令,即可轻松配置这些个人助理以执行许多常规任务。Google已普及了基于语音的搜索功能,这使许多不喜欢使用键盘/键盘的老年人(例如老年人)受益匪浅。
本文将引导您完成快速开发可在任何设备上部署的基于语音的桌面助手Minchu(即Flash)的步骤。开发此应用程序的前提是必须具备Python知识。
要构建任何基于语音的助手,您需要两个主要功能。一个用于监听您的命令,另一个用于响应您的命令。除了这两个核心功能之外,您还需要自定义的说明,以向助手提供信息。
第一步是安装和导入所有必需的库。在导入库之前,请使用pip install安装库。以下是此程序中使用的一些关键库:
该语音识别库允许Python访问音频从您的系统的麦克风,录制音频,并将其保存。
Google的 文本语音转换套件gTTS将您的音频问题转换为文本。gTTS将您为获取问题答案而编写的查找功能的响应转换为音频短语。该程序包与Google Translate的API接口。
Playsound程序包用于为答案提供声音。Playsound允许Python播放MP3文件。
Web浏览器软件包提供了一个高级界面,该界面允许向用户显示基于Web的页面。硒是显示网页的另一种选择。但是,要使用此功能,您需要安装并提供特定于浏览器的Web驱动程序。
Wikipedia用于从Wikipedia网站获取各种信息。
Wolfram | Alpha是一种计算知识引擎或答案引擎,可以使用Wolfram的知识库和AI技术来计算数学问题。您需要获取API才能使用此软件包。
实施个人助理
此应用程序的整个代码都是使用Python支持的库以Python编写的。
导入所需的库:
将sr语音导入到#将语音转换为文本
导入日期时间#用于获取日期和时间
导入维基百科
导入网络浏览器
汇入要求
导入playsound#播放保存的mp3文件
从gtts导入gTTS#谷歌文本到语音
导入os#保存/打开文件
导入wolframalpha#以将字符串计算为公式
从selenium import webdriver#来控制浏览器操作
编写函数以捕获您的请求/问题:
def talk():
输入= sr.Recognizer()
使用sr.Microphone()作为来源:
音频= input.listen(源)
data =“”
尝试:
data = input.recognize_google(音频)
打印(“您的问题是,“ +数据)
除了sr.UnknownValueError:
打印(“很抱歉,我没有听到您的问题,请再次重复。”)
返回数据
接下来,编写一个函数来回答您的问题:
def响应(输出):
num = 0
打印(输出)
num + = 1
response = gTTS(text = output,lang ='en')
文件= str(num)+“。mp3”
response.save(文件)
playsound.playsound(file,True)
os.remove(文件)
现在,编写模块以将所有必需的定制答案添加到您的问题中:
如果__name __ =='__ main__':
响应(“嗨,我是Minchu您的个人桌面助手”)
while(1):
响应(“我能为您提供什么帮助?”)
text = talk()。lower()
如果text == 0:
继续
如果在str(text)中是“ stop”,在str(text)中是“ exit”,还是在str(text)中是“ bye”:
响应(“再见,保重”)
打破
如果文字中有“维基百科”:
响应(“正在搜索维基百科”)
文字= text.replace(“ wikipedia”,“”)
结果= wikipedia.summary(文本,句子= 3)
响应(“根据维基百科”)
打印(结果)
回应(结果)
文字中的“ ifif”(时间):
strTime = datetime.datetime.now()。strftime(“%H:%M:%S”)
响应(如果“时间是{strTime}”)
文本中的“ ifif”搜索:
文字= text.replace(“搜索”,“”)
webbrowser.open_new_tab(文本)
time.sleep(5)
elif在文本中“计算”或“是什么”:
问题=谈话()
app_id =“提及您的API密钥”
客户端= wolframalpha.Client(app_id)
res = client.query(问题)
答案= next(res.results).text
响应(“答案为” +答案)
文本中的elif'open googlr':
webbrowser.open_new_tab(“
https://www.google.com”)
响应(“ Google已打开”)
time.sleep(5)
文字中的elif'youtube':
driver = webdriver.Chrome(r“提及您的webdriver位置”)
driver.implicitly_wait(1)
driver.maximize_window()
响应(“在youtube中打开”)
indx = text.split()。index('youtube')
查询= text.split()[indx + 1:]
driver.get(“
http://www.youtube.com/results?search_query =” +'+'。join(query))
文本中的省略号“ open word”:
响应(“打开Microsoft Word”)
os.startfile('Word在系统中的位置')
其他:
响应(“应用程序不可用”)
程序的所有模块准备就绪后,执行它。您会很高兴听到自己的私人助理与您交谈。您可以根据需要添加更多自定义设置,并开发一个非常直观的基于语音的助手。一旦您的桌面助手准备就绪,就可以部署它了。您可以将其转换为可执行文件,然后在任何设备上运行。
为您的语音助手生成可执行文件
要从Python脚本创建可执行文件,可以使用Pyinstaller。首先,您必须将.ipynb Python文件转换为.py扩展名。为此,请使用ipython和nbconvert软件包。接下来,使用Pyinstaller为.py文件创建一个.exe文件。需要在以下命令中从安装Python的位置执行以下所有步骤:
点安装ipython
点安装nbconvert
点安装pyinstaller
ipython nbconvert-编写minchu.ipynb #mention .ipynb文件名的脚本以转换为.py
pyinstaller minchu.py #builds .exe文件
创建的.py文件应位于.ipynb文件所在的文件夹中。构建完成后,Pyinstaller将创建两个文件夹build和dist。导航到dist文件夹并执行.exe文件以运行您的个人桌面助手。该应用程序是便携式的,可以在任何设备上执行。
结论
这就是构建您自己的语音助手非常简单。您可以添加更多功能,例如播放喜欢的歌曲,提供天气详细信息,打开电子邮件应用程序,撰写电子邮件,重新启动系统等。您也可以将此应用程序集成到手机或平板电脑中。尽情探索和开发自己的Alexa / Siri / Cortana。
题库