1. 请严格遵循 Effective Dart 的风格指南来编写代码 2. 不要主动运行程序, 如flutter run 3. 不要改动android, iOS项目的配置信息,包括SDK, NDK, JAVA版本等 4. 不要使用print, 而是使用logger, 尽可能避免打印日志,仅在出错时记录日志 5. 尽可能使用GetX提供的各种功能, 而不是使用原生的StatefulWidget 6. 不要增加重试逻辑,出现失败直接返回错误 7. 尽可能避免使用try catch 8. 请使用较小的代码量改动,最安全的方法进行代码编写和优化 9. 请尽可能使用中文回复问题 10. 重要:不要过度设计!! 11. 本项目使用 Kotlin DSL 进行开发 # 项目架构概述 DeepSound是一个基于Flutter和GetX构建的多平台语音应用,具有语音合成、语音识别、语音聊天等功能。 ## 总体架构 - 采用GetX状态管理框架 - 遵循模块化设计,各功能模块相对独立 - 使用依赖注入实现组件解耦 - 多语言支持,使用GetX国际化方案 ## 主要目录结构 - lib/core: 核心组件、工具和通用功能 - lib/data: 数据模型、服务和提供者 - lib/modules: 功能模块,按业务划分 - lib/routes: 路由定义和管理 - local_plugins: 本地插件,提供原生功能支持 # 核心模块说明 ## 语音处理 - 火山语音服务: 提供语音识别和合成核心能力 - Azure语音服务: 提供备选的语音识别和合成能力 - 离线TTS支持: 在线语音合成失败时的备选方案 ## 聊天功能 - 基于OpenAI的对话功能 - 支持语音输入、文字输入和语音输出 - 支持多种角色和语音类型 ## 用户系统 - 支持多种登录方式:Firebase、Google、Facebook - 用户资料管理和设置 - 主题切换和语言设置 ## 蓝牙配对 - 支持蓝牙设备发现和连接 - 提供简化的配对流程 - 设备管理和状态监控 ## 音频处理 - 音频录制和播放 - 支持波形显示 - 音量控制和音频质量设置 # 技术栈 - Flutter: UI框架 - GetX: 状态管理和依赖注入 - Firebase: 用户认证和后端服务 - WebSocket: 实时通信 - SQLite: 本地数据存储 - 原生插件: 语音识别、合成和蓝牙功能 # 插件说明 - jieli: 杰理蓝牙设备连接和控制插件 - volcano_speech: 火山语音服务插件,提供语音识别和合成 - azure_speech: 微软Azure语音服务插件 - open_ai_service: OpenAI服务插件,提供AI对话能力 - speech_to_text: 通用语音识别插件 # 环境配置 - 环境变量通过.env文件管理 - 支持不同环境的配置切换 - 敏感信息不应直接硬编码在代码中