code wiki / _hdl_build / nx_asr_frontend.nx
nx_asr_frontend.nx
buildroot/runtime/_hdl_build/nx_asr_frontend.nx
about
nx_asr_frontend.nx -- THE DEEP, rung 1: the ASR acoustic FRONT-END (PCM frame -> spectral features), the
bottom layer every speech recognizer stands on. Self-contained radix-2 forward FFT (integer Q14, sibling of
nx_fft but written in the harness-safe idioms + no inverse) -> power spectrum -> a contiguous filterbank of
band energies + the dominant bin/band. NO float. HONESTLY just the front-end -- NOT recognition (acoustic
model HMM/CTC, language model, decoding = next rungs, grounded by knowledge/fetched/asr_*.raw). Linear
filterbank R1; mel-warp = R2. license_tier: ORIGINAL
dependencies 1 imports · 1 importers
imports: nx_syscalls.nx
imported by: nx_asr_frontend_gate.nx
structs
| none |
consts
| 8 | const K_MAGIC_16384: i64 = 16384 |
| 9 | const K_MAGIC_16069: i64 = 16069 |
| 10 | const K_MAGIC_3196: i64 = 3196 |
| 11 | const K_MAGIC_15137: i64 = 15137 |
| 12 | const K_MAGIC_6270: i64 = 6270 |
| 13 | const K_MAGIC_13623: i64 = 13623 |
| 14 | const K_MAGIC_9102: i64 = 9102 |
| 15 | const K_MAGIC_11585: i64 = 11585 |
functions
| 18 | func af_tw(tr: *i64, ti: *i64) -> i64 |
| 37 | func af_log2(n: i64) -> i64 { var l: i64 = 0; var v: i64 = n; while v > 1 { v = v / 2; l = l + 1 } return l } called by 1: af_fwd |
| 38 | func af_bitrev(idx: i64, log2n: i64) -> i64 called by 1: af_fwd |
| 46 | func af_fwd(re: *i64, im: *i64, n: i64) -> i64 |
| 88 | func nx_asr_power(pcm: *i64, n: i64, power: *i64) -> i64 |
| 99 | func nx_asr_peak_bin(power: *i64, n: i64) -> i64 called by 1: main |
| 108 | func nx_asr_filterbank(power: *i64, n: i64, nfilt: i64, energies: *i64) -> i64 called by 1: main |
| 121 | func nx_asr_dom_band(energies: *i64, nfilt: i64) -> i64 called by 1: main |
| 128 | func nx_asr_total_energy(energies: *i64, nfilt: i64) -> i64 called by 1: main |