PRODUCT TECHNICAL REPORT · REVISION 1
How InkTyper turns live speech into dependable text
This is the maintained technical description of InkTyper: the client state machine, progressive ASR path, AI editing boundary, cloud gateway, data model, reliability strategy, and the evidence still required before every part can be called production-scale.
01 · PRODUCT CONTRACT
The product is an input system, not a transcription demo
InkTyper begins when a global hotkey starts audio capture and ends only when dependable text reaches the user's original cursor. Recording, transport, recognition, AI correction, clipboard delivery, accessibility permission, and fallback are one user-visible transaction. A fast model cannot compensate for a broken paste, and a successful final transcript cannot erase a failed real-time session.
Capture→Progressive ASR→Constrained edit→Deliver→Audit02 · CLIENT STATE MACHINE
Every stage is explicit, timed, and recoverable
The desktop client moves through idle, recording, uploading, transcribing, editing, pasting, done, and error states. The compact overlay displays the active state without stealing focus. It caps its height, scrolls live text, collapses content after delivery, and keeps the performance event visible. macOS uses a non-activating panel that can appear over full-screen Spaces; Windows uses its own top-level-window and permission adaptations.
| Stage | Primary work | Failure behavior |
|---|---|---|
| Recording | Capture audio, level, duration, progressive chunks | Stop before charge when no microphone signal exists |
| ASR | Commit stable clauses and close the tail | Reconnect once, then explicit batch fallback |
| AI edit | Correct without answering, translating, or changing intent | Deliver raw ASR on timeout or invalid output |
| Delivery | Restore target and paste once | Preserve clipboard result and expose retry |
03 · RECOGNITION PATH
SenseVoice quality with progressive, pause-aware finalization
The production route uses SenseVoice as the primary Chinese/English baseline. Audio is sent during recording. Pause-aware segmentation produces candidates; stable prefixes are frozen and merged; stop finalizes only the mutable tail. This simulates the responsiveness users expect from streaming without accepting the mixed-language quality loss observed in Paraformer. Whisper remains a compatibility baseline, not the default product identity.
04 · AI EDITING
The model edits speech; it does not reply to it
AI editing is constrained to correction, punctuation, layout, and user-selected transformation. It must preserve language and intent, never answer a question merely because the transcript contains one, and never translate unless the user explicitly selects translation. Stable clauses can be edited asynchronously during recording; final editing should eventually operate on only the mutable semantic tail.
05 · CLOUD BOUNDARY
One product gateway controls identity, quota, routing, and evidence
The client calls the InkTyper product API. The edge verifies account or API key, plan, quota, idempotency, and model authorization before forwarding to a private inference plane. GPU and AI-provider tokens remain server-side. A request ID connects client timing, gateway timing, selected node, actual model, usage ledger, and final outcome.
InkTyper client→Product gateway→Private ASR / AI→Usage + telemetry06 · RELIABILITY AND CAPACITY
Usable single-node performance is not yet proof of scale
Two users do not mix audio or account state, but the current SenseVoice process serializes GPU inference behind a shared lock. With two simultaneous boundaries, the second request typically waits roughly one inference. The larger risk is missing admission control, bounded queues, queue_ms telemetry, and production replicas: under pressure, clients may abandon real-time finalization and move complete audio into a batch path that is also capacity-limited.
The production target is a regional gateway, at least two healthy ASR replicas, explicit admission and Retry-After semantics, bounded per-session buffers, semantic readiness, and load tests across 2/4/8 concurrent users plus a 1,000-request soak.
07 · DATA AND COMMERCIAL CONTROL
Facts, derivatives, diagnostics, and billing have different lifetimes
Raw transcripts are facts. AI-formatted text is derived. Performance events are operational evidence. Audio is short-lived diagnostic material. Subscription events come from Dodo, while InkTyper owns the entitlement projection and immutable usage ledger. Retries deduplicate on request ID so a network failure does not charge twice.
08 · EVIDENCE AND OPEN GATES
What is proven, what is promising, and what remains open
| Area | Current evidence | Open gate |
|---|---|---|
| ASR compute | SenseVoice controlled RTX 3080 tests and real History timings | Representative multilingual accuracy set and concurrent p95 |
| End-to-end latency | Stage timing in current desktop builds | Multi-region p50/p95/p99 and reconnect soak |
| Availability | Fallback paths implemented | Two-plus replicas, admission, failure injection |
| Delivery | macOS and Windows builds | Windows hardware smoke and trusted signing |
| Billing | Checkout, webhook, entitlement, and usage code paths | Ongoing controlled payment/refund/cancel acceptance |
REVISION POLICY
This report changes only when the technical route changes
Small fixes and latency tuning belong in dated version logs. This report changes when the client transaction, primary recognition path, trust boundary, reliability model, data contract, platform strategy, or principal SLO changes. Every revision must link back to the dated evidence that justified it.
SOURCE TRAIL
Dated evidence behind the current technical route
These entries preserve the observations, benchmarks, decisions, and unresolved gates that justified this revision. They are evidence, not silently rewritten appendices.