V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yadam
V2EX  ›  程序员

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

  •  2
     
  •   yadam ·
    jialeicui · 306 天前 · 4136 次点击
    这是一个创建于 306 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

    29 条回复    2024-02-02 17:25:23 +08:00
    zhangpulin
        1
    zhangpulin  
       306 天前
    666
    ashong
        2
    ashong  
       306 天前
    👍
    SayHelloHi
        3
    SayHelloHi  
       306 天前
    这个 有点难度

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

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

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

    至于其他 AI 音箱我也不熟悉,猜测应该不会有支持后台配置的,毕竟音箱不是卖硬件挣钱,要是随便配置了,厂商没的赚。
    yadam
        8
    yadam  
    OP
       306 天前
    忘记 at 了, #6

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

    因为小爱音箱出货量挺大的,要是支持自定义,介入 home assistant 就牛逼了
    yadam
        14
    yadam  
    OP
       305 天前
    @0xHubNet #9 好项目, 看起来做的比我这个完善很多, 要是开源的就更好了
    yadam
        15
    yadam  
    OP
       305 天前
    @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
       305 天前
    @kneo #11 我对安卓和嵌入式都不太懂, 猜测不行. 这个音箱留给 rootfs 的就 32M 大小, 安卓不知道能不能搞到这么小.

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

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

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

    直接替换 CPU ,淘宝买 CPU 找人焊上,利用厂商公版 SDK
    自己写固件
    yadam
        22
    yadam  
    OP
       305 天前
    我对 "CPU 找人焊上" 以及 “利用厂商公版 SDK” 完全没有概念

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

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