{"id":13455441,"url":"https://github.com/Skythinker616/gpt-assistant-android","last_synced_at":"2025-03-24T08:32:37.621Z","repository":{"id":194467419,"uuid":"690860892","full_name":"Skythinker616/gpt-assistant-android","owner":"Skythinker616","description":"免费的ChatGPT API的安卓语音助手，可用音量键唤起并进行语音交流，支持联网、Vision拍照识图、提问模板等功能 | A free ChatGPT API voice assistant for Android, activated via volume keys for voice interaction, supporting features such as network connectivity, Vision photo recognition, and question templates.","archived":false,"fork":false,"pushed_at":"2025-03-09T15:12:57.000Z","size":75953,"stargazers_count":739,"open_issues_count":19,"forks_count":106,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-03-09T15:31:56.008Z","etag":null,"topics":["android","assistant","chatgpt","free-gpt","gpt-4-vision","markdown"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Skythinker616.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}},"created_at":"2023-09-13T03:08:40.000Z","updated_at":"2025-03-09T14:51:23.000Z","dependencies_parsed_at":"2024-01-05T07:34:07.583Z","dependency_job_id":"903ce911-a388-4d68-be9d-fa04f05f513f","html_url":"https://github.com/Skythinker616/gpt-assistant-android","commit_stats":null,"previous_names":["skythinker616/gpt-assistant-android"],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skythinker616%2Fgpt-assistant-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skythinker616%2Fgpt-assistant-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skythinker616%2Fgpt-assistant-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skythinker616%2Fgpt-assistant-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Skythinker616","download_url":"https://codeload.github.com/Skythinker616/gpt-assistant-android/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245235446,"owners_count":20582231,"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":["android","assistant","chatgpt","free-gpt","gpt-4-vision","markdown"],"created_at":"2024-07-31T08:01:05.491Z","updated_at":"2025-03-24T08:32:37.614Z","avatar_url":"https://github.com/Skythinker616.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"\u003cp\u003e\n\t\u003cb\u003e简体中文 | \u003ca href=\"README_en.md\"\u003eEnglish\u003c/a\u003e\u003c/b\u003e\n\u003c/p\u003e\n\n\u003cdiv align=center\u003e\n\t\u003cimg src=\"readme_img/icon.jpg\" height=\"100px\"/\u003e\n\t\u003ch1\u003eGPT Assistant\u003c/h1\u003e\n\n\u003c/div\u003e\n\n这是一个基于 ChatGPT API 的安卓端语音助手，允许用户通过手机音量键从任意界面唤起并直接进行语音交流，用最快捷的方式询问并获取回复\n\n\u003cdiv align=center\u003e\n\t\u003cfont size=3\u003e\n\t\t\u003cb\u003e快捷唤起 · 语音交互 · 支持联网 · 支持识图\u003c/b\u003e\n\t\u003c/font\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003cdiv align=center\u003e\n\t\u003cp\u003e\n\t\t\u003ca href=\"https://gitee.com/skythinker/gpt-assistant-android\"\u003e\n\t\t\t\u003cimg src=\"https://gitee.com/skythinker/gpt-assistant-android/badge/star.svg\"/\u003e\n\t\t\t\u003cimg src=\"https://gitee.com/skythinker/gpt-assistant-android/badge/fork.svg\"/\u003e\n\t\t\u003c/a\u003e\n\t\t\u003ca href=\"https://github.com/Skythinker616/gpt-assistant-android\"\u003e\n\t\t\t\u003cimg src=\"https://img.shields.io/github/stars/skythinker616/gpt-assistant-android?logo=github\u0026style=flat\"/\u003e\n\t\t\t\u003cimg src=\"https://img.shields.io/github/forks/skythinker616/gpt-assistant-android?logo=github\u0026style=flat\"/\u003e\n\t\t\u003c/a\u003e\n\t\t\u003cimg src=\"https://img.shields.io/badge/License-GPL3.0-red\"/\u003e\n\t\u003c/p\u003e\n\u003c/div\u003e\n\n---\n\n## 介绍\n\n### 项目特性\n\n- 支持预设**提问模板**，包括使用高级模板语法向界面添加下拉选框等控件\n- **支持联网**，允许GPT获取在线网页\n- 支持拍照或从相册中**上传图片**到GPT Vision模型\n- 通过无障碍功能捕获音量键事件，实现在**任意界面唤起**\n- 支持从**全局上下文菜单**（选中文本后弹出的系统菜单）中直接唤起\n- 支持通过状态栏**快捷按钮**唤起\n- 支持对**Markdown**进行渲染\n- 使用华为/百度/Whisper/Google接口实现**语音输入**\n- 调用系统TTS引擎**输出语音**\n\n### 国内使用说明\n\n本软件通过OpenAI API获取回复，在国内使用时可以用第三方转发服务，如[Chatanywhere](https://github.com/chatanywhere/GPT_API_free)，其目前提供免费和付费服务，具体使用方法见[下述说明](#使用方法)\n\n\u003e 注：注册Chatanywhere免费服务需要GitHub账号，因此注册时需要能够登录GitHub的网络环境\n\n### 费用说明\n\n本软件不会收取任何费用，用户能够免费使用各项功能，但如果有特殊需求，使用的下述第三方服务**可能**会产生费用:\n\n1. ChatGPT调用费用\n\n\t- 以Chatanywhere为例，目前其**免费服务**限制对`gpt-3.5-turbo`、`gpt-4o-mini`等模型的调用频率不超过**200请求/天/IP\u0026Key**，若需要更高的调用频率或更好的模型，需要选择付费服务\n\n2. 语音识别接口费用\n\n\t本软件目前支持华为、Google、百度、Whisper四种语音识别接口：\n\n\t- （默认接口）**华为HMS**提供免费的语音识别接口，因此程序内置了作者的API Key以供直接使用，如无特殊情况该接口将在华为免费期间一直可用\n\n\t- **Google**也是免费接口，但在国内可能无法访问，仅推荐海外用户使用\n\n\t- **百度**短语音识别为新用户提供15万次 \u0026 180天免费额度，额度外收取￥0.0034/次的调用费用\n\n\t- **Whisper**接口由OpenAI提供，与GPT聊天使用相同接口参数，调用费用可以参考[官方说明](https://openai.com/pricing)\n\n---\n\n## 效果展示\n\n**一、基础使用：仅用音量键就可以操控**\n\n1. 长按音量下键唤出界面\n\n2. 按住音量键不放，开始语音输入\n\n3. 松开后再次短按，发送问题\n\n4. 接收回复的同时可以自动通过语音进行播报\n\n\u003cdiv align=\"center\"\u003e\n\t\u003cimg src=\"readme_img/usage.gif\" height=\"400px\"\u003e\n\u003c/div\u003e\n\n**二、用状态栏快捷键也可触发**\n\n下拉状态栏，点击“GPT”按钮，即可唤出界面，键盘会自动弹出，可以手动输入问题\n\n\u003cdiv align=\"center\"\u003e\n\t\u003cimg src=\"readme_img/tile_btn.gif\" height=\"400px\"\u003e\n\u003c/div\u003e\n\n**三、从全局上下文菜单唤起**\n\n在选中文本后弹出的系统菜单中，点击GPTAssistant选项，即可直接唤起应用并将选中文本添加到输入框\n\n\u003cdiv align=\"center\"\u003e\n\t\u003cimg src=\"readme_img/context_menu.gif\" height=\"400px\"\u003e\n\u003c/div\u003e\n\n\u003e 注：部分软件禁用了上下文菜单，无法使用该功能，此时可以选中文本后分享到本程序，效果和上述方法相同\n\n**四、支持连续对话**\n\n激活上方的对话图标，即可保留当前会话，进行连续对话（点击左侧的头像图标可以对单条对话进行删除、重试等操作）\n\n\u003cdiv align=\"center\"\u003e\n\t\u003cimg src=\"readme_img/multi_chat.gif\" height=\"400px\"\u003e\n\u003c/div\u003e\n\n**五、支持高级模板语法**\n\n高级模板语法通过在模板开头添加参数，可以实现向界面添加下拉选框等操作，具体说明可以在[模板编写说明](template_help.md)中查看\n\n\u003cdiv align=\"center\"\u003e\n\t\u003cimg src=\"readme_img/template_code.png\" height=\"140px\"\u003e\n\t\u003cimg src=\"readme_img/template_ui.png\" height=\"140px\"\u003e\n\u003c/div\u003e\n\n点击模板编辑页面右上角的按钮，可以加载在线模板列表，在[讨论社区](https://github.com/Skythinker616/gpt-assistant-android/discussions/categories/templates)中可以获取更多模板或分享自己的模板，分享的模板可能会被动态更新到在线模板列表中哦~\n\n**六、支持上传图片到Vision**\n\n当选择的模型支持识图时，输入框左侧会出现图片按钮，点击后可以拍照或从相册中选择图片\n\n从其他应用中分享图片时，也可以选择本程序，将图片添加到输入框\n\n\u003cdiv align=\"center\"\u003e\n\t\u003cimg src=\"readme_img/vision.gif\" height=\"400px\"\u003e\n\t\u003cimg src=\"readme_img/vision_room.jpg\" height=\"400px\"\u003e\n\t\u003cimg src=\"readme_img/vision_math.jpg\" height=\"400px\"\u003e\n\u003c/div\u003e\n\n上图为`gpt-4-vision-preview`测试结果，经测试效果不错，可用于拍照识物、翻译文字、拍照答题等场景\n\n\u003e 注：Vision模型一般无法免费使用（如Chatanywhere），有需要的用户可以考虑付费服务\n\n**七、支持GPT联网**\n\n本程序实现了OpenAI的Function接口，允许GPT发起联网请求，程序会向GPT自动返回所需的网页数据，使GPT具有联网能力（需先在设置中开启联网选项）\n\n\u003cdiv align=\"center\"\u003e\n\t\u003cimg src=\"readme_img/web_time.png\" height=\"120px\"\u003e\n\t\u003cimg src=\"readme_img/web_weather.png\" height=\"120px\"\u003e\n\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n\t\u003cimg src=\"readme_img/web_jd.png\" height=\"180px\"\u003e\n\t\u003cimg src=\"readme_img/web_zhihu.png\" height=\"180px\"\u003e\n\u003c/div\u003e\n\n\u003e 注1：上图均为使用`gpt-3.5-turbo`模型的测试结果，建议在提问前加入“百度搜索”、“必应搜索”、“在线获取”、“从xxx获取”等字样引导GPT，以获得更好的联网效果\n\u003e \n\u003e 注2：如果你使用图中的提问但没有获取到正确的回答，可能是由于GPT的随机性导致访问了错误的网址，或是网站内容变化导致抓取失败，你可以尝试修改提问方式\n\u003e \n\u003e 注3：由于需要将网页内容发送给GPT，联网时会产生大量Token消耗，`gpt-4`模型请谨慎使用\n\u003e\n\u003e 注4：不支持Function的模型（如`gpt-4-vision-preview`等）无法使用联网功能\n\n---\n\n## 使用方法\n\n### 1. 下载安装\n\n直接下载最新发行版中的apk文件，安装即可\n\n### 2. 配置 OpenAI\n\n程序使用的是OpenAI API，需要用户在设置中填入自己的API_KEY，可以选择使用官方服务或第三方转发服务\n\n- **使用Chatanywhere转发服务**（国内可用）\n\n\tChatanywhere提供了免费和付费的OpenAI API转发服务，目前免费服务限制200请求/天/IP\u0026Key调用频率，付费服务则无限制，可以在国内直接访问，用户可以参照其[项目主页](https://github.com/chatanywhere/GPT_API_free)获取地址和KEY填入设置中\n\n- **使用官方服务**\n\n\t在OpenAI官网注册账号并获取API_KEY，在设置中填写网址`https://api.openai.com/`和API_KEY\n\n### 3. 配置语音识别 (可选)\n\n\u003e 注：程序默认使用的是华为语音识别接口，如无特殊情况，不需要进行此步骤\n\n**百度语音识别接口**\n\n用户可以参照[百度语音识别官方文档](https://cloud.baidu.com/doc/SPEECH/s/qknh9i8ed)注册并创建应用，然后获取AppID、API Key和Secret Key填入设置中\n\n若设置项的“启用长语音”选项关闭，则使用的是百度短语音识别接口，若开启，则使用的是实时语音识别接口，需要用户根据需求在创建应用时勾选对应的服务\n\n此外，在创建应用时，需要将“语音包名”设置为“Android”，并填入本软件包名`com.skythinker.gptassistant`\n\n![设置语音包名](readme_img/asr_set_package.jpg)\n\n**Google语音识别接口**\n\n用户需要确保系统中已安装[Google](https://play.google.com/store/apps/details?id=com.google.android.googlequicksearchbox)软件，然后跟随软件指引设定Google为系统语音识别引擎，且允许其使用麦克风权限，然后在软件设置中选择Google语音识别接口即可\n\n**Whisper语音识别接口**\n\n如果用户所使用的OpenAI接口支持Whisper模型，在软件设置中选择Whisper语音识别接口即可使用\n\n### 4. 开始使用\n\n1. 根据软件提示开启无障碍服务，并允许软件在后台运行\n\n2. 查看设置中是否存在“后台弹出界面”权限，如有该权限则允许，如无则忽略\n\n\t\u003e 若发现长按音量下键后手机震动一下但没有弹出界面，大概率是因为缺少该权限\n\n3. 开始正常使用，可参照[效果展示](#效果展示)中的操作步骤\n\n---\n\n## Q\u0026A\n\n### 软件唤起\n\n**Q: 长按音量下键只是在调节音量，并没有其他任何现象？**\n\nA: 请在设置中开启本软件的无障碍服务（重启手机后可能需要重新开启，建议设置为无障碍快捷方式）\n\n**Q: 长按音量下键后，手机震动了一下，但没有弹出界面？**\n\nA: 请在设置中允许程序“后台弹出界面”权限\n\n**Q: 隔一段时间不用就无法使用音量键唤起了？**\n\nA: 请在设置中允许程序在后台运行\n\n### 语音播报\n\n**Q: 语音播报没声音 / 不好听？**\n\nA: 软件调用的是系统自带TTS(Text To Speech)服务，可以通过软件设置项“打开系统语音设置”进入系统设置界面，选择合适的语音引擎；若对系统自带引擎不满意也可以自行安装第三方TTS引擎如讯飞、[TTS Server](https://github.com/jing332/tts-server-android) 等\n\n**Q: 不同接口的语音识别效果有什么差别？**\n\nA: 在中文和中英混说的场景下测试：\n\n- 华为接口（实时语音识别）识别准确度很高，单句识别表现最好\n- 百度则在长句识别时表现很好，断句较为合理，但难以做到中英混合识别（选用的是中文普通话模型）\n- Google支持的语言种类很多，中文识别效果一般，且不会加标点\n- Whisper支持的语言也很多，中文识别效果还可以，但有时出现简繁体不受控的情况，且不支持边说话边输出\n\n在纯英文场景下，华为、Google和Whisper的效果都不错\n\n### 联网相关\n\n**Q: 联网时GPT能访问什么网站？**\n\nA: 程序使用Android WebView加载网页，能用本机浏览器打开的网站都可以访问\n\n**Q: GPT能获取网站中的什么内容？**\n\nA: 对于一般网站，仅允许GPT获取纯文本内容，而对于下述特殊适配过的网站，GPT还可以获取到搜索结果链接：百度、必应、谷歌、谷歌学术、知乎、微博、京东、GitHub、B站、知网\n\n\u003e 如果你觉得有其他网站需要适配，可以提交Issue\n\n**Q: 为什么GPT在访问一些网站时说无法获取内容？**\n\nA: 网页加载超时(15s)、需要登录、需要验证等原因都可能导致这个问题，你可以尝试再次提问，或要求GPT更换访问的网站\n\n### 其他使用问题\n\n**Q: 为什么列表中没有我需要的模型？**\n\nA: 软件仅内置了少数常用模型，你可以在设置中添加自定义模型（以英文分号分隔），添加后即会出现在列表中\n\n**Q: GPT返回的内容中表格无法正常显示？**\n\nA: 所使用的Markdown渲染器无法在测试中产生稳定的结果，因此暂不支持表格渲染\n\n**Q: 显示获取失败，提示请求超时，或产生错误码502/503？**\n\nA: 排除网络因素，该错误一般由OpenAI接口产生，可能由于其服务器负载过高导致，请重试或等待一段时间后再尝试 [查看OpenAI实时状态](https://status.openai.com/)\n\n### 开发相关\n\n**Q: 编译仓库代码后无法使用华为HMS语音识别？**\n\nA: 为防止滥用，仓库中的Key开启了包名和签名验证，因此如果希望自行编译使用，需要根据[华为官方文档](https://developer.huawei.com/consumer/cn/doc/hiai-Guides/ml-asr-0000001050066212#section699935381711)创建AppGallery应用并替换鉴权信息，包括`app/agconnect-services.json`文件和`app/src/main/res/values/strings.xml`中的`hms_api_key`字段\n\n---\n\n## 主要功能更新日志\n\n- **2023.09.10** 发布第一个版本，支持基础对话、百度语音输入、TTS输出、Markdown渲染等功能\n- **2023.09.13** 支持连续对话、GPT-4、百度长语音识别，上下文菜单唤起\n- **2023.10.06** 添加华为HMS语音识别\n- **2023.11.06** 添加联网功能\n- **2023.12.04** 添加Vision识图功能\n- **2023.12.21** 支持高级模板语法\n- **2024.01.08** 支持Google和Whisper语音识别、在线模板列表\n- **2024.05.25** 支持连续语音对话\n\n---\n\n## TODO\n\n- 支持提问、回复长度限制\n- 支持消息压缩\n\n---\n\n## 测试环境\n\n已测试的机型：\n\n| 机型 | 系统版本 | Android 版本 | 本程序版本 |\n| :--: | :-----: | :----------: | :-------: |\n| 荣耀 7C | EMUI 8.0.0 | Android 8 | 1.9.1 |\n| 荣耀 20 | HarmonyOS 3.0.0 | Android 10 | 1.9.1 |\n| 荣耀 20 | HarmonyOS 4.0 | Android 10 | 1.11.0 |\n| 华为 Mate 30 | HarmonyOS 3.0.0 | Android 12 | 1.6.0 |\n| 华为 Mate 30 | HarmonyOS 4.0 | Android 12 | 1.8.0 |\n| 荣耀 Magic 4 | MagicOS 7.0 | Android 13 | 1.9.1 |\n| 荣耀 Magic 6 | MagicOS 8.0 | Android 14 | 1.11.1 |\n| 荣耀 Magic 6 | MagicOS 9.0 | Android 15 | 1.11.2 |\n| 红米 K20 Pro | MIUI 12.5.6 | Android 11 | 1.5.0 |\n| 红米 K60 Pro | MIUI 14.0.23 | Android 13 | 1.7.0 |\n| 小米 13 | MIUI 14.0.5 | Android 14 | 1.10.0 |\n| Pixel 2 (模拟器) | Android 12 | Android 12 | 1.7.0 |\n\n---\n\n## 改进\u0026贡献\n\n如果你有改进建议或希望参与贡献，欢迎提交Issue或Pull Request\n\n---\n\n## 隐私说明\n\n本程序不会以任何方式收集用户的个人信息，语音输入会直接发送给各语音接口，提问会直接发送给OpenAI API，不会经过其他中间服务器\n\n---\n\n## 引用的开源项目\n\n- [Markwon](https://github.com/noties/Markwon): Android上的Markdown渲染器\n- [chatgpt-java](https://github.com/Grt1228/chatgpt-java): OpenAI API的Java封装\n\n---\n\u003c!--\n## 支持/捐赠\n\n如果你觉得 GPT Assistant 不错，可以点个Star，也可以捐赠请我喝杯奶茶，非常感谢你的支持！\n\n[![Star History Chart](https://api.star-history.com/svg?repos=Skythinker616/gpt-assistant-android\u0026type=Date)](https://star-history.com/#Skythinker616/gpt-assistant-android\u0026Date)\n\n\u003cdetails\u003e\n\t\u003csummary\u003e查看捐赠码\u003c/summary\u003e\n\t\u003cdiv align=\"center\"\u003e\n\t\t\u003cimg src=\"readme_img/wechat.png\" height=\"180px\"\u003e\n\t\t\u003cimg src=\"readme_img/alipay.jpg\" height=\"180px\"\u003e\n\t\u003c/div\u003e\n\t\u003cbr\u003e\n\u003c/details\u003e\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSkythinker616%2Fgpt-assistant-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSkythinker616%2Fgpt-assistant-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSkythinker616%2Fgpt-assistant-android/lists"}