作者耗时两天尝试为openclaw接入Omni模型以解决语音交互延迟过高(超30秒)的问题。插件方案因channel连接冲突导致系统离线;直接改源码则遭遇底层库pi-ai不支持OpenAI语音流且PR被拒。所有技术路径均被堵死后,作者反思:在AI生产力爆发时代,必须快速拥抱不确定性,否则可能因项目架构限制或维护者审核标准而错失机会。
AI时代下, 连拥抱不确定性都要快点拥抱
给大家说一下上周我浪费两天时间获得的失败经验. 我在之前的视频中做了好几个基于多模态模型的龙虾(openclaw) skill, 包括识别游戏(大菠萝2)里面的物品的背包管理器, 读书的时候给书拍照就能记录读书笔记的闪念等等.
这里面遇到的最大的问题是, openclaw 目前配置一下也支持语音输入和输出, 但是会需要 STT, TTS 问题, 啥意思呢? openclaw 原生不支持语音模态模型, 只能语音转文本(STT)输入给文本大模型, 然后文本大模型输出的文本再转语音(TTS)输出. 这两次转换及其耗时, 再加上龙虾本身上下文巨长, 导致从语音输入到龙虾语音跟你对话普遍都要30s以上.
那么有没有端到端的解决方案呢? 有的, 用omni模型, omni 模型支持文本, 音频, 图片, 视频输入, 然后支持文本和语音输出, 端到端模型最大的优点就是延迟低, 不需要转来转去, 一个模型能搞定一切.听上去先天就是为龙虾这类AI助手准备的对吧?
于是我上周抽了2天打算把这个事办了. 摆在我面前的有两条路, 一个是直接改龙虾代码, 另一个是写个龙虾插件, 把omni模型接进去, 显然第二个更快更省心, 我只需要写完了发布我的插件, 感兴趣的同学安装我的插件大家就能愉快的用了.
但是, 但是来了啊, 龙虾 channel (飞书,Discord,WhatsApp 等)都是有连接的, plugin 中的 omni 模型想要接收 channel 中的消息, 就要连接channel, 这一连接, 就把openclaw本身的连接顶掉了, openclaw直接离线. 然后openclaw也没复用自身channel的方法. 并且我浏览了openclaw的类似pr, 基本都被拒了, 因为作者认为client连接应该在channel层管理(架构上的确是合理的).