/ README.zh.md
README.zh.md
  1  # 卡拉OK语言学习 Dapp
  2  
  3  [![en](https://img.shields.io/badge/lang-en-blue.svg)](https://github.com/technohippies/karaoke-dapp/blob/main/README.md)
  4  [![zh](https://img.shields.io/badge/lang-zh-red.svg)](https://github.com/technohippies/karaoke-dapp/blob/main/README.zh.md)
  5  
  6  一个结合语言学习与区块链技术的去中心化卡拉OK应用,使用 Lit Protocol 进行安全内容加密。
  7  
  8  ## 🎤 功能特性
  9  
 10  - **多语言支持**:支持英语、中文、维吾尔语(ئۇيغۇرچە)和藏语(བོད་སྐད)
 11  - **间隔重复系统(SRS)**:使用 FSRS 算法高效学习歌词
 12  - **加密内容**:通过 Lit Protocol 保护翻译
 13  - **Web3 身份验证**:支持 MetaMask、Coinbase 和 JoyID 等主流钱包连接
 14  - **语音和歌曲积分**:基于代币的访问系统
 15  - **AI 驱动反馈**:实时发音评分
 16  - **离线优先**:使用 IndexedDB 实现本地数据持久化
 17  
 18  ## 🚀 快速开始
 19  
 20  ### 前置要求
 21  - Node.js 18+ 或 Bun
 22  - Base 主网 ETH 用于交易
 23  - Base 主网上的 USDC 用于购买积分
 24  
 25  ### 安装
 26  
 27  ```bash
 28  # 克隆仓库
 29  git clone https://github.com/technohippies/karaoke-dapp.git
 30  cd karaoke-dapp
 31  
 32  # 安装依赖
 33  bun install
 34  
 35  # 设置环境变量
 36  cd apps/web
 37  cp .env.example .env
 38  # 编辑 .env 配置文件
 39  
 40  # 启动开发服务器
 41  bun dev
 42  ```
 43  
 44  对于本地开发,创建 `.env.local` 文件以覆盖任何设置。
 45  
 46  ## 📁 项目结构
 47  
 48  ```
 49  karaoke-dapp/
 50  ├── apps/
 51  │   └── web/                 # React 前端应用
 52  │       ├── src/
 53  │       │   ├── components/  # UI 组件
 54  │       │   ├── pages/       # 路由页面
 55  │       │   ├── services/    # 业务逻辑
 56  │       │   ├── hooks/       # 自定义 React hooks
 57  │       │   └── i18n/        # 翻译文件
 58  │       └── public/
 59  ├── contracts/               # 智能合约
 60  │   ├── src/                # Solidity 合约
 61  │   └── script/             # 部署脚本
 62  ├── lit-actions/            # Lit Protocol 无服务器函数
 63  ├── scripts/                # 实用脚本
 64  ├── tableland/              # Tableland 数据库管理
 65  ```
 66  
 67  ## 🏗️ 架构设计
 68  
 69  ### 智能合约
 70  
 71  **KaraokeSchool** (`0xbfdAbCa93e738E343351D629a541f32636d39ac3` (v4karaoke.deployd.base.eth) 在 Base 主网)
 72  - 管理语音和歌曲积分
 73  - 处理歌曲解锁机制
 74  - 在卡拉OK会话期间托管积分
 75  - 验证 PKP 签名进行评分
 76  
 77  ### Lit Protocol 集成
 78  
 79  - **内容加密**:通过 Lit Protocol 加密翻译
 80  - **访问控制**:只有解锁歌曲的用户才能解密内容
 81  - **Lit Actions**:
 82    - 卡拉OK评分器 - 包含 Deepgram(STT)和 OpenRouter(LLM)的嵌入式 API 密钥
 83    - 练习 - "跟读":单行 STT 评分
 84  
 85  ### 数据库
 86  
 87  - **IndexedDB**:用于离线功能的本地存储
 88  - **Tableland**:用于歌曲元数据的去中心化 SQL 数据库
 89  - **IPFS (Pinata)**:加密内容存储
 90  
 91  ## 🛠️ 开发
 92  
 93  ### 生产构建
 94  
 95  ```bash
 96  # 构建前端
 97  cd apps/web
 98  bun run build
 99  
100  # 应用部署在 Base 主网
101  # 当前部署:
102  # - 合约:0xbfdAbCa93e738E343351D629a541f32636d39ac3 (v4karaokeschool.technohippies.base.eth)
103  # - Splits:0x90840E8cfbeEB3adC85cb665A5b9CeB942150f88
104  # - 网络:Base 主网(链 ID:8453)
105  # - Tableland:karaoke_songs_8453_8453_25
106  ```
107  
108  ## 📄 许可证
109  
110  本项目根据 GNU Affero 通用公共许可证 v3.0 (AGPLv3) 授权 - 详情请参阅 LICENSE 文件。
111  
112  ## 📚 仓库访问
113  
114  为了冗余和抗审查,本项目在多个平台上可用:
115  
116  ### 主仓库
117  - **GitHub**:https://github.com/technohippies/karaoke-dapp.git
118  
119  ### 去中心化镜像
120  - **Radicle**:https://app.radicle.xyz/nodes/rosa.radicle.xyz/rad:zjAPSYMsctUsESkgc9XqTgcstWUH
121  - **通过 Radicle 克隆**:`rad:zjAPSYMsctUsESkgc9XqTgcstWUH`
122  
123  Radicle 仓库作为去中心化、抗审查的镜像。更新会从 GitHub 自动同步,略有延迟。如果仓库因任何原因从中心化平台删除,或者在您的地区访问受限,完整的代码库仍可通过 Radicle 的点对点网络永久访问。
124  
125  ## ⚖️ 法律声明和版权合规
126  
127  - **歌词内容**:所有受版权保护的歌词均从 LRCLIB 的 API 动态加载。我们不在服务器或仓库中托管、存储或分发任何受版权保护的歌词内容。