/ README.zh.md
README.zh.md
1 # 卡拉OK语言学习 Dapp 2 3 [](https://github.com/technohippies/karaoke-dapp/blob/main/README.md) 4 [](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 动态加载。我们不在服务器或仓库中托管、存储或分发任何受版权保护的歌词内容。