feat(mobile): add selectable Pocket model size - #3244
Draft
johnmatthewtennant wants to merge 1 commit into
Draft
Conversation
johnmatthewtennant
force-pushed
the
jt/buzz-voice-refactor
branch
from
July 28, 2026 00:29
8ac609c to
c9dfe50
Compare
johnmatthewtennant
force-pushed
the
jtennant/pocket-tts-harness
branch
3 times, most recently
from
July 28, 2026 10:57
9bd9084 to
065a6b0
Compare
johnmatthewtennant
force-pushed
the
jt/buzz-voice-refactor
branch
from
July 28, 2026 13:48
91eaee8 to
a3c16e7
Compare
johnmatthewtennant
force-pushed
the
jtennant/pocket-tts-harness
branch
from
July 28, 2026 14:11
065a6b0 to
d04a2c4
Compare
Contributor
Author
johnmatthewtennant
added a commit
that referenced
this pull request
Jul 28, 2026
johnmatthewtennant
changed the base branch from
jt/buzz-voice-refactor
to
jtennant/mobile-pocket-tts
July 28, 2026 14:13
johnmatthewtennant
force-pushed
the
jtennant/mobile-pocket-tts
branch
from
July 28, 2026 14:38
e4ec043 to
4691cad
Compare
Signed-off-by: John Tennant <jtennant@squareup.com>
johnmatthewtennant
force-pushed
the
jtennant/pocket-tts-harness
branch
from
July 28, 2026 14:44
d04a2c4 to
00f5cf8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Context
PR #3244 originally proposed a private host-only Pocket TTS harness. The strict KEEP/CLOSE audit found that it duplicated focused Desktop, streaming, and mobile probes and had no active consumer. John repurposed the existing draft into the concrete mobile model-size selection layer instead.
This PR now stacks on the explicit April FP32 mobile adopter in #3290. It does not own the shared April runtime, C ABI, isolate, downloader plumbing, or native playback/session/focus behavior.
Base: #3290
4691cad0c0afa153c7a4ce4d2333340e26b3d9c2Shared runtime: #3303
d9193add61f4246d0ebb408fbf64470c72aacd88Canonical extraction: #2467
0f97b7ef6d2f9aa87dea9a639223c39d9f0f9066Pinned model revision:
58a6d00cf13d239b6748cb0769f35c580a8f606cSummary
Adds a persisted Higher quality (FP32) / Faster (upstream-supported three-graph hybrid INT8) choice for Pocket voice on mobile. Each variant has an immutable descriptor, checksum-verified variant cache, crash-safe migration, pre-commit synthesis validation, and deterministic fallback to another verified installed variant.
The prior standalone Cargo harness and its test-runner wiring are completely removed from this PR.
Changes
v5/fp32andv5/int8) and atomically migrates verified v4 FP32 installs.Related issue
N/A.
Testing
just ci: passed.just mobile-check: passed.just mobile-test: 856 passed, 1 intentionally skipped.buzz-voicepackaging, Desktop 0.5.0 resolution, and the repository pre-push suite passed.Matched Android emulator comparison through the production worker and native playback path:
Faster reduces installed storage by 62.3% and improved load, synthesis, playback-start, RTF, warm, and in-flight-cancellation measurements in this matched run. Its steady RSS was higher in this emulator run even though peak RSS was lower; this PR does not claim universal memory reduction.
Reviewer-reproducible examples
Run the same production integration path for each installed model directory:
Each run emits one stable
BUZZ_POCKET_METRICSline containing precision, load, first PCM, actual playback start, synthesis/audio/RTF, warm PCM, queued/in-flight cancellation, download time, current RSS, and peak RSS.Product flow:
Screenshots
Settings model-size selection
Manual listening / device validation
John must still listen on physical iOS and Android devices using the same controlled prompt corpus and settings, with special attention to onset quality in Faster. The lowest-memory supported devices should also be exercised for selection, validation, fallback, cancellation, and native playback-start behavior. The automated run was headless and validated non-silent PCM plus native playback events, not perceived audio quality.