Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【Show & Tell】 Node.js 版本 #515

Closed
idootop opened this issue May 21, 2024 · 9 comments
Closed

【Show & Tell】 Node.js 版本 #515

idootop opened this issue May 21, 2024 · 9 comments

Comments

@idootop
Copy link
Contributor

idootop commented May 21, 2024

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

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

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

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

@yihong0618
Copy link
Owner

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

@idootop
Copy link
Contributor Author

idootop commented May 21, 2024

@yihong0618 多谢。

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

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

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

@yihong0618
Copy link
Owner

@yihong0618 多谢。

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

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

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

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

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

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

@idootop
Copy link
Contributor Author

idootop commented May 21, 2024

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

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

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

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

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

@idootop
Copy link
Contributor Author

idootop commented May 21, 2024

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

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

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

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

@yihong0618
Copy link
Owner

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

@yihong0618
Copy link
Owner

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

@shog86
Copy link

shog86 commented Jun 6, 2024

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

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

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants