|
| 1 | +import json |
| 2 | + |
| 3 | +# Load benchmark results |
| 4 | +with open('._datasets_voidful_codec-superb-tiny_synth_evaluation_results_20251218_204458.json', 'r') as f: |
| 5 | + benchmark_results = json.load(f) |
| 6 | + |
| 7 | +# Hardcoded BPS mapping (bitrate in kbps or as used in data.js) |
| 8 | +bps_mapping = { |
| 9 | + 'academicodec_hifi_16k_320d': 2, |
| 10 | + 'academicodec_hifi_16k_320d_large_uni': 2, |
| 11 | + 'academicodec_hifi_24k_320d': 3, |
| 12 | + 'audiodec_24k_320d': 6.4, |
| 13 | + 'auv': 1, # Estimated or placeholder |
| 14 | + 'bigcodec_1k': 1, # Estimated or placeholder |
| 15 | + 'dac_16k': 6, |
| 16 | + 'dac_24k': 24, |
| 17 | + 'dac_44k': 8, |
| 18 | + 'encodec_24k_12bps': 12, |
| 19 | + 'encodec_24k_1_5bps': 1.5, |
| 20 | + 'encodec_24k_24bps': 24, |
| 21 | + 'encodec_24k_3bps': 3, |
| 22 | + 'encodec_24k_6bps': 6, |
| 23 | + 'funcodec_en_libritts_16k_gr1nq32ds320': 16, |
| 24 | + 'funcodec_en_libritts_16k_gr8nq32ds320': 16, |
| 25 | + 'funcodec_en_libritts_16k_nq32ds320': 16, |
| 26 | + 'funcodec_en_libritts_16k_nq32ds640': 8, |
| 27 | + 'funcodec_zh_en_16k_nq32ds320': 16, |
| 28 | + 'funcodec_zh_en_16k_nq32ds640': 8, |
| 29 | + 's3tokenizer_v1': 0.1, # Semantic tokenizer |
| 30 | + 'speech_tokenizer_16k': 4, |
| 31 | + 'sqcodec_16k_0k75bps': 0.75, |
| 32 | + 'sqcodec_16k_12kbps': 12, |
| 33 | + 'sqcodec_16k_1k5bps': 1.5, |
| 34 | + 'sqcodec_16k_3kbps': 3, |
| 35 | + 'sqcodec_16k_6kbps': 6, |
| 36 | + 'sqcodec_24k_12kbps': 12, |
| 37 | + 'sqcodec_24k_24kbps': 24, |
| 38 | + 'unicodec_24k': 12, # Estimated |
| 39 | + 'wavtokenizer_24k_small_600_4096': 0.1, |
| 40 | + 'wavtokenizer_24k_medium_600_4096': 0.1, |
| 41 | + 'wavtokenizer_24k_large_600_4096': 0.1, |
| 42 | + 'wavtokenizer_24k_large_speech_75token': 0.1 |
| 43 | +} |
| 44 | + |
| 45 | +# Metrics to include |
| 46 | +metrics_to_include = ['mel', 'pesq', 'stoi', 'f0corr'] |
| 47 | + |
| 48 | +new_results = {} |
| 49 | + |
| 50 | +for model_name, metrics in benchmark_results.items(): |
| 51 | + entry = { |
| 52 | + 'bps': bps_mapping.get(model_name, 0) |
| 53 | + } |
| 54 | + for m in metrics_to_include: |
| 55 | + val = metrics.get(m, 0) |
| 56 | + # Handle NaN |
| 57 | + if val != val: # NaN check |
| 58 | + val = 0 |
| 59 | + entry[m] = round(float(val), 3) |
| 60 | + new_results[model_name] = entry |
| 61 | + |
| 62 | +# Format as JavaScript |
| 63 | +js_content = "const results = " + json.dumps(new_results, indent=1) + ";\nexport default results;" |
| 64 | + |
| 65 | +with open('web/src/results/data.js', 'w') as f: |
| 66 | + f.write(js_content) |
| 67 | + |
| 68 | +print(f"Updated web/src/results/data.js with {len(new_results)} codecs.") |
0 commit comments