V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yadam
V2EX  ›  程序员

给小爱音箱做一个开源固件

  •  2
     
  •   yadam ·
    jialeicui · 2024-01-24 18:47:37 +08:00 · 4430 次点击
    这是一个创建于 372 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近家里小孩儿喜欢问很多问题, 想着家里有一个小爱音箱 mini, 是不是能让音箱帮忙使用 ChatGPT 回答(音箱现有的回答不是很满意)

    搜了下果然有一个成熟的方案 xiaogpt, 看了下思路很棒, 不过因为需要轮训服务器这个点, 我有点儿担心把自己的账号搞挂了, 就萌生了做一个更直接方案的想法

    一开始什么思路都没有, 找 weibo 上关注很久的一个软硬件都厉害的大佬, 发私信想求助一些关键词和思路, 不过可能对方没有看私信的习惯, 一直没有回复.

    最近两周各种查资料, 终于有了一些眉目, 记录了一下过程分享出来, 希望能帮到像我这样有想法但不知道怎么开始的同学 (自个写的程序在音箱上跑起来的时候是真的开心)

    repo: https://github.com/jialeicui/open-lx01

    项目刚开始, 只做到了在音箱上跑自己程序的程度, 我认为未来应该是可以做成一个完全自主控制的音箱

    项目中可能会有不少错误的地方, 各位如果发现希望能指导一二, 也防止错误的文章误导别人, 感谢!

    29 条回复    2024-02-02 17:25:23 +08:00
    zhangpulin
        1
    zhangpulin  
       2024-01-24 19:29:23 +08:00
    666
    ashong
        2
    ashong  
       2024-01-24 19:43:20 +08:00
    👍
    SayHelloHi
        3
    SayHelloHi  
       2024-01-24 20:30:03 +08:00
    这个 有点难度

    话说 有可以配置进入后台进行配置的 AI 音箱嘛
    zzbd
        4
    zzbd  
       2024-01-24 20:39:47 +08:00
    能适配小爱音箱 pro 嘛
    binsys
        5
    binsys  
       2024-01-24 20:42:54 +08:00
    有硬件安全 boot ,除非出现硬件级 BUG ,或者官方泄露签名,否则跑不起来。
    研究下看能不能绕过安全 boot 吧。
    yadam
        6
    yadam  
    OP
       2024-01-24 21:34:52 +08:00
    查了下 pro ,用的 CPU 确实是支持 security boot 的,估计够呛 https://www.52audio.com/archives/38303.html
    yadam
        7
    yadam  
    OP
       2024-01-24 21:41:55 +08:00
    @SayHelloHi 我大概把路趟了一下, 应该问题不大, 测试用 porcupine 跑关键词唤醒有点儿问题, 但问题应该是出在我的对 ALSA 的配置上

    因为 porcupine 只支持单 channel ,音箱上的 pcm 又只支持配置成 8 channel ,我就在 ALSA 里加了一个 slave ,把另外 7 个通道都扔了,但不知道啥原因,用 arecord 也是时好时坏,好的时候 porcupine 也是能唤醒的

    唤醒搞定了之后剩下都是服务器端的活儿,这个我在行

    至于其他 AI 音箱我也不熟悉,猜测应该不会有支持后台配置的,毕竟音箱不是卖硬件挣钱,要是随便配置了,厂商没的赚。
    yadam
        8
    yadam  
    OP
       2024-01-24 22:02:48 +08:00
    忘记 at 了, #6

    @zzbd
    @binsys
    0xHubNet
        9
    0xHubNet  
       2024-01-25 00:38:51 +08:00
    小米的锁了,比较麻烦,你看下这个 https://docs.folotoy.com/docs/installation/docker
    tianxin
        10
    tianxin  
       2024-01-25 01:08:38 +08:00 via Android
    京东音箱 mini2 已经停服了,希望能有第三方固件复活😂
    kneo
        11
    kneo  
       2024-01-25 01:16:09 +08:00 via Android
    问个有点幼稚的问题:直接刷普通的安卓系统不行吗?
    cat9life
        12
    cat9life  
       2024-01-25 08:43:56 +08:00
    持续关注 顶👍
    Rorysky
        13
    Rorysky  
       2024-01-25 09:12:30 +08:00
    很有前景的项目

    因为小爱音箱出货量挺大的,要是支持自定义,介入 home assistant 就牛逼了
    yadam
        14
    yadam  
    OP
       2024-01-25 11:03:01 +08:00
    @0xHubNet #9 好项目, 看起来做的比我这个完善很多, 要是开源的就更好了
    yadam
        15
    yadam  
    OP
       2024-01-25 11:05:13 +08:00
    @tianxin #10 看了下, 有可能可以搞

    它用的是联发科的 MT8516, 搜了下是支持安全启动的, 可能难搞一些
    https://www.52audio.com/archives/2789.html

    不过看这个 issue 的样子可能是可以 disable 掉的 https://github.com/MTK-bypass/bypass_utility/issues/29

    有时间我咸鱼搞一个, 简单搜了下可能十几块钱就可以买一个, 还有 aux 口可以外接别的音箱, 挺值的
    yadam
        16
    yadam  
    OP
       2024-01-25 11:07:19 +08:00
    @kneo #11 我对安卓和嵌入式都不太懂, 猜测不行. 这个音箱留给 rootfs 的就 32M 大小, 安卓不知道能不能搞到这么小.

    就算能搞到, 感觉也得是精简很多驱动和代码? 到最后感觉就精简成了现在官方固件的样子: firmware + kernel + 一些 deamon
    yadam
        17
    yadam  
    OP
       2024-01-25 11:09:01 +08:00
    @Rorysky #13 经过楼上 @binsys 老哥的提醒, 感觉是带安全启动的都不好搞, 看起来可能这种方案只适用于低端音箱了 😂
    JohnJackson
        18
    JohnJackson  
       2024-01-25 13:39:10 +08:00
    我想知道 OP 说的微博大佬是哪个
    yadam
        19
    yadam  
    OP
       2024-01-25 18:07:28 +08:00
    @JohnJackson #18 抱歉请忽略微博大佬吧 (提这个事情主要是想表达梳理文档的初衷, 万一发展成挂人就不是我本意了 🙏
    yadam
        20
    yadam  
    OP
       2024-01-25 18:13:05 +08:00
    @zzbd #4 看到有人给 pro 刷固件, 所以未来应该是可以搞的
    https://bbs.hassbian.com/thread-8754-1-1.html
    binsys
        21
    binsys  
       2024-01-25 19:21:44 +08:00   ❤️ 1
    其实现在开源硬件可各种资源很多的,像我这样的业余人员,可能只擅长软件,IOT ,对模具,声音工程,外观设计,功率音频都不熟悉的也不想花那么多成本的,可以试着对音箱硬改,举几个没细想的例子:

    自己做块小板,带 CPU 的,想办法做的小塞进音响里,音响自带麦克风的板子断开,接自己板子上,做个中间人拦截,是目标唤醒词的直接自己处理,不是的放给小爱音箱默认处理,这里可能存在 VAD 问题,一直给小爱板子送静音或者微声音的 I2S 信号可能解决 VAD 问题。

    直接替换小艾的 CPU 板子,但保留功放 codec mic in 等音频部分。

    直接替换 CPU ,淘宝买 CPU 找人焊上,利用厂商公版 SDK
    自己写固件
    yadam
        22
    yadam  
    OP
       2024-01-25 22:24:16 +08:00
    我对 "CPU 找人焊上" 以及 “利用厂商公版 SDK” 完全没有概念

    比如 CPU 找人焊是淘宝搜关键词还是有熟悉的厂家, 厂商公版 SDK 指的是买开发板么? 开发板我搜了下都还挺贵的, 感觉不如直接咸鱼买音箱的硬件划算 :)

    @binsys
    zzbd
        23
    zzbd  
       2024-01-29 11:53:30 +08:00
    @yadam 感谢回复,看来是需要动手能力的,不过可行的话闲鱼又得涨价啦
    zzbd
        24
    zzbd  
       2024-01-29 12:07:18 +08:00
    另外想问下有没有不用折腾又能跑自己程序的音箱啊,求
    yadam
        25
    yadam  
    OP
       2024-01-29 12:34:43 +08:00
    @zzbd #24 看到这么一个公司, 没深入研究 https://www.iflyos.cn/
    kekeones
        26
    kekeones  
       2024-01-31 17:56:03 +08:00
    ESP32 自己搞一个呢
    yadam
        27
    yadam  
    OP
       2024-01-31 21:54:29 +08:00
    @kekeones 自己搞应该是正途,我对硬件设计完全不懂,就算找几个现成方案攒起来大概率贵&集成度不好
    zzbd
        28
    zzbd  
       363 天前
    @yadam LZ, 看到一个类似的项目( yihong0618/xiaogpt ),不知道好不好用,等我测试完过来写体验
    yadam
        29
    yadam  
    OP
       363 天前
    @zzbd #28 嗯, 是的, 这个项目适用性比我的这个广, 因为不用 root 音箱. 我在描述里提到了, repo 最下方也有链接 😀
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2102 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:00 · PVG 22:00 · LAX 06:00 · JFK 09:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.