libs/converse gains a default-on `tts` feature so gamemaker and route are unaffected; Arcade takes default-features = false and re-enables it through its existing `voice` feature. With tts off, SpeechOutput still exists and its worker drains the queue silently, so no Arcade source changes were needed — which also avoided colliding with concurrent edits to those files. No capability is lost: speech is fully reachable under --features voice. Arcade before 25.11 MB Arcade after (default) 15.01 MB (-10.10 MB, -40%) Arcade --features voice 26.18 MB hello_world 13.46 MB Isolated by A/B in a throwaway worktree before making the real change. Of the 10.1 MB, 2.78 MB is us_lexicon.bin embedded via include_bytes!; __const alone was 11.2 MB, larger than __text. Also: Kokoro construction is now lazy, deferring ~327 MB until first utterance. That already closed the RSS gap this pass was chasing — Arcade's max RSS measures 190 MB against hello_world's 222 MB on the same method, i.e. BELOW the baseline app, so the premised memory problem no longer exists and was not invented into one. The lean-isolate prelude was likewise dropped after instrumentation showed Arcade allocates no script isolate on the demo path at all; it should be re-measured against a loaded script game before anyone spends effort there. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
28 lines
1.1 KiB
TOML
28 lines
1.1 KiB
TOML
[package]
|
|
name = "makepad-converse"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "Conversational voice pipeline for Makepad apps: streamed agent replies spoken as they arrive, with a pluggable transcript filter between speech-to-text and the backend LLM."
|
|
license = "MIT OR Apache-2.0"
|
|
|
|
[features]
|
|
# Speech synthesis (Kokoro). Default ON so existing consumers are unchanged,
|
|
# but separable: the model plus its embedded pronunciation lexicon is ~10 MB of
|
|
# binary and ~327 MB resident, which a build that can never speak should not
|
|
# carry. With it off, SpeechOutput still exists and every non-audio path
|
|
# behaves identically — the worker just drains its queue in silence.
|
|
default = ["tts"]
|
|
tts = ["dep:makepad-tts"]
|
|
# The local filtering LLM (QwenFilter) on makepad-llama; heavy, so opt-in.
|
|
local-llm = ["dep:makepad-llama"]
|
|
|
|
[dependencies]
|
|
makepad-widgets = { path = "../../widgets" }
|
|
makepad-ai = { path = "../makepad_ai" }
|
|
makepad-tts = { path = "../tts", optional = true }
|
|
makepad-llama = { path = "../llama", optional = true }
|
|
|
|
[[bin]]
|
|
name = "filter-repl"
|
|
path = "src/bin/filter_repl.rs"
|
|
required-features = ["local-llm"]
|