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.
73 lines
2.6 KiB
73 lines
2.6 KiB
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文件管理
|
|
- 支持不同环境的配置切换
|
|
- 敏感信息不应直接硬编码在代码中
|