import json
# Donnees first-hand extraites des outputs des notebooks Audio :
# A.1 05-1-AudioDiffusion-Latent-From-Scratch.ipynb (PR #16133, OPEN)
# A.2 05-2-Vocoder-From-Scratch.ipynb (PR #16166, OPEN)
# B.4 06-1-AudioLDM-SOTA-Comparison.ipynb (PR #16198, MERGED)
# B.5 06-2-HiFiGAN-SOTA-Comparison.ipynb (PR #16203, MERGED)
data = {
"A1": {
"notebook": "05-1-AudioDiffusion-Latent-From-Scratch",
"cells": 48, "code": 24, "markdown": 24, "exec": 24, "errors": 0,
"LOC_impl": 472,
"encodeur_params": 7216, "decodeur_params": 7240, "UNet_params": 47296,
"training_time_s": 40,
"inter_intra_ratio": 13.72,
"latents_generes_sigma_ratio": 0.695,
},
"A2": {
"notebook": "05-2-Vocoder-From-Scratch",
"cells": 54, "code": 21, "markdown": 33, "exec": 21, "errors": 0,
"LOC_impl": 173,
"generator_params_M": 30.76,
"MCD_initial_dB": 71.58, "MCD_griffin_lim_dB": 32.31,
"upsampling_factor": 256,
},
"B4": {
"notebook": "06-1-AudioLDM-SOTA-Comparison",
"cells": 34, "code": 15, "markdown": 19, "exec": 15, "errors": 0,
"LOC_appel_industriel": 8,
"text_encoder_M": 125.3, "unet_M": 185.0, "vae_M": 55.4, "vocoder_M": 55.3,
"total_M": 421.0,
"MCD_distributionnel_dB": 20.7, "MCD_reel_intra_classe_dB": 14.8,
},
"B5": {
"notebook": "06-2-HiFiGAN-SOTA-Comparison",
"cells": 38, "code": 15, "markdown": 23, "exec": 15, "errors": 0,
"LOC_appel_industriel": 3,
"generator_M": 13.94,
"MCD_dB": 8.93, "F0_RMSE_Hz": 4.0,
"latence_froide_s": 0.21, "latence_chaude_ms": 37,
"VRAM_GiB": 0.11, "vitesse_x_reel": 81.5,
},
}
A1, A2, B4, B5 = data["A1"], data["A2"], data["B4"], data["B5"]
print("=" * 78)
print(f"{'Critere':38} {'Bloc A (scratch)':22} {'Bloc B (SOTA)':22}")
print("=" * 78)
def row(label, a, b):
print(f"{label:38} {str(a):22.22} {str(b):22.22}")
print()
print("-- Chaine AudioLDM (texte -> audio) --")
row("lignes de code coeur", f"{A1['LOC_impl']} (A.1)", f"{B4['LOC_appel_industriel']} (B.4)")
row("parametres (M)", "~0.06 (A.1)", f"{B4['total_M']} (B.4)")
row("MCD qualite (dB)", "A.1: latent sigma 0.69", f"{B4['MCD_distributionnel_dB']} (distrib.)")
row("dependance", "torch + torchaudio", "diffusers + transformers")
print()
print("-- Chaine vocodeur (mel -> waveform) --")
row("lignes de code coeur", f"{A2['LOC_impl']} (A.2)", f"{B5['LOC_appel_industriel']} (B.5)")
row("parametres (M)", f"{A2['generator_params_M']} (A.2)", f"{B5['generator_M']} (B.5)")
row("MCD qualite (dB)", f"{A2['MCD_initial_dB']} -> entrain.", f"{B5['MCD_dB']} (B.5)")
row("latence inference", "selon subset (entrain.)", f"{B5['latence_chaude_ms']} ms chaud (B.5)")
row("VRAM (GiB)", "CPU ou GPU modeste", f"{B5['VRAM_GiB']} (B.5)")
row("dependance", "torch + torchaudio", "transformers + torch")
print()
print("=" * 78)
print("Notes :")
print(" - Bloc A mesure la *comprehension* (chaque couche est lisible et modifiable).")
print(" - Bloc B mesure la *production* (qualite native, latence, determinisme industriel).")
print(" - Le facteur ~59x d abstraction de B.4 vs A.1 documente la barriere du SOTA.")
print("=" * 78)