chore: align iOS 26 capability docs and UI localization
Keep repository messaging consistent with the implemented iOS 26 SpeechAnalyzer path, and remove mixed hardcoded copy by routing remaining UI/error text through localized string keys.
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
# OSGKeyboard
|
||||
|
||||
> Hold a key, speak, release — AI-polished text appears at your cursor in any app.
|
||||
> An open-source, custom-keyboard-based voice input tool for iOS 18+, inspired by [Typeless](https://typeless.com) and [OpenLess](https://github.com/Open-Less/openless).
|
||||
> An open-source, custom-keyboard-based voice input tool for iOS 26+, inspired by [Typeless](https://typeless.com) and [OpenLess](https://github.com/Open-Less/openless).
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
@@ -20,14 +20,14 @@ OSGKeyboard is a free, open alternative to commercial voice-input tools. It runs
|
||||
2. Speak naturally
|
||||
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 `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.**
|
||||
The audio stays on-device (transcribed by Apple's on-device `SpeechAnalyzer` + `DictationTranscriber` on iOS 26+). Only the **polished transcript** is sent to your chosen cloud LLM. **No audio ever leaves your phone.**
|
||||
|
||||
---
|
||||
|
||||
## Features
|
||||
|
||||
- 🎙 **Push-to-talk** with a Typeless-style circular mic button
|
||||
- 🧠 **On-device ASR** (iOS 18/19 `SFSpeechRecognizer`; iOS 26+ `SpeechAnalyzer` + `DictationTranscriber` planned)
|
||||
- 🧠 **On-device ASR** (`SpeechAnalyzer` + `DictationTranscriber`, iOS 26+)
|
||||
- ✍️ **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, …)
|
||||
- 🔒 **Privacy first** — audio never leaves your device; transcripts only sent to the LLM you choose
|
||||
@@ -41,7 +41,7 @@ The audio stays on-device (transcribed by Apple's on-device `SFSpeechRecognizer`
|
||||
### Requirements
|
||||
|
||||
- macOS with **Xcode 16+** (Xcode 26 recommended)
|
||||
- iPhone running **iOS 18.0+**
|
||||
- iPhone running **iOS 26.0+**
|
||||
- [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))
|
||||
|
||||
@@ -80,7 +80,7 @@ OSGKeyboard/
|
||||
│ ├── KeyboardViewController.swift # Principal class
|
||||
│ ├── Services/
|
||||
│ │ ├── AudioCaptureService.swift # AVAudioEngine → 16 kHz PCM
|
||||
│ │ ├── ASRService.swift # iOS 26 + iOS 18 ASR
|
||||
│ │ ├── ASRService.swift # iOS 26 SpeechAnalyzer ASR
|
||||
│ │ └── PolishingService.swift # LLM call with timeout
|
||||
│ └── Views/ # RecordButton, Waveform, KeyboardRootView
|
||||
├── OSGKeyboardShared/ # Framework shared by app + extension
|
||||
@@ -132,8 +132,7 @@ That's it. No other code changes 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).
|
||||
- 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.
|
||||
- iOS 26+ users in v0.1.1 use the iOS 18 `SFSpeechRecognizer` path; the iOS 26 `SpeechAnalyzer` is planned for 0.2.0.
|
||||
- iOS 26+ only. Earlier iOS versions are not supported.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user