Mural 是一个开源的原生移动端语言学习应用,主打“通过对话学习”:用户与 AI 进行语音或文字对话,应用根据回复证据记录词汇、能力观察和复习强度。项目同时包含 iPhone 端和 Android 端:iPhone 使用 SwiftUI、SwiftData、Keychain、WebRTC 等技术;Android 使用 Kotlin 和 Jetpack Compose。当前版本不提供官方云服务或公共 TestFlight,用户需要自行构建安装,并使用自己的 OpenAI API Key 连接 GPT-Live-1、GPT-5.6 Luna 等模型。学习记录主要保存在本地,支持 JSON 备份导入导出。
适用领域
语言学习 / AI 对话陪练 / 移动应用开发 / iOS 原生开发 / Android 原生开发 / SwiftUI / Jetpack Compose / 语音交互 / 本地优先应用 / 教育科技
配置难度
中高。对于有 iOS/Android 原生开发经验的开发者,按照文档构建并运行可行;但对普通学习者而言,Xcode 签名、开发者模式、OpenAI API 权限、移动端构建环境都会形成明显门槛。若要二次开发语言模块、语音对话流程或商业托管服务,难度较高。
商业价值
该项目的商业价值主要在于验证 AI 对话式语言学习产品形态:它展示了本地优先、用户自带 API Key、移动端实时语音对话、词汇证据追踪和多语言模块化架构。对于中国开发者,可作为开发 AI 口语陪练、出海语言学习 App、教育科技原型或企业内部语言培训工具的参考。但当前缺少官方分发、托管计费和成熟运营体系,直接商业化还需要补齐账号体系、支付、内容审核、隐私合规、成本控制、模型替换、国内网络适配和学习效果评估等环节。
01
技术亮点
- 强调对话式语言学习,而非传统背单词或刷题模式。
- 支持语音和文字对话,适合不方便说话时切换为键盘输入。
- 学习记录本地保存,无广告、无分析 SDK、无 Mural 云同步。
- 支持多语言模块,包括西班牙语、法语、德语、意大利语、巴西葡萄牙语、普通话、国际英语和挪威语。
- 普通话模块支持可选拼音、词边界处理和词汇查询,对中文学习者或中文教学场景有参考价值。
- 提供回忆强度条和间隔证据机制,用对话中的真实使用情况估计词汇掌握程度。
- iPhone 和 Android 都是原生客户端,分别使用 SwiftUI 和 Jetpack Compose。
- 项目结构清晰,包含 apps/ios、apps/android、shared、services/api、docs、verification 等目录。
- 有较详细的构建、验证和发布准备文档。
- MIT License,便于学习、二次开发和商业评估。
02
目标用户
- 希望通过真实对话练习外语的学习者
- 想研究 AI 语言学习产品实现方式的开发者
- iOS 或 Android 原生应用开发者
- 希望基于 OpenAI API 构建语音对话应用的团队
- 关注隐私、本地存储和自托管 API Key 模式的用户
- 想为语言学习工具增加新语言模块的贡献者
03
配置要求
- OpenAI API 项目必须开通计费,并具备所需模型访问权限;ChatGPT 订阅不等于 API 额度。
- 需要用户自行提供 OpenAI API Key;项目不包含共享 provider key,也不建议将 key 写入源码、日志或聊天记录。
- iPhone 端需要 Xcode 26+、iOS 26.1+、Apple Account;免费 Personal Team 的签名配置通常 7 天过期,需要重新运行刷新。
- Android 端需要 Java 17、Android SDK 36、Android 8.0+。
- 语音对话需要麦克风权限和稳定网络连接。
- API Key 在 iPhone 上存储于 Keychain,在 Android 上通过 Android Keystore 存储。
- 如果要保持已有学习数据,更新时必须保留原来的 signing team 和 bundle identifier,不要卸载应用。
- 公共托管服务、免费会话、分钟购买、App Store/TestFlight 分发目前未启用。
04
适用场景
- 与 AI 进行目标语言的语音或文字对话练习
- 在对话中查看含义字幕、纠错和词汇解释
- 按主题进行情景对话,例如咖啡馆、旅行、日常闲聊等
- 通过本地记录追踪词汇掌握程度和复习强度
- 学习西班牙语、法语、德语、意大利语、葡萄牙语、普通话、英语、挪威语等语言
- 导出或导入本地学习记录 JSON 备份
- 研究如何在移动端集成 OpenAI 实时语音、文本和搜索能力
- 作为教育类 AI App 的开源参考实现
05
部署与配置
- iPhone 安装:准备 macOS 电脑、Xcode 26 或更高版本、iOS 26.1 或更高版本的 iPhone、Apple Account,以及具备计费和模型权限的 OpenAI API 项目。
- 克隆仓库:git clone https://github.com/Chuloo/mural.git。
- 打开 iOS 工程:使用 Xcode 打开 apps/ios/Mural.xcodeproj。
- 在 Xcode 的 Settings → Accounts 中添加 Apple Account。
- 选择 Mural target,在 Signing & Capabilities 中启用自动签名并选择 Team。如使用个人 fork,建议修改为唯一 bundle identifier,例如 com.yourname.mural,并在后续更新中保持不变。
- 连接并解锁 iPhone,信任 Mac,并在 iPhone 的 Settings → Privacy & Security → Developer Mode 中开启开发者模式。
- 在 Xcode 中选择 Mural scheme 和目标 iPhone,点击 Run 构建并安装。
- 首次打开 App 后选择学习语言和字幕语言,在 Settings → Advanced → Use your own API key 中输入自己的 OpenAI API Key。
- Android 安装:准备 Java 17、Android SDK 36、Android 8.0 或以上设备。
- 进入 apps/android 目录并执行 ./gradlew :app:testDebugUnitTest :app:lintDebug :app:assembleDebug 构建个人安装 APK。
- 测试构建:可在仓库根目录运行 swift test --package-path apps/ios,以及 xcodebuild 命令构建 iOS Simulator 目标。
06
风险与注意事项
- 安装门槛较高,iPhone 端需要较新的 Xcode 和 iOS 版本,普通用户难以直接使用。
- 没有官方 TestFlight 或 App Store 版本,当前更适合开发者自行构建。
- 依赖 OpenAI API,存在模型权限、网络可用性、费用和数据合规风险。
- 语音、文本、学习上下文和搜索请求会发送到 OpenAI,虽然本地不保存原始音频,但仍需遵守 OpenAI 的数据保留和滥用监控规则。
- App 内使用量显示只是估算,不是严格的费用上限,用户需要在 OpenAI 控制台设置预算和用量限制。
- README 中仓库主语言显示为 Kotlin,但项目实际包含大量 iOS Swift/SwiftUI 内容;技术栈跨度较大,维护复杂度较高。
- 公共服务、账号、支付、分钟购买等能力尚未正式启用,不适合作为即插即用的商业 SaaS。
- 语言学习效果、发音纠正质量和口语识别质量尚未形成权威验证,README 也明确提示不能据此宣称学习有效性或认证能力。
- 免费 Apple 开发者签名会过期,可能影响长期稳定使用。
- 若更换 bundle identifier、签名团队或设备,可能导致本地学习数据迁移复杂。
2026-09-15
第18名
新收录 · github_search