{ "family": "rvq", "method": "ai", "modality": "ppg", "sample_rate": 64, "compression_ratio": 32, "experiment_id": "ppg-rvq-32x", "run_name": "ppg_rvq_64hz_32x_golden", "package_version": "1.0", "input_contract": { "encoder_input_shape": [ null, 1, 320, 1 ], "encoder_input_dtype": "float32" }, "preprocessing_contract": { "format_version": 1, "sample_rate_hz": 64, "frame_size": 320, "input_shape": [ 1, 1, 320, 1 ], "normalization": { "kind": "per_frame_layer_norm", "mean": "mean over all samples in each frame", "variance": "mean squared deviation over all samples in each frame", "epsilon": 0.001, "inverse_for_display": "raw = normalized * sqrt(variance + epsilon) + mean" }, "int8_quantization": { "calibration_frames": 4096, "validation_frames": 2048, "sampling_pool_frames": 65536, "sampling_method": "seeded reservoir sample; disjoint calibration and validation partitions" } }, "encoder": { "tflite": "encoder_float32.tflite", "header": "encoder.h", "default_variant": "float32", "default_tflite": "encoder_float32.tflite", "float32_tflite": "encoder_float32.tflite", "fp16_tflite": "encoder_fp16.tflite", "fp16_header": "encoder_fp16.h", "int16x8_tflite": "encoder_int16x8.tflite", "int16x8_header": "encoder_int16x8.h", "int8_tflite": "encoder.tflite", "int8_header": "encoder.h", "variants": { "float32": { "tflite": "encoder_float32.tflite", "input_dtype": "float32" }, "fp16": { "tflite": "encoder_fp16.tflite", "input_dtype": "float32" }, "int16x8": { "tflite": "encoder_int16x8.tflite", "input_dtype": "float32" }, "int8": { "tflite": "encoder.tflite", "input_dtype": "int8" } }, "keras": "encoder.keras", "input_shape": [ null, 1, 320, 1 ], "output_shape": [ null, 1, 20, 16 ] }, "decoder": { "keras": "decoder.keras", "float32_tflite": "decoder_float32.tflite", "int8_tflite": "decoder.tflite", "int8_header": "decoder.h", "input_shape": [ null, 1, 20, 16 ], "output_shape": [ null, 1, 320, 1 ] }, "codebook": { "npz": "codebook.npz", "header": "codebook.h", "num_levels": 2, "num_embeddings": 256, "embedding_dim": 16 }, "sample_data": { "npz": "sample_data.npz", "num_samples": 10, "arrays": [ "inputs", "targets", "reconstructions" ] } }