使用Python构建AI语音助手

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

什么是语音助手?

语音助手是基于人工智能和机器学习的软件,用于通过语音命令帮助人类完成日常任务。它能识别人的声音,理解我们的命令并据此完成任务。语音助手就是人工智能工具,它们接收并解析用户的命令,并像人一样做出回应。

最流行和最广泛使用的语音助手是 Alexa、Google Assistant、Siri 等。我们可以在智能设备、智能手机、智能手表、平板电脑等设备上找到语音助手。如今,语音助手还可以用于家电,如灯、风扇、空调等。

语音助手不能与虚拟助手混淆。虚拟助手与语音助手相似,但并非完全相同。语音助手是一种基于语音命令工作的虚拟助手。

语音助手的工作原理

语音助手基于人工智能,并通过语音识别技术工作,该技术可以识别人的声音,然后像人一样完成任务并做出回应。语音助手通过人类数据进行训练,从中学习并相应地做出响应以满足人类的需求和命令。

让我们以一个例子来了解语音助手是如何工作的

用户发出设置早上 10 点闹钟的命令。语音助手会识别人的声音并理解需要做什么。然后,它会进入用户的手机设置,并设置闹钟。之后,它会告诉用户它已完成任务。

人们可以通过语音助手询问任何问题。此外,他们还可以像朋友一样与语音助手交谈。例如,询问任何查询、询问任何一般性问题、要求做某事等等。

以下是我们能让语音助手为我们做的任务列表

  • 设置闹钟
  • 播放音乐
  • 打开和搜索任何网站
  • 发送邮件

自动语音识别 (ASR) 有助于检测人的声音,并将语音转换为文本。语音助手使用自然语言处理 (NLP),这有助于理解用户给语音助手的命令的含义和意图。

我们以某种方式训练我们的机器,使其在用户发出命令时,能够理解命令并立即做出相应的响应。它识别声音并使用 NLP 理解含义。然后,借助 Python 中出色的库,可以搜索查询并发送响应,这些响应随后通过文本转语音的方法转换为语音。这只需要片刻。不同的函数、库和方法使其成为一个快速的过程。

Python 中的语音助手

Python 提供了各种 API 和库,可帮助识别人的语音,并轻松创建语音助手。这些库包括:

1. Speech Recognition:Python 的 Speech Recognition 库用于识别人的语音。可以使用 pip 命令安装此库。

2. Pyttsx3:此库在 Python 中将文本转换为语音。我们可以在没有互联网连接的情况下使用此库。由于我们正在创建语音助手,因此需要将文本转换为语音。可以使用 pip 命令下载此库。

3. Requests:它通过发送 HTTP 请求帮助连接到网页。我们可以使用 pip 命令安装此库。

4. BeautifulSoup:Beautiful Soup 库用于从其他网页抓取数据。可以使用 pip 命令下载此库。

5. Pyjokes:此库用于获取互联网上可用的笑话集。可以使用 pip 命令下载此库。

6. Datetime:此库可用于获取日期和时间。它可以提供实时日期和时间。

7. Twilio:此库用于从用户的设备拨打电话和发送消息。我们可以使用 pip 命令安装 Twilio 模块。

8. Ecapture:我们可以使用此模块从系统的摄像头捕获图像。要安装此模块,我们可以使用 pip 命令。

9. WolframAlpha:此库非常有助于在极短的时间内使用 Wolfram 的算法搜索和解决高级查询。我们可以使用 pip 命令安装此库。

10. Subprocess:此模块有助于获取系统细节的子进程,这些细节可用于不同的命令,如休眠、关机等。

11. Web Browser:Web Browser 库用于完成网页搜索。

12. Tkinter:此库用于为语音助手创建界面。

13. Wikipedia:此库有助于搜索查询并从 Wikipedia 获取数据。我们可以使用 pip 命令安装此库。

现在,我们将使用 Python 实现并构建我们的语音助手。

Python 中语音助手的实现

第一步是在 Python 中导入所有必需的库。

我们导入了对 AI 语音助手有用的所有必需库。

现在,我们将为我们希望语音助手处理的每个命令创建不同的函数。

我们使用 Sapi5 引擎创建了 pyttsx3,它用于将文本转换为语音。Sapi5 是微软的语音应用程序平台接口。它用于识别人的声音。我们通过语音 ID 0 定义了语音类型。语音 ID 0 是男声。通过将语音 ID 设置为 1,我们可以将语音更改为女声。

现在,我们将处理那些将帮助我们的语音助手接收命令并做出相应响应的函数。

speak() 函数

此函数将从用户获取语音并响应查询。我们将能够通过 runAndWait() 函数听到我们的语音助手。

wish() 函数

wish() 函数用于向用户致意。它使用 datetime 库读取当前时间。使用不同的条件语句,我们检查当前时间,然后根据时间向用户致意。例如,如果当前时间是下午 5:50,语音助手将致意说:“晚上好!我是 Jack,您的语音助手,有什么可以帮您的吗?”

command() 函数

command() 函数用于从用户那里获取命令,并通过说出答案或解决方案来响应。

name() 函数

name() 函数用于获取用户的名字以便称呼用户。

assistant_name() 函数

此函数用于给助手命名。

现在,我们将为我们希望语音助手执行的任务创建不同的函数。

mail() 函数

我们创建了一个 mail() 函数,用于将邮件从发件人发送到收件人。它将获取发件人和收件人的电子邮件 ID。它将使用电子邮件 ID 和密码登录,然后将其发送给收件人。使用 try 块,它将检查邮件是否已发送给收件人;否则,它将抛出异常。

ask() 方法

ask() 函数由语音助手使用,用于在用户给出任何命令时完成任务。它将通过分析命令来做出相应的响应。

接下来,我们将创建主函数,并在其中调用必要的函数来激活语音助手。

现在是时候将所有函数编译在一起,启动我们的语音助手了,它将帮助您完成任务,并像朋友一样与您交谈。

输出

Good Afternoon !
I am Jack, your voice assistant, How may I assist you ?
Speak...
Trying to get your voice !

You Just Said :  rose
Welcome  rose
Speak...
Trying to get your voice !

You Just Said :  take my photo
Speak...
Trying to get your voice !

You Just Said :  how are you
Speak...
Trying to get your voice !

You Just Said :  what is your name
My name is Jack
Speak...
Trying to get your voice !

You Just Said :  are you free
Ofcourse, always free for you
Speak...
Trying to get your voice !

You Just Said :  Jack black
Good Afternoon !
I am Jack, your voice assistant, How may I assist you ?
Speak...
Trying to get your voice !

You Just Said :  make me laugh
An SEO expert walks into a bar, bars, pub, public house, Irish pub, tavern, bartender, beer, liquor, wine, alcohol, spirits...

Speak...
Trying to get your voice !

You Just Said :  tell me the time
It's  16: 55: 53