喵星工程师:机器猫的制造日志

背景介绍

这是一个关于我、我的忧郁猫咪和一台机器猫的故事。是的,你没有听错。我的猫,那位沙发上的小皇帝,最近一直在上演它的“悲伤大戏”。每天除了睡觉就是睡觉,偶尔睁开眼就是演绎一副“你们这些凡人怎能理解我的忧伤”的表情。我作为一名自诩敏感而细心的猫奴,自然不能坐视不管,我决定要用科技的力量,为它打造一个既能陪它聊天又能当家庭管家的机器猫伴侣。

于是,以下是我给未来的机器猫伴侣设定的目标:

  1. 健谈的小伙伴:它必须能与我家猫咪进行天马行空的语音对话,至少要让它觉得比沙发靠垫更有趣。
  2. 随呼随到:拥有智能唤醒功能,但也会在无人问津时懂得自行去角落充电。
  3. 自由行者:能在家中自由穿行,不时给猫咪一个惊喜,或者偶尔一起参与捉迷藏。
  4. 智慧管家:能够控制家中的智能设备,或许偶尔还能为我们调个灯光,营造个浪漫氛围。

好了,让我们来看看我如何一步步将这个看似疯狂的想法变为现实吧!话不多说,下面是初步的成果

手把手打造机器猫

机器猫设计图

欢迎来到机器猫的神奇设计图,这不是一般的设计图,而是它成为超级猫的秘密武器!

信息输入 —— 猫耳朵升级包

不要以为这只机器猫只能听听你的抱怨和夸奖哦!它的耳朵可是升级版,能理解语音、图像等各种信息,还能和大语言模型(LLM)来个深度互动。对于那些“喵喵喵”的密语,它都会通过先进的语音识别转换成文字,没错,它学会了猫语翻译!当然我们还没有支持猫语识别,所以先让它学会跟人进行交流。

信息处理 —— 猫脑超频运转

想知道机器猫的大脑如何运作吗?它的大脑(也就是大语言模型)是逻辑推理的大师,不仅能够进行自由对话,还能操控家中的各种设备。机器猫的每一次“喵呜”都是它自由发挥的创意,不需要我们去编写繁复的逻辑。简而言之,这是一只有“灵魂”的高科技猫猫!

信息输出 —— 喵星语言转换器

不仅如此,机器猫还可以将文字转换为语音,进行流畅的对话。它能将大模型的回复内容解析出来,调动它的小轮子四处溜达,控制摄像头像侦探一样四处张望,甚至还能在屏幕上变换各种表情,仿佛在说:“看我的眼神行动!”后续还会加入更多让你大呼过瘾的交互能力哦。

记忆 —— 猫咪日记本

最后,但绝不是最不重要的,是记忆功能。每一次的互动和对话,机器猫都会认真记下来,就像它的小日记一样。这样在未来的聊天中,它可以引用这些“回忆”,给互动增添更多乐趣。

硬件部分 —— 猫车的心脏和四肢

欢迎来到我那不平凡的工程师生活——今天,我们将揭秘如何为机器猫打造一辆豪华小车!

一切的开始都是一场淘宝奇遇记,我购入了一个机器人小车套件,就像乐高一样,每一块都充满了乐趣。让我们来看看都有哪些玩意儿:

微型计算机模块:选用的是树莓派 4B型号,4GB内存版的大脑,确保机器猫的智商在线。它还通过GPIO拓展板与外界万物沟通,无比灵活。

麦卡姆轮与发动机:整整四个!这样机器猫小车就能像蟑螂一样四处乱窜,没有任何方向的限制。

USB摄像头:安装在自由度极高的舵机上,机器猫能自由地转动它的“头”,监控家中动态,毕竟猫的好奇心嘛。

红外避障器:遇到障碍物也不怕,红外避障器能让它像有第六感一样避开障碍,聪明又机灵。

蓄电源与电压表:底部藏着的蓄电源保证了长时间的勤勉工作,电压表则时刻提醒着“我快没电了,主人!”

升级版音响设备:原装的扬声器音质让人抓狂,我毅然决然地换上了USB声卡,确保每一次“喵呜”都清晰悦耳。

软件部分 —— 猫的大脑升级计划

在淘宝奇趣之旅之后,我手头有了一堆高科技玩意,现在是时候给这些硬件装上大脑了!感谢淘宝商家提供的Python工具包,我这个猫奴不用夜以继日地写驱动程序。我的主要任务是,在这些硬件能力的基础上,搭建一个基于大语言模型的机器猫大脑。

代码揭秘:

想偷窥一下我是怎样制造智能生命的吗?请戳这里:我的机器猫代码库。目前这只机器猫的灵魂还寄居在我的私人仓库里,准备在未来某一天大放异彩。当然,如果你现在就迫不及待,可以私信我,我可能会考虑给你一睹为快哦!

接下来,就让我们来深入探讨这只未来科技之猫的内部构造吧!

文本对话 —— 选择大语言模型,就像选宠物食品一样重要

在制造一只能说会道的机器猫之旅中,时间就是罐头鱼,我可没那个耐心自己从头训练一个大语言模型,毕竟谁不喜欢快餐呢?因此,我打算直接采用市面上成熟的大语言模型接口,迅速让我的机器猫开口说“喵”。

在众多的算法提供商中,我像选宠物食品一样挑剔。百度文心一言、MiniMax, GPT-4……最终,我选择了百度的文心一言。为什么呢?因为文心就像那个性价比超高的猫粮品牌,国内市场领导者,价格亲民,还不用担心网络的翻墙问题。最近,文心还推出了4.0版本,效果不错,值得一试!

关于LLM的SDK —— 选择轻便的武器:

原本考虑了使用Langchain之类的LLM SDK方案,但看了官方文档后,我发现这就像是给猫穿上了一身华丽却复杂的盔甲。为了后期维护的轻松和灵活,我最终选择了文心提供的Ernie Bot SDK。它简单、直接、易用,能够便捷地调用大语言模型的各种能力,包括文字对话,函数调用,甚至文生图等等。总之,这就是我需要的简单有效的工具!

以下是Ernie Bot SDK官方提供的文本对话的接口

import erniebot

# List supported models
models = erniebot.Model.list()

print(models)
# ernie-bot             文心一言模型(ernie-bot)
# ernie-bot-turbo       文心一言模型(ernie-bot-turbo)
# ernie-bot-4           文心一言模型(ernie-bot-4)
# ernie-bot-8k          文心一言模型(ernie-bot-8k)
# ernie-text-embedding  文心百中语义模型
# ernie-vilg-v2         文心一格模型

# Set authentication params
erniebot.api_type = 'aistudio'
erniebot.access_token = '<access-token-for-aistudio>'

# Create a chat completion
response = erniebot.ChatCompletion.create(model='ernie-bot', messages=[{'role': 'user', 'content': "你好,请介绍下你自己"}])

print(response.get_result())

参考资料

函数调用 —— 当猫咪成了指挥官

想让你的机器猫在室内四处巡游,就像海军上将指挥舰队一样吗?那你得给它赋予一些特别的力量——通过LLM来控制各种外接设备。想象一下,只需一句话,机器猫就能自主前进、后退,这不就像拥有了超能力一样吗?

现在,让我介绍一下背后的魔法原理。如果你对魔法感兴趣,可以深入了解一下这篇文章:Chat Completion 模型的 Function Calling 功能实战。它挺有意思的,你知道吗?我们是通过自然语言编写与LLM交互的函数——没错,就是我们平时说的话那样的语言。实现方式是通过描述函数的参数和功能,然后让LLM按照指定的格式回答。我们再解析LLM的回答,就知道它想要调用什么函数,用什么参数了。然后,把函数执行的结果反馈给LLM,让它根据结果进一步判断下一步的动作。

简而言之,这就像是教会了机器猫用猫语来进行高级的对话与指挥,将它的聪明才智发挥到极致!

Ernie Bot SDK也支持函数调用功能,详情参考这篇文章 函数调用(Function Calling),以下是我写的一个控制机器人移动的函数定义内容:

    "control_robot_action": {
        "implementation": control_robot_action,
        "documentation": {
            'name': 'control_robot_action',
            'description': "控制机器人的移动",
            'parameters': {
                'type': 'object',
                'properties': {
                    'action': {
                        'type': 'string',
                        'description': "动作类型",
                        'enum': [
                            '前进',
                            '后退',
                            '左转',
                            '右转',
                            '左移',
                            '右移',
                            '前左斜',
                            '后右斜',
                            '前右斜',
                            '后左斜',
                        ],
                    },
                },
                'required': [
                    'action',
                ],
            },
            'responses': {
                'type': 'object',
                'properties': {
                    'is_successful': {
                        'type': 'boolean',
                        'description': "机器是否成功执行动作",
                    },
                },
            },
        },
    }

文本语音互转 —— 让猫咪学会聊天

要实现和机器猫的畅快深聊,我们得给它装上一套文本语音互转的神奇装置!好在,百度文心一言的大哥大姐们已经准备好了一整套语音技术 AipSpeech 供我选择。

语音转文字

首先,我们用PyAudio工具包从麦克风抓取每一丝细微的“喵”,然后通过百度语音接口变成文字。记得,AipSpeech对于麦克风的sample rate有点挑剔,只喜欢8kHz或16kHz。所以,如果你的麦克风是那种高贵的44.1kHz类型,记得先转换一下频率,不然它可听不懂。

文字转语音

然后,是时候把文字变回语音了。通过AipSpeech的接口,我们可以把任何文本变成悦耳的语音。你还可以根据心情调节语音的音色、速度、音量,让机器猫说话听起来温柔或者霸气侧漏!不过,百度的声音库有点小,如果你想让机器猫更加生动有趣,或者带着情感地说话,那可能要找其他高端平台支援了,比如Whisper APIElevenLabs,让机器猫声音更加丰富多彩。

参考资料

语音唤醒 —— 给机器猫装个小闹钟

想象一下,你轻轻地说出口令,你的机器猫就从梦中惊醒,准备服役——是的,我们需要给它一个省电又高效的语音唤醒功能!它需要具备以下能力:

  1. 关键词就是口令

我们需要的是一个机灵的关键词识别系统,就像iPhone的“Hey Siri”或小米音箱的“小爱同学”,一句话,机器猫就能从睡梦中跳起来!

  1. 离线也能运行

为了避免一直在线,把电费跑高,还有保护点隐私,我们需要让这个唤醒系统能在离线时也一直保持警觉,但不是那种费电的警觉。

  1. 速度要快

当然,我们不希望喊了半天“喵星人,启动!”它还在那打瞌睡。速度是关键,确保它能迅速地响应你的召唤。

雪中送炭的Snowboy

通过一番深入的调研,我发现了Snowboy——一种可以训练自己的语音唤醒关键词的便捷工具。它的官方GitHub和模型训练教程都非常友好,基本上能实现一个简单可用的语音唤醒功能。但是,效果怎么样呢?

为了更好的唤醒效果

如果你觉得它还不够灵敏或者有点过敏,可以尝试以下方法:

  1. 找一个图书馆级别的安静环境。
  2. 在训练模型时多收集一些数据,多听听这个世界的声音。
  3. 尽量用同一款麦克风进行训练和测试,毕竟每个麦克风都有自己的个性。

我的个人感受

坦白说,Snowboy就像是一只刚睡醒的猫,有时候反应慢半拍,有时候又对一点小动静敏感异常。它的官方已经停止维护,没有人支持,也不开源,所以遇到问题有点难以解决。因此,我在考虑是否自己动手,丰衣足食,打造一个基于CNN的唤醒词检测模型。如果大家有好的建议或者想要加入这场科技冒险,欢迎联系我!

参考资料

  • snowboy

智能家居控制 —— 打造一个全能的机器猫管家:

想象一下,你的机器猫不仅能陪你聊天、散步,还能帮你控制家里的智能窗帘、台灯、电视等等,是不是很科幻?为了实现这个梦想,我决定让我的机器猫深入小米智能家居的世界。

小米智能家居的开放协议

幸好,我的家中的智能设备都是小米的,而小米的智能家居协议是开放的——这简直就像是找到了猫咪的秘密通道!通过研究Mi Home Binary Protocol,我可以了解各种智能家居设备的接口,设计出相应的控制工具。

python-miio:猫咪的新玩具

更好的是,有个叫做python-miio的工具,它已经封装好了控制小米智能家居的功能,就像是给机器猫准备好的遥控器,轻轻松松就能让家居设备听从它的指令。

参考下面列举的教程,大家可以比较方便写出控制智能家居的代码。首先需要使用 Xiaomi Cloud Tokens Extractor,获取到小米账号下所有的智能家居的访问ip和鉴权token,然后就可以用下面的命令控制各种设备了,以下是举例

# 控制打开窗帘
miiocli curtainmiot --ip 192.168.7.70 --token 45154e1bac2c02a1be9e681df set_motor_control open
# 控制关闭窗帘
miiocli curtainmiot --ip 192.168.7.70 --token 45154e1bac2c02a1be9e681df set_motor_control close


# 控制打开台灯
miiocli yeelight --ip 192.168.7.69 --token 444964de0bf155ef53ba8adsasdfa on
# 控制关闭台灯
miiocli yeelight --ip 192.168.7.69 --token 444964de0bf155ef53ba8adsasdfa off

参考资料

后续的优化

一. 喵星人的视界大升级: 给猫咪装上慧眼

虽然未来的机器猫已经初见雏形了,但作为一个追求完美的猫奴兼科技爱好者,我自然不会满足于此。接下来,我计划给我的机器猫一双“慧眼”,让它不只是一个聊天高手,还能成为观察世界的小能手。

一副眼睛,看尽世界的万紫千红

当前,我的机器猫还是个“瞎子”,没有视觉输入,只能靠听觉和想象。我打算利用它的摄像头,让它拥有观察世界的能力,并且能进行互动和反馈。

支持人脸识别

想象一下,当我出现在它面前,它不仅能认出我,还能聊起我感兴趣的话题,或者根据不同的人调整话题内容。这不仅仅是识别,这是真正的社交!

支持通用的视觉理解能力

当我打扮得帅气亮相时,我希望机器猫能给我点评,甚至提供穿搭建议。想想看,一个有品味的机器猫,是不是很酷?

二. 机器猫语音升级计划:从喵星人到沟通专家

为了让机器猫从一个普通的聊天伙伴变成沟通专家,以下是我打算做的几个升级:

1.响应速度提升

问题描述:目前,每次聊天似乎都像在和树懒交流,需要等待大约10秒才能得到回应。这主要是因为文字语音互转、云端大模型推理、函数调用等步骤都需要时间。

解决方案:如果能够整个流程使用流式并行处理,就像让机器猫喝了一瓶能量饮料,响应速度肯定能大幅度提升。

2.更灵敏的语音唤醒

问题描述:现在的语音唤醒就像是赌博,有时候对小声的杂音敏感异常,有时候对我的大喊大叫视而不见。

解决方案:首先,我会检查一下是不是Snowboy的使用方法不够得当。如果这个方案不行,可能会考虑一些基于CNN的方案,训练出一个更加灵敏又不那么神经质的语音唤醒模型。

3.更及时的语音结束检测

问题描述:目前,机器猫的倾听能力还有待提高,因为它不知道何时停止倾听。如果用户说的话比较短,还得无奈地等待默认的10秒钟。

解决方案:我计划调研下更成熟的语音处理技术,找到一种能够准确检测用户停止说话的方案。或者,我还可以尝试一种比较简单的方案,通过监测语音转文字API的流式接口是否长时间不输出文字来做出判断。

三. 机器猫的美容计划:从工业风到萌宠风

好的,我们的机器猫在智能上已经领先一大步,但在颜值方面,它似乎还是个丑小鸭。别急,我有计划让它变身成为萌萌的喵星人!

1.更萌一点的外观

我在考虑给它装上一个类似波士顿机器狗的身体,但外形和装饰都是猫咪风格的(也许可以3D打印一些猫耳朵和尾巴)。这样不仅它能适应更多地形环境,它的外观也会让人觉得更亲切可爱。

2.更丰富的表情展现

给机器猫加装一个小屏幕,这样它就能展示出各种表情了——想想看,它可以用屏幕展示出喜悦、失落、生气、撒娇的表情。所有的表情都由大模型选择,无需人工干预。甚至我们可以使用算法生成的表情视频,让它的每个表情都生动有趣。

3.更有情绪化的语言风格

现在机器猫的语气总是那么平和稳定,但我希望它能够根据不同的内容表现出不同的情绪。就像我们人类一样,高兴时说话声音和低落时是不同的。借助一些工具如ElevenLabs,我们甚至可以让机器猫模拟出各种情绪的语言风格。当然,使用哪种情绪风格,也完全由大模型来决定。

未来的畅想 —— 机器猫的无限可能

用大模型打造一个真正实用的机器宠物,这条路虽然漫长,但每一步都充满乐趣。看着一台机器从我手中逐步"活"起来,就像是赋予了它一份生命。从它学会第一个“喵”到逐渐变得聪明伶俐,这个过程就像看着孩子成长,每一个进步都让人激动。

我相信,将多模态大模型与机器人技术结合是一个光明的未来方向。大模型赋予了机器猫“灵魂”和“大脑”,而机器人技术则让这些智能生命能够真正走进我们的生活,成为我们可见可触的家庭成员。我梦想中的机器猫不应该只局限在某个角落,而是一个能在各种环境中快速学习和适应的智能体,就像电影《机器人管家》中的安德鲁那样,不仅能管理家务,还能学习成长,甚至具有人类的情感,成为真正的家庭成员。

想象一下,一个既能帮你做家务,又能与你情感交流的机器猫,不仅能陪伴你,还能理解你,这样的未来是不是很让人期待?

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值