# MorseSpark **Repository Path**: molubanche/MorseSpark ## Basic Information - **Project Name**: MorseSpark - **Description**: No description available - **Primary Language**: Swift - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-23 - **Last Updated**: 2025-11-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MorseSpark - 摩斯密码学习与识别应用 ## 项目介绍 MorseSpark 是一款功能全面的iOS摩斯密码应用,支持摩斯密码的学习、播放和多种方式的识别功能。 ## 主要功能 ### 🎵 播放功能 - **文本转摩斯密码**:将任意文本转换为摩斯密码并播放 - **多种播放模式**: - 声音播放(按照标准摩斯密码音频) - 屏幕闪烁(视觉效果) - 手电筒闪烁(使用相机闪光灯) - **可调节播放速度**:适应不同水平的学习者 - **头信息优化**:自动添加头信息提高识别准确率 ### 🎙️ 识别功能 - **音频识别**:实时录音识别摩斯密码信号 - **视频识别**:从视频文件中检测闪烁信号 - **实时相机识别**:使用前置摄像头实时检测闪烁 - **区域选择**:可选择视频中的特定区域进行检测 - **智能纠错**:基于摩斯密码相似度的文本纠错功能 ### 📚 学习功能 - **摩斯密码表**:完整的字母数字摩斯密码对照表 - **随机练习**:自动生成随机的字母组合进行练习 - **互动学习**:点击任意字母可听到对应的摩斯密码音频 ## 技术架构 ### 核心模块 - **MorseCodeTranslator**:摩斯密码与文本的双向转换 - **MorseDetector**:音频信号中的摩斯密码检测 - **FlashDetector**:视频/实时相机中的闪烁检测 - **AudioFileInfo**:音频文件信息管理 ### 架构模式 - **MVVM架构**:使用SwiftUI + Combine实现响应式UI - **模块化设计**:清晰的模块分离,便于维护和扩展 ## 系统要求 - iOS 15.0+ - Xcode 14.0+ - 支持相机和麦克风访问权限 ## 安装使用 1. **克隆项目** ```bash git clone https://github.com/your-repo/MorseSpark.git cd MorseSpark ``` 2. **打开项目** 使用Xcode打开`MorseSpark.xcodeproj`文件 3. **运行项目** 选择目标设备,点击运行按钮或使用Cmd+R ## 使用说明 ### 播放功能 1. 在首页点击“播放”按钮 2. 输入要播放的文本或摩斯密码 3. 选择播放模式(声音/屏幕/手电筒) 4. 调节播放速度 5. 点击播放按钮开始 ### 识别功能 1. 在首页点击“识别”按钮 2. 选择识别模式: - **音频识别**:点击录音按钮开始/停止录音 - **视频识别**:选择视频文件后点击分析 - **实时识别**:开启相机实时检测闪烁 3. 查看识别结果和智能纠错建议 ### 学习功能 1. 在首页点击“学习”按钮 2. 查看完整的摩斯密码对照表 3. 点击任意字母听取摩斯密码音频 4. 使用随机练习模式提高技能 ## 核心特性 ### 头信息优化 为了解决音频、视频识别中第一个字母失败的问题,应用会在生成摩斯密码时自动添加头信息: - **原始文本**:"hello" - **摩斯密码**:".... . .-.. .-.. ---" - **带头信息**:"... ... ... .... . .-.. .-.. ---" 这样可以显著提高识别的准确率。 ### 智能纠错算法 应用使用基于摩斯密码相似度的纠错算法,特别针对: - 点划混淆(. 和 - 的识别错误) - 首字母优先纠错 - 基于关键词字典的智能匹配 ## 文件结构 ``` MorseSpark/ ├── MorseSpark/ │ ├── MorseSparkApp.swift # 应用入口 │ ├── Model/ # 数据模型 │ │ ├── MorseCodeTranslator.swift │ │ ├── MorseDetector.swift │ │ ├── FlashDetector.swift │ │ └── AudioFileInfo.swift │ ├── ViewModel/ # 视图模型 │ │ ├── HomeViewModel.swift │ │ ├── PlayViewModel.swift │ │ ├── LearningViewModel.swift │ │ ├── RecognitionViewModel.swift │ │ └── SettingsViewModel.swift │ ├── Views/ # 视图组件 │ │ ├── ContentView.swift │ │ ├── HomeView.swift │ │ ├── PlayView.swift │ │ ├── LearningView.swift │ │ ├── RecognitionView.swift │ │ └── SettingsView.swift │ └── Resources/ # 资源文件 │ ├── morse_dot.wav # 点音频 │ ├── morse_dash.wav # 划音频 │ └── keywords_data.txt # 关键词字典 └── MorseSpark.xcodeproj/ # Xcode项目文件 ``` ## 更新日志 ### v1.0.1 (最新版本) - ✅ 修复音频、视频识别首字母失败问题 - ✅ 添加头信息机制提高识别准确率 - ✅ 优化摩斯密码纠错算法 - ✅ 完善中文注释和文档 ### v1.0.0 - ✅ 实现基本的摩斯密码播放功能 - ✅ 支持音频、视频、实时识别 - ✅ 添加学习模块 - ✅ 实现MVVM架构 ## 贡献指南 欢迎对该项目做出贡献!请遵循以下步骤: 1. Fork 本仓库 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 提交 Pull Request ## 许可证 该项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 作者 班车陈路 - [GitHub](https://github.com/banchemolu) ## 鸣谢 - 感谢所有为该项目做出贡献的开发者 - 感谢SwiftUI社区提供的优秀教程和示例