Skip to content

shenyangs/Typeink-Android

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Typeink

为中文高频输入场景打造的 Android AI 输入法

把“说话 -> 文本 -> 润色 -> 回写”收敛成一条低打扰、可持续演进的输入链路。

license platform release prs

Typeink cover

如果你想要一个可控、可迭代、面向中文的语音输入工作流,Typeink 可以直接作为 Android 侧主线起点。

界面示意

主输入界面 设置中心 输入法实战
输入法主页 设置中心 输入法实战

为什么是 Typeink

核心维度 Typeink 当前方案 常见语音输入痛点
输入链路 语音识别 + 文本润色 + 回写一体化 语音、改写、回写经常分散在多个入口
可控性 本地状态机明确,可逐步替换 ASR/VAD 黑盒能力多,定位问题成本高
演进方式 先最小闭环,再逐步升级真实模型 容易一次性改太大,回归成本高
工程形态 Android 主线清晰,文档与进度同步维护 文档与代码割裂,协作门槛高

当前发布状态

  • 当前版本:0.5.0versionCode 15
  • 当前主线:Android 输入法(IME)+ Android 宿主 App
  • 技术栈:Kotlin、InputMethodService、Compose(逐步接管中)
  • 代码状态:可构建、可真机安装、持续迭代中

技术栈

当前已在用

  • Android 原生输入法:InputMethodService + Android 宿主 App 双入口
  • 主要开发语言:Kotlin
  • UI 形态:Android View/XML 为主,Jetpack Compose 逐步接管语音主画布
  • 网络与异步:OkHttpKotlin Coroutines
  • 云端语音与润色链路:DashScope
  • 音频链路:PcmRecorder + 会话管理 + 文本回写
  • 本地判停:TEN-VAD(已接入,失败自动回退轻量方案)
  • 本地剪贴板能力:最近 100 条本地文本历史 + IME 内部历史面板
  • 工程化:GradleJUnittools/build_apk.sh 自动递增出包

正在补强 / 即将接入

  • 本地离线草稿识别:sherpa-onnx Streaming Paraformer
  • 本地模型管理:模型导入、设备目录校验、预热与回退
  • 语音主界面:继续推进 Compose 接管和 Typeless 风格交互
  • 可迁移核心层:进一步把输入状态、文本状态、会话规则下沉到纯 Kotlin 核心层
  • 跨端准备:为 iOS、Windows、macOS 复用预留更稳定的边界

目前已具备能力

  • 输入法基础壳与语音输入主链路
  • 语音转写后的文本回写
  • 基础编辑与失败恢复流程
  • 设置中心(模型配置、VAD、调试相关能力)
  • APK 自动命名输出(支持 build 号递增)

内置模型试用规则

  • 默认情况下,内置模型可免费试用 100 次。
  • 这里的“次数”,指使用内置识别或内置改写能力时的调用额度。
  • 如果你已经填写了自己的 API Key,就不会再消耗内置试用次数。
  • 在设置页输入有效激活码后,可解除试用次数限制。

说明:

  • 这是当前阶段的体验规则,目的是让用户可以先直接上手;
  • 激活码校验目前是本地方案,后续如有更正式的授权体系,会再升级。

快速开始

1) 环境准备

  • Android Studio(内置 JBR)
  • JDK 17(通常可直接使用 Android Studio 自带)
  • Android SDK(minSdk 29targetSdk 34

2) 配置 API Key(本机)

android/local.properties 中追加:

typeink.dashscope.apiKey=你的DashScopeKey

读取优先级:

  1. android/local.propertiestypeink.dashscope.apiKey
  2. 环境变量 TYPEINK_DASHSCOPE_API_KEY
  3. 环境变量 DASHSCOPE_API_KEY

3) 构建 Debug APK

cd /Users/sam/Desktop/typeink-codex/android
JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home" ./gradlew :app:assembleDebug

4) 运行单元测试

cd /Users/sam/Desktop/typeink-codex/android
JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home" ./gradlew :app:testDebugUnitTest

APK 输出规范(发布必看)

唯一正确交付目录:

/Users/sam/Desktop/typeink-codex/outputs/

不要把下面目录的临时产物当成交付包:

  • android/outputs/
  • android/app/build/outputs/apk/debug/

推荐使用仓库脚本生成可追踪版本包:

cd /Users/sam/Desktop/typeink-codex
./tools/build_apk.sh 0.5.0

产物命名规则:

typeink-v{VERSION}-build{N}.apk

示例:typeink-v0.5.0-build10.apk

GitHub 体验包获取

  • 由于 GitHub 普通仓库文件有 100MB 限制,体验 APK 不直接放进仓库历史。
  • 用户侧如果要下载最新体验包,优先从项目的 GitHub Release 附件获取。
  • 本地构建时,唯一 APK 输出目录是 outputs/

目录结构

typeink-codex/
├─ android/                    # Android 主工程(唯一主代码)
├─ docs/                       # 架构、进度、方案、联调文档
├─ outputs/                    # 本地 APK 交付目录(默认不进 Git)
├─ tools/build_apk.sh          # APK 打包脚本(自动递增 build 号)
└─ README.md

核心文档

路线图(简版)

  • 持续收敛 IME 状态机与渲染入口
  • 逐步推进 Compose 语音画布接管
  • 升级本地 ASR + VAD 链路(降低云依赖)
  • 为 iOS / 桌面端复用预留更多纯核心层能力

开源许可证

本项目采用 Apache License 2.0

安全与协作提示

  • 不要在代码、文档、截图中暴露真实 API Key。
  • 贡献代码前建议先阅读 系统架构与进度

About

Typeink-Android

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages