Read this in other languages: English, 简体中文
Petto是一款基于Live2DViewerEX的智能桌面助手。支持流式语音识别、自然语言和语音对话等功能
使用它来点缀你的桌宠吧!
每隔一定时间,桌宠将:
- 输出名人名言
- 根据当前天气气候、季节,以及你正在访问的窗口等信息,通过大语言模型输出问候语
- 根据当前时间,输出简单问候
此外,Petto还支持流式语音识别、TTS语音转文本、后台唤醒等功能,可以与桌宠进行语音交流!
- 英语
- 简体中文
- 下载Petto的Release包
- 解压到电脑的任意一个地方
- 确保你的Live2DViewerEX已经运行,然后打开解压后的petto.exe
- Done! 试试和你的桌宠对话吧!
你可以在主界面右上角的设置中详细配置Petto功能。
下面给出部分设置项的说明
Petto支持符合OpenAI用法的语言模型API。
Petto默认配置了一个公用的语言模型:https://api.cups.moe/api/chat ,该模型基于Duck2api项目部署。
不过由于Duckduckgo官方限制,该模型短期内请求次数过多会暂时无法响应。请考虑使用自己的API或在本机上自行部署语言模型。
你可以自己设置角色的名字、设定、称呼等信息。
根据你正在使用的桌宠角色来编写符合你期望的角色设定吧!
LLM的回复将会受到消息示例的影响。
该设置用于给模型提供参考。如果你觉得LLM的回应不符合你的预期,你可以试着编写一段简单的消息示例传递给LLM。
如果没有特殊情况,保持默认值即可。
必填项目,用于与Live2DViewerEX进行通信。
必填项目,用于指定Petto使用的Live2D模型序号。其值为(Live2DViewerEX中显示的模型编号-1)。例如,在下图的情况下选择的模型,其序号为0。
该指令可以用于在本机上启动语言模型和语音识别模型。
Petto已经提供了参考用的startmodel.ps1和startserver.ps1,可以在本机上启动RWKV模型和基于MASR的语音识别模型。后文将提供更详细的信息。
Petto允许这两个脚本输出一个pid用于管理该进程。当Petto退出时,会自动地杀死该进程,避免占用资源。
该指令用于指定获取窗口信息的方式,请注意潜在的隐私安全问题。
默认为窗口名称获取,此时Petto将把当前窗口的标题作为信息传递给语言模型。
需要注意的是,如果您把“获取窗口信息命令”设置为空,无论选择任何模式,Petto都将不会获取任何窗口信息。
Petto默认提供了getwindowname.ps1
和getscreenshot.ps1
两种获取脚本,前者获取窗口名称,后者获取窗口截图。
对于Windows用户,如果您将选项修改为截图获取,您需要把“获取窗口信息命令”中的getwindowname.ps1
修改为getscreenshot.ps1
。
默认提供的脚本仅支持Windows,如果您使用macOS,您需要自行编写获取窗口信息的脚本,并修改“获取窗口信息命令”的值。
如果识别地址留空,将使用后面的Whisper识别模式。
后台识别服务会一直保持录音状态,并将语音内容回传至设置的识别地址。请注意潜在的隐私安全问题。
目前,流式识别必须使用兼容MASR的服务端识别项目的接口。
项目默认配置了一个公用的流式识别:wss://api.cups.moe/api/asr/
服务器性能一般,请轻拿轻放 :) 用得太猛我服务器可能会崩。
建议参考后文的教程自行部署MASR服务,或者使用whisper模式。
启用后台流式识别后,Petto在后台会一直运行流式识别功能。当检测到任何一个包含后台唤醒关键词的语音时,桌宠会向你发送消息并示意你与它对话:
用户:帮帮我
桌宠:主人,有什么需要我帮忙的呢?请告诉我哦~
随后,Petto会自动地开启十秒钟的录音识别,你可以与桌宠交流,录音识别结束后,桌宠将给出回复。
与流式识别不同。Whisper识别模式必须先完整录音才能得到最后的文本,这主要影响后台识别的速度。
Petto支持符合OpenAI用法的Whisper API。
如果没有特殊情况,保持默认值即可。
填写请求一言的API地址。
Petto支持符合OpenAI用法的TTS API。
虽然默认不会填入TTS信息,但我们实际上也提供了一个即开即用的TTS服务:
TTS地址:https://api.cups.moe/api/tts/
TTS Key: ecWdn$TJ&ktP#89
该服务基于openai-edge-tts部署
设置角色动作分组。角色在每次触发任务时也会自动触发动作
在Live2DViewerEX中,选中你使用的模型,点击右上角自定义按钮,可以看到一系列动作分组。
- (可选)在设置中,勾选“启动时隐藏窗口”
- 按Win+R键,输入shell:startup。创建一个petto.exe的快捷方式并放入该文件夹中
请检查下面的两个文件:
- data\flutter_assets\scripts\startmodel.ps1
- data\flutter_assets\scripts\startserver.ps1
他们分别对应了启动RWKV模型的脚本和启动本地流式语音识别服务的脚本
你也可以自行修改startmodel.ps1中的内容,以启动你自己的模型。
为了启动RWKV模型,你需要:
- 下载RWKV Runner,并根据提示配置好环境。
- 随后,下载RWKV的模型并放置到RWKV Runner目录下的models/目录下。
- 调整startmodel.ps1中的内容:
cd
命令后跟RWKV Runner的目录路径,RWKV-x060-World-3B-v2.1-20240417-ctx4096.pth
修改为实际下载的文件名称。 - 在Petto设置中,将“预执行语言模型指令”开头的
#
删除,随后重启Petto。
下文提供的模型仅训练了中文语料。你可以手动训练支持更多语言、准确率更高的模型;或者使用预训练好的模型或Whisper接口进行语音识别。
为了启动本地流式语音识别服务,请进入data\flutter_assets\speech\models目录,并且:
- 创建名为
conformer_streaming_fbank
的目录,并下载inference.pt到里面。 - 进入
pun_models
目录,并下载model.pdiparams到里面。 - 在Petto设置中,将“预执行语音模型指令”开头的
#
删除,随后重启Petto。
- 支持更多语言
- macOS支持
- 添加语音认证
- 优化UI界面