Skip to content

Releases: haoyn231/xiaozhi_linux_rs

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 23 Mar 08:13

What's Changed

  • 添加 GUI 适配相关文档
  • 修复与 GUI 通信时的消息发送逻辑

已实现的功能

  • ✓ 音频处理

    • 支持 I2S 声卡和 USB 声卡
    • ALSA 实时音频采集与播放
    • Opus 音频编码(16kHz、PCM16)与解码
    • SpeexDSP 实时处理(降噪、AGC、重采样)
    • 支持自定义音频设备配置,参考音频设备配置说明
  • ✓ 云端交互与协议

    • WebSocket 全双工长连接与心跳保活
    • 设备鉴权认证与 Hello 握手
    • TTS(文本转语音)、STT(语音转文字)、IoT 控制指令
  • ✓ 设备管理

    • 自动设备激活与绑定
    • 设备身份持久化(Client ID、Device ID)
    • 状态机管理(空闲、聆听、处理、说话、网络错误)
  • ✓ GUI 交互

    • 基于 UDP 的轻量级进程间通信(IPC)
    • 实时状态同步(聆听、处理、说话、空闲等)
    • 云端 TTS 文本播报同步
    • 灵活的解耦架构,支持对接独立 GUI 进程,参考GUI 适配说明
  • ✓ 配置系统

    • TOML 文件配置加载
    • 运行时参数持久化
    • 环境变量覆盖
  • ✓ MCP 扩展能力

    • 解耦的 MCP 网关设计,支持外部工具动态集成
    • 标准 JSON-RPC 消息处理与工具生命周期管理
    • Subprocess、HTTP、TCP 多种通信方式
    • sync 和 background 两种模式
    • 支持动态工具配置,修改后无需重新编译,参考MCP 功能说明
    • 提供多种 MCP 示例,参考examples目录

部署说明

Release 中分发的二进制文件基于 GCC8.3 构建,无法在 glibc 版本低于 2.28 的系统上运行,低于 2.28 的系统请参照编译脚本自行编译。其中 uclibc 的二进制文件基于arm-rockchip830-linux-uclibcgnueabihf工具链构建,uclibc 比较少见,目前只遇到过 rv1103/rv1106 使用,如后续遇到其他 vendor 的 uclibc 系统,欢迎提交 issue。

开源协议与分发说明

本项目核心代码采用 MIT 协议开源。项目依赖的音频组件(ALSA 相关库)基于 LGPL 协议。

鉴于开源协议限制,本项目分发的静态链接二进制文件仅建议用于测试与评估。若您计划对本项目进行二次开发或商业分发,请务必遵循 LGPL 协议规范(例如:采用动态链接方式,或开源您的衍生作品)。开发者需自行承担因违反开源协议而产生的法律风险,本项目不承担任何连带责任。

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 27 Feb 06:46

Release 发布说明

新特性

  • ✨ 丰富 MCP 拓展能力

    • 解耦的网关设计:程序仅作为 MCP 网关,负责与云端大模型的 JSON-RPC 消息交互、协议解析及工具生命周期管理。
    • 配置即生效:支持动态工具配置,修改 xiaozhi_config.json 并重启程序即可生效,无需重新编译主程序。
    • 多传输协议支持:支持 Subprocess(子进程)、HTTP 和 TCP Socket 三种传输方式,可通过配置灵活切换。
    • 双执行模式:
      • Sync(对话级同步):等待工具执行完成,结果直接返回给大模型(适用于耗时短的工具)。
      • Background(对话级异步):后台执行任务,立刻返回大模型以维持对话流畅性(适用于长耗时工具)。
    • 统一超时与纯异步非阻塞:所有工具调用均有超时保护(默认 5000ms),底层基于 tokio 异步运行时,防止外部脚本假死阻塞系统。
    • 详见 MCP 功能说明文档
    • 在examples目录下增加 MCP 拓展的示例
  • 移除 musl 构建支持,新增 uClibc 构建支持

  • 规范 release 和 tag 发布方式

    当前尚处于架构探索期,会有很多功能更新和迭代,并不稳定,因此 tag 采用v0.x.x 的方式发布,待整体功能趋于稳定后,会采用 v1.x.x 的方式发布。

部署说明

Release 中分发的二进制文件基于 GCC8.3 构建,无法在 glibc 版本低于 2.28 的系统上运行,低于 2.28 的系统请参照编译脚本自行编译。其中 uclibc 的二进制文件基于arm-rockchip830-linux-uclibcgnueabihf工具链构建,uclibc 比较少见,目前只遇到过 rv1103/rv1106 使用,如后续遇到其他 vendor 的 uclibc 系统,欢迎提交 issue。

开源协议与分发说明

本项目核心代码采用 MIT 协议开源。项目依赖的音频组件(ALSA 相关库)基于 LGPL 协议。

鉴于开源协议限制,本项目分发的静态链接二进制文件仅建议用于测试与评估。若您计划对本项目进行二次开发或商业分发,请务必遵循 LGPL 协议规范(例如:采用动态链接方式,或开源您的衍生作品)。开发者需自行承担因违反开源协议而产生的法律风险,本项目不承担任何连带责任。

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 23 Feb 03:07

新特性

  • ✨ MCP 扩展能力正式实现
    • 解耦的 MCP 网关设计,支持外部工具动态集成
    • 标准 JSON-RPC 消息处理与工具生命周期管理
    • 通过 stdin/stdout 与外部脚本通信
    • 支持动态工具配置,修改配置文件后无需重新编译主程序即刻生效
    • 详见 MCP 功能说明文档

部署说明

Release 中分发的 GNU ABI 二进制文件基于 GCC8.3 构建,无法在 glibc 版本低于 2.28 的系统上运行,低于 2.28 的系统请参照编译脚本自行编译。

非必要不建议用基于 musl 构建的二进制,因为涉及底层 alsa 交互,如果设备的 alsa 使用 pipewire 作为后端,则 musl 构建的二进制无法链接对应的 alsa-plugins 库,导致无法使用。

开源协议与分发说明

本项目核心代码采用 MIT 协议开源。项目依赖的音频组件(ALSA 相关库)基于 LGPL 协议。

鉴于开源协议限制,本项目分发的静态链接二进制文件仅建议用于测试与评估。若您计划对本项目进行二次开发或商业分发,请务必遵循 LGPL 协议规范(例如:采用动态链接方式,或开源您的衍生作品)。开发者需自行承担因违反开源协议而产生的法律风险,本项目不承担任何连带责任。

v1.1.1

Choose a tag to compare

@github-actions github-actions released this 22 Feb 05:02

新特性

  • 修复 musl 版本不能使用 default 音频设备的问题
  • 添加 armv7-unknown-linux-gnueabihf 和 aarch64-unknown-linux-gnu 交叉编译支持,并发布基于 GCC8.3 编译的二进制文件,其中,alsa 为动态链接,opus 和 speexdsp 为静态链接

部署说明

Release 中分发的 GNU ABI 架构的二进制文件基于 GCC8.3 构建,无法在 glibc 版本低于 2.28 的系统上运行,低于 2.28 的系统请参照编译脚本自行编译。

非必要不建议用基于 musl 构建的二进制,因为涉及底层 alsa 交互,如果设备的 alsa 使用 pipewire 作为后端,则 musl 构建的二进制无法链接对应的 alsa-plugins 库,导致无法使用。

开源协议与分发说明

本项目核心代码采用 MIT 协议开源。项目依赖的音频组件(ALSA 相关库)基于 LGPL 协议。

鉴于开源协议限制,本项目分发的静态链接二进制文件仅建议用于测试与评估。若您计划对本项目进行二次开发或商业分发,请务必遵循 LGPL 协议规范(例如:采用动态链接方式,或开源您的衍生作品)。开发者需自行承担因违反开源协议而产生的法律风险,本项目不承担任何连带责任。

Source Mirror

Choose a tag to compare

@haoyn231 haoyn231 released this 21 Feb 16:34

存放构建 musl 二进制时所用的工具链与源码

小智 Linux 客户端正式版 v1.0.0

Choose a tag to compare

@haoyn231 haoyn231 released this 19 Feb 19:05

已实现的功能

  • ✓ 音频处理

    • ALSA 实时音频采集与播放
    • Opus 音频编码(16kHz、PCM16)与解码
    • SpeexDSP 实时处理(降噪、AGC、重采样)
    • 支持自定义音频设备配置,参考音频设备配置说明
  • ✓ 云端交互与协议

    • WebSocket 全双工长连接与心跳保活
    • 设备鉴权认证与 Hello 握手
    • TTS(文本转语音)、STT(语音转文字)、IoT 控制指令
  • ✓ 设备管理

    • 自动设备激活与绑定
    • 设备身份持久化(Client ID、Device ID)
    • 状态机管理(空闲、聆听、处理、说话、网络错误)
  • ✓ 配置系统

    • TOML 文件配置加载
    • 运行时参数持久化
    • 环境变量覆盖

待实现的功能

  • ☐ IoT 与智能家居联动

  • ☐ 本地离线唤醒与音频前端处理(AFE)

  • ☐ MCP 扩展能力

暂不提供编译好的可执行文件,待解决音频相关 C 库静态链接后会提供 musl 的版本。

开源协议与分发说明:

本项目核心代码采用 MIT 协议开源。项目依赖的音频组件(ALSA 相关库)基于 LGPL 协议。

鉴于开源协议限制,本项目分发的静态链接二进制文件仅建议用于测试与评估。若您计划对本项目进行二次开发或商业分发,请务必遵循 LGPL 协议规范(例如:采用动态链接方式,或开源您的衍生作品)。开发者需自行承担因违反开源协议而产生的法律风险,本项目不承担任何连带责任。

Release v0.3.0

Choose a tag to compare

@github-actions github-actions released this 01 Dec 13:23
294b767

What's Changed

  • Refactor by @haoruanwn in #2

Full Changelog: v0.2.0...v0.3.0

Release v0.2.0

Choose a tag to compare

@github-actions github-actions released this 01 Dec 09:25
2fda50a

What's Changed

  • feat: 修改参数加载逻辑,第一次运行时基于默认参数生成配置文件,后续执行时从已有配置文件中读取,可以在部署环境中动态修改参数 by @haoruanwn in #1

New Contributors

  • @haoruanwn made their first contribution in #1

Full Changelog: v0.1.0...v0.2.0

Release v0.1.0

Choose a tag to compare

@github-actions github-actions released this 27 Nov 03:06