Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

SlidingWindow streaming: default rescue floors replace an unrelated opening word with a vocabulary term ("Hey" → "Codex")

Abierto
#899 2 comentarios 0 reacciones 0 asignados Ver en GitHub

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

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 → Codex at the start of window 1.
  • CI runner (macos-15 VM, CPU), #898 benchmark job on 230a5c13:
    '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
    
    and [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 .default was 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+TokenRescoring falls back to the nearest word to the detection centre when no word overlaps, unconditionally — that is how a detection at ~9 s can land on Hey at 0.2 s or validate. 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 a VocabularyRescorer.Config from them. Pass them through runStreaming so 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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de FluidInference/FluidAudio

Todos los issues de FluidInference/FluidAudio

Issues similares

Más issues de Swift

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.