171 lines
4.1 KiB
Markdown
171 lines
4.1 KiB
Markdown
# Scratch语音助手设计文档
|
||
|
||
## 项目概览
|
||
基于原Python多进程语音系统的简化版,专为Scratch平台设计的教育性质AI助手。
|
||
|
||
## 核心功能
|
||
|
||
### 1. 语音交互系统
|
||
- **输入**: Scratch内置语音识别
|
||
- **输出**: Scratch文本转语音
|
||
- **触发**: 点击绿旗或按键触发录音
|
||
|
||
### 2. 角色扮演系统
|
||
基于原项目的角色设定,创建4个可切换的AI角色:
|
||
|
||
#### 李白 (libai)
|
||
- **性格**: 浪漫诗人,豪放不羁
|
||
- **说话风格**: 文言文,经常引用诗句
|
||
- **特征回复**:
|
||
- "吾乃李白,字太白,号青莲居士"
|
||
- "喝酒写诗,人生一大乐事"
|
||
- "飞流直下三千尺,疑是银河落九天"
|
||
|
||
#### 猪八戒 (zhubajie)
|
||
- **性格**: 贪吃懒做,幽默风趣
|
||
- **说话风格**: 口语化,喜欢谈论吃的
|
||
- **特征回复**:
|
||
- "嘿嘿,俺老猪来也"
|
||
- "肚子饿了,有没有好吃的?"
|
||
- "师父,我们休息一下吧"
|
||
|
||
#### 唐僧 (tangseng)
|
||
- **性格**: 慈悲为怀,说话文雅
|
||
- **说话风格**: 温文尔雅,经常念经
|
||
- **特征回复**:
|
||
- "阿弥陀佛,善哉善哉"
|
||
- "出家人以慈悲为怀"
|
||
- "悟空,不得无礼"
|
||
|
||
#### 沙僧 (shaseng)
|
||
- **性格**: 忠厚老实,沉默寡言
|
||
- **说话风格**: 简洁朴实,忠诚可靠
|
||
- **特征回复**:
|
||
- "大师兄说得对"
|
||
- "师父,我来扛行李"
|
||
- "二师兄,你又偷懒了"
|
||
|
||
### 3. 关键词匹配系统
|
||
设计简单的关键词触发回复:
|
||
|
||
#### 通用问候
|
||
- "你好" → "你好!很高兴见到你"
|
||
- "谢谢" → "不客气,这是应该的"
|
||
- "再见" → "再见,下次见"
|
||
|
||
#### 角色特色回复
|
||
- 李白 + "诗" → 谈论诗歌创作
|
||
- 猪八戒 + "吃" → 谈论美食
|
||
- 唐僧 + "佛" → 谈论佛法
|
||
- 沙僧 + "行李" → 谈论挑担子
|
||
|
||
## 技术实现
|
||
|
||
### 变量设计
|
||
```
|
||
当前角色 (current_character) = "libai"
|
||
对话状态 (conversation_state) = "idle"
|
||
录音状态 (recording_state) = "stopped"
|
||
对话历史 (conversation_history) = []
|
||
回复内容 (response_text) = ""
|
||
```
|
||
|
||
### 列表设计
|
||
```
|
||
角色列表 (characters) = ["libai", "zhubajie", "tangseng", "shaseng"]
|
||
角色名称 (character_names) = ["李白", "猪八戒", "唐僧", "沙僧"]
|
||
关键词列表 (keywords) = ["你好", "谢谢", "再见", "诗", "吃", "佛", "行李"]
|
||
回复模板 (response_templates) = [...]
|
||
```
|
||
|
||
### 广播消息
|
||
```
|
||
开始录音 (start_recording)
|
||
停止录音 (stop_recording)
|
||
切换角色 (change_character)
|
||
显示回复 (show_response)
|
||
清除对话 (clear_conversation)
|
||
```
|
||
|
||
## 视觉设计
|
||
|
||
### 背景设计
|
||
- 主背景:简洁的界面,包含标题和状态显示
|
||
- 角色选择区:4个角色头像按钮
|
||
- 对话显示区:显示对话历史
|
||
- 控制按钮:录音、清除、帮助
|
||
|
||
### 角色造型
|
||
每个角色设计2-3个造型:
|
||
- 默认造型(正常状态)
|
||
- 说话造型(张嘴状态)
|
||
- 思考造型(皱眉状态)
|
||
|
||
## 积木逻辑流程
|
||
|
||
### 主程序流程
|
||
```
|
||
当绿旗被点击
|
||
初始化变量
|
||
显示角色选择按钮
|
||
设置为待机状态
|
||
等待用户操作
|
||
```
|
||
|
||
### 录音处理流程
|
||
```
|
||
当点击录音按钮
|
||
广播"开始录音"
|
||
侦听语音并等待
|
||
识别结果 → 存储到变量
|
||
分析关键词
|
||
生成回复
|
||
广播"显示回复"
|
||
说出回复内容
|
||
```
|
||
|
||
### 角色切换流程
|
||
```
|
||
当点击角色头像
|
||
设置当前角色变量
|
||
切换角色显示
|
||
播放切换音效
|
||
显示角色介绍
|
||
```
|
||
|
||
## 扩展功能
|
||
|
||
### 1. 对话历史
|
||
- 保存最近10轮对话
|
||
- 支持查看历史记录
|
||
- 支持清除历史
|
||
|
||
### 2. 表情动画
|
||
- 根据回复内容切换角色造型
|
||
- 添加简单的动画效果
|
||
- 增加互动趣味性
|
||
|
||
### 3. 音效系统
|
||
- 角色切换音效
|
||
- 录音开始/结束提示音
|
||
- 错误提示音
|
||
|
||
## 部署建议
|
||
|
||
### 开发环境
|
||
- Scratch 3.0 桌面版
|
||
- 需要网络连接(语音功能)
|
||
- 麦克风和扬声器设备
|
||
|
||
### 测试建议
|
||
- 先测试语音识别功能
|
||
- 再测试角色切换逻辑
|
||
- 最后测试整体交互流程
|
||
|
||
### 优化方向
|
||
- 增加更多角色
|
||
- 优化关键词匹配算法
|
||
- 添加更多动画效果
|
||
- 支持多语言
|
||
|
||
这个简化版本保留了原项目的核心AI交互体验,同时适合在Scratch平台实现和教育场景使用。 |