[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-fossasia--susi_linux":3,"similar-fossasia--susi_linux":121},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":8,"readme_en":9,"readme_zh":10,"quickstart_zh":11,"use_case_zh":12,"hero_image_url":13,"owner_login":14,"owner_name":15,"owner_avatar_url":16,"owner_bio":17,"owner_company":18,"owner_location":18,"owner_email":19,"owner_twitter":14,"owner_website":20,"owner_url":21,"languages":22,"stars":31,"forks":32,"last_commit_at":33,"license":34,"difficulty_score":35,"env_os":36,"env_gpu":37,"env_ram":37,"env_deps":38,"category_tags":47,"github_topics":51,"view_count":35,"oss_zip_url":18,"oss_zip_packed_at":18,"status":56,"created_at":57,"updated_at":58,"faqs":59,"releases":95},831,"fossasia\u002Fsusi_linux","susi_linux","Hardware for SUSI AI https:\u002F\u002Fsusi.ai","susi_linux 是运行在 Linux 系统上的开源组件，旨在将 SUSI.AI 智能助手部署到桌面电脑、树莓派或智能音箱硬件上。作为整个生态系统中的关键一环，它充当语音交互的状态机，负责采集麦克风指令、调用语音识别引擎进行文字转换，并通过 TTS 模块输出语音回复，最终利用 Python 封装与 SUSI 服务器通信。\n\n该项目主要解决了传统语音助手强依赖云端、隐私风险高的问题。susi_linux 支持本地化部署，允许用户在断网环境下运行部分功能，确保数据不出本地。此外，它还打破了平台限制，让智能语音能够嵌入 IoT 设备、车载系统及家用电器中。\n\n适合对开源 AI 感兴趣的开发者、研究人员以及希望搭建私有化语音助手的极客使用。技术亮点在于其高度可配置性，支持 Deep Speech、Flite、IBM Watson 等多种语音引擎，并提供 GTK 图形界面。配合简易的安装脚本，用户能快速构建属于自己的私人智能助理，享受完全掌控的语音交互体验。","# SUSI.AI on Linux\n\n[![Codacy Badge](https:\u002F\u002Fapi.codacy.com\u002Fproject\u002Fbadge\u002FGrade\u002F167b701c744841c5a05269d06b863732)](https:\u002F\u002Fapp.codacy.com\u002Fapp\u002Ffossasia\u002Fsusi_linux?utm_source=github.com&utm_medium=referral&utm_content=fossasia\u002Fsusi_linux&utm_campaign=badger)\n[![Build Status](https:\u002F\u002Ftravis-ci.org\u002Ffossasia\u002Fsusi_linux.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002Ffossasia\u002Fsusi_linux)\n[![Join the chat at https:\u002F\u002Fgitter.im\u002Ffossasia\u002Fsusi_hardware](https:\u002F\u002Fbadges.gitter.im\u002Ffossasia\u002Fsusi_hardware.svg)](https:\u002F\u002Fgitter.im\u002Ffossasia\u002Fsusi_hardware?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n[![Twitter Follow](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002Fsusiai_.svg?style=social&label=Follow&maxAge=2592000?style=flat-square)](https:\u002F\u002Ftwitter.com\u002Fsusiai_)\n\nThis repository contains components to run SUSI.AI on the desktop or a headless smart speaker together with the [SUSI.AI Server](https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_server). Functionalities implemented here include using the microphone to collect voice commands, converting speech to text (STT) using components such as Deep Speech, Flite, Pocket Sphinx, IBM Watson or others, controlling the volume with voice commands and providing a simple GTK interface. In order to use the JSON output of the SUSI.AI Server (written in Java) we use a [SUSI.AI API Python Wrapper](https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_python). The ultimate goal of the project to enable users to install SUSI.AI anywhere, apart from desktops and smart speakers on  IoT devices, car systems, washing machines and more.\n\nThe functionalities of the project are provided as follows:\n\n- Hotword detection works for hotword \"Susi\"\n- Voice detection for Speech to Text (STT) using with Google Speech API, IBM Watson Speech to Text API\n- Voice output for Text to Speech (TTS) working with Google Voice, IBM Watson TTS, Flite TTS\n- SUSI.AI response working through [SUSI.AI API Python Wrapper](https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_python)\n\n## Project Overview \n\nThe SUSI.AI ecosystem consists of the following parts:\n```\n * Web Client and Content Management System for the SUSI.AI Skills - Home of the SUSI.AI community\n |_ susi.ai   (React Application, User Account Management for the CMS, a client for the susi_server at https:\u002F\u002Fapi.susi.ai the content management system for susi skills)\n \n * server back-end\n |_ susi_server        (the brain of the infrastructure, a server which computes answers from queries)\n |_ susi_skill_data    (the knowledge of the brain, a large collection of skills provided by the SUSI.AI community)\n \n * android front-end\n |_ susi_android       (Android application which is a client for the susi_server at https:\u002F\u002Fapi.susi.ai)\n \n * iOS front-end\n |_ susi_iOS           (iOS application which is a client for the susi_server at https:\u002F\u002Fapi.susi.ai)\n \n * Smart Speaker - Software to turn a Raspberry Pi into a Personal Assistant\n | Several sub-projects come together in this device\n |_ susi_installer     (Framework which can install all parts on a RPi and Desktops, and also is able to create SUSIbian disk images)\n |_ susi_python        (Python API for the susi_server at https:\u002F\u002Fapi.susi.ai or local instance)\n |_ susi_server        (The same server as on api.susi.ai, hosted locally for maximum privacy. No cloud needed)\n |_ susi_skill_data    (The skills as provided by susi_server on api.susi.ai; pulled from the git repository automatically)\n |_ susi_linux         (a state machine in python which uses susi_python, Speech-to-text and Text-to-speech functions)\n |_ 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)\n```\n\n## Installation\n\n`susi_linux` is normally installed via the [SUSI Installer](https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_installer).\nIn this case there are binaries for configuration and starting and\nothers available in `$HOME\u002FSUSI.AI\u002Fbin` (under default installation settings).\n\nIn case of manual installations, the wrappers in [`wrapper` directory](wrapper\u002F) need to\nbe configured to point to the respective installation directories and location of\nthe `config.json` file.\n\n## Setting up and configuring Susi on Linux \u002F RaspberryPi\n\nConfiguration is done via the file [config.json](config.json) which normally\nresides in `$HOME\u002F.config\u002FSUSI.AI\u002Fconfig.json`.\n\nThe script `$HOME\u002FSUSI.AI\u002Fbin\u002Fsusi-config` is best used to query, set, and\nchange configuration of `susi_linux`. There is also a GUI interface to the\nconfiguration in `$HOME\u002FSUSI.AI\u002Fbin\u002Fsusi-linux-configure`.\n\nThe possible keys and values are given by running `$HOME\u002FSUSI.AI\u002Fbin\u002Fsusi-config keys`\n\nSome important keys and possible values:\n\n```\n- `stt` is the speech to text service, one of the following choices:\n    - `google` - use Google STT service\n    - `watson` - IBM\u002FWatson STT\n    - `bing` - MS Bing STT\n    - `pocketsphinx` - PocketSphinx STT system, working offline\n    - `deepspeech-local` - DeepSpeech STT system, offline, WORK IN PROGRESS\n- `tts` is the text to speech service, one of the following choices:\n    - `google` - use Google TTS\n    - `watson` - IBM\u002FWatson TTS (login credential necessary)\n    - `flite` - flite TTS service working offline\n- `hotword.engine` is the choice if you want to use snowboy detector as the hotword detection or not\n    - `Snowboy` to use snowboy\n    - `PocketSphinx` to use Pocket Sphinx\n- `wakebutton` is the choice if you want to use an external wake button or not\n    - `enabled` to use an external wake button\n    - `disabled` to disable the external wake button\n    - `not available` for systems without dedicated wake button\n\nOther interfaces for configuration are available for Android and iOS.\n\nManual configuration is possible, the allowed keys in [`config.json`](config.json) are currently\n- `device`: the name of the current device\n- `wakebutton`: whether a wake button is available or not\n- `stt`: see above for possible settings\n- `tts`: see above for possible settings\n- `language': language for STT and TTS processing\n- `path.base`: directory where support files are installed\n- `path.sound.detection`: sound file that is played when detection starts, relative to `data_base_dir`\n- `path.sound.problem`: sound file that is played on general errors, relative to `data_base_dir`\n- `path.sound.error.recognition`: sound file that is played on detection errors, relative to `data_base_dir`\n- `path.sound.error.timeout`: sound file that is played when timing out waiting for spoken commands\n- `path.flite_speech`: flitevox speech file, relative to `data_base_dir`\n- `hotword.engine`: see above for possible settings\n- `hotword.model`: (if hotword.engine = Snowboy) selects the model file for the hotword\n- `susi.mode`: access mode to `accounts.susi.ai`, either `anonymous` or `authenticated`\n- `susi.user`: (if susi.mode = authenticated) the user name (email) to be used\n- `susi.pass`: (if susi.mode = authenticated) the password to be used\n- `roomname`: free form description of the room\n- `watson.stt.user`, `watson.stt.pass`, `watson.tts.user`, `watson.tts.pass`: credentials for IBM\u002FWatson server for TTS and STT\n- `watson.tts.voice`: voice name selected for IBM\u002FWatson TTS\n- `bing.api`: Bing STT API key\n\nFor details concerning installation, setup, and operation on RaspberryPi, see\nthe documentation at [SUSI Installer](https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_installer).\n\n\n\n## Information for developers\n\nThis section is intended for developer.\n\n### **Important:** Tests before making a new release\n\n1. The hotword detection should have a decent accuracy\n2. SUSI Linux shouldn't crash when switching from online to offline and vice versa (failing as of now)\n3. SUSI Linux should be able to boot offline when no internet connection available (failing as of now)\n\n### Roadmap\n\n- Offline Voice Detection (if possible with satisfactory results)\n\n### General working of SUSI\n\n- SUSI.AI follows a finite state system for the code architecture.\n- Google TTS and STT services are used as default services but if the internet fails, a switch to offline services PocketSphinx (STT) and Flite (TTS) is made automatically\n\n\n### Run SUSI Linux for development purposes\n\nIf installed via the SUSI Installer, systemd unit files are installed:\n- `ss-susi-linux.service` for the user bus, use as user with `systemctl --user start\u002Fenable ss-susi-linux`\n- `ss-susi-linux@.service` for the system bus, use as `root` user to start a job for a specific user, \n  independent from whether the user is logged in or not: `sudo systemctl start\u002Fenable ss-susi-linux@USER`\n\nBy default, it is ran in _production_ mode, where log messages are limited to _error_ and _warning_ only.\nIn development, you may want to see more logs, to help debugging. You can switch it to \"verbose\" mode by 2 ways:\n\n1. Run it manually\n\n- Stop systemd service by `sudo systemctl stop ss-susi-linux`\n- Use Terminal, _cd_ to `susi_linux` directory and run\n\n```\npython3 -m susi_linux -v\n```\nor repeat `v` to increase verbosity:\n\n```\npython3 -m susi_linux -vv\n```\n\n2. Change command run by `systemd`\n\n- Edit the _\u002Flib\u002Fsystemd\u002Fsystem\u002Fss-susi-linux.service_ and change the command in `ExecStart` parameter:\n\n```ini\nExecStart=\u002Fusr\u002Fbin\u002Fpython3 -m susi_linux -v --short-log\n```\n- Reload systemd daemon: `sudo systemctl daemon-reload`\n- Restart the servive: `sudo systemctl restart ss-susi-linux`\n- Now you can read the log via `journalctl`:\n\n    + `journalctl -u ss-susi-linux`\n    + or `journalctl -fu ss-susi-linux` to get updated when the log is continuously produced.\n\nThe `-v` option is actually the same as the 1st method. The `--short-log` option is to exclude some info which is already provided by `journalctl`. For more info about `logging` feature, see this GitHub [issue](https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_linux\u002Fissues\u002F423).\n\n","# SUSI.AI 在 Linux 上\n\n[![Codacy Badge](https:\u002F\u002Fapi.codacy.com\u002Fproject\u002Fbadge\u002FGrade\u002F167b701c744841c5a05269d06b863732)](https:\u002F\u002Fapp.codacy.com\u002Fapp\u002Ffossasia\u002Fsusi_linux?utm_source=github.com&utm_medium=referral&utm_content=fossasia\u002Fsusi_linux&utm_campaign=badger)\n[![Build Status](https:\u002F\u002Ftravis-ci.org\u002Ffossasia\u002Fsusi_linux.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002Ffossasia\u002Fsusi_linux)\n[![Join the chat at https:\u002F\u002Fgitter.im\u002Ffossasia\u002Fsusi_hardware](https:\u002F\u002Fbadges.gitter.im\u002Ffossasia\u002Fsusi_hardware.svg)](https:\u002F\u002Fgitter.im\u002Ffossasia\u002Fsusi_hardware?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n[![Twitter Follow](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002Fsusiai_.svg?style=social&label=Follow&maxAge=2592000?style=flat-square)](https:\u002F\u002Ftwitter.com\u002Fsusiai_)\n\n此仓库包含用于在桌面或无头智能音箱（Headless Smart Speaker）上运行 SUSI.AI 的组件，需配合 [SUSI.AI Server](https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_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](https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_python)。该项目的最终目标是让用户能够在任何地方安装 SUSI.AI，除了桌面和智能音箱外，还包括物联网（IoT）设备、车载系统、洗衣机等。\n\n项目的功能提供方式如下：\n\n- “热词”（Hotword）检测适用于热词\"Susi\"\n- 语音检测用于语音转文本（STT），配合 Google Speech API、IBM Watson Speech to Text API 使用\n- 语音输出用于文本转语音（TTS），配合 Google Voice、IBM Watson TTS、Flite TTS 使用\n- SUSI.AI 响应通过 [SUSI.AI API Python Wrapper](https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_python) 实现\n\n## 项目概述 \n\nSUSI.AI 生态系统由以下部分组成：\n```\n * Web Client and Content Management System for the SUSI.AI Skills - Home of the SUSI.AI community\n |_ susi.ai   (React Application, User Account Management for the CMS, a client for the susi_server at https:\u002F\u002Fapi.susi.ai the content management system for susi skills)\n \n * server back-end\n |_ susi_server        (the brain of the infrastructure, a server which computes answers from queries)\n |_ susi_skill_data    (the knowledge of the brain, a large collection of skills provided by the SUSI.AI community)\n \n * android front-end\n |_ susi_android       (Android application which is a client for the susi_server at https:\u002F\u002Fapi.susi.ai)\n \n * iOS front-end\n |_ susi_iOS           (iOS application which is a client for the susi_server at https:\u002F\u002Fapi.susi.ai)\n \n * Smart Speaker - Software to turn a Raspberry Pi into a Personal Assistant\n | Several sub-projects come together in this device\n |_ susi_installer     (Framework which can install all parts on a RPi and Desktops, and also is able to create SUSIbian disk images)\n |_ susi_python        (Python API for the susi_server at https:\u002F\u002Fapi.susi.ai or local instance)\n |_ susi_server        (The same server as on api.susi.ai, hosted locally for maximum privacy. No cloud needed)\n |_ susi_skill_data    (The skills as provided by susi_server on api.susi.ai; pulled from the git repository automatically)\n |_ susi_linux         (a state machine in python which uses susi_python, Speech-to-text and Text-to-speech functions)\n |_ 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)\n```\n\n## 安装\n\n`susi_linux` 通常通过 [SUSI Installer](https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_installer) 进行安装。\n在这种情况下，配置和启动的二进制文件以及其他文件可在 `$HOME\u002FSUSI.AI\u002Fbin` 中找到（默认安装设置下）。\n\n如果是手动安装，[`wrapper` 目录](wrapper\u002F) 中的封装程序需要配置为指向各自的安装目录和 `config.json` 文件的位置。\n\n## 在 Linux \u002F RaspberryPi 上设置和配置 Susi\n\n配置通过文件 [config.json](config.json) 完成，该文件通常位于 `$HOME\u002F.config\u002FSUSI.AI\u002Fconfig.json`。\n\n脚本 `$HOME\u002FSUSI.AI\u002Fbin\u002Fsusi-config` 最适合用于查询、设置和更改 `susi_linux` 的配置。此外，在 `$HOME\u002FSUSI.AI\u002Fbin\u002Fsusi-linux-configure` 中还有一个配置的图形用户界面（GUI）。\n\n运行 `$HOME\u002FSUSI.AI\u002Fbin\u002Fsusi-config keys` 可获取可能的键和值。\n\n一些重要的键和可能的值：\n\n```\n- `stt` is the speech to text service, one of the following choices:\n    - `google` - use Google STT service\n    - `watson` - IBM\u002FWatson STT\n    - `bing` - MS Bing STT\n    - `pocketsphinx` - PocketSphinx STT system, working offline\n    - `deepspeech-local` - DeepSpeech STT system, offline, WORK IN PROGRESS\n- `tts` is the text to speech service, one of the following choices:\n    - `google` - use Google TTS\n    - `watson` - IBM\u002FWatson TTS (login credential necessary)\n    - `flite` - flite TTS service working offline\n- `hotword.engine` is the choice if you want to use snowboy detector as the hotword detection or not\n    - `Snowboy` to use snowboy\n    - `PocketSphinx` to use Pocket Sphinx\n- `wakebutton` is the choice if you want to use an external wake button or not\n    - `enabled` to use an external wake button\n    - `disabled` to disable the external wake button\n    - `not available` for systems without dedicated wake button\n```\n\nAndroid 和 iOS 也有其他配置接口可用。\n\n可以进行手动配置，[`config.json`](config.json) 中允许的键目前包括：\n- `device`: 当前设备的名称\n- `wakebutton`: 是否有唤醒按钮可用\n- `stt`: 可能设置见上文\n- `tts`: 可能设置见上文\n- `language`: STT 和 TTS 处理的语言\n- `path.base`: 支持文件安装的目录\n- `path.sound.detection`: 检测开始时播放的音频文件，相对于 `data_base_dir`\n- `path.sound.problem`: 发生一般错误时播放的音频文件，相对于 `data_base_dir`\n- `path.sound.error.recognition`: 检测出错时播放的音频文件，相对于 `data_base_dir`\n- `path.sound.error.timeout`: 等待语音指令超时时播放的音频文件\n- `path.flite_speech`: flitevox 语音文件，相对于 `data_base_dir`\n- `hotword.engine`: 可能设置见上文\n- `hotword.model`: （如果 hotword.engine = Snowboy）选择唤醒词的模型文件\n- `susi.mode`: 访问 `accounts.susi.ai` 的模式，可以是 `anonymous` 或 `authenticated`\n- `susi.user`: （如果 susi.mode = authenticated）要使用的用户名（邮箱）\n- `susi.pass`: （如果 susi.mode = authenticated）要使用的密码\n- `roomname`: 房间的自由描述\n- `watson.stt.user`, `watson.stt.pass`, `watson.tts.user`, `watson.tts.pass`: IBM\u002FWatson 服务器用于 TTS 和 STT 的凭据\n- `watson.tts.voice`: 为 IBM\u002FWatson TTS 选择的语音名称\n- `bing.api`: Bing STT API 密钥\n\n有关在 RaspberryPi 上安装、设置和操作的详细信息，请参阅 [SUSI Installer](https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_installer) 文档。\n\n## 开发者信息\n\n本节面向开发者。\n\n### **重要：** 发布新版本前的测试\n\n1. 唤醒词检测应具有合理的准确率\n2. SUSI Linux 在从在线切换到离线以及反之切换时不应崩溃（目前此功能失败）\n3. 当没有互联网连接时，SUSI Linux 应能够离线启动（目前此功能失败）\n\n### 路线图\n\n- 离线语音检测（如果可能且结果令人满意）\n\n### SUSI 的一般工作原理\n\n- SUSI.AI 的代码架构遵循有限状态系统。\n- 默认使用 Google TTS 和 STT 服务，但如果互联网失败，会自动切换到离线服务 PocketSphinx（STT）和 Flite（TTS）\n\n### 为开发目的运行 SUSI Linux\n\n如果通过 SUSI Installer 安装，则会安装 systemd 单元文件：\n- `ss-susi-linux.service` 用于用户总线，以用户身份使用 `systemctl --user start\u002Fenable ss-susi-linux`\n- `ss-susi-linux@.service` 用于系统总线，以 `root` 用户身份启动特定用户的任务，与用户是否登录无关：`sudo systemctl start\u002Fenable ss-susi-linux@USER`\n\n默认情况下，它以 _生产_ 模式运行，其中日志消息仅限于 _错误_ 和 _警告_。\n在开发过程中，您可能希望看到更多日志以帮助调试。您可以通过以下两种方式将其切换到“详细”模式：\n\n1. 手动运行\n\n- 通过 `sudo systemctl stop ss-susi-linux` 停止 systemd 服务\n- 使用终端，_cd_ 到 `susi_linux` 目录并运行\n\n```\npython3 -m susi_linux -v\n```\n或者重复 `v` 以增加详细程度：\n\n```\npython3 -m susi_linux -vv\n```\n\n2. 更改 `systemd` 运行的命令\n\n- 编辑 _\u002Flib\u002Fsystemd\u002Fsystem\u002Fss-susi-linux.service_ 并更改 `ExecStart` 参数中的命令：\n\n```ini\nExecStart=\u002Fusr\u002Fbin\u002Fpython3 -m susi_linux -v --short-log\n```\n- 重新加载 systemd 守护进程：`sudo systemctl daemon-reload`\n- 重启服务：`sudo systemctl restart ss-susi-linux`\n- 现在您可以通过 `journalctl` 读取日志：\n\n    + `journalctl -u ss-susi-linux`\n    + 或者 `journalctl -fu ss-susi-linux` 以便在日志持续生成时获取更新。\n\n选项 `-v` 实际上与第一种方法相同。选项 `--short-log` 是为了排除一些 `journalctl` 已经提供的信息。关于 `logging` 功能的更多信息，请查看此 GitHub [问题](https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_linux\u002Fissues\u002F423)。","# SUSI.AI Linux 快速上手指南\n\n`susi_linux` 是一个在 Linux 桌面或无头智能音箱（如树莓派）上运行 SUSI.AI 的开源项目。它支持语音命令采集、语音转文字（STT）、文字转语音（TTS）以及简单的 GTK 界面，旨在让用户在任何地方部署自己的 AI 助手。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n- **操作系统**: Linux (推荐 Ubuntu, Debian 或 Raspberry Pi OS)。\n- **硬件**: 麦克风、扬声器（或耳机）。\n- **依赖组件**:\n  - Python 3\n  - [SUSI.AI Server](https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_server) (后端服务，用于处理请求)\n  - [SUSI.AI API Python Wrapper](https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_python)\n- **网络**: 初始配置需要联网，部分功能（如离线 STT\u002FTTS）需额外配置。\n\n> **注意**: 官方推荐使用 [SUSI Installer](https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_installer) 进行自动化安装，以解决大部分依赖问题。\n\n## 安装步骤\n\n### 方法一：使用 SUSI Installer（推荐）\n\n这是最简便的安装方式，会自动配置二进制文件和目录结构。\n\n1. 克隆并进入安装器目录：\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_installer.git\ncd susi_installer\n```\n2. 按照安装器文档执行安装脚本（通常包含自动下载和配置 `susi_linux` 的逻辑）。\n3. 安装完成后，配置文件位于 `$HOME\u002F.config\u002FSUSI.AI\u002Fconfig.json`。\n\n### 方法二：手动安装\n\n如果您选择手动安装，需自行配置包装器路径。\n\n1. 克隆项目：\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_linux.git\ncd susi_linux\n```\n2. 配置 [`wrapper`](wrapper\u002F) 目录下的包装器，使其指向正确的安装目录和 `config.json` 文件位置。\n3. 确保 `susi_server` 正在运行，或者配置为连接云端 API。\n\n## 基本使用\n\n### 1. 配置系统\n\n使用命令行工具查询或修改配置：\n\n```bash\n$HOME\u002FSUSI.AI\u002Fbin\u002Fsusi-config keys\n```\n\n常用配置项说明：\n\n- **`stt`**: 语音转文字服务 (例如：`google`, `watson`, `pocketsphinx`)\n- **`tts`**: 文字转语音服务 (例如：`google`, `flite`, `watson`)\n- **`hotword.engine`**: 唤醒词引擎 (例如：`Snowboy`, `PocketSphinx`)\n- **`language`**: 处理语言代码\n\n您可以直接运行配置脚本进行修改：\n```bash\n$HOME\u002FSUSI.AI\u002Fbin\u002Fsusi-config\n```\n或使用图形界面：\n```bash\n$HOME\u002FSUSI.AI\u002Fbin\u002Fsusi-linux-configure\n```\n\n### 2. 启动服务\n\n#### 生产模式 (Systemd)\n如果是通过安装器安装的，可以使用 systemd 管理：\n\n```bash\n# 用户模式\nsystemctl --user start ss-susi-linux\n\n# 系统模式 (root 权限)\nsudo systemctl start ss-susi-linux@USER\n```\n\n#### 开发模式 (调试日志)\n默认模式下仅显示错误和警告日志。如需查看详细日志以便调试，可切换到“verbose”模式：\n\n**方式 A：直接运行**\n停止服务后，在项目目录下运行：\n```bash\npython3 -m susi_linux -v\n# 增加 v 的数量可提高日志详细程度\npython3 -m susi_linux -vv\n```\n\n**方式 B：修改 Systemd 配置**\n编辑 `\u002Flib\u002Fsystemd\u002Fsystem\u002Fss-susi-linux.service`，修改 `ExecStart` 参数：\n```ini\nExecStart=\u002Fusr\u002Fbin\u002Fpython3 -m susi_linux -v --short-log\n```\n然后重载并重启服务：\n```bash\nsudo systemctl daemon-reload\nsudo systemctl restart ss-susi-linux\n```\n查看日志：\n```bash\njournalctl -fu ss-susi-linux\n```\n\n### 3. 切换在线\u002F离线模式\nSUSI.AI 默认使用 Google TTS\u002FSTT 服务。如果网络断开，系统会自动尝试切换到离线服务（如 PocketSphinx 和 Flite），前提是已在配置中启用相应选项。","一位追求数据隐私的家庭实验室管理员，计划在树莓派上部署一套完全本地的语音控制系统来管理灯光与家电。\n\n### 没有 susi_linux 时\n- 需要分别配置 Google 或 IBM 的云端 API 来实现语音识别，导致每次指令都需联网且产生费用\n- 手动编写代码整合唤醒词检测、语音转文字及回复逻辑，开发周期长且容易出错\n- 用户语音数据经过公共服务器传输，存在隐私泄露风险，无法实现真正的离线操作\n- 不同组件间接口不统一，维护多个依赖库使得系统升级和故障排查变得异常困难\n\n### 使用 susi_linux 后\n- 通过 SUSI Installer 一键完成环境搭建，内置状态机自动处理唤醒与响应流程\n- 支持本地部署 SUSI Server，所有语音处理在局域网内完成，彻底摆脱对云服务的依赖\n- 集成多种开源引擎如 Deep Speech 或 Flite，既保证免费使用又提升了离线识别准确率\n- 提供标准 Python API 与 GTK 界面，方便后续扩展技能模块并直观监控系统运行状态\n\n这套方案让家庭自动化系统真正实现了低成本、高隐私的本地化智能交互。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffossasia_susi_linux_a5731f7a.png","fossasia","FOSSASIA","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Ffossasia_a0e62a76.jpg","Open Technologies developed in Asia and Around the Globe",null,"fossasia@googlegroups.com","https:\u002F\u002Ffossasia.org","https:\u002F\u002Fgithub.com\u002Ffossasia",[23,27],{"name":24,"color":25,"percentage":26},"Python","#3572A5",87.7,{"name":28,"color":29,"percentage":30},"Shell","#89e051",12.3,1614,146,"2026-03-27T00:48:25","Apache-2.0",3,"Linux","未说明",{"notes":39,"python":40,"dependencies":41},"仅支持 Linux 系统及树莓派；需配合 SUSI Server（Java）使用；支持在线（Google\u002FWatson\u002FBing）与离线（PocketSphinx\u002FFlite）语音引擎自动切换；通过 systemd 管理服务；需配置 config.json 文件指定设备参数及服务凭证。","Python 3",[42,43,44,45,46],"susi_python","pocketsphinx","flite","snowboy","gtk",[48,49,50],"音频","Agent","语言模型",[52,53,54,55],"virtual-assistant","artificial-intelligence","raspberry-pi","embedded","ready","2026-03-27T02:49:30.150509","2026-04-06T05:36:44.140483",[60,65,69,74,79,83,87,91],{"id":61,"question_zh":62,"answer_zh":63,"source_url":64},3573,"安装过程中遇到 `libatlas-dev` 找不到怎么办？","在 Debian\u002FUbuntu 系统中，该包名不存在。请安装替代包 `libatlas-base-dev` 即可解决此依赖问题。","https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_linux\u002Fissues\u002F219",{"id":66,"question_zh":67,"answer_zh":68,"source_url":64},3574,"安装脚本最后一步如何正确运行配置生成器？","新格式需要使用 python3 运行。请在终端执行命令：`python3 config_generator.py stt tts hotword wake`。",{"id":70,"question_zh":71,"answer_zh":72,"source_url":73},3575,"在 Raspberry Pi Zero W 上安装时出现 Java 相关错误如何解决？","Pi Zero W 使用 armv6 架构，Oracle Java 不支持服务器模式。建议安装 OpenJDK Java8，切勿安装默认 JDK（如 `default-jdk`），因为它会下载 Java 9，后者已放弃对 armv5\u002F6\u002F7 的支持。","https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_linux\u002Fissues\u002F206",{"id":75,"question_zh":76,"answer_zh":77,"source_url":78},3576,"如何通过 SoundServer 接口调整音频音量？","访问运行在端口 7070 的 SoundServer 的 `\u002Fvolume` 端点。支持以下请求：`\u002Fvolume?val=up`（增加 10%）、`\u002Fvolume?val=down`（减少 10%）、`\u002Fvolume?val=NN`（设置具体数值 0-100）。","https:\u002F\u002Fgithub.com\u002Ffossasia\u002Fsusi_linux\u002Fissues\u002F500",{"id":80,"question_zh":81,"answer_zh":82,"source_url":78},3577,"如何在播放音乐的同时让 SUSI 说话？","使用 `\u002Fsay?mrl=???` 端点。系统会自动降低当前播放音乐的音量，播放语音内容后再恢复音量。如果不需要恢复音量，可使用 `\u002Fbeep?mrl=???`。",{"id":84,"question_zh":85,"answer_zh":86,"source_url":64},3578,"如何正确安装 Snowboy 依赖？","PyPI 上的版本过旧，建议从 Git 源码安装。注意本项目是 Python 项目，不要尝试通过 npm 安装 NodeJS 绑定。",{"id":88,"question_zh":89,"answer_zh":90,"source_url":64},3579,"安装时是否应该修改系统的 `99-com.rules` 文件？","不应该。应创建新的规则文件。这样卸载应用时只需删除我们添加的文件，避免影响系统原有的 udev 规则。",{"id":92,"question_zh":93,"answer_zh":94,"source_url":78},3580,"如何使用 SoundServer 播放 YouTube 视频？","调用 `\u002Fplay` 端点并传入 YouTube 视频 ID 参数。例如：`\u002Fplay?ytb=???`，将 `???` 替换为实际的 YouTube 视频 ID。",[96,101,106,111,116],{"id":97,"version":98,"summary_zh":99,"released_at":100},103195,"0.5","We are releasing now every single commit as downloadable image at\r\nhttp:\u002F\u002Fdownload.susi.ai\u002Fsusibian\u002F\r\nas development release","2019-03-02T17:04:01",{"id":102,"version":103,"summary_zh":104,"released_at":105},103196,"v0.4","ftp:\u002F\u002Fagriconnect.vn:2121\u002F2018-10-27-SUSIbian-lite-plus.img.xz (1.1GB)","2018-10-28T03:42:14",{"id":107,"version":108,"summary_zh":109,"released_at":110},103197,"0.3","to be used with the Dev Kit\r\nDownload from http:\u002F\u002Fyacy.net\u002Fmaterial\u002Fsusi_linux_20181009.img.gz\r\n(this is too large for github)\r\n\r\nOther image:\r\nftp:\u002F\u002Fagriconnect.vn:2121\u002F2018-10-27-SUSIbian-lite-plus.img.xz (1.1 GB)\r\nThis image is generated from custom Raspbian build script.","2018-10-09T22:01:08",{"id":112,"version":113,"summary_zh":114,"released_at":115},103198,"v0.2","## Download\r\n\r\nftp:\u002F\u002Fagriconnect.vn:2121\u002Fsusi_linux_2018.09.11-4GB.img.xz\r\n\r\n(Sorry, you have to copy the URL, GitHub doesn't support rendering FTP link yet).\r\n\r\nhttps:\u002F\u002Fdrive.google.com\u002Fopen?id=1WhU_UtF3AuOngz9iHEPGo-mmbjocEndM\r\n(for a 16 GB SD card)\r\n\r\n## Installation Steps\r\n\r\n- Insert SD card to your PC. Look for its path by `lsblk` command. Assume that its path is _\u002Fdev\u002Fmmcblk0_. Note that we don't use the path _\u002Fdev\u002Fmmcblk0p0_, which is path to a partition.\r\n- Unmount every partitions on the card, if they exist and were mounted automatically by your OS.\r\n- Use this command to flash the card with the downloaded image:\r\n\r\n```sh\r\nsudo bmaptool copy susi_linux_2018.09.11.img.xz \u002Fdev\u002Fmmcblk0\r\n```\r\n\r\nHere, we use [`bmaptool`](https:\u002F\u002Fsource.tizen.org\u002Fdocumentation\u002Freference\u002Fbmaptool\u002Fbmap-tools-project) (installed via `sudo apt install bmap-tools`), instead of `dd`, so that we don't have to decompress the file and can see the progress.\r\n\r\n- If you prefer GUI tool, we recommend [GNOME Disks](https:\u002F\u002Fwiki.gnome.org\u002FApps\u002FDisks), which also decompresses the file on-the-fly.\r\n\r\n- On Windows and MacOSX, you can use [Etcher](https:\u002F\u002Fetcher.io\u002F), which is not as rich-featured as GNOME Disks (you have to manually decompress the file first).\r\n\r\n## Configuring your Wifi Network\r\n* The rasPi will create an access point named \"SUSI.AI\" and the password is \"password\"\r\n* Login through SSH , the pi will have an ip \"10.0.0.1\"\r\n\r\n* Execute the command `sudo bash \u002Fhome\u002Fpi\u002FSUSI.AI\u002Fsusi_linux\u002Faccess_point\u002Fwifi_search.sh SSID PASSWORD`\r\nWhere SSID is the name of your Wifi Network and PASSWORD is the name of Wifi Password\r\n\r\n* Then convert your pi back to normal mode using `sudo bash \u002Fhome\u002Fpi\u002FSUSI.AI\u002Fsusi_linux\u002Faccess_point\u002Frwap.sh`\r\n\r\nAnd Voila :')\r\nYour Pi should reboot and play sounds saying 'SUSI is alive and listening' followed by 'SUSI has started' .\r\nThen you can process the queries.","2018-09-09T17:44:52",{"id":117,"version":118,"summary_zh":119,"released_at":120},103199,"v0.1","\r\n# [Here is a link to our first release of SUSI Linux](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1YWS2yWL9HfqiSudz5S7Q-5hrNucZwHhI\u002Fview)\r\n\r\n## Steps to Install\r\n* Extract the folder and mount ISO file on a 16GB SD card\r\n* Use command 'python3 -m main' to start\r\n\r\n---\r\n\r\nComing up in the second release:\r\n* Now the distro should start automatically. There is a voice \"SUSI is alive\". After that:\r\n* Use to the mobile app to complete configuration. In the mobile go to \"Settings > Device > Add Device\" and follow wizard\r\n","2018-08-09T17:48:37",[122,132,141,149,157,169],{"id":123,"name":124,"github_repo":125,"description_zh":126,"stars":127,"difficulty_score":35,"last_commit_at":128,"category_tags":129,"status":56},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[130,131,49],"开发框架","图像",{"id":133,"name":134,"github_repo":135,"description_zh":136,"stars":137,"difficulty_score":138,"last_commit_at":139,"category_tags":140,"status":56},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[130,49,50],{"id":142,"name":143,"github_repo":144,"description_zh":145,"stars":146,"difficulty_score":138,"last_commit_at":147,"category_tags":148,"status":56},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[130,131,49],{"id":150,"name":151,"github_repo":152,"description_zh":153,"stars":154,"difficulty_score":138,"last_commit_at":155,"category_tags":156,"status":56},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[130,50],{"id":158,"name":159,"github_repo":160,"description_zh":161,"stars":162,"difficulty_score":138,"last_commit_at":163,"category_tags":164,"status":56},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[131,165,166,167,49,168,50,130,48],"数据工具","视频","插件","其他",{"id":170,"name":171,"github_repo":172,"description_zh":173,"stars":174,"difficulty_score":35,"last_commit_at":175,"category_tags":176,"status":56},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[49,131,130,50,168]]