Skip to content

Navigation Menu

Sign in
Sign up

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Typeink

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

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

license platform release prs

Typeink cover

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

界面示意

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

为什么是 Typeink

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

当前发布状态

  • 当前版本:0.5.0(versionCode 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 29,targetSdk 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

Stars

32 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /