# bot-python **Repository Path**: sweetheart-has-double/bot-python ## Basic Information - **Project Name**: bot-python - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-09 - **Last Updated**: 2026-03-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 机器人客户端 —— 重构版 ## 项目结构 ``` robot-client/ ├── main.py # 启动入口(只负责组装) ├── config/ │ └── config.yaml # 所有参数集中配置 ├── core/ │ ├── event_bus.py # 事件总线(发布/订阅) │ ├── state_machine.py # 有限状态机 │ └── context.py # 全局运行时上下文 ├── states/ │ ├── idle_state.py # 等待唤醒 │ ├── wakeup_state.py # 播放提示音 │ ├── listening_state.py # VAD 录音 │ ├── thinking_state.py # 发送服务器、等待回复 │ ├── speaking_state.py # 播放回复音频 │ └── error_state.py # 错误处理 ├── services/ │ ├── wakeup_service.py # Porcupine 唤醒词检测 │ ├── record_service.py # VAD 录音 │ ├── communication_service.py # HTTP 通信 │ ├── audio_player.py # 音频播放(异步) │ ├── emotion_service.py # 表情控制 │ └── idle_emotion_service.py # 待机随机表情 ├── devices/ │ ├── mic/mic_driver.py # 麦克风驱动 │ ├── speaker/speaker_driver.py # 扬声器驱动 │ └── screen/screen_driver.py # 屏幕驱动(封装 pixel_emoji) └── utils/ ├── device_selector.py # 交互式设备选择 └── logger.py # 日志配置 ``` ## 状态流转 ``` IDLE → WAKEUP → LISTENING → THINKING → SPEAKING → IDLE ↘ ↘ ↘ ERROR ───────────────────→ IDLE ``` ## 运行 ```bash # 在项目根目录 python main.py ``` ## 扩展 - **新唤醒方式**:在 `triggers/` 新建 trigger,发布 `Event.WAKEUP_DETECTED` 即可 - **新表情**:修改 `pixel_emoji.py` 的 `EXPRS`,无需改业务代码 - **换服务器协议**:只改 `services/communication_service.py` - **换 VAD 算法**:只改 `services/record_service.py`