如何使用 Python 构建自己的 AI 个人助理

人工智能个人助理是一种软件,可以理解口头或书面命令并完成客户分配的任务。这是弱人工智能的一个例子,它只能执行和执行用户设计的任务。

想打造自己的个人 AI 助手,如 Apple Siri、Microsoft Cortana 和 Google 助手?

您可以查看此博客以通过几个简单的步骤构建一个!

使用Python编程升anguage,由开发商最常用的一种脚本可以用来建立你的个人助理AI来执行任务,由用户设计。

如何使用 Python 构建自己的 AI 个人助理_第1张图片

现在,让我们使用 python 为我们的个人语音助手编写一个脚本。

技能:

实现的语音助手可以执行以下任务,它可以打开 YouTube、Gmail、谷歌浏览器和堆栈溢出。预测当前时间、拍照、搜索维基百科以提取所需数据、预测不同城市的天气、获取印度时报的头条新闻,还可以回答计算和地理问题。

语音助手的以下查询可以根据用户的需要进行操作。

【绝对有效】免费领取Python学习资源

所需的包裹:

要构建个人语音助手,必须使用 pip 命令在您的系统中安装以下软件包。

1) 语音识别— 语音识别是用于房屋自动化和人工智能设备的重要功能。该库的主要功能是尝试理解人类所说的任何内容并将语音转换为文本。

2) pyttsx3 — pyttxs3 是 Python 中的文本到语音转换库。该软件包支持 Mac os x、Windows 和 Linux 上的文本到语音引擎。

3)维基百科——维基百科是一个多语言在线百科全书,学术界的许多人都在使用,从新生到学生,再到想要获取特定主题信息的教授。python中的这个包从维基百科中提取所需的数据。

4) ecapture — 该模块用于从您的相机捕捉图像

5) datetime——这是python中的一个内置模块,它适用于日期和时间

6) os——这个模块是python中的一个标准库,它提供了与操作系统交互的功能

7) time——时间模块帮助我们显示时间

8) Web 浏览器——这是python 中的一个内置包。它从网络中提取数据

9) Subprocess — 这是一个标准库,用于处理各种系统命令,例如注销或重新启动 PC。

10) Json - json 模块用于存储和交换数据。

11) request - request模块用于发送所有类型的HTTP请求。它接受 URL 作为参数并提供对给定 URL 的访问。

12) wolfram alpha — Wolfram Alpha 是一个 API,可以使用 Wolfram 的算法、知识库和 AI 技术计算专家级答案。Wolfram 语言使之成为可能。

执行:

导入以下库



import speech_recognition as sr import pyttsx3 import datetime import wikipedia import webbrowser import os import time import subprocess from ecapture import ecapture as ec import wolframalpha import json import requests

设置语音引擎:

所述pyttsx3模块被存储在一个变量名发动机。

Sapi5是用于语音识别的 Microsoft 文本到语音引擎。

语音 ID 可以设置为 0 或 1,

0 表示男声

1表示女声



engine=pyttsx3.init('sapi5') voices=engine.getProperty('voices') engine.setProperty('voice','voices[0].id')

现在定义一个将文本转换为语音的函数speak。speak 函数以文本为参数,进一步初始化引擎。

runAndWait:此函数在处理所有当前排队的命令时阻塞。它适当地调用引擎通知的回调,并在此调用之前排队的所有命令从队列中清空时返回。



def speak(text): engine.say(text) engine.runAndWait()

启动一个函数来迎接用户:

定义一个函数wishMe供AI 助手迎接用户。

在NOW()。小时功能抽象是从当前时间的小时。

如果小时大于零且小于 12,语音助手会向您发送消息“早安”。

如果小时大于 12 点且小于 18 点,语音助手会向您发送以下消息“下午好”。

否则它会发出“晚安”的消息



def wishMe(): hour=datetime.datetime.now().hour if hour>=0 and hour<12: speak("Hello,Good Morning") print("Hello,Good Morning") elif hour>=12 and hour<18: speak("Hello,Good Afternoon") print("Hello,Good Afternoon") else: speak("Hello,Good Evening") print("Hello,Good Evening")

为您的 AI 助手设置命令功能:

为 AI 助手定义一个函数takecommand来理解和接受人类语言。麦克风捕获人类语音,识别器识别语音以给出响应。

异常处理用于处理运行时错误期间的异常,recognize_google函数使用谷歌音频识别语音。



def takeCommand(): r=sr.Recognizer() with sr.Microphone() as source: print("Listening...") audio=r.listen(source) try: statement=r.recognize_google(audio,language='en-in') print(f"user said:{statement}\n") except Exception as e: speak("Pardon me, please say that again") return "None" return statement print("Loading your AI personal assistant G-One") speak("Loading your AI personal assistant G-One") wishMe()

主要功能:

主函数从这里开始,人类给出的命令存储在变量语句中。



if __name__=='__main__': while True: speak("Tell me how can I help you now?") statement = takeCommand().lower() if statement==0: continue

如果用户给出的语句中有以下触发词,它会调用虚拟助手说出以下命令。



if "good bye" in statement or "ok bye" in statement or "stop" in statement: speak('your personal assistant G-one is shutting down,Good bye') print('your personal assistant G-one is shutting down,Good bye') break

技能 1 - 从维基百科获取数据:

以下命令有助于从维基百科中提取信息。所述wikipedia.summary()函数有两个参数,由用户给出的发言,并如何需要从许多维基百科句子要提取被存储在可变的结果。



if 'wikipedia' in statement: speak('Searching Wikipedia...') statement =statement.replace("wikipedia", "") results = wikipedia.summary(statement, sentences=3) speak("According to Wikipedia") print(results) speak(results)

技能 2 - 访问网络浏览器——谷歌浏览器、G-Mail 和 YouTube:

Web 浏览器从 Web 中提取数据。该open_new_tab函数接受URL作为一个参数,需要访问。

所述的Python时间睡眠功能被用于在一个程序的执行增加延迟。我们可以使用这个函数在给定的时间内停止程序的执行(以秒为单位)。



elif 'open youtube' in statement: webbrowser.open_new_tab("https://www.youtube.com") speak("youtube is open now") time.sleep(5) elif 'open google' in statement: webbrowser.open_new_tab("https://www.google.com") speak("Google chrome is open now") time.sleep(5) elif 'open gmail' in statement: webbrowser.open_new_tab("gmail.com") speak("Google Mail open now") time.sleep(5)

技能3-预测时间:

当前时间是从显示小时、分钟和秒的datetime.now()函数中抽象出来的,并存储在一个变量名strTime 中。



elif 'time' in statement: strTime=datetime.datetime.now().strftime("%H:%M:%S") speak(f"the time is {strTime}")

技能 4 - 获取最新消息:

如果用户想知道最新消息,语音助手被编程为使用网络浏览器功能从印度时代获取头条新闻。

技能5 - 拍摄照片:

该ec.capture()函数是从相机用于捕获图像。它接受 3 个参数。

摄像头索引— 第一个连接的网络摄像头将被指示为索引 0,下一个网络摄像头将被指示为索引 1

窗口名称——它可以是一个变量或一个字符串。如果您不想看到该窗口,请输入 False

保存名称- 可以为图像命名,如果您不想保存图像,请输入 false



elif 'news' in statement: news = webbrowser.open_new_tab("https://timesofindia.indiatimes.com/home/headlines”) speak('Here are some headlines from the Times of India,Happy reading') time.sleep(6) elif "camera" in statement or "take a photo" in statement: ec.capture(0,"robo camera","img.jpg")

技巧6-从网络搜索数据:

在Web 浏览器中,您可以通过将用户语句(命令)传递给open_new_tab()函数来搜索所需的数据。

用户:嘿G-One,请搜索蝴蝶图片

语音助手打开谷歌窗口并从网络获取蝴蝶图像。



elif 'search' in statement: statement = statement.replace("search", "") webbrowser.open_new_tab(statement) time.sleep(5)

技能 7 - 设置您的 AI 助手来回答地理和计算问题:

在这里,我们可以使用名为Wolfram alpha API 的第三方 API来回答计算和地理问题。 Wolfram 语言使之成为可能。该客户是用于钨阿尔法创建的实例(类)。的水库变量存储由钨阿尔法给出的响应。



elif 'ask' in statement: speak('I can answer to computational and geographical questions and what question do you want to ask now') question=takeCommand() app_id="Paste your unique ID here " client = wolframalpha.Client('R2K75H-7ELALHR35X') res = client.query(question) answer = next(res.results).text speak(answer) print(answer)

要访问 wolfram alpha API,需要一个唯一的 App ID,可以通过以下方式生成:

  1. 如果您没有,请登录 wolfram alpha 的官方页面并创建一个帐户。

如何使用 Python 构建自己的 AI 个人助理_第2张图片

2. 使用您的 wolfram ID 登录

如何使用 Python 构建自己的 AI 个人助理_第3张图片

3. 现在您将看到该网站的主页。前往右上角的帐户部分,您可以在其中看到您的电子邮件。在下拉菜单中,选择我的应用程序 (API) 选项。

如何使用 Python 构建自己的 AI 个人助理_第4张图片

4. 您将看到以下窗口,现在单击 Get APP_ID 按钮

如何使用 Python 构建自己的 AI 个人助理_第5张图片

5. 现在你会看到下面的对话框,给一个合适的名字和描述,然后点击App ID按钮,就会生成一个App ID,这是一个唯一的ID。使用 App Id 可以访问 Wolfram alpha API。

如何使用 Python 构建自己的 AI 个人助理_第6张图片

人类:嘿G-One,加利福尼亚的首府是什么?

G-One 语音助手:美利坚合众国萨克拉门托

技能 8- 额外功能:

为您的 AI 助手编程以回答以下问题会很有趣,例如它可以做什么以及是谁创建的,不是吗?



elif 'who are you' in statement or 'what can you do' in statement: speak('I am G-one version 1 point O your personal assistant. I am programmed to minor tasks like' 'opening youtube,google chrome, gmail and stackoverflow ,predict time,take a photo,search wikipedia,predict weather' 'In different cities, get top headline news from times of india and you can ask me computational or geographical questions too!') elif "who made you" in statement or "who created you" in statement or "who discovered you" in statement: speak("I was built by Mirthula") print("I was built by Mirthula")

技能 9- 预报天气:

现在要对您的 AI 助手进行编程以检测天气,我们需要从 Open Weather 地图生成 API 密钥。

开放天气地图是一种提供天气数据的在线服务。通过在官网生成API ID,您可以使用APP_ID让您的语音助手随时随地检测各地的天气。这个天气检测需要导入的必要模块是 json 和 request 模块。

所述CITY_NAME变量需要通过使用人给出的命令takeCommand()函数。

request模块的get方法返回一个响应对象。并且响应对象的json方法将json格式的数据转换成python格式。

变量X包含嵌套字典列表,用于检查“COD”的值是否为 404,即是否找到了城市。

温度和湿度等值存储在变量Y的主键中。



elif "weather" in statement: api_key="Apply your unique ID" base_url="https://api.openweathermap.org/data/2.5/weather?" speak("what is the city name") city_name=takeCommand() complete_url=base_url+"appid="+api_key+"&q="+city_name response = requests.get(complete_url) x=response.json() if x["cod"]!="404": y=x["main"] current_temperature = y["temp"] current_humidiy = y["humidity"] z = x["weather"] weather_description = z[0]["description"] speak(" Temperature in kelvin unit is " + str(current_temperature) + "\n humidity in percentage is " + str(current_humidiy) + "\n description " + str(weather_description)) print(" Temperature in kelvin unit = " + str(current_temperature) + "\n humidity (in percentage) = " + str(current_humidiy) + "\n description = " + str(weather_description))

人类:嘿G-One,我想获取天气数据

G-One:城市名称是什么?

人类:喜马偕尔邦

G-One: 开尔文单位温度为 301.09 ,湿度百分比为 52,描述为小雨。

技能 10- 注销您的 PC:

这里的subprocess.call()函数用于处理系统函数以注销或关闭您的 PC。这会调用您的 AI 助手来自动关闭您的 PC。



elif "log off" in statement or "sign out" in statement: speak("Ok , your pc will log off in 10 sec make sure you exit from all applications") subprocess.call(["shutdown", "/l"]) time.sleep(3)

Hurray,我们终于建立了自己的AI语音助手。此外,您仍然可以为 AI 语音助手添加更多功能以执行更多任务。【绝对有效】免费领取Python学习资源

如何使用 Python 构建自己的 AI 个人助理_第7张图片

你可能感兴趣的:(python,人工智能,计算机视觉,opencv,开发语言)