创建个人语音助手指南

随着人工智能技术的不断进步,个人数字助手越来越受到关注。在智能家居和智能设备的时代,基于语音的个人助手因其便捷性而广受欢迎。这些助手可以通过简单的语音命令来执行许多日常任务。本文将指导如何快速开发一个名为“Minchu”(意为“闪电”)的基于语音的桌面助手,可以在任何设备上部署它。开发此应用的先决条件是了解Python语言。

要构建任何基于语音的助手,需要两个主要功能:一个用于听取命令,另一个用于响应命令。除了这两个核心功能外,还需要提供定制化的指令。首先,需要安装并导入所有必要的库。使用pip install来安装库,然后导入它们。以下是程序中使用的一些关键库:

语音识别库(SpeechRecognition)允许Python访问系统麦克风的音频,转录音频并保存。Google的文本转语音包gTTS将音频问题转换为文本。为获取问题答案编写的查找函数的响应通过gTTS转换为音频短语。这个包与Google Translate的API接口。

Playsound包用于给答案配音。Playsound允许Python播放MP3文件。Web浏览器包提供了一个高级接口,允许向用户显示基于Web的页面。Selenium是显示Web页面的另一个选项。但是,使用这个需要安装并提供特定于浏览器的Web驱动程序。

Wikipedia用于从Wikipedia网站获取各种信息。Wolfram|Alpha是一个计算知识引擎或答案引擎,可以使用Wolfram的知识库和AI技术计算数学问题。需要获取API来使用这个包。

整个应用程序的代码都是用Python编写的,使用的是Python支持的库。导入所需的库:

import speech_recognition as sr # 将语音转换为文本 import datetime # 用于获取日期和时间 import wikipedia import webbrowser import requests import playsound # 用于播放保存的mp3文件 from gtts import gTTS # Google文本转语音 import os # 用于保存/打开文件 import wolframalpha # 用于计算字符串到公式 from selenium import webdriver # 用于控制浏览器操作

编写一个函数来捕获请求/问题:

def talk(): input = sr.Recognizer() with sr.Microphone() as source: audio = input.listen(source) data = "" try: data = input.recognize_google(audio) print("问题答案是," + data) except sr.UnknownValueError: print("抱歉,没有听到问题,请重复。") return data

接下来,编写一个函数来回应问题:

def respond(output): num = 0 print(output) num += 1 response = gTTS(text=output, lang='en') file = str(num) + ".mp3" response.save(file) playsound.playsound(file, True) os.remove(file)

现在编写模块,将所有所需的定制化响应添加到问题中:

if __name__ == '__main__': respond("嗨,是Minchu,个人桌面助手") while(1): respond("该如何帮助?") text = talk().lower() if text == 0: continue if "停止" in str(text) or "退出" in str(text) or "再见" in str(text): respond("好的,再见,保重") break if '维基百科' in text: respond('搜索维基百科') text = text.replace("维基百科", "") results = wikipedia.summary(text, sentences=3) respond("根据维基百科") print(results) respond(results) elif '时间' in text: strTime = datetime.datetime.now().strftime("%H:%M:%S") respond(f"时间是 {strTime}") elif '搜索' in text: text = text.replace("搜索", "") webbrowser.open_new_tab(text) time.sleep(5) elif "计算" or "什么是" in text: question = talk() app_id = "填写API密钥" client = wolframalpha.Client(app_id) res = client.query(question) answer = next(res.results).text respond("答案是 " + answer) elif '打开谷歌' in text: webbrowser.open_new_tab("https://www.google.com") respond("谷歌已打开") time.sleep(5) elif 'YouTube' in text: driver = webdriver.Chrome(r"填写webdriver位置") driver.implicitly_wait(1) driver.maximize_window() respond("在YouTube中打开") indx = text.split().index('YouTube') query = text.split()[indx + 1:] driver.get("http://www.youtube.com/results?search_query=" + '+'.join(query)) elif "打开Word" in text: respond("打开Microsoft Word") os.startfile('填写Word在系统中的位置') else: respond("应用程序不可用")

一旦程序的所有模块都准备好了,就执行它。会兴奋地听到自己的个人助手与对话。可以根据需求添加更多的定制化,开发一个非常直观的基于语音的助手。一旦桌面助手准备好了,就是部署它的时候了。可以将其转换为可执行文件,并在任何设备上运行它。

语音助手生成一个可执行文件:

要从Python脚本创建一个可执行文件,可以使用Pyinstaller。首先,必须将.ipynb Python文件转换为.py扩展名。为此,请使用ipython和nbconvert包。接下来,使用Pyinstaller为.py文件创建一个.exe文件。所有以下步骤都需要在命令提示符中执行,从Python安装的位置开始:

pip install ipython pip install nbconvert pip install pyinstaller ipython nbconvert --to script minchu.ipynb # 提及.ipynb文件名转换为.py pyinstaller minchu.py # 构建.exe文件

创建的.py文件应该位于.ipynb文件所在的同一文件夹中。一旦构建完成,Pyinstaller会创建两个文件夹,build和dist。导航到dist文件夹并执行.exe文件以运行个人桌面助手。这个应用程序是便携式的,可以在任何设备上执行。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485