[P0-④] DEBUG cleanup + README / CHANGELOG typos

DEBUG cleanup (rolled into P0-① and P0-② already, formalised here):
- All 3 surviving `print(` calls live inside `#if DEBUG` blocks:
    * OSGKeyboardApp.swift init (the 4 \ud83d\udd25 traces)
    * ASRService on-device fallback warning
    * KeyboardViewController.loadPersistedLocale masked-config dump
  The 2 in AppGroup.swift + LLMClient.swift were already DEBUG-wrapped.

Docs:
- README.md: replace <OWNER> placeholder with hkgood (CI badge + clone URL);
  reword the 'iOS 26 SpeechAnalyzer' copy as 'planned for the next release';
  add a 'Note' line pointing at hkgood/OSGKeyboard.
- README.zh.md: same edits in Chinese — 'iOS 26+ 的 SpeechAnalyzer 计划下版接入'.

CHANGELOG (already fixed in P0-② commit): the old 'group.com.osgkeyboard.ios'
typo on the old line 18 is gone — it was rewritten into the new
'Known limitations' block, which only references 'group.com.osgkeyboard.shared'
in spirit.

xcodebuild iOS Simulator: SUCCEEDED
This commit is contained in:
Zhongshu
2026-06-18 10:55:23 +08:00
parent 2e2d8e33b3
commit 013c498a12
2 changed files with 11 additions and 11 deletions
+7 -7
View File
@@ -6,7 +6,7 @@
![Platform](https://img.shields.io/badge/platform-iOS%2018%2B-0078D4?logo=apple) ![Platform](https://img.shields.io/badge/platform-iOS%2018%2B-0078D4?logo=apple)
![Swift](https://img.shields.io/badge/Swift-6.0-FA7343?logo=swift) ![Swift](https://img.shields.io/badge/Swift-6.0-FA7343?logo=swift)
![License](https://img.shields.io/badge/license-MIT-green) ![License](https://img.shields.io/badge/license-MIT-green)
![CI](https://github.com/<OWNER>/OSGKeyboard/actions/workflows/ci.yml/badge.svg) ![CI](https://github.com/hkgood/OSGKeyboard/actions/workflows/ci.yml/badge.svg)
[中文 README](./README.zh.md) [中文 README](./README.zh.md)
@@ -20,14 +20,14 @@ OSGKeyboard is a free, open alternative to commercial voice-input tools. It runs
2. Speak naturally 2. Speak naturally
3. Release — the AI polishes your words into clean text and inserts it at the cursor 3. Release — the AI polishes your words into clean text and inserts it at the cursor
The audio stays on-device (transcribed by Apple's on-device `SpeechAnalyzer` on iOS 26+, or `SFSpeechRecognizer` on iOS 18/19). Only the **polished transcript** is sent to your chosen cloud LLM. **No audio ever leaves your phone.** The audio stays on-device (transcribed by Apple's on-device `SFSpeechRecognizer` on iOS 18/19; iOS 26+ `SpeechAnalyzer` planned for the next release). Only the **polished transcript** is sent to your chosen cloud LLM. **No audio ever leaves your phone.**
--- ---
## Features ## Features
- 🎙 **Push-to-talk** with a Typeless-style circular mic button - 🎙 **Push-to-talk** with a Typeless-style circular mic button
- 🧠 **On-device ASR** (iOS 26 `SpeechAnalyzer` + `DictationTranscriber`; iOS 18 `SFSpeechRecognizer` fallback) - 🧠 **On-device ASR** (iOS 18/19 `SFSpeechRecognizer`; iOS 26+ `SpeechAnalyzer` + `DictationTranscriber` planned)
- ✍️ **AI polishing** — adds structure, punctuation, fixes grammar, optionally produces lists - ✍️ **AI polishing** — adds structure, punctuation, fixes grammar, optionally produces lists
- 🔌 **Bring-your-own API** — works with any OpenAI-compatible endpoint (OpenAI, DeepSeek, Qwen DashScope, your own self-hosted server, …) - 🔌 **Bring-your-own API** — works with any OpenAI-compatible endpoint (OpenAI, DeepSeek, Qwen DashScope, your own self-hosted server, …)
- 🔒 **Privacy first** — audio never leaves your device; transcripts only sent to the LLM you choose - 🔒 **Privacy first** — audio never leaves your device; transcripts only sent to the LLM you choose
@@ -41,14 +41,14 @@ The audio stays on-device (transcribed by Apple's on-device `SpeechAnalyzer` on
### Requirements ### Requirements
- macOS with **Xcode 16+** (Xcode 26 recommended) - macOS with **Xcode 16+** (Xcode 26 recommended)
- iPhone running **iOS 18.0+** (iOS 26+ for the best on-device ASR) - iPhone running **iOS 18.0+**
- [XcodeGen](https://github.com/yonaskolb/XcodeGen): `brew install xcodegen` - [XcodeGen](https://github.com/yonaskolb/XcodeGen): `brew install xcodegen`
- An OpenAI-compatible API key (e.g. from [OpenAI](https://platform.openai.com/api-keys), [DeepSeek](https://platform.deepseek.com/api_keys), or [Qwen DashScope](https://dashscope.console.aliyun.com/apiKey)) - An OpenAI-compatible API key (e.g. from [OpenAI](https://platform.openai.com/api-keys), [DeepSeek](https://platform.deepseek.com/api_keys), or [Qwen DashScope](https://dashscope.console.aliyun.com/apiKey))
### Build & run ### Build & run
```bash ```bash
git clone https://github.com/<OWNER>/OSGKeyboard.git git clone https://github.com/hkgood/OSGKeyboard.git
cd OSGKeyboard cd OSGKeyboard
xcodegen generate # produces OSGKeyboard.xcodeproj xcodegen generate # produces OSGKeyboard.xcodeproj
open OSGKeyboard.xcodeproj # or build via CLI: open OSGKeyboard.xcodeproj # or build via CLI:
@@ -132,7 +132,7 @@ That's it. No other code changes required.
- iOS sandboxes keyboard extensions: ~60 MB memory cap, Full Access required. - iOS sandboxes keyboard extensions: ~60 MB memory cap, Full Access required.
- The keyboard does **not** work in password fields or some `WKWebView` textareas (iOS limitation). - The keyboard does **not** work in password fields or some `WKWebView` textareas (iOS limitation).
- iOS 18 uses `SFSpeechRecognizer` instead of `SpeechAnalyzer`; on iOS 26, `SpeechAnalyzer` is significantly faster and supports more locales. - iOS 18/19 ships with `SFSpeechRecognizer` for on-device ASR. iOS 26+ `SpeechAnalyzer` is planned for the next release — it is significantly faster and supports more locales.
--- ---
@@ -150,4 +150,4 @@ That's it. No other code changes required.
--- ---
**Note:** replace `<OWNER>` in badges and the git clone URL with your GitHub username. **Note:** the project is published at [`hkgood/OSGKeyboard`](https://github.com/hkgood/OSGKeyboard); badges and git clone URLs already point there.
+4 -4
View File
@@ -19,14 +19,14 @@ OSGKeyboard 是商业语音输入工具的免费开源替代。它以 **iOS 自
2. 自由说话 2. 自由说话
3. 松开 —— AI 帮你整理成干净的文字,自动插入光标处 3. 松开 —— AI 帮你整理成干净的文字,自动插入光标处
**音频始终在设备本地转写**iOS 26+`SpeechAnalyzer`iOS 18/19 用 `SFSpeechRecognizer`),**只有润色后的文本** 会发到你选择的云端 LLM。**音频永不离开你的手机。** **音频始终在设备本地转写**iOS 18/19`SFSpeechRecognizer`iOS 26+ 的 `SpeechAnalyzer` 计划下版接入),**只有润色后的文本** 会发到你选择的云端 LLM。**音频永不离开你的手机。**
--- ---
## 特性 ## 特性
- 🎙 **按住说话**,Typeless 风格的圆形麦克风按钮 - 🎙 **按住说话**,Typeless 风格的圆形麦克风按钮
- 🧠 **端侧 ASR**iOS 26 `SpeechAnalyzer` + `DictationTranscriber`iOS 18 退回 `SFSpeechRecognizer` - 🧠 **端侧 ASR**iOS 18/19 `SFSpeechRecognizer`iOS 26+ 的 `SpeechAnalyzer` + `DictationTranscriber` 计划下版接入
- ✍️ **AI 润色** —— 自动加结构、补标点、修正语法、可生成列表 - ✍️ **AI 润色** —— 自动加结构、补标点、修正语法、可生成列表
- 🔌 **自带 API 接入** —— 兼容任何 OpenAI 兼容协议端点(OpenAI / DeepSeek / Qwen DashScope / 自建服务器 ……) - 🔌 **自带 API 接入** —— 兼容任何 OpenAI 兼容协议端点(OpenAI / DeepSeek / Qwen DashScope / 自建服务器 ……)
- 🔒 **隐私优先** —— 音频不离开设备;只有润色文本会发给你选择的 LLM - 🔒 **隐私优先** —— 音频不离开设备;只有润色文本会发给你选择的 LLM
@@ -40,7 +40,7 @@ OSGKeyboard 是商业语音输入工具的免费开源替代。它以 **iOS 自
### 环境要求 ### 环境要求
- macOS + **Xcode 16+**(推荐 Xcode 26 - macOS + **Xcode 16+**(推荐 Xcode 26
- iPhone 运行 **iOS 18.0+**iOS 26+ 体验最佳) - iPhone 运行 **iOS 18.0+**
- [XcodeGen](https://github.com/yonaskolb/XcodeGen)`brew install xcodegen` - [XcodeGen](https://github.com/yonaskolb/XcodeGen)`brew install xcodegen`
- 一个 OpenAI 兼容 API Key[OpenAI](https://platform.openai.com/api-keys) / [DeepSeek](https://platform.deepseek.com/api_keys) / [Qwen DashScope](https://dashscope.console.aliyun.com/apiKey) 任一) - 一个 OpenAI 兼容 API Key[OpenAI](https://platform.openai.com/api-keys) / [DeepSeek](https://platform.deepseek.com/api_keys) / [Qwen DashScope](https://dashscope.console.aliyun.com/apiKey) 任一)
@@ -131,7 +131,7 @@ LLMProvider(
- iOS 沙盒:键盘扩展 ~60 MB 内存上限,必须开完全访问 - iOS 沙盒:键盘扩展 ~60 MB 内存上限,必须开完全访问
- 密码框与部分 `WKWebView` 输入框不可用(iOS 限制) - 密码框与部分 `WKWebView` 输入框不可用(iOS 限制)
- iOS 18 用 `SFSpeechRecognizer` 退化路径iOS 26 的 `SpeechAnalyzer` 更快、支持语种更多 - iOS 18/19`SFSpeechRecognizer` 做端侧 ASRiOS 26+`SpeechAnalyzer` 计划下版接入(更快、支持语种更多
--- ---