nx_hifigan_verify.nx
buildroot/runtime/nx_hifigan_verify.nx
about
nx_hifigan_verify.nx -- VERIFY our sovereign HiFi-GAN against the transformers oracle (Qwen-style). Reads a REAL
SpeechT5 mel (ref_mel_short.f32, [T,80] row-major) + the reference vocoder output (ref_audio_short.f32, [T*256])
produced by hifigan_oracle.py, runs OUR nx_hifigan forward on the same mel, and reports the max/mean abs error.
Small error => our vocoder is CORRECT (produces the same human-grade audio as the reference). Also writes our
audio as a 16kHz WAV so it can be published to /listen and HEARD. license_tier: ORIGINAL expect_exit: 0
dependencies 5 imports · 0 importers
imports: nx_syscalls.nxnx_f32.nxnx_f32_activations.nxnx_f32_cvt.nxnx_vocops.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 12 | const SLOPE01: i64 = 0x3DCCCCCD |
| 13 | const F_THIRD: i64 = 0x3EAAAAAB |
functions
| 15 | func p(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } |
| 16 | func pn(v: i64) -> i64 { if v==0 { sys_write(1,"0" as *u8,1); return 0 } var m: i64=v; if m<0{sys_write(1,"-" as *u8,1);m=0-m} let d: *u8=sys_mmap(24); var k: i64=0; while m>0 {d[k]=(48+(m%10)) as u8; m=m/10; k=k+1} var i: i64=k-1; while i>=0 {let o: *u8=sys_mmap(1); o[0]=d[i]; sys_write(1,o,1); i=i-1} return 0 } |
| 17 | func phx(v: i64) -> i64 { let b: *u8=sys_mmap(8); var i: i64=0; while i<8 { let n: i64=(v>>((7-i)*4))&0xF; if n<10 {b[i]=(48+n) as u8} else {b[i]=(87+n) as u8} i=i+1 } sys_write(1,b,8); return 0 } |
| 18 | func u16le(b: *u8, o: i64) -> i64 { return (b[o]&0xff) | ((b[o+1]&0xff)<<8) } called by 1: main |
| 19 | func u32le(b: *u8, o: i64) -> i64 { return (b[o]&0xff) | ((b[o+1]&0xff)<<8) | ((b[o+2]&0xff)<<16) | ((b[o+3]&0xff)<<24) } called by 1: main |
| 20 | func f32_sub(a: i64, b: i64) -> i64 { return nx_f32_add(a, (b & 0xFFFFFFFF) ^ 0x80000000) } |
| 21 | func f32_abs(a: i64) -> i64 { return a & 0x7FFFFFFF } called by 1: main |
| 22 | func vcopy(d: *i64, s: *i64, n: i64) -> i64 { var i: i64=0; while i<n { d[i]=s[i]; i=i+1 } return 0 } called by 1: main |
| 23 | func vaddto(d: *i64, s: *i64, n: i64) -> i64 { var i: i64=0; while i<n { d[i]=nx_f32_add(d[i],s[i]); i=i+1 } return 0 } |
| 24 | func vzero(d: *i64, n: i64) -> i64 { var i: i64=0; while i<n { d[i]=0; i=i+1 } return 0 } called by 1: main |
| 25 | func vscale(d: *i64, n: i64, s: i64) -> i64 { var i: i64=0; while i<n { d[i]=nx_f32_mul(d[i],s); i=i+1 } return 0 } |
| 28 | func read_all(path: *u8, cap: i64, bufp: *i64) -> i64 |
| 35 | func main() -> i64 |