code wiki / (root) / nx_voice_codec_tier.nx

nx_voice_codec_tier.nx source

↩ module page · 109 lines · 3667 B

1// nx_voice_codec_tier.nx -- tier-adaptive parameter selection. 2// 3// Reads `nx_hwprobe`'s tier verdict; returns the right codec params 4// for that tier. Same library serves T0 MCU through T5 HPC; the 5// adaptivity is at substrate level, not vendor-driven. 6// 7// Per cardinal feedback-scale-agnostic-substrate + feedback-self- 8// aware-substrate-user-improvable: every tier choice is queryable 9// via nx_self_audit so the operator can see what the codec picked 10// and why. 11// 12// genealogy_id: feedback-scale-agnostic-substrate + feedback-numeric- 13// tier-ladder + nx_hwprobe + opus_complexity_tables 14// lineage_id: nishi_voice_codec_tier_dispatch_q10 15 16// nx_safety_envelope: 17// intended_use: AUTO_APPLIED -- primitive-specific tuning queued 18// sil_target: SIL1 19// evidence: [bulk_applied_2026-05-16, see-file-comment-for-detail] 20// verdict: NOT_YET_EVALUATED 21 22import "nx_syscalls.nx" 23import "nx_hwprobe.nx" 24 25// Codec parameter packet returned to caller. 26struct VoiceCodecParams { 27 frame_ms: i64, // 10 or 20 28 sample_rate_khz: i64, // 8, 16, 24, 48 29 bitrate_kbps: i64, // 2..32 30 lpc_order: i64, // 6..20 31 codebook_size: i64, // 4, 64, 1024, 32768 32 fec_enabled: i64, // 0/1 33 neural_residual: i64, // 0/1 34 tier_used: i64 // copy of the NX_HW_TIER_* used 35} 36 37// Pick recommended params for a given tier. Caller can override any 38// field afterwards (the codec respects whatever the caller passes; 39// these are defaults). 40func nx_voice_codec_params_for_tier(out: *VoiceCodecParams, tier: i64) -> i64 { 41 out.tier_used = tier 42 43 // T0 MCU: 2 kbps, 8 kHz, order 6, 4-entry codebook, no FEC, no neural. 44 if tier == NX_HW_TIER_MCU { 45 out.frame_ms = 20 46 out.sample_rate_khz = 8 47 out.bitrate_kbps = 2 48 out.lpc_order = 6 49 out.codebook_size = 4 50 out.fec_enabled = 0 51 out.neural_residual = 0 52 return 0 53 } 54 55 // T1 sovereign-chip: 4-8 kbps, 8 kHz, order 10, 64-entry codebook, FEC. 56 if tier == NX_HW_TIER_SOVEREIGN { 57 out.frame_ms = 20 58 out.sample_rate_khz = 8 59 out.bitrate_kbps = 6 60 out.lpc_order = 10 61 out.codebook_size = 64 62 out.fec_enabled = 1 63 out.neural_residual = 0 64 return 0 65 } 66 67 // T2 family device: 8-16 kbps, 16 kHz, order 12, 1024-entry, FEC. 68 if tier == NX_HW_TIER_FAMILY { 69 out.frame_ms = 20 70 out.sample_rate_khz = 16 71 out.bitrate_kbps = 12 72 out.lpc_order = 12 73 out.codebook_size = 1024 74 out.fec_enabled = 1 75 out.neural_residual = 0 76 return 0 77 } 78 79 // T3 workstation: 16-24 kbps, 16 kHz, order 14, neural-residual ON. 80 if tier == NX_HW_TIER_WORKSTATION { 81 out.frame_ms = 10 82 out.sample_rate_khz = 16 83 out.bitrate_kbps = 16 84 out.lpc_order = 14 85 out.codebook_size = 32768 86 out.fec_enabled = 1 87 out.neural_residual = 1 88 return 0 89 } 90 91 // T4 server / T5 HPC: full Phase 4b on every parameter. 92 out.frame_ms = 10 93 out.sample_rate_khz = 24 94 out.bitrate_kbps = 24 95 out.lpc_order = 16 96 out.codebook_size = 32768 97 out.fec_enabled = 1 98 out.neural_residual = 1 99 return 0 100} 101 102// One-shot: probe the running machine, return its codec params. 103// Caller doesn't need to know the tier mechanism -- it just gets 104// "the right defaults for here." 105func nx_voice_codec_init(out: *VoiceCodecParams) -> i64 { 106 let summary: *HwSummary = sys_mmap(256) as *HwSummary 107 nx_hwprobe(summary) 108 return nx_voice_codec_params_for_tier(out, summary.tier) 109}