SlidingWindow streaming: default rescue floors replace an unrelated opening word with a vocabulary term ("Hey" → "Codex")
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- swift
- Área
- machine-learning
Línea de trabajo
Reproduce on Tests/FluidAudioTests/ASR/Parakeet/SlidingWindow/Fixtures with vocab terms Codex, follow-up, then read the nearest-word fallback in VocabularyRescorer+TokenRescoring and compare VocabularyRescorer.Config.default with itnDefaultConfig's 0.30/0.50 floors (#702). SlidingWindowVocabularyBoostingStreamingTests is the guard. Decide between the #702 floors and bounding the spotter fallback, pass the CLI floor flags through runStreaming, and treat done as a transcript that still starts with "hey", keeps "validate your findings with codex", and exposes detections via ctcDetectedTerms.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Surfaced while verifying #898 on the public #855 clip 01-validation-request-21.4s.wav (Tests/FluidAudioTests/ASR/Parakeet/SlidingWindow/Fixtures) with the vocabulary terms Codex, follow-up. Pre-existing: reproduces on main before #898.
The sliding-window streaming rescorer replaces an unrelated short word with the term through the spotter-rescue path at near-zero string similarity. Which word depends on the machine's decode, so this is not tied to "Hey":
- M5 Pro (local, GPU/ANE):
Hey→Codexat the start of window 1. - CI runner (macos-15 VM, CPU), #898 benchmark job on 230a5c13:
and'validate' vs 'Codex' (sim=0.12, span=1) -> REPLACE (vocab > original) [SPOTTER-RESCUE] 'validate' → 'Codex' spotter=-7.77, sim=0.12 Final: Hey, before we go ... can you do me a favor and Codex[MULTI] 'Hey, before' vs 'Codex' (sim=0.10)/'to test with,' vs 'Codex' (sim=0.17)were considered.
In every case the real "codex" later in the sentence is left unchanged and batch decode keeps the original words. The streaming path uses VocabularyRescorer.Config.default; the unified path uses VocabularyBoostingSession.itnDefaultConfig (#702 floors 0.30 / 0.50) precisely to stop short-word rescue over-fire, and #862 recorded the same "rescue-floor WER tax" on the TDT path (recall up, WER 15.70 → 22.25 on .default).
Candidates:
- (a) Apply the #702 floors on the sliding-window streaming path by default. Directly rejects a 0.12 candidate and aligns the two streaming engines. Needs a recall/WER re-run on earnings22-kws before merging, since
.defaultwas kept on this path for brand-name recall. - (b) Gate the rescue on the spotter detection's time range. Detections already map to overlapping word timestamps, but
VocabularyRescorer+TokenRescoringfalls back to the nearest word to the detection centre when no word overlaps, unconditionally — that is how a detection at ~9 s can land onHeyat 0.2 s orvalidate. Bound the fallback (e.g. within one word /marginSeconds) and log the detection interval so the trace shows which path fired. - Also: the CLI's streaming path drops the rescue-floor flags (
--vocab-spotter-min-sim,--vocab-spotter-min-sim-multi,--vocab-disable-spotter-rescue); only batch builds aVocabularyRescorer.Configfrom them. Pass them throughrunStreamingso the floors can be A/B'd from the CLI.
Regression guard once fixed: extend SlidingWindowVocabularyBoostingStreamingTests to assert the transcript still starts with "hey" and keeps "validate your findings with codex". Note that test currently cannot prove the rescorer acted (CI's decode already produced "follow-up" with zero replacements), so exposing spotter detections in ctcDetectedTerms even when no replacement is applied would give it something machine-independent to assert.
- Lenguaje dominante
- Swift
- Estrellas
- 3k
- Forks
- 451
- Merge medio
- 1 d 5 h
- PR fusionados (30 d)
- 54
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de FluidInference/FluidAudio
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
FluidInference/FluidAudio#1049 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
FluidInference/FluidAudio#1067 ·
Los mantenedores suelen responder en 1 día
-
Streaming ASR: sliding-window updates can't say which seam tokens were retired, and the stable prefix can shrink on a contractionPosiblemente ocupada @johnny4young la tomó hace 11 días. Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 1/100
FluidInference/FluidAudio#1065 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 38/100
FluidInference/FluidAudio#1063 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
FluidInference/FluidAudio#1059 ·
Los mantenedores suelen responder en 1 día
Todos los issues de FluidInference/FluidAudio
Issues similares
-
copy design-review mac P3
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
tosunlab/hisarapp-core#510 ·
-
bug needs-triage S2: major
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
manaflow-ai/cmux#26321 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
SwiftyLab/MetaCodable#169 ·