# 像素小助手项目
**Repository Path**: shen19970101/pixel-assistant-project
## Basic Information
- **Project Name**: 像素小助手项目
- **Description**: 像素小助手项目
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-05-13
- **Last Updated**: 2026-05-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🤖 像素小助手
一个复古像素风格的AI小助手应用,支持文本和语音交互!
## ✨ 特性
- 🎨 **16×16像素显示** - 经典复古风格
- 💬 **对话交互** - 文本聊天,支持历史记录
- 🎭 **11种表情** - 待机、开心、思考、聆听、说话、加载、困惑、兴奋、悲伤、惊讶、喜爱
- ✨ **6种动画** - 呼吸、眨眼、说话、扫描、波浪、弹跳
- 🔍 **消息搜索** - 快速搜索历史消息
- ⚙️ **设置功能** - 自定义应用行为
- 💾 **本地存储** - 自动保存聊天历史
- 🤖 **智能回复** - 关键词识别,情感联动
- 🎤 **语音交互** - 完整的语音识别和合成
- 🎵 **音频可视化** - 聆听和说话动画
- 🌊 **悬浮窗模式** - 迷你悬浮窗,随时呼出 ⭐ New
- 🎯 **快捷操作** - 拖拽移动,点击展开 ⭐ New
## 📱 界面预览
### 主界面
```
┌─────────────────────────┐
│ ⚡ 像素小助手 [🔍][🎨][🌊][⚙️] │
├─────────────────────────┤
│ │
│ ┌───────────┐ │
│ │ 像素显示 │ │
│ └───────────┘ │
│ 小助手 │
│ │
│ [对话消息列表] │
│ [时间] │
│ ┌─────────────────┐ │
│ │ 用户消息 │ │
│ └─────────────────┘ │
│ ┌───────────┐ │
│ │ AI回复 │ │
│ └───────────┘ │
│ │
├─────────────────────────┤
│ [🔴按住] [输入框] [发送] │
└─────────────────────────┘
```
### 悬浮窗模式
```
┌─────┐
│╭───╮│ 迷你模式
││ ││
│╰───╯│
└─────┘
↓ 点击展开
┌─────────────────┐
│ ┌─────────┐ │
│ │ 像素显示│ │
│ └─────────┘ │
│ 像素小助手 │
│ [对话][语音][收起]│
└─────────────────┘
```
## 🚀 快速开始
### 前置要求
- Flutter 3.0+
- Dart 3.0+
### 权限配置
#### Android (android/app/src/main/AndroidManifest.xml)
```xml
```
#### iOS (ios/Runner/Info.plist)
```xml
NSSpeechRecognitionUsageDescription
需要语音识别权限来进行语音交互
NSMicrophoneUsageDescription
需要麦克风权限来进行语音输入
```
### 安装运行
```bash
# 1. 进入项目目录
cd pixel_assistant
# 2. 安装依赖
flutter pub get
# 3. 运行应用
flutter run
```
## 📁 项目结构
```
pixel_assistant/
├── lib/
│ ├── main.dart ⭐ Updated
│ ├── config/
│ │ └── theme_config.dart
│ └── features/
│ ├── pixel_display/
│ │ ├── data/
│ │ │ ├── models/
│ │ │ │ ├── pixel_face.dart
│ │ │ │ └── face_data.dart
│ │ │ └── repositories/
│ │ │ └── face_repository.dart
│ │ └── presentation/
│ │ ├── providers/
│ │ │ └── pixel_provider.dart
│ │ ├── widgets/
│ │ │ ├── pixel_canvas.dart
│ │ │ ├── pixel_animator.dart
│ │ │ └── animated_pixel_display.dart
│ │ └── pages/
│ │ └── face_test_page.dart
│ ├── chat/
│ │ ├── data/
│ │ │ ├── models/
│ │ │ │ └── chat_message.dart
│ │ │ └── repositories/
│ │ │ └── chat_repository.dart
│ │ ├── domain/
│ │ │ └── services/
│ │ │ ├── ai_service.dart
│ │ │ └── search_service.dart
│ │ └── presentation/
│ │ ├── providers/
│ │ │ └── chat_provider.dart
│ │ ├── widgets/
│ │ │ ├── message_bubble.dart
│ │ │ └── message_list.dart
│ │ └── pages/
│ │ ├── chat_page.dart ⭐ Updated
│ │ ├── search_page.dart
│ │ └── settings_page.dart
│ ├── speech/
│ │ ├── domain/
│ │ │ └── services/
│ │ │ └── speech_service.dart
│ │ └── presentation/
│ │ ├── providers/
│ │ │ └── speech_provider.dart
│ │ ├── widgets/
│ │ │ └── speech_button.dart
│ │ └── pages/
│ │ └── speech_settings_page.dart
│ └── floating/ ⭐ New
│ ├── domain/
│ │ └── services/
│ │ └── floating_service.dart
│ └── presentation/
│ ├── providers/
│ │ └── floating_provider.dart
│ ├── widgets/
│ │ └── floating_pixel.dart
│ └── pages/
│ └── floating_page.dart
├── assets/
├── test/
└── pubspec.yaml
```
## 🎭 表情说明
| 表情 | ID | 图标 | 触发场景 |
|------|----|------|---------|
| 待机 | idle | 😴 | 空闲无操作时 |
| 开心 | happy | 😊 | 回答完成时 |
| 思考 | thinking | 🤔 | 处理请求时 |
| 聆听 | listening | 🎧 | 语音输入时 |
| 说话 | speaking | 🗣️ | 语音输出时 |
| 加载 | loading | ⏳ | 网络请求时 |
| 困惑 | confused | 😕 | 无法理解时 |
| 兴奋 | excited | 🤩 | 发现好东西时 |
| 悲伤 | sad | 😢 | 表达遗憾时 |
| 惊讶 | surprised | 😮 | 意外发现时 |
| 喜爱 | love | 😍 | 表达喜爱时 |
## ✨ 动画说明
| 动画 | 类型 | 说明 |
|------|------|------|
| 呼吸 | breathe | 待机时的缓慢缩放 |
| 眨眼 | blink | 周期性眼睛闭合 |
| 说话 | talk | 嘴巴张合动画 |
| 扫描 | scan | 上下扫描线 |
| 波浪 | wave | 两侧波浪起伏 |
| 弹跳 | bounce | 上下弹跳 |
## 🌊 悬浮窗功能
### 使用方式
1. **打开悬浮窗设置** - 点击AppBar的🌊图标
2. **显示悬浮窗** - 点击"显示悬浮窗"按钮
3. **拖动移动** - 按住悬浮窗可以拖动位置
4. **点击展开** - 点击悬浮窗可以展开/收起
5. **快捷操作** - 在展开界面可以快速操作
### 展开界面功能
- **对话** - 返回主界面进行对话
- **语音** - 快速启动语音对话
- **收起** - 收起悬浮窗
## 🎤 语音功能
### 使用方式
1. **按住麦克风按钮** - 开始聆听
2. **释放麦克风按钮** - 停止聆听,发送消息
3. **自动语音回复** - AI会语音回复你
### 设置选项
- **语速** - 调整语音播放速度 (0.1 - 2.0)
- **音调** - 调整语音音调 (0.5 - 2.0)
- **音量** - 调整语音音量 (0.0 - 1.0)
## 🎮 智能对话
### 关键词触发
- **你好** - 问候回复
- **你是谁** - 自我介绍
- **笑话** - 讲个笑话
- **学习** - 学习相关回复
- **再见** - 告别回复
### 情感识别
- **开心/高兴/快乐** → 开心表情
- **疑问/困惑/不懂** → 困惑表情
- **伤心/难过/失望** → 悲伤表情
- **惊讶/哇** → 惊讶表情
- **喜欢/爱** → 喜爱表情
- **很棒/厉害/兴奋** → 兴奋表情
## 🛠️ 技术栈
- **框架**: Flutter 3.x
- **语言**: Dart 3.x
- **状态管理**: Provider 6.x
- **本地存储**: SharedPreferences
- **语音识别**: speech_to_text 6.x
- **语音合成**: flutter_tts 3.x
## 📅 开发进度
- ✅ **第一阶段**: 基础框架 - 完成
- 项目结构搭建
- 像素画布组件
- 6种基础表情
- 对话界面
- Provider状态管理
- ✅ **第二阶段**: 像素动画 - 完成
- 动画控制器
- 6种动画效果
- 5种新表情
- 表情测试页面
- 流畅的表情切换
- ✅ **第三阶段**: 对话功能 - 完成
- 本地存储服务
- 智能AI服务
- 对话历史保存
- 消息搜索功能
- 设置页面
- 消息时间显示
- 情感识别联动
- ✅ **第四阶段**: 语音交互 - 完成
- 语音识别集成
- 语音合成集成
- 聆听动画
- 说话动画
- 完整语音对话流程
- 语音设置页面
- 按住说话按钮
- ✅ **第五阶段**: 悬浮窗模式 - 进行中
- 悬浮窗服务
- 迷你像素显示
- 拖拽移动功能
- 点击展开/收起
- 快捷操作界面
- 悬浮窗设置页面
- ⏳ **第六阶段**: 优化完善
- 性能优化
- 更多表情和动画
- 主题切换
- 导出APK
## 📝 说明
目前使用模拟AI,内置关键词回复和情感识别。后续可以接入真实AI后端服务。
语音功能需要设备支持语音识别和麦克风权限。
悬浮窗为应用内悬浮,真正的系统悬浮窗需要额外权限配置。
## 🤖 使用提示
### 文本对话
1. 在输入框输入消息
2. 点击发送按钮或按回车
3. 看到表情从思考→开心→待机的变化
### 语音对话
1. **按住**麦克风按钮开始说话
2. 看到聆听动画和实时识别
3. **释放**麦克风按钮发送消息
4. 看到说话动画和听到语音回复
5. 开心眨眼 → 待机呼吸
### 悬浮窗使用
1. 点击AppBar的🌊图标进入悬浮窗设置
2. 点击"显示悬浮窗"按钮
3. 在屏幕上看到迷你悬浮窗
4. 拖拽悬浮窗可以移动位置
5. 点击悬浮窗可以展开/收起
6. 在展开界面可以进行快捷操作
### 其他功能
1. 🔍 搜索历史消息
2. 🎨 测试表情动画
3. ⚙️ 配置语音和应用选项
4. 发送包含特定关键词的消息,可以看到对应的表情反馈
## 📄 License
MIT License