如果你想要一个可控、可迭代、面向中文的语音输入工作流,Typeink 可以直接作为 Android 侧主线起点。
| 主输入界面 | 设置中心 | 输入法实战 |
|---|---|---|
![]() |
![]() |
![]() |
| 核心维度 | 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逐步接管语音主画布 - 网络与异步:
OkHttp、Kotlin Coroutines - 云端语音与润色链路:
DashScope - 音频链路:
PcmRecorder+ 会话管理 + 文本回写 - 本地判停:
TEN-VAD(已接入,失败自动回退轻量方案) - 本地剪贴板能力:最近
100条本地文本历史 + IME 内部历史面板 - 工程化:
Gradle、JUnit、tools/build_apk.sh自动递增出包
- 本地离线草稿识别:
sherpa-onnxStreaming Paraformer - 本地模型管理:模型导入、设备目录校验、预热与回退
- 语音主界面:继续推进
Compose接管和 Typeless 风格交互 - 可迁移核心层:进一步把输入状态、文本状态、会话规则下沉到纯 Kotlin 核心层
- 跨端准备:为 iOS、Windows、macOS 复用预留更稳定的边界
- 输入法基础壳与语音输入主链路
- 语音转写后的文本回写
- 基础编辑与失败恢复流程
- 设置中心(模型配置、VAD、调试相关能力)
- APK 自动命名输出(支持 build 号递增)
- 默认情况下,内置模型可免费试用
100次。 - 这里的“次数”,指使用内置识别或内置改写能力时的调用额度。
- 如果你已经填写了自己的 API Key,就不会再消耗内置试用次数。
- 在设置页输入有效激活码后,可解除试用次数限制。
说明:
- 这是当前阶段的体验规则,目的是让用户可以先直接上手;
- 激活码校验目前是本地方案,后续如有更正式的授权体系,会再升级。
- Android Studio(内置 JBR)
- JDK 17(通常可直接使用 Android Studio 自带)
- Android SDK(
minSdk 29,targetSdk 34)
在 android/local.properties 中追加:
typeink.dashscope.apiKey=你的DashScopeKey读取优先级:
android/local.properties的typeink.dashscope.apiKey- 环境变量
TYPEINK_DASHSCOPE_API_KEY - 环境变量
DASHSCOPE_API_KEY
cd /Users/sam/Desktop/typeink-codex/android
JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home" ./gradlew :app:assembleDebugcd /Users/sam/Desktop/typeink-codex/android
JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home" ./gradlew :app:testDebugUnitTest唯一正确交付目录:
/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 普通仓库文件有
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。
- 贡献代码前建议先阅读 系统架构与进度。



