# WeNet Hotword

Adds hotword-biased decoding to the WeNet C++ speech recognition runtime, using fuzzy phoneme matching and an automatic multi-objective tuner.

WeNet Hotword adds hotword-biased decoding to the WeNet C++ automatic speech recognition runtime. A phoneme corrector does fuzzy hotword matching through grapheme-to-phoneme edit distance on the n-best hypotheses, a confidence-weighted match bonus rewards each hotword in proportion to acoustic confidence, and a multi-objective autotuner searches decoder and hotword parameters with early-exit stagnation detection.

Setup learns a per-model confusion matrix once, then autotunes in one of four modes — aggressive, balanced, conservative or others — trading recall, precision and character error rate against the target use case, from hotword-dense domains to open-domain dialogue. Tested against a u2pp Conformer streaming ASR model on AISHELL-1 and AISHELL-2, it reports F1 improving from 87.6% to 94.5% and from 59.2% to 90.4% over the respective baselines.

It is written in Python with a libtorch-based C++ runtime, and is Apache-2.0 licensed.

Website: https://github.com/BoundlessWindMoon/wenet-hotword
