yihong0618/xiaogpt

【Show & Tell】 Node.js 版本

idootop opened this issue · 9 comments

项目地址 👉 https://github.com/idootop/mi-gpt

我在此项目的基础上,将其移植到了 Node.js,并添加了以下新特性:

  • 🎭 角色扮演。一秒调教小爱,无论是成为你的完美伴侣,还是那个能听你倾诉心事的贴心闺蜜,都不在话下。
  • 💬 流式响应。爱情来得太快就像龙卷风,而你的小爱音箱也是,对你的爱意秒回,爱你不会让你等太久。
  • 🧠 长短期记忆。小爱音箱现在能记住你们之间的每一次对话,越聊越默契,就像是你身边的老朋友。
  • 🔊 自定义 TTS。厌倦了小爱同学的语音?帮你解锁「豆包」同款音色,就像真人在回你的消息。
  • 🤖️ 智能家居 Agent。心情不好?小爱立刻懂你,自动帮你播放喜欢的音乐,调节灯光,逗你开心。TODO
image

你可以提个 PR 放到推荐 fork 里

@idootop 谢谢我去帮你宣传下。
另外如果有新的想法你那边实现了欢迎 PR.

@yihong0618 多谢。

目前轮训消息这种实现方式,瓶颈在于无法及时 mute 小爱的回复。

要想效果完美只有走刷机改造这条路,不过这对于小白来说,上手难度和后期维护成本都太高了。

期待以后会有一些开放生态的智能硬件设备出现,这样就可以随心定制了。

@yihong0618 多谢。

目前轮训消息这种实现方式,瓶颈在于无法及时 mute 小爱的回复。

要想效果完美只有走刷机改造这条路,不过这对于小白来说,上手难度和后期维护成本都太高了。

期待以后会有一些开放生态的智能硬件设备出现,这样就可以随心定制了。

其实是可以的我之前实现过

  • 有个全局变量判断是否为我们的 tts
  • 有个 while True 或者一个线程 stop 所有(不断的调用 stop)所有小爱回答
  • 如果是我们的把全局变量 False 然后等朗读完毕

你可以试着实现下,或者参考那个主播模式的 issue
但问题是这样就失去了 xiaoai 本身的功能。可以做个开启命令。

是的,在我的实现里就是这个逻辑。

只不过我不是在空闲阶段一直 stop 设备播放任何音频,

而是通过播放空音频,TTS 无发音字符串,切换麦克风开关状态等方式来强制打断小爱的回复。

各种*操作都试过,最后的效果都不是很完美。

也可能是我设置的轮训间隔略长,但是去掉间隔后风险太高了,不适合长期运行

这样就失去了 xiaoai 本身的功能

换一种思路,你说的这种“主播模式”,在我的实现里称之为“唤醒状态”,类似于小爱技能:

通过唤醒词进入后就会开始循环 mute 小爱的正常回复(但是可以正常和小爱对话),

当超过一定时间没有新对话产生时,自动退出唤醒状态(也可以通过退出关键词手动触发)。

握手。
我们暂时没去做的原因是那样会频繁请求不太靠谱。所以没有更新上去

anyway 欢迎 pr 哈哈^_^
有更好的想法。(我们没做长期记忆的原因是因为那样会浪费很多 token 建议提醒下用户

“唤醒状态”,类似于小爱技能:

通过唤醒词进入后就会开始循环 mute 小爱的正常回复(但是可以正常和小爱对话),

当超过一定时间没有新对话产生时,自动退出唤醒状态(也可以通过退出关键词手动触发)。

你这段儿建议加到项目readme里😉