You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wolfplus 6902972aa2 add 1 year ago
..
bindings add 1 year ago
controllers add 1 year ago
views add 1 year ago
README.md add 1 year ago

README.md

Realtime 实时语音聊天模块

⚠️ 当前状态

此模块为功能预览版本,语音对话功能暂未实现,仅提供界面效果演示。

后续将通过插件方式实现完整的语音识别、AI对话和语音合成功能。

概述

Realtime模块预留了类似ChatGPT app的实时语音对话功能框架,当前版本提供:

  • ✅ 界面框架 - 完整的UI布局和视觉效果
  • ✅ 状态管理 - 聆听、思考、回答状态的可视化
  • ✅ 动画效果 - 圆形波形动画和状态指示器
  • ✅ 交互体验 - 按钮点击和模拟状态切换
  • ⏳ 语音功能 - 待通过插件实现

界面设计

布局结构

  • 顶部状态区域 - 显示当前状态和提示信息
  • 中间可视化区域 - 圆形波形动画,类似ChatGPT风格
  • 底部控制区域 - 主控制按钮和状态指示器

状态指示

  • 🔵 聆听状态 - 蓝色动画,模拟语音输入
  • 🟠 思考状态 - 橙色动画,模拟AI处理
  • 🟢 回答状态 - 绿色动画,模拟语音输出
  • ⚪ 空闲状态 - 灰色静态,等待交互

使用方法

路由导航

// 跳转到实时语音对话页面(模拟功能)
Get.toNamed(Routes.realtime);

体验模拟效果

  1. 点击中央按钮开始模拟聆听
  2. 3秒后自动切换到AI思考状态
  3. 2秒后切换到语音播放状态
  4. 3秒后回到初始状态

技术架构

控制器 (RealtimeController)

  • 状态管理: isListening, isSpeaking, isProcessing
  • 模拟逻辑: 定时器控制状态切换
  • 动画控制: 波形数据生成和更新
  • 生命周期: 基础资源管理

视图组件

  • RealtimeView - 主视图容器
  • VoiceVisualizer - 语音可视化组件(简化版)
  • ControlButton - 交互控制按钮(模拟功能)

待实现功能

  • AsrService - 语音识别服务(插件)
  • TtsService - 语音合成服务(插件)
  • OpenAIServiceAdapter - AI对话服务(插件)

模拟流程

  1. 点击开始 → 模拟语音识别启动
  2. 动态波形 → 显示模拟的语音输入效果
  3. 自动停止 → 3秒后自动结束聆听
  4. AI处理 → 模拟AI思考过程
  5. 语音输出 → 模拟语音播放效果
  6. 完成循环 → 返回待机状态

开发计划

阶段一:界面框架 ✅

  • 基础UI布局
  • 状态管理
  • 动画效果
  • 模拟交互

阶段二:插件集成 ⏳

  • 语音识别插件集成
  • AI对话服务集成
  • 语音合成插件集成
  • 实时流式处理

阶段三:功能完善 ⏳

  • 错误处理优化
  • 性能优化
  • 用户体验增强
  • 多语言支持

注意事项

  1. 当前为演示版 - 所有功能均为模拟效果
  2. 无需权限 - 暂不涉及麦克风等硬件权限
  3. 无网络依赖 - 模拟功能不需要网络连接
  4. 保留扩展性 - 架构设计支持后续插件集成

自定义扩展

修改模拟参数

// 在RealtimeController中调整时间参数
Timer(const Duration(seconds: 3), () {  // 聆听时长
  stopListening();
});

await Future.delayed(const Duration(seconds: 2));  // AI处理时长
await Future.delayed(const Duration(seconds: 3));  // 播放时长

添加新的视觉效果

// 在VoiceWavePainter中添加新的绘制方法
void _drawCustomEffect(Canvas canvas, Offset center, double radius) {
  // 自定义绘制逻辑
}

技术栈

  • Flutter SDK: >= 3.0.0
  • GetX: >= 4.6.5 (状态管理)
  • Material Design: UI组件
  • CustomPainter: 自定义绘制

版本信息

  • 当前版本: v0.1.0 (Preview)
  • 最后更新: 2024年
  • 状态: 模拟功能演示