×

AI Conversation Speaker aka Friend Bot:第1部分对话

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2023-06-13

杨勇

分享资料个

描述

Conversational Speaker,非正式地称为“Friend Bot”,使用 Raspberry Pi 实现与 OpenAI 大型语言模型的口头对话。此实现收听语音,通过 OpenAI 服务处理对话,并做出回应。

有关用于维护对话上下文的提示引擎的更多信息,请转到此处:python typescript dotnet

有关一般提示设计的更多信息,请查看 OpenAI 关于该主题的文档:https ://beta.openai.com/docs/guides/completion/prompt-design

本项目使用 .NET 6 编写,支持 Raspberry Pi OS、Linux、macOS 和 Windows。

构建时间:30分钟

阅读时间:15分钟

硬件:~$50

软件:

Azure 认知语音服务,免费层支持每月 5 个免费音频小时和 1 个并发请求(Azure 认知服务定价)。新的 Azure 帐户包含 200 美元的免费额度,可在前 30 天内使用。

  • OpenAI、Davinci 模型(最强大):0.02 美元/~750 个单词,Curie 模型(仍然相当不错,响应时间更快):0.002 美元/~750 个单词。新的 OpenAI 帐户包含 18 美元的免费信用额度,可在您的前 90 天内使用。更多详情:https ://openai.com/api/pricing/

设置

您将需要一个用于语音转文本和文本转语音的 Azure 认知服务实例,以及一个用于对话的 OpenAI 帐户。您几乎可以在任何平台上运行该软件,但让我们先从设置 Raspberry Pi 开始……

树莓派

如果您是 Raspberry Pis 的新手,现在是查看入门的好时机。

操作系统

1. 将 SD 卡插入您的 PC

2. 转到https://www.raspberrypi.com/software/然后下载并运行 Raspberry Pi Imager

3. 单击“选择操作系统”并选择默认的树莓派操作系统(32 位)。

4.点击`Choose Storage`,选择SD卡

5. 点击`Write`,等待镜像完成。

6. 将 SD 卡插入树莓派,连接键盘、鼠标和显示器。

7. 完成初始设置,确保配置 Wi-Fi。

USB 扬声器/麦克风

1. 如果您还没有插入 USB 扬声器/麦克风

2. 右键单击​​屏幕右上角的音量图标,确保选择了 USB 设备。

3. 右键单击​​屏幕右上角的麦克风图标,确保选择了 USB 设备。

蔚蓝

对话式演讲者使用 Azure 认知服务进行语音转文本和文本转语音。以下是创建 Azure 帐户和 Azure 认知服务实例的步骤。

创建一个 Azure 帐户(如果您还没有)

1. 在 Web 浏览器中,导航至https://aka.ms/friendbot/azure并单击Try Azure for Free

2. 单击Start Free开始创建免费的 Azure 帐户。

3. 使用您的 Microsoft 或 GitHub 帐户登录。

4. 登录后,系统会提示您输入一些信息。

5. 即使这是一个免费帐户,Azure 仍然需要信用卡信息。除非您稍后更改设置,否则不会向您收费。

6. 帐户设置完成后,导航至https://aka.ms/friendbot/azureportal。

创建 Azure 认知服务实例

1. 在https://aka.ms/friendbot/azureportal登录你的帐户。

2. 在顶部的搜索栏中,输入Cognitive Services并在下方Marketplace选择Cognitive Services(可能需要一些时间来填充)。

3. 确认选择了正确的订阅,然后在Resource Group选择下Create New输入资源组名称(例如conv-speak-rg

4. 为您的 Azure 认知服务实例选择区域和名称(例如my-conv-speak-cog-001)。我建议使用美国东部、西欧或东南亚,因为这些地区往往支持最多的功能。

5. 点击 ,Review + Create验证通过后点击Create

6. 部署完成后,您可以单击Go to resource以查看您的 Azure 认知服务资源。

7. 在左侧导航栏中,选择Keys and EndpointResource Management复制两个认知服务密钥中的任意一个并保存在安全位置以备后用。

Windows 11 用户:如果应用程序在调用文本到语音 API 时停滞,请确保您已应用所有当前安全更新(链接)。

开放人工智能

对话式演讲者使用 OpenAI 的模型进行友好对话。以下是创建新帐户和访问 AI 模型的步骤。

创建一个 OpenAI 帐户(如果您还没有)

1. 在网络浏览器中,导航至https://openai.com/api并单击“注册”

2. 您可以使用谷歌账户、微软账户或邮箱创建新账户。

3. 完成注册过程(例如,创建密码、验证您的电子邮件等)。如果您是 OpenAI 的新手,请查看使用指南 ( https://beta.openai.com/docs/usage-guidelines )。

4. 在右上角点击您的账户,然后点击View API keys

5. 单击+ Create new secret key,复制并保存在安全位置以备后用。

  • 如果您想直接使用大型语言模型,请查看页面顶部的“游乐场”。

代码

获取并配置代码。

1. 在 Raspberry Pi 或您的 PC 上,打开命令行终端

2.安装.NET 6 SDK

  • 对于树莓派和 Linux:
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel 6.0

安装完成后(可能需要几分钟),将 dotnet 添加到命令搜索路径

echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc
source ~/.bashrc

您可以通过检查版本来验证是否已成功安装 dotnet

dotnet --version

3. 克隆 repo 并签出适当的分支。

git clone --recursive --branch hackster-tutorial-1 https://github.com/microsoft/conversational-speaker.git

4. 设置您的 API 密钥,将 {MyCognitiveServicesKey} 替换为您的 Azure 认知服务密钥,将 {MyCognitiveServiceRegion} 替换为您的 Azure 认知服务区域(例如,EastUS),并将 {MyOpenAIKey} 替换为上述部分中的 OpenAI API 密钥。

cd ~/conversational-speaker/src/ConversationalSpeaker
dotnet user-secrets set "AzureCognitiveServices:Key" "{MyCognitiveServicesKey}"
dotnet user-secrets set "AzureCognitiveServices:Region" "{MyCognitiveServiceRegion}"
dotnet user-secrets set "OpenAI:Key" "{MyOpenAIKey}"

5. 构建并运行代码!

cd ~/conversational-speaker/src/ConversationalSpeaker
dotnet build
dotnet run

(可选)将应用程序设置为开机启动

Raspberry Pi 启动时有几种方法可以运行程序。下面是我的首选方法,它会在可见的终端窗口中自动运行应用程序。这使您不仅可以看到输出,还可以通过单击终端窗口并按 CTRL+C 来取消应用程序。

1.创建文件/etc/xdg/autostart/friendbot.desktop

sudo nano /etc/xdg/autostart/friendbot.desktop

2.将以下内容放入文件中

[Desktop Entry]
Exec=lxterminal --command "/bin/bash -c '~/.dotnet/dotnet run --project ~/conversational-speaker/src/ConversationalSpeaker; /bin/bash'"

按 CTRL+O 保存文件,按 CTRL+X 退出。这将在 Raspberry Pi 完成启动后在终端窗口中运行应用程序。

3. 要测试更改,您只需运行即可重新启动

reboot

怎么运行的

有关如何使用代码字的更多详细信息,请查看README

用法

  • 建议以“你好,我叫乔丹,住在华盛顿州雷德蒙德”开头来设置上下文。
  • 看看~/conversational-speaker/src/ConversationalSpeaker/configuration.json.
  • 更改 AI 的名称 ( PromptEngine:OutputPrefix),
  • 改变 AI 的声音 ( AzureCognitiveServices:SpeechSynthesisVoiceName)
  • 改变 AI 的性格 ( PromptEngine:Description)
  • 对于中短对话,提示引擎的当前状态通常保持稳定。然而,有时在较长的对话中,人工智能可能不仅会开始回应它自己的回应,还会回应它认为你接下来可能会说的话。

下次...

在下一个教程中,我们将向我们的会话扬声器添加唤醒阶段(例如“嘿,计算机”)。

玩得开心!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !