susi_linux

GitHub
1.6k 146 中等 2 次阅读 1周前Apache-2.0音频Agent语言模型
AI 解读 由 AI 自动生成,仅供参考

susi_linux 是运行在 Linux 系统上的开源组件,旨在将 SUSI.AI 智能助手部署到桌面电脑、树莓派或智能音箱硬件上。作为整个生态系统中的关键一环,它充当语音交互的状态机,负责采集麦克风指令、调用语音识别引擎进行文字转换,并通过 TTS 模块输出语音回复,最终利用 Python 封装与 SUSI 服务器通信。

该项目主要解决了传统语音助手强依赖云端、隐私风险高的问题。susi_linux 支持本地化部署,允许用户在断网环境下运行部分功能,确保数据不出本地。此外,它还打破了平台限制,让智能语音能够嵌入 IoT 设备、车载系统及家用电器中。

适合对开源 AI 感兴趣的开发者、研究人员以及希望搭建私有化语音助手的极客使用。技术亮点在于其高度可配置性,支持 Deep Speech、Flite、IBM Watson 等多种语音引擎,并提供 GTK 图形界面。配合简易的安装脚本,用户能快速构建属于自己的私人智能助理,享受完全掌控的语音交互体验。

使用场景

一位追求数据隐私的家庭实验室管理员,计划在树莓派上部署一套完全本地的语音控制系统来管理灯光与家电。

没有 susi_linux 时

  • 需要分别配置 Google 或 IBM 的云端 API 来实现语音识别,导致每次指令都需联网且产生费用
  • 手动编写代码整合唤醒词检测、语音转文字及回复逻辑,开发周期长且容易出错
  • 用户语音数据经过公共服务器传输,存在隐私泄露风险,无法实现真正的离线操作
  • 不同组件间接口不统一,维护多个依赖库使得系统升级和故障排查变得异常困难

使用 susi_linux 后

  • 通过 SUSI Installer 一键完成环境搭建,内置状态机自动处理唤醒与响应流程
  • 支持本地部署 SUSI Server,所有语音处理在局域网内完成,彻底摆脱对云服务的依赖
  • 集成多种开源引擎如 Deep Speech 或 Flite,既保证免费使用又提升了离线识别准确率
  • 提供标准 Python API 与 GTK 界面,方便后续扩展技能模块并直观监控系统运行状态

这套方案让家庭自动化系统真正实现了低成本、高隐私的本地化智能交互。

运行环境要求

操作系统
  • Linux
GPU

未说明

内存

未说明

依赖
notes仅支持 Linux 系统及树莓派;需配合 SUSI Server(Java)使用;支持在线(Google/Watson/Bing)与离线(PocketSphinx/Flite)语音引擎自动切换;通过 systemd 管理服务;需配置 config.json 文件指定设备参数及服务凭证。
pythonPython 3
susi_python
pocketsphinx
flite
snowboy
gtk
susi_linux hero image

快速开始

SUSI.AI 在 Linux 上

Codacy Badge Build Status Join the chat at https://gitter.im/fossasia/susi_hardware Twitter Follow

此仓库包含用于在桌面或无头智能音箱(Headless Smart Speaker)上运行 SUSI.AI 的组件,需配合 SUSI.AI Server。此处实现的功能包括使用麦克风收集语音指令,使用 Deep Speech、Flite、Pocket Sphinx、IBM Watson 或其他组件将语音转换为文本(STT,即 Speech-to-Text),通过语音指令控制音量以及提供简单的 GTK 图形界面。为了使用 SUSI.AI Server(使用 Java 编写)的 JSON(JavaScript Object Notation)输出,我们使用了 SUSI.AI API Python Wrapper。该项目的最终目标是让用户能够在任何地方安装 SUSI.AI,除了桌面和智能音箱外,还包括物联网(IoT)设备、车载系统、洗衣机等。

项目的功能提供方式如下:

  • “热词”(Hotword)检测适用于热词"Susi"
  • 语音检测用于语音转文本(STT),配合 Google Speech API、IBM Watson Speech to Text API 使用
  • 语音输出用于文本转语音(TTS),配合 Google Voice、IBM Watson TTS、Flite TTS 使用
  • SUSI.AI 响应通过 SUSI.AI API Python Wrapper 实现

项目概述

SUSI.AI 生态系统由以下部分组成:

 * Web Client and Content Management System for the SUSI.AI Skills - Home of the SUSI.AI community
 |_ susi.ai   (React Application, User Account Management for the CMS, a client for the susi_server at https://api.susi.ai the content management system for susi skills)
 
 * server back-end
 |_ susi_server        (the brain of the infrastructure, a server which computes answers from queries)
 |_ susi_skill_data    (the knowledge of the brain, a large collection of skills provided by the SUSI.AI community)
 
 * android front-end
 |_ susi_android       (Android application which is a client for the susi_server at https://api.susi.ai)
 
 * iOS front-end
 |_ susi_iOS           (iOS application which is a client for the susi_server at https://api.susi.ai)
 
 * Smart Speaker - Software to turn a Raspberry Pi into a Personal Assistant
 | Several sub-projects come together in this device
 |_ susi_installer     (Framework which can install all parts on a RPi and Desktops, and also is able to create SUSIbian disk images)
 |_ susi_python        (Python API for the susi_server at https://api.susi.ai or local instance)
 |_ susi_server        (The same server as on api.susi.ai, hosted locally for maximum privacy. No cloud needed)
 |_ susi_skill_data    (The skills as provided by susi_server on api.susi.ai; pulled from the git repository automatically)
 |_ susi_linux         (a state machine in python which uses susi_python, Speech-to-text and Text-to-speech functions)
 |_ susi.ai            (React Application, the local web front-end with User Account Management, a client for the local deployment of the susi_server, the content management system for susi skills)

安装

susi_linux 通常通过 SUSI Installer 进行安装。 在这种情况下,配置和启动的二进制文件以及其他文件可在 $HOME/SUSI.AI/bin 中找到(默认安装设置下)。

如果是手动安装,wrapper 目录 中的封装程序需要配置为指向各自的安装目录和 config.json 文件的位置。

在 Linux / RaspberryPi 上设置和配置 Susi

配置通过文件 config.json 完成,该文件通常位于 $HOME/.config/SUSI.AI/config.json

脚本 $HOME/SUSI.AI/bin/susi-config 最适合用于查询、设置和更改 susi_linux 的配置。此外,在 $HOME/SUSI.AI/bin/susi-linux-configure 中还有一个配置的图形用户界面(GUI)。

运行 $HOME/SUSI.AI/bin/susi-config keys 可获取可能的键和值。

一些重要的键和可能的值:

- `stt` is the speech to text service, one of the following choices:
    - `google` - use Google STT service
    - `watson` - IBM/Watson STT
    - `bing` - MS Bing STT
    - `pocketsphinx` - PocketSphinx STT system, working offline
    - `deepspeech-local` - DeepSpeech STT system, offline, WORK IN PROGRESS
- `tts` is the text to speech service, one of the following choices:
    - `google` - use Google TTS
    - `watson` - IBM/Watson TTS (login credential necessary)
    - `flite` - flite TTS service working offline
- `hotword.engine` is the choice if you want to use snowboy detector as the hotword detection or not
    - `Snowboy` to use snowboy
    - `PocketSphinx` to use Pocket Sphinx
- `wakebutton` is the choice if you want to use an external wake button or not
    - `enabled` to use an external wake button
    - `disabled` to disable the external wake button
    - `not available` for systems without dedicated wake button

Android 和 iOS 也有其他配置接口可用。

可以进行手动配置,config.json 中允许的键目前包括:

  • device: 当前设备的名称
  • wakebutton: 是否有唤醒按钮可用
  • stt: 可能设置见上文
  • tts: 可能设置见上文
  • language: STT 和 TTS 处理的语言
  • path.base: 支持文件安装的目录
  • path.sound.detection: 检测开始时播放的音频文件,相对于 data_base_dir
  • path.sound.problem: 发生一般错误时播放的音频文件,相对于 data_base_dir
  • path.sound.error.recognition: 检测出错时播放的音频文件,相对于 data_base_dir
  • path.sound.error.timeout: 等待语音指令超时时播放的音频文件
  • path.flite_speech: flitevox 语音文件,相对于 data_base_dir
  • hotword.engine: 可能设置见上文
  • hotword.model: (如果 hotword.engine = Snowboy)选择唤醒词的模型文件
  • susi.mode: 访问 accounts.susi.ai 的模式,可以是 anonymousauthenticated
  • susi.user: (如果 susi.mode = authenticated)要使用的用户名(邮箱)
  • susi.pass: (如果 susi.mode = authenticated)要使用的密码
  • roomname: 房间的自由描述
  • watson.stt.user, watson.stt.pass, watson.tts.user, watson.tts.pass: IBM/Watson 服务器用于 TTS 和 STT 的凭据
  • watson.tts.voice: 为 IBM/Watson TTS 选择的语音名称
  • bing.api: Bing STT API 密钥

有关在 RaspberryPi 上安装、设置和操作的详细信息,请参阅 SUSI Installer 文档。

开发者信息

本节面向开发者。

重要: 发布新版本前的测试

  1. 唤醒词检测应具有合理的准确率
  2. SUSI Linux 在从在线切换到离线以及反之切换时不应崩溃(目前此功能失败)
  3. 当没有互联网连接时,SUSI Linux 应能够离线启动(目前此功能失败)

路线图

  • 离线语音检测(如果可能且结果令人满意)

SUSI 的一般工作原理

  • SUSI.AI 的代码架构遵循有限状态系统。
  • 默认使用 Google TTS 和 STT 服务,但如果互联网失败,会自动切换到离线服务 PocketSphinx(STT)和 Flite(TTS)

为开发目的运行 SUSI Linux

如果通过 SUSI Installer 安装,则会安装 systemd 单元文件:

  • ss-susi-linux.service 用于用户总线,以用户身份使用 systemctl --user start/enable ss-susi-linux
  • ss-susi-linux@.service 用于系统总线,以 root 用户身份启动特定用户的任务,与用户是否登录无关:sudo systemctl start/enable ss-susi-linux@USER

默认情况下,它以 生产 模式运行,其中日志消息仅限于 错误警告。 在开发过程中,您可能希望看到更多日志以帮助调试。您可以通过以下两种方式将其切换到“详细”模式:

  1. 手动运行
  • 通过 sudo systemctl stop ss-susi-linux 停止 systemd 服务
  • 使用终端,cdsusi_linux 目录并运行
python3 -m susi_linux -v

或者重复 v 以增加详细程度:

python3 -m susi_linux -vv
  1. 更改 systemd 运行的命令
  • 编辑 /lib/systemd/system/ss-susi-linux.service 并更改 ExecStart 参数中的命令:
ExecStart=/usr/bin/python3 -m susi_linux -v --short-log
  • 重新加载 systemd 守护进程:sudo systemctl daemon-reload

  • 重启服务:sudo systemctl restart ss-susi-linux

  • 现在您可以通过 journalctl 读取日志:

    • journalctl -u ss-susi-linux
    • 或者 journalctl -fu ss-susi-linux 以便在日志持续生成时获取更新。

选项 -v 实际上与第一种方法相同。选项 --short-log 是为了排除一些 journalctl 已经提供的信息。关于 logging 功能的更多信息,请查看此 GitHub 问题

版本历史

0.52019/03/02
v0.42018/10/28
0.32018/10/09
v0.22018/09/09
v0.12018/08/09

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架