Request TTS and Diarizer opt-out traits: ASR-only consumers ship 1.0 MB of unreachable LuxTTS resources and compile 3.1 MB of unused subsystems (cf. #880/#888)
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 52/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- swift
- Ambito
- build-system
Direzione di ricerca
Start with the existing NemoTextProcessing trait pattern in [email protected], then inspect the FluidAudio target's TTS and Diarizer sources and its TTS/LuxTts/G2p/Resources rule. The issue allows either conditioning within the target or separate trait-conditioned targets. Done means default builds retain current behavior, while opting out removes the TTS and Diarizer code and LuxTTS resources; validate with an ASR-only consumer and compare bundle and binary sizes.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
ASR-only consumers unconditionally ship the LuxTTS G2P resources, and compile the TTS
and Diarizer subsystems, with no code path able to reach any of it. Could TTS and
Diarizer get the same opt-out trait treatment NemoTextProcessing received in #880 /
#888?
(Refiling #989, which I closed — it covered TTS only.)
Measurements
FluidAudio 0.17.5, release build of an ASR-only macOS app: Parakeet / Phonon-2 on the
ANE via AsrManager + AsrModels only. No TtsManager, no Kokoro, no LuxTTS, no
DiarizerManager — grep across the app's sources returns zero references to any of them.
FluidAudio_FluidAudio.bundle is 1.0 MB, and every byte is TTS:
| File | Bytes |
|---|---|
luxtts_en_us_lexicon.tsv.zz |
982,385 |
luxtts_en_us_g2p_aux.json |
37,000 |
Info.plist |
1,134 |
That comes from the unconditional
resources: [.process("TTS/LuxTts/G2p/Resources")]
on the FluidAudio target.
Source footprint of the subsystems, for scale against the one actually in use:
| Subsystem | Size |
|---|---|
Sources/FluidAudio/TTS |
2.4 MB |
Sources/FluidAudio/ASR |
1.3 MB |
Sources/FluidAudio/Diarizer |
728 KB |
Sources/FluidAudio/VAD |
60 KB |
TTS is the largest subsystem in the library — nearly double ASR. In a prior unstripped
build of the same app, TTS symbols were roughly 9% of the binary's symbol table.
So an ASR-only consumer pays ~1.0 MB of provably unreachable resources, plus the compile
time and binary weight of 3.1 MB of TTS and Diarizer source.
Why traits rather than separate products
Separate FluidAudioASR / FluidAudioTTS products would break every existing
import FluidAudio. The trait approach already taken for NemoTextProcessing avoids
that: default-on preserves current behaviour exactly, and consumers who want a smaller
build opt out. Mirroring the existing pattern in [email protected]:
traits: [
.trait(name: "TTS", ...),
.trait(name: "Diarizer", ...),
.default(enabledTraits: ["NemoTextProcessing", "TTS", "Diarizer"]),
]
with those sources, and the .process("TTS/LuxTts/G2p/Resources") resource rule,
conditioned on the matching trait.
I appreciate the resource rule is the harder half. Conditioning source files and
resources on a trait within a single target is more awkward than conditioning a
dependency on a binary target, which is what #880 needed. If the practical route is
splitting TTS and Diarizer into their own trait-conditioned targets, that is equally good
from a consumer's point of view.
Happy to test a branch against an ASR-only consumer and report the resulting bundle and
binary sizes.
- Lingua principale
- Swift
- Stelle
- 3k
- Fork
- 451
- Merge medio
- 1g 1h
- PR unite (30g)
- 57
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di FluidInference/FluidAudio
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
FluidInference/FluidAudio#1049 ·
I maintainer di solito rispondono entro 1 giorno
-
Streaming ASR: sliding-window updates can't say which seam tokens were retired, and the stable prefix can shrink on a contractionForse già presa @johnny4young l’ha presa 10 giorni fa. Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 1/100
FluidInference/FluidAudio#1065 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 38/100
FluidInference/FluidAudio#1063 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
FluidInference/FluidAudio#1059 ·
I maintainer di solito rispondono entro 1 giorno
-
PocketTTS: second one-shot synthesize can hang forever (orphaned frames stream in PocketTtsSession)Forse già presa @donpark l’ha presa 3 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
FluidInference/FluidAudio#1057 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di FluidInference/FluidAudio
Issue simili
-
[Bug] Library write-failure banner cannot be dismissed or collapsedForse già presa @JoeyWu-tech l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
yetone/magpie#3745 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
deltachat/deltachat-ios#3411 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 14 giorni
-
a:bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
vorssaint/vorssaint-utils#3527 ·
I maintainer di solito rispondono entro 1 giorno