Commit abbbb8f
Add TransducerRunner and rename AsrRunner to Seq2SeqRunner
Summary:
Restructure `extension/asr/runner/` to support both Seq2Seq and Transducer ASR architectures:
1. **Rename** `AsrRunner` → `Seq2SeqRunner` (with backward-compat alias in runner.h)
- `runner.cpp` → `seq2seq_runner.cpp`, `runner.h` → `seq2seq_runner.h`
- Old `runner.h` kept as a thin include redirect for backward compatibility
2. **Add** `TransducerRunner` for RNN-T/TDT models
- Extracts the ~190-line greedy decode loop from `examples/models/parakeet/main.cpp`
- Auto-reads model metadata (blank_id, num_rnn_layers, pred_hidden) from constant_methods
- Supports both standard RNN-T (duration=1) and TDT (variable durations)
- Returns `vector<Token>` with frame offsets for downstream timestamp computation
- Includes `preprocess()` method for models with bundled preprocessor
- Exposes tokenizer via `tokenizer()` getter for downstream use
3. **Unify Token type**: `parakeet::Token` is now an alias for `asr::Token`
4. **Migrate consumers**
- Whisper `main.cpp`: `AsrRunner` → `Seq2SeqRunner`
- Parakeet `main.cpp`: inline decode → `TransducerRunner::transcribe()`
- Android JNI: updated include (uses backward-compat alias, no API change)
Model-specific post-processing (timestamp computation) remains in `examples/models/parakeet/`.
Differential Revision: D1008924651 parent 7fdd306 commit abbbb8f
13 files changed
Lines changed: 884 additions & 519 deletions
File tree
- examples/models
- parakeet
- whisper
- extension
- android/jni
- asr/runner
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
| 78 | + | |
78 | 79 | | |
79 | 80 | | |
80 | 81 | | |
| |||
0 commit comments