{"id":28674356,"url":"https://github.com/atorber/clip-text","last_synced_at":"2025-06-13T21:08:30.263Z","repository":{"id":295600413,"uuid":"979950319","full_name":"atorber/clip-text","owner":"atorber","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-26T12:24:04.000Z","size":1918,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-26T12:25:37.081Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atorber.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-08T10:23:03.000Z","updated_at":"2025-05-26T12:22:42.000Z","dependencies_parsed_at":"2025-05-26T12:39:48.809Z","dependency_job_id":null,"html_url":"https://github.com/atorber/clip-text","commit_stats":null,"previous_names":["atorber/clip-text"],"tags_count":2,"template":true,"template_full_name":null,"purl":"pkg:github/atorber/clip-text","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atorber%2Fclip-text","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atorber%2Fclip-text/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atorber%2Fclip-text/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atorber%2Fclip-text/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atorber","download_url":"https://codeload.github.com/atorber/clip-text/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atorber%2Fclip-text/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259719751,"owners_count":22901246,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-13T21:08:27.838Z","updated_at":"2025-06-13T21:08:30.252Z","avatar_url":"https://github.com/atorber.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ClipText\n\n一个安卓音频、视频声音内录转文字APP。转换的文本可以进一步与AI进行对话，直接生成总结、分析、提取要点等。\n\n亦可以作为学习使用dart开发简单应用的模板案例，代码百分百使用cursor自动生成。\n\n## 主要功能点\n\n### 🎙️ 系统音频录制\n- **悬浮窗录制**：支持系统级悬浮窗录音，可录制任意应用的音频输出\n- **内录功能**：录制系统音频、视频声音、通话音频等\n- **后台录制**：支持后台持续录制，不影响其他应用使用\n- **多格式支持**：录制为WAV格式，保证音质\n\n### 📝 智能语音转文字\n- **讯飞语音识别**：集成讯飞语音转写API，支持高精度中文识别\n- **批量转写**：支持批量提交音频文件进行转写\n- **实时查询**：自动轮询转写结果，支持长音频处理\n- **离线存储**：转写结果本地存储，支持离线查看\n\n### 🤖 AI智能对话\n- **ChatGPT集成**：支持OpenAI API和兼容接口\n- **上下文理解**：基于转写文本进行智能问答\n- **多种AI任务**：\n  - 📋 内容总结与提取要点\n  - 🔍 关键信息分析\n  - ❓ 智能问答\n  - 📊 数据整理\n  - ✍️ 文本润色\n- **对话历史**：保存AI对话记录，支持历史回顾\n- **Markdown渲染**：AI回复支持Markdown格式显示\n\n### 📚 文本库管理\n- **分类管理**：按录音来源和时间分类管理转写文本\n- **搜索功能**：支持全文搜索，快速定位内容\n- **编辑功能**：支持文本编辑和标注\n- **导出分享**：支持文本复制和分享\n\n### 🎵 音频播放\n- **内置播放器**：支持录音文件播放和进度控制\n- **播放状态管理**：显示播放进度、时长等信息\n- **音频信息**：显示文件大小、时长、格式等详细信息\n\n### ⚙️ 系统设置\n- **API配置**：\n  - 讯飞语音转写API配置（AppID、SecretKey）\n  - OpenAI API配置（API Key、Base URL、模型选择）\n- **权限管理**：自动申请和管理录音、存储等权限\n- **数据管理**：支持数据备份和清理\n\n### 🔧 技术特性\n- **Flutter跨平台**：基于Flutter框架，支持Android平台\n- **原生插件**：自研system_audio_recorder插件实现系统音频录制\n- **本地存储**：使用SQLite和SharedPreferences进行数据持久化\n- **网络请求**：支持HTTP/HTTPS API调用\n- **Material Design**：遵循Material Design 3设计规范\n\n### 📱 用户体验\n- **直观界面**：底部导航栏设计，功能分区清晰\n- **实时反馈**：操作状态实时显示，加载进度可视化\n- **错误处理**：完善的异常处理和用户提示\n- **响应式设计**：适配不同屏幕尺寸\n\n## 功能简介\n\n### 1. 录音\n\n\u003cimg src=\"./docs/images/1-0.jpg\" alt=\"录制\" height=\"400\"\u003e\n\n### 2. 录音列表\n\n\u003cdiv style=\"display: flex; gap: 20px; flex-wrap: wrap;\"\u003e\n  \u003cimg src=\"./docs/images/2-0.jpg\" alt=\"录制列表\" height=\"400\"\u003e\n  \u003cimg src=\"./docs/images/2-1.jpg\" alt=\"转文字\" height=\"400\"\u003e\n\u003c/div\u003e\n\n### 3. 文本库\n\n\u003cdiv style=\"display: flex; gap: 20px; flex-wrap: wrap;\"\u003e\n  \u003cimg src=\"./docs/images/3-0.jpg\" alt=\"文本库\" height=\"400\"\u003e\n  \u003cimg src=\"./docs/images/3-1.jpg\" alt=\"查看文本原文\" height=\"400\"\u003e\n  \u003cimg src=\"./docs/images/3-2.jpg\" alt=\"AI对话\" height=\"400\"\u003e\n\u003c/div\u003e\n\n### 4. 设置\n\n\u003cimg src=\"./docs/images/4-0.jpg\" alt=\"设置\" height=\"400\"\u003e\n\n## 运行与调试\n\n### 1. 安装依赖\n\n```bash\nflutter pub get\n```\n\n### 2. 连接设备或启动模拟器\n- 连接一台 Android 设备（推荐 Android 10 及以上，已开启开发者模式和 USB 调试）。\n- 或在 Android Studio/VS Code 启动 Android 模拟器。\n\n### 3. 运行项目\n\n```bash\nflutter run\n```\n\n如有多个设备，先用 `flutter devices` 查看设备ID，再用：\n\n```bash\nflutter run -d \u003c设备ID\u003e\n```\n\n### 4. 构建Release版本\n\n使用提供的构建脚本可以自动构建并重命名APK文件：\n\n```bash\n./build_release.sh\n```\n\n或者手动构建：\n\n```bash\nflutter build apk --release\n```\n\n构建完成后，APK文件将位于 `build/app/outputs/flutter-apk/` 目录下，文件名格式为 `clip-text-版本号.apk`（如：`clip-text-0.1.0.apk`）。\n\n### 5. 注意事项\n- **权限**：首次运行时，应用会请求录音、投屏等权限，请务必全部允许。\n- **Android 14 及以上**：需在 `AndroidManifest.xml` 中声明 `android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION` 和 `android.permission.CAPTURE_VIDEO_OUTPUT`，本项目已配置。\n- **录音功能**：如需录制系统音频，需在真机或支持音频投屏的模拟器上运行，部分模拟器可能不支持。\n- **热重载/重启**：开发过程中可用 `r`（热重载）或 `R`（热重启）提升效率。\n\n### 6. 常用命令\n\n- 清理构建缓存\n  ```bash\n  flutter clean\n  flutter pub get\n  ```\n- 查看日志\n  ```bash\n  flutter logs\n  ```\n\n## API服务\n\n### 讯飞录音文件转写\n\nhttps://console.xfyun.cn/services/lfasr\n\n### ChatGPT接口\n\nhttps://gptgod.online/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatorber%2Fclip-text","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatorber%2Fclip-text","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatorber%2Fclip-text/lists"}