# 代码简明规范 ## Dart / Flutter 1. 风格统一 • 严格遵循 Effective Dart 格式与命名惯例。 2. 日志与调试 • 禁止 print;仅在异常场景调用 logger.e(...)。 3. 业务逻辑 • 默认使用 GetX(状态、路由、依赖注入等),避免手写 StatefulWidget。 4. 异常处理 • 不写重试逻辑,失败即返回错误。 • 谨慎使用 try-catch;优先通过类型系统与空安全防御。 5. 代码演进 • 任何改动都应 “小步、安全”,杜绝一次性大改或过度设计。 ## 原生层(Android / iOS) 1. 配置不可改 • 禁止修改 SDK、NDK、JDK 与 iOS 构建配置。 2. Kotlin DSL • 原生实现一律采用 Kotlin + 协程,遵守 Kotlin 最佳实践。 • 不写 Java 代码。 ## 通用要求 1. 不自动执行 • 生成脚本/代码不得包含 flutter run 等执行指令。 2. 并发优先级 • 并发场景首选 Kotlin 协程;仅在 Flutter 端按需使用 Dart Future / Stream。 3. 语言 • 与用户交流、注释及文档一律使用中文。 宗旨:保持极简,先跑通业务,再考虑优化。 # 项目架构概述 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文件管理 - 支持不同环境的配置切换 - 敏感信息不应直接硬编码在代码中