<返回更多

使用GPT和Whisper打造个性化语音助手

2023-06-16  51CTO  
加入收藏

译者 | 朱先忠

简介

本文旨在指导您创建一个简单而强大的语音助手,以满足您的喜好。我们将使用两个强大的工具——Whisper和GPT来实现这一点。你可能已经知道GPT及其功能,但你知道Whisper是什么吗?

其实,Whisper是AI target=_blank class=infotextkey>OpenAI公司开发的一种高级语音识别模型,可提供准确的音频到文本转录。

我们将带您完成示例工程构建的每一步,包括编码说明。最后,您将拥有一款可启动并正常运行的语音助手。

准备工作

打开AI API密钥

如果你已经有了OpenAI API密钥,你可以跳过这一节。

Whisper和GPT API都需要访问OpenAI API密钥。与ChatGPT的订阅需要支持固定费用不同,API密钥是根据您使用服务的数量进行支付的。

价格还算是比较合理的。在撰写本文时,Whisper的价格为0.006美元/分钟,GPT(模型为GPT-3.5-turbo)的价格为0.002/1K代币(代币约为0.75个单词)。

OpenAI的网站(作者自己的图片)

要获取密钥,请首先在OpenAI网站上创建一个帐户。登录后,单击右上角的姓名并选择查看API密钥。单击按钮“创建新密钥(Create new secret key)”后,将显示您的密钥。请确保保存此密钥,因为您将无法再次看到它。

示例工程依赖的第三方库

本小节介绍项目所需的开源代码库。本文示例项目包括使用OpenAI开发的Python/ target=_blank class=infotextkey>Python库执行各种AI任务,以及使用pyttsx3生成语音,使用SoundDevice录制和播放音频,使用numpy和scipy进行数学运算等。和往常一样,在启动新项目时,您应该在安装包之前创建一个新的虚拟环境。

示例工程代码结构

我们的代码将围绕一个类构建,总共占用大约90行代码。在此,假设您对Python类语法知识已经有了基本的理解。整个类结构如下:

其中,Listen方法负责捕获用户的语音输入,并使用Whisper将其转换为文本。Think方法负责将文本发送到GPT,然后由GPT生成自然语言响应。speak方法负责将响应文本转换为可播放的音频。

注意:上图中最右边代表系统中的GPT助理部分(负责给出自然语言响应)。

下面这个过程是可以重复执行的,即用户可以通过发出另一个请求在对话中进行交互。

示例类对应的代码结构(作者自己的图片)

__init__函数

此函数负责初始化历史记录和设置API密钥。

我们需要一个历史记录来跟踪以前的消息。这基本上对应于我们助理的短期记忆,可以让它记住你在谈话中早些时候说的话。

listen函数

listen函数工作流程

这个方法相当于我们助理的耳朵功能。

listen函数允许接收来自用户的输入。此函数负责记录麦克风中的音频并将其转录为文本。

listen函数的具体作用如下:

在本例中,助理的监听时长为3秒钟,但您可以根据需要更改时间。

think函数

think函数工作流程

其实,我们系统中助理的大脑是由GPT驱动的。think函数负责接收助理听到的内容,并详细阐述回应内容。

值得注意的是,响应内容不是在您的本地计算机上创建的。文本需要发送到OpenAI的服务器,以便通过API进行处理。然后,响应内容被保存在响应变量中,用户消息和响应都被添加到历史记录中,即助手的短期记忆,负责为GPT模型提供上下文以生成响应。

speak函数

speak函数工作流程

speak函数负责将文本转换为语音,并将其回放给用户。此函数只接受一个参数:text。此参数应该是一个字符串,表示要转换为语音的文本。

当用文本字符串作为参数调用函数时,它会用命令engine=pyttsx3.init()初始化pyttsx3语音引擎。这个对象是引擎用来将文本转换为语音的主要接口。

然后,该函数指示语音引擎使用命令引擎将提供的文本转换为语音。这会将提供的要speak(由引擎读出)的文本排队。命令engine.runAndWait则负责告诉引擎处理排队的命令。

值得注意的是,Pyttsx3是在本地处理所有文本到语音的转换,这在系统的延迟方面是一个显著的优势。

最后的润色

到此,系统中助理部分已经准备好了。接下来,我们只需要创建一个辅助对象,然后开始对话。

对话是一个无限循环,当用户说出包含“Goodbye(再见)”的句子时,对话就结束了。

个性化体验技巧

总体来看,自定义GPT助手是轻而易举的事情!我们构建的代码是极具模块化的,它允许您通过添加各种功能进行自定义。以下是一些帮助您进行定制的参考想法:

结论

在本文中,我们解释了如何检索OpenAI API密钥,并提供了用于捕获用户输入、生成响应以及将文本转换为语音以进行播放的listen、think和speak等函数的代码示例。

有了这些知识,您可以开始创建一款适合您自己特定需求的独特语音助手。总之,存在无限的可能性:从创建一个个人助理来帮助完成日常任务,到构建一个语音控制的自动化系统……有关本文示例的所有代码,您可以访问链接的Github存储库。

译者介绍

朱先忠,51CTO社区编辑,51CTO专家博客、讲师,潍坊一所高校计算机教师,自由编程界老兵一枚。

原文标题:Creating Your Personalized Voice Assistant with GPT and Whisper,作者:Donato Riccio

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>