如果想要一个类似版本的 Android 智能手表,查看我的另一个仓库 GPT-Assistants-Interlink。此项目利用了 OpenAI 的助手 API。
gpt-voice-conversation-chatbot (GPT-VCC)(前称 GPT3-STTC)
(为旧的完成引擎制作并改造为适用于 ChatGPT。不如现代技术好。继续寻找。)
这是一个允许您使用麦克风与 ChatGPT 或 GPT-4 进行引人入胜且安全的情感语音对话的机器人。如果您更喜欢打字而不是说话,您也可以通过终端与机器人对话。
该工具使用了修改后的 GPT 聊天预设,处理保持会话跟踪,并默认使用 ChatGPT 的 API。您可以告诉 GPT 一些事情,它会在会话期间记住您说的内容,如果您愿意,机器人还可以随着时间的推移发展您的记忆。尽管基于 GPT 最大令牌数量的限制,GPT-VCC 仍应能够在不失去对话意识的情况下与您进行长时间的对话。要使用此工具,您需要有效的 OpenAI API 密钥。
该机器人需要 OpenAI 的调节和 GPT API 正常工作而没有太多延迟。您可以在此处找到状态:https://status.openai.com/
发布版本应该是稳定的,按照之前的测试情况来看,但不会包含所有最新特性。如果您希望拥有这里列出的所有功能,请克隆仓库并不时运行 'git pull'。这将让您随着新功能和错误修复的到来而获得最新版本,但它可能不稳定。
(注意:wiseTech 是我的机器人实例为自己选择的名字)
安装
首先,您需要一个 OpenAI API 密钥。您可以在此创建帐户以获取 API 密钥:https://openai.com/api/。
登录后,点击右上角“Personal”旁的圆圈。然后点击“View API keys”。
点击“Create new secret key”,然后保存该密钥。这是您运行 GPT-VCC 所需的密钥。将其按以下方式粘贴到 keys txt 文件中:
OpenAI_Key={请在此粘贴,不要包含括号}
转到屏幕左侧的“Billing”选项卡。当您用完免费额度后,开始付款计划以继续使用 GPT-VCC。
Windows
-
下载 Python:https://www.python.org/
-
下载此仓库,可以通过发布版本,git 克隆仓库,或者点击右上角的代码按钮并选择“Download ZIP”。
-
解压内容,然后移动到包含文件的文件夹中。
-
如果已安装 Windows Terminal,右键单击文件夹的空白部分并选择“Open in Terminal”。否则,使用 Win + R 并输入 powershell。当您处于终端窗口并在适当的目录中时,使用“pip install -r requirements.txt --upgrade”。如果成功完成,获得 OpenAI API 密钥后,您应该可以立即使用。
-
按照下面列出的步骤使用 GPT-VCC
Linux (基于 Debian / Ubuntu)
-
安装 pip3
sudo apt install python3-pip
-
下载此仓库,可以通过发布版本,git 克隆仓库,或者点击右上角的代码按钮并选择“Download ZIP”。
-
解压文件,进入目录,打开 requirements.txt,并从文件中删除 pyaudio==0.2.13。使其看起来从未存在过,同时保留原格式。
-
使用以下命令通过 apt 下载 pyaudio:
sudo apt install python3-pyaudio
-
使用以下命令通过 apt 下载 espeak(接口通信所需):
sudo apt install espeak
-
使用以下命令通过 pip 下载其他要求:
pip3 install -r requirements.txt --upgrade
-
按照下面列出的步骤使用 GPT-VCC
使用 GPT-VCC
要使用此聊天机器人,在导航到机器人的文件夹后输入以下命令(将
python main.py <key>
为了方便起见,您也可以将密钥直接输入到 keys.txt 文件中。运行脚本时,机器人将自动读取该文件并加载密钥。
一个 Pygame 界面将弹出;其颜色代表机器人的状态。红色表示机器人不在听。按下空格键让机器人听你说话。颜色将变黄色表示加载中,然后变绿色表示正在听。在绿色时自由讲话,您的语音将被记录并转化为文本,如果符合 OpenAI 的政策,将被传递给 GPT。当 GPT 准备好回复时,屏幕将变蓝。
如果您希望使用终端,请使用相同语法运行 gptcli.py(有密钥文件也适用):
python gptcli.py <key>
如果您希望使用 ElevenLabs TTS,在您的 OpenAI API 密钥后输入您的个人 ElevenLabs API 密钥,或在密钥文件中填写密钥:
python main.py <OpenAI key> <ElevenLabs TTS key>
如果您不想使用高级 TTS,此机器人将自动使用 Google 的 TTS。
内容审核
该审核工具使用了 OpenAI 的审核工具和 NLTK 的结合。他们希望能够阻止超出 OpenAI 使用政策的 GPT 使用。 这并不是一个完美的方法,所以请对您给 GPT 的内容持谨慎态度。
请注意,审核 API 的中断或延迟问题将阻止您使用此聊天机器人。如果在 OpenAI 遇到问题时必须与机器人交谈,请编辑 chatbot.py 文件以排除 "not self.flagged_by_openai(text)" 这一条件。不推荐这样做。
克隆/替代 ElevenLabs 语音
如果您希望使用替代语音,可以在启动程序时传递一个参数来实现。将来计划推出更全面的方法。目前,您需要知道您想要使用的语音 ID(可以在 这里 找到基本语音 ID 列表)。一旦知道该 ID,请按照以下示例使用示例 ID "21m00Tcm4TlvDq8ikWAM" 对于 Rachel:
python main.py --voice_id 21m00Tcm4TlvDq8ikWAM
要使用克隆语音,请按以下步骤操作:
-
前往 https://beta.elevenlabs.io/voice-lab 并创建自定义语音。
-
一旦完成语音克隆,转至 https://api.elevenlabs.io/docs#/voices/Get_voices_v1_voices_get 。
-
点击“Try It Out”,将您的 API 密钥输入到框中,然后点击“Execute”。
-
在执行按钮下方,您将看到一个标有“Response body”的框。向下滚动直到找到您命名的语音。获取其上方的 "voice_id",并按照上面的示例使用。
控制
键盘
-
空格键:这开始和停止记录。无论您说什么,都将在您第二次按空格键后被转录并发送给 GPT(如果通过筛选器)。
-
ESC:退出而不记忆。
-
Q:退出并让机器人记住您的详细信息和对话(数据保存在名为 memories.txt 的文本文档中)
-
P:这是一个弃用命令取消消息。现在只需在录音时说“请取消消息”即可取消。
语音命令
-
说“请将令牌设置为 #”:当机器人识别到此短语时,它会尝试将回复的 max_tokens 设置为您指定的值。
-
说“像机器人一样说话”:这将使 GPT 的所有回复都通过离线工作的机器人 TTS 程序来朗读。在 CLI 模式下,输入 'robospeak()' 来切换此模式。
-
说“停止像机器人一样说话”:这将恢复机器人的 TTS 为您之前的设置(无论是 Google 还是 ElevenLabs TTS)。在 CLI 模式下,输入 '!robospeak()' 来切换此模式。
-
说“请显示对话”:这将在终端窗口中输出您的整个对话。
-
说“请显示记忆”:这将输出所有保存到长期存储的记忆。
-
说“请恢复记忆”:这将尝试通过合并长期存储中的一些记忆来修复机器人的工作记忆。
-
说“请将预设设置为”:这将为机器人设置预设(每次对话开始时提供给 AI 的文本字符串)。例如,预设“像海盗一样说话”使 AI 像海盗一样说话。您可以在此处找到示例预设:https://github.com/Adri6336/gpt-voice-conversation-chatbot/wiki/Example-Presets。
-
说“请重设预设”:这将删除您创建的预设。
-
说“请将名字设为”:这将机器人名称设置为您指定的任何名称,只要它符合 OpenAI 的使用政策。设置名称后,机器人会以您设置的名称自称。
-
说“请切换 gpt4”:这将在 ChatGPT 和 GPT-4 模型之间切换。启动时,您的开关将被保留。在 CLI 模式下,输入 '!gpt4()' 切换模型。
-
说“请将创意设置为”:这将机器人的默认随机数设置为您指定的值,范围在 1 到 15 之间(曾经是 9)。在 CLI 模式下,使用 '!creativity(#)',其中 # 号是 0.01 到 1.5 之间的值。
-
说“请列出命令”:这将让机器人为您列出可用命令。
-
说“请切换十一实验室”:这将切换机器人的 ElevenLabs TTS 用与不用。在 CLI 模式下,使用 !11ai() 切换它。
-
说“请取消消息”:这将取消消息,防止其发送给 GPT。
特性
-
与 ChatGPT 或 GPT-4 有个性化的对话
-
带有 Google 的 TTS 工具的 GPT 语音回复(如果可以,将准确发音),使用 ElevenLab 逼真的 TTS(如果您有有效的 API 密钥),或作为机器人(说“像机器人一样说话”激活)
-
使用 Google 的语音识别技术与 GPT 大声对话
-
如果使用 'Q' 键关闭,机器人会记住关于您的事情
-
在终端窗口中查看 GPT 的回复。大多数 UTF-32 字符(如中文和阿拉伯文本)也会被打印出来
-
自动将对话保存到磁盘上的文件帮助您跟踪谈过的内容
-
保存自定义预设,为您和您的需求提供更好的体验
-
自定义机器人的名称
-
自定义机器人的创意
-
通过终端与 GPT 聊天(Windows 和 Linux)
示例用例
-
与机器人进行娱乐性对话
-
通过将预设设置为以该语言像教师一样与你交谈,使用机器人练习语言,并使用 Google 的 TTS 以正确的发音听取回复。如果您愿意,也可以坚持使用 ElevenLabs 的多语言语音
-
通过请求问题并获得代码反馈让机器人帮助您练习编程
-
问机器人有关各种事情的问题
-
请求机器人帮助您写求职信和描述
gptcli.py 示例视频
ElevenLabs 语音演示
Google TTS 西班牙语演示