使用Python构建AI虚拟助手

2025年1月5日 | 阅读 7 分钟

什么是虚拟助手?

一种基于人工智能的程序,它可以识别人的语音和命令,并根据程序执行这些任务,这种程序被称为虚拟助手。它可以接收文本或语音命令。虚拟助手的主要目的是简化人类的任务。当用户向他们的虚拟助手发出命令时,它将为人类执行该任务。例如,设置闹钟、设置提醒、跟踪智能设备等。

虚拟助手是物联网的子集。物联网是一个包含连接了传感器并收集用户数据并通过无线网络传输的物理设备和电器的分支。一些著名的虚拟助手有 Jarvis、Google Home 和 Alexa。

虚拟助手由语音识别程序和一个接收用户语音并识别语音以执行任务的音频引擎组成。

虚拟助手听起来充满了技术术语,但并非如此。我们可以使用 Python 提供的不同库和模块来创建自己的虚拟助手。

使用 Python 构建虚拟助手

Python 提供了许多库,我们可以通过它们轻松创建虚拟助手。这些库包括:

1) pyttsx3:pyttsx3 库用于将文本转换为语音。它可以在任何平台或 IDE 上使用,并且不需要互联网连接。可以使用 pip 命令安装。

2) webbrowser:Python 中的 webbrowser 库用于向用户显示基于 Web 的文档。它提供了一个高级接口。可以使用 pip 命令下载此模块。

3) Wikipedia:Python 中的 Wikipedia 库用于从 Wikipedia 网站获取各种信息。可以使用 pip 命令安装此库。

4) SpeechRecognition:SpeechRecognition 库用于将语音转换为文本。它识别人的语音并将其转换为文本。它还可以响应人类命令。可以使用 pip 命令安装此库。

5) PyAudio:此库允许您播放和录制音频。可以使用 pip 命令安装此库。

虚拟助手如何工作?

虚拟助手通过语音接收人类命令。它识别语音,然后响应命令。它会再次写出命令或以语音方式响应。响应可能是正确或不正确的,因为虚拟助手只是程序的一部分,并且很多时候可能无效。

在 Python 中实现虚拟助手

在 Python 中实现虚拟助手包括多个步骤:

1. 导入所有库

2. 虚拟助手的功能

我们将为虚拟助手中的每个功能和命令创建不同的函数。这包括:

  1. 语音方法
  2. 命令方法
  3. 日/日期方法
  4. 时间方法
  5. 欢迎方法
  6. 询问方法
  7. 主方法

语音方法

此函数将帮助用户从系统获取语音。它将向用户的命令做出响应。这可以使用 pyttsx3 模块完成。

在此,我们创建了一个 speak() 函数,并创建了一个对象方法,该方法采用 pyttsx。使用 setProperty() 函数,它获取语音,然后使用 say() 函数,我们可以说话,它将识别我们的语音。

命令方法

此方法将识别人的语音并说出用户说的命令。用户将通过麦克风说话,虚拟助手将说出命令并做出相应的响应。

我们声明了一个 command() 函数,该函数使用 Recognizer() 函数来识别语音。它使用麦克风从用户那里获取输入,然后做出相应的响应。

日/日期方法

此函数将使用 datetime() 函数返回当天的日期和星期几。

在此,我们创建了一个 dayDate() 函数,该函数使用 datetime 库给出今天的日期。我们声明了一个包含所有星期的字典,然后打印出今天的星期。

时间方法

此函数用于返回当前时间。它使用 datetime 库读取当前时间。

我们创建了 time() 函数,该函数使用 datetime.now() 函数读取时间和日期,并将其转换为字符串进行打印。

欢迎方法

此方法将通过自我介绍来欢迎用户。

询问方法

此方法检查不同的条件并做出相应的响应。

我们创建了一个 ask() 函数,该函数将检查不同的命令并调用相应的函数;例如,当用户问“你好吗?”时,它将回复“我很好,谢谢,你呢?”,还有更多。

主方法

它将调用 ask() 和 welcome() 函数。

让我们编译所有这些方法,创建我们的虚拟助手,它将使我们的工作变得容易,并像朋友一样与我们互动。

输出

Welcome! Hello, I am your Virtual assistant Sophia. How may I help you?
Speak...
Trying to get your voice...
You have just said:  what is the time
2023-11-03 14:25:36
Speak...
Trying to get your voice...
You have just said:  how are you
I am fine, thank you. how are you?
Speak...
Trying to get your voice...

Sorry, I didn't get you.. Say it again
Speak...