{
  "version": 1,
  "fixtures": [
    {
      "id": "s1_5_echo_only",
      "stage": 1,
      "scenario": 5,
      "variant": "echo_only",
      "source": "male_ordinary",
      "split": "development",
      "wav": "fixtures/s1_5_echo_only.wav",
      "sha256": "8b6c3fe77df883726cfb36d7293b926687de2317ae5d5c7c505050af07913491",
      "seconds": 8.23,
      "reference": "",
      "params": {
        "echo_delay_ms": 80,
        "echo_gain": 0.55
      },
      "metrics": {
        "samples": 395040,
        "sample_rate": 48000,
        "seconds": 8.23,
        "rms_dbfs": -24.077249763200452,
        "peak_dbfs": -5.595576818618824,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -24.077249763200452
      },
      "mask": "fixtures/s1_5_echo_only.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 0,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 7.43
    },
    {
      "id": "s1_6_double_talk",
      "stage": 1,
      "scenario": 6,
      "variant": "double_talk",
      "source": "male_codes",
      "split": "development",
      "wav": "fixtures/s1_6_double_talk.wav",
      "sha256": "53f954bbeadaf96576587ab0ab9b677e21ad5388fbddb5085e0f539ed63dc770",
      "seconds": 10.25,
      "reference": "Рейс ТЕСТ сто двадцать три. Скорость тысяча километров в час. Осталось тридцать минут. Полоса три тысячи пятьсот метров.",
      "params": {
        "far_end": "male_ordinary.wav",
        "echo_delay_ms": 80,
        "echo_gain": 0.55
      },
      "metrics": {
        "samples": 492000,
        "sample_rate": 48000,
        "seconds": 10.25,
        "rms_dbfs": -19.093861397974198,
        "peak_dbfs": 0.12554131411275138,
        "near_clip_fraction_0_98": 2.4390243902439026e-05,
        "full_scale_fraction": 8.130081300813007e-06,
        "non_speech_rms_dbfs": -49.103410190406734
      },
      "mask": "fixtures/s1_6_double_talk.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 9.45
    },
    {
      "id": "s2_1_ordinary",
      "stage": 2,
      "scenario": 1,
      "variant": "ordinary",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s2_1_ordinary.wav",
      "sha256": "7372ec7507990e0c5d1b8427d4f4d10567e675da324edccabf5674727dc20cfc",
      "seconds": 20.212666666666667,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {},
      "metrics": {
        "samples": 970208,
        "sample_rate": 48000,
        "seconds": 20.212666666666667,
        "rms_dbfs": -17.085542673454334,
        "peak_dbfs": 3.1400511088859377,
        "near_clip_fraction_0_98": 0.0072242240839077805,
        "full_scale_fraction": 0.007115999868069527,
        "non_speech_rms_dbfs": -35.086621466310746
      },
      "mask": "fixtures/s2_1_ordinary.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 19.412666666666667
    },
    {
      "id": "s2_2_minus18",
      "stage": 2,
      "scenario": 2,
      "variant": "minus18",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s2_2_minus18.wav",
      "sha256": "9553dcfcf3f4e7c25c47d0247a9f62110f1575c7e07056d7d5a4199e2e640bb0",
      "seconds": 20.212666666666667,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "attenuation_db": -18
      },
      "metrics": {
        "samples": 970208,
        "sample_rate": 48000,
        "seconds": 20.212666666666667,
        "rms_dbfs": -35.08554315913364,
        "peak_dbfs": -14.859949339498545,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -53.08662190302996
      },
      "mask": "fixtures/s2_2_minus18.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 19.412666666666667
    },
    {
      "id": "s2_3_quiet_codes",
      "stage": 2,
      "scenario": 3,
      "variant": "quiet_codes",
      "source": "male_codes",
      "split": "development",
      "wav": "fixtures/s2_3_quiet_codes.wav",
      "sha256": "d13f9d8d5f3ff0bf1b234f8e55cfe4efa51403e555bdec077a166264040c4e16",
      "seconds": 10.25,
      "reference": "Рейс ТЕСТ сто двадцать три. Скорость тысяча километров в час. Осталось тридцать минут. Полоса три тысячи пятьсот метров.",
      "params": {
        "attenuation_db": -18
      },
      "metrics": {
        "samples": 492000,
        "sample_rate": 48000,
        "seconds": 10.25,
        "rms_dbfs": -38.35922748053228,
        "peak_dbfs": -18.329562437269256,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -55.44776922668547
      },
      "mask": "fixtures/s2_3_quiet_codes.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 9.45
    },
    {
      "id": "s2_4_mixed",
      "stage": 2,
      "scenario": 4,
      "variant": "mixed",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s2_4_mixed.wav",
      "sha256": "c138d21ea2b8ef8beaed4df0a6c87fde1c74dfb8df7bec48b86a7688b3997ea3",
      "seconds": 20.212666666666667,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "first_half_db": -18,
        "second_half_db": -6
      },
      "metrics": {
        "samples": 970208,
        "sample_rate": 48000,
        "seconds": 20.212666666666667,
        "rms_dbfs": -32.83879735266772,
        "peak_dbfs": -14.859949339498545,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -51.92857591786477
      },
      "mask": "fixtures/s2_4_mixed.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 19.412666666666667
    },
    {
      "id": "s2_5_clipped",
      "stage": 2,
      "scenario": 5,
      "variant": "clipped",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s2_5_clipped.wav",
      "sha256": "7582ea331871eaec4da98a6535b73d132fafb94daf9549a782fbe19523ba5115",
      "seconds": 20.212666666666667,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "gain_db": 12,
        "hard_clip": 0.99
      },
      "metrics": {
        "samples": 970208,
        "sample_rate": 48000,
        "seconds": 20.212666666666667,
        "rms_dbfs": -12.246148251514503,
        "peak_dbfs": -0.0872960243771853,
        "near_clip_fraction_0_98": 0.021812848378904317,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -41.16597568638353
      },
      "mask": "fixtures/s2_5_clipped.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 19.412666666666667
    },
    {
      "id": "s2_6_pause800",
      "stage": 2,
      "scenario": 6,
      "variant": "pause800",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s2_6_pause800.wav",
      "sha256": "ab5bf5f1c3719ed2ed87f13e3f4658d6f27bc4c67bc21037ab3f5c484baf004a",
      "seconds": 21.012666666666668,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "inserted_pause_ms": 800,
        "at_sample": 588480
      },
      "metrics": {
        "samples": 1008608,
        "sample_rate": 48000,
        "seconds": 21.012666666666668,
        "rms_dbfs": -17.254118245389776,
        "peak_dbfs": 3.1400511088859377,
        "near_clip_fraction_0_98": 0.006949181446111869,
        "full_scale_fraction": 0.006845077572258003,
        "non_speech_rms_dbfs": -35.406904996994875
      },
      "mask": "fixtures/s2_6_pause800.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 20.212666666666667
    },
    {
      "id": "s3_1_snr15",
      "stage": 3,
      "scenario": 1,
      "variant": "snr15",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s3_1_snr15_headroom.wav",
      "sha256": "bcbc61cd31af6d7f3a1cfa9836ad9eb8dddf675364f3989a677313aeb94920f2",
      "seconds": 20.212666666666667,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "snr_db": 15,
        "kind": "colored_noise",
        "headroom_preparation": {
          "gain_db": -6.679404259191529,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s3_1_snr15.wav",
            "sha256": "5af644d639d094217933ef95bd9449d0d1553bd11486e1c7c193339604f6690d",
            "metrics": {
              "samples": 970208,
              "sample_rate": 48000,
              "seconds": 20.212666666666667,
              "rms_dbfs": -16.826639560433712,
              "peak_dbfs": 3.679404259191528,
              "near_clip_fraction_0_98": 0.007243807513440417,
              "full_scale_fraction": 0.0071283683498796135,
              "non_speech_rms_dbfs": -28.421821817427308
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 970208,
        "sample_rate": 48000,
        "seconds": 20.212666666666667,
        "rms_dbfs": -23.506043690289435,
        "peak_dbfs": -2.9999995180030155,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -35.10122594839243
      },
      "mask": "fixtures/s3_1_snr15.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 19.412666666666667,
      "pre_headroom_noise_metrics": {
        "samples": 907808,
        "sample_rate": 48000,
        "seconds": 18.912666666666667,
        "rms_dbfs": -28.938002071272884,
        "peak_dbfs": -15.541153621664435,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0
      }
    },
    {
      "id": "s3_1_snr5",
      "stage": 3,
      "scenario": 1,
      "variant": "snr5",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s3_1_snr5_headroom.wav",
      "sha256": "bb0eb45b84c4360bbe0c133aac89e9b1f625077a13901b3c3abbcd4da50d9ab0",
      "seconds": 20.212666666666667,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "snr_db": 5,
        "kind": "colored_noise",
        "headroom_preparation": {
          "gain_db": -7.995545723996028,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s3_1_snr5.wav",
            "sha256": "4d5888124fda4e7d0d1c652d6bd6dbf483931eff8b533cc18c909f101f65b320",
            "metrics": {
              "samples": 970208,
              "sample_rate": 48000,
              "seconds": 20.212666666666667,
              "rms_dbfs": -15.020864426414924,
              "peak_dbfs": 4.9955457239960275,
              "near_clip_fraction_0_98": 0.007336571127016063,
              "full_scale_fraction": 0.007219070549820245,
              "non_speech_rms_dbfs": -19.459014827225086
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 970208,
        "sample_rate": 48000,
        "seconds": 20.212666666666667,
        "rms_dbfs": -23.016410207506553,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -27.454560609594218
      },
      "mask": "fixtures/s3_1_snr5.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 19.412666666666667,
      "pre_headroom_noise_metrics": {
        "samples": 907808,
        "sample_rate": 48000,
        "seconds": 18.912666666666667,
        "rms_dbfs": -18.9760798021388,
        "peak_dbfs": -4.913410113224288,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0
      }
    },
    {
      "id": "s3_2_keyboard",
      "stage": 3,
      "scenario": 2,
      "variant": "keyboard",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s3_2_keyboard_headroom.wav",
      "sha256": "00eab5a3312c58c10ab3f967be157ae565fbd715bfe8b74a70f1a81d7abf3e9c",
      "seconds": 20.212666666666667,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "snr_db": 10,
        "kind": "synthetic_impulses",
        "headroom_preparation": {
          "gain_db": -11.78625701211181,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s3_2_keyboard.wav",
            "sha256": "173e3d9ac187ae459cc30e31e00586cbeef188e9f8ee8b440eb615fe5f5f5f81",
            "metrics": {
              "samples": 970208,
              "sample_rate": 48000,
              "seconds": 20.212666666666667,
              "rms_dbfs": -16.355311307336923,
              "peak_dbfs": 8.78625701211181,
              "near_clip_fraction_0_98": 0.007484992908737095,
              "full_scale_fraction": 0.00733760183383357,
              "non_speech_rms_dbfs": -24.60685968666133
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 970208,
        "sample_rate": 48000,
        "seconds": 20.212666666666667,
        "rms_dbfs": -28.141568542197337,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -36.39311691306571
      },
      "mask": "fixtures/s3_2_keyboard.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 19.412666666666667,
      "pre_headroom_noise_metrics": {
        "samples": 907808,
        "sample_rate": 48000,
        "seconds": 18.912666666666667,
        "rms_dbfs": -24.183507091764326,
        "peak_dbfs": 6.43823598174925,
        "near_clip_fraction_0_98": 0.00031063837287179666,
        "full_scale_fraction": 0.0002709824103775248
      }
    },
    {
      "id": "s3_3_babble",
      "stage": 3,
      "scenario": 3,
      "variant": "babble",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s3_3_babble_headroom.wav",
      "sha256": "cfd41fa463340b54e609d2ddf155cafa90a12c979214ec0046d6b11f56a66b78",
      "seconds": 20.212666666666667,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "snr_db": 5,
        "kind": "male_development_synthetic_babble",
        "headroom_preparation": {
          "gain_db": -8.361721971990024,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s3_3_babble.wav",
            "sha256": "e877dc36326a5caa9860e5e51368abf7a7d1626593b70b044af6ece8955d27b2",
            "metrics": {
              "samples": 970208,
              "sample_rate": 48000,
              "seconds": 20.212666666666667,
              "rms_dbfs": -15.046646282789569,
              "peak_dbfs": 5.361721971990024,
              "near_clip_fraction_0_98": 0.007395321415613971,
              "full_scale_fraction": 0.007258237408885517,
              "non_speech_rms_dbfs": -19.58195194954796
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 970208,
        "sample_rate": 48000,
        "seconds": 20.212666666666667,
        "rms_dbfs": -23.408367960030553,
        "peak_dbfs": -2.9999995180030155,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -27.943673628182893
      },
      "mask": "fixtures/s3_3_babble.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 19.412666666666667,
      "pre_headroom_noise_metrics": {
        "samples": 907808,
        "sample_rate": 48000,
        "seconds": 18.912666666666667,
        "rms_dbfs": -19.04065176291697,
        "peak_dbfs": -2.357990522691102,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0
      }
    },
    {
      "id": "s3_4_ending_noise",
      "stage": 3,
      "scenario": 4,
      "variant": "ending_noise",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s3_4_ending_noise_headroom.wav",
      "sha256": "a8b6222b612899b56ca1b44553d5c2c19a3251d14d3c1593511cdccf052f21fc",
      "seconds": 20.212666666666667,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "snr_db": 15,
        "ending_attenuation_db": -18,
        "headroom_preparation": {
          "gain_db": -6.709074590333811,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s3_4_ending_noise.wav",
            "sha256": "9f8269329d8d1cc55accbf24cfc81cbaa99005a5f560d589baa7d3929d0ca17a",
            "metrics": {
              "samples": 970208,
              "sample_rate": 48000,
              "seconds": 20.212666666666667,
              "rms_dbfs": -16.845645555299093,
              "peak_dbfs": 3.7090745903338114,
              "near_clip_fraction_0_98": 0.007233500445265345,
              "full_scale_fraction": 0.007109815627164485,
              "non_speech_rms_dbfs": -28.18673329989643
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 970208,
        "sample_rate": 48000,
        "seconds": 20.212666666666667,
        "rms_dbfs": -23.554720017119415,
        "peak_dbfs": -2.9999995180030155,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -34.895807758909164
      },
      "mask": "fixtures/s3_4_ending_noise.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 19.412666666666667,
      "pre_headroom_noise_metrics": {
        "samples": 907808,
        "sample_rate": 48000,
        "seconds": 18.912666666666667,
        "rms_dbfs": -28.54049466236824,
        "peak_dbfs": -15.131603761433885,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0
      }
    },
    {
      "id": "s3_5_reverb",
      "stage": 3,
      "scenario": 5,
      "variant": "reverb",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s3_5_reverb_headroom.wav",
      "sha256": "ad4e983a90ffc06ef9a92770142c0b55b244895a456c4537b5424b92352fb057",
      "seconds": 20.912645833333332,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "synthetic_ir": [
          [
            0,
            1
          ],
          [
            50,
            0.45
          ],
          [
            110,
            0.3
          ],
          [
            220,
            0.2
          ],
          [
            400,
            0.1
          ],
          [
            650,
            0.05
          ]
        ],
        "headroom_preparation": {
          "gain_db": -10.893363910749398,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s3_5_reverb.wav",
            "sha256": "b9239eeda87c985fdbd928494a5e1d2a8084951dfa74208580eb3bff336c4b4c",
            "metrics": {
              "samples": 1003807,
              "sample_rate": 48000,
              "seconds": 20.912645833333332,
              "rms_dbfs": -12.666067026410559,
              "peak_dbfs": 7.8933639107493985,
              "near_clip_fraction_0_98": 0.015667354381868226,
              "full_scale_fraction": 0.015524896718193836,
              "non_speech_rms_dbfs": -31.076849476371166
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 1003807,
        "sample_rate": 48000,
        "seconds": 20.912645833333332,
        "rms_dbfs": -23.559431371404944,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -41.97021382291452
      },
      "mask": "fixtures/s3_5_reverb.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 20.112645833333332
    },
    {
      "id": "s3_6_silence",
      "stage": 3,
      "scenario": 6,
      "variant": "silence",
      "source": null,
      "split": "development",
      "wav": "fixtures/s3_6_silence.wav",
      "sha256": "8585ff3baf55f7c4eb4a835ec4da87e9d4cc407251ec9b293c4d9ed1ef396510",
      "seconds": 7.3,
      "reference": "",
      "params": {},
      "metrics": {
        "samples": 350400,
        "sample_rate": 48000,
        "seconds": 7.3,
        "rms_dbfs": null,
        "peak_dbfs": null,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": null
      },
      "mask": "fixtures/s3_6_silence.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 0,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 6.5
    },
    {
      "id": "s3_6_noise",
      "stage": 3,
      "scenario": 6,
      "variant": "noise",
      "source": null,
      "split": "development",
      "wav": "fixtures/s3_6_noise.wav",
      "sha256": "e963b011ab4b3929523200c5b919138f3ea62c6245917b458c5b76ac38ce60e6",
      "seconds": 7.3,
      "reference": "",
      "params": {
        "rms_target_dbfs": -33.979400086720375
      },
      "metrics": {
        "samples": 350400,
        "sample_rate": 48000,
        "seconds": 7.3,
        "rms_dbfs": -34.831116184020765,
        "peak_dbfs": -20.99777736055589,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -34.831116184020765
      },
      "mask": "fixtures/s3_6_noise.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 0,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 6.5
    },
    {
      "id": "s4_1_transition",
      "stage": 4,
      "scenario": 1,
      "variant": "transition",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s4_1_transition.wav",
      "sha256": "92f5d8280fdf8e5e1654039c4124ae0c88f524e93d32c5cd55b1c43e27ccf8f2",
      "seconds": 20.212666666666667,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "first_db": -18,
        "last_db": 0,
        "at_sample": 453904
      },
      "metrics": {
        "samples": 970208,
        "sample_rate": 48000,
        "seconds": 20.212666666666667,
        "rms_dbfs": -29.249717651440417,
        "peak_dbfs": -12.203287991312845,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -53.535182337334355
      },
      "mask": "fixtures/s4_1_transition.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 19.412666666666667
    },
    {
      "id": "s4_2_transition",
      "stage": 4,
      "scenario": 2,
      "variant": "transition",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s4_2_transition_headroom.wav",
      "sha256": "3e796b0c45e55125192d230105536ec7339eebae373fa1291499ae362409a1ee",
      "seconds": 20.212666666666667,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "first_db": 0,
        "last_db": -18,
        "at_sample": 453904,
        "headroom_preparation": {
          "gain_db": -6.140051108885939,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s4_2_transition.wav",
            "sha256": "c0fa15375ad9403f2a473bbfadd73d0ab2c3a40220c06fa7c04ccfb053bd2ad8",
            "metrics": {
              "samples": 970208,
              "sample_rate": 48000,
              "seconds": 20.212666666666667,
              "rms_dbfs": -17.285082126585802,
              "peak_dbfs": 3.1400511088859377,
              "near_clip_fraction_0_98": 0.0072242240839077805,
              "full_scale_fraction": 0.007115999868069527,
              "non_speech_rms_dbfs": -39.15313268636683
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 970208,
        "sample_rate": 48000,
        "seconds": 20.212666666666667,
        "rms_dbfs": -23.425133542037262,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -45.293184056889366
      },
      "mask": "fixtures/s4_2_transition.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 19.412666666666667
    },
    {
      "id": "s4_3_noise_change",
      "stage": 4,
      "scenario": 3,
      "variant": "noise_change",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s4_3_noise_change_headroom.wav",
      "sha256": "2e3c0aeb96f0a3c62642cbe2a78076b55ba6710993a94dd49fc099993cbada3c",
      "seconds": 20.212666666666667,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "first_snr_db": 20,
        "last_snr_db": 5,
        "headroom_preparation": {
          "gain_db": -6.525028237892042,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s4_3_noise_change.wav",
            "sha256": "f760b127b031a546d89b2b04b570d1f4108b69ddc48a97abb2d6b21aee8a2295",
            "metrics": {
              "samples": 970208,
              "sample_rate": 48000,
              "seconds": 20.212666666666667,
              "rms_dbfs": -16.945937767759965,
              "peak_dbfs": 3.525028237892042,
              "near_clip_fraction_0_98": 0.007245868927075431,
              "full_scale_fraction": 0.00712218410897457,
              "non_speech_rms_dbfs": -30.538255504133
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 970208,
        "sample_rate": 48000,
        "seconds": 20.212666666666667,
        "rms_dbfs": -23.470966143154847,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -37.06328387882006
      },
      "mask": "fixtures/s4_3_noise_change.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 19.412666666666667,
      "pre_headroom_noise_metrics": {
        "samples": 907808,
        "sample_rate": 48000,
        "seconds": 18.912666666666667,
        "rms_dbfs": -31.80901284926362,
        "peak_dbfs": -17.69980069065284,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0
      }
    },
    {
      "id": "s4_4_quiet_ending",
      "stage": 4,
      "scenario": 4,
      "variant": "quiet_ending",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s4_4_quiet_ending_headroom.wav",
      "sha256": "44fe36b9c7fd6708b2d96df8615f8e268750c7a7f70ef5cad24fd773a7501810",
      "seconds": 20.212666666666667,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "ending_attenuation_db": -18,
        "headroom_preparation": {
          "gain_db": -6.140051108885939,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s4_4_quiet_ending.wav",
            "sha256": "7310021a637ca8608464bfd559f999382b53a2995278dbcc088db9d3795c7b02",
            "metrics": {
              "samples": 970208,
              "sample_rate": 48000,
              "seconds": 20.212666666666667,
              "rms_dbfs": -17.128440234074624,
              "peak_dbfs": 3.1400511088859377,
              "near_clip_fraction_0_98": 0.0072242240839077805,
              "full_scale_fraction": 0.007115999868069527,
              "non_speech_rms_dbfs": -35.611754167698344
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 970208,
        "sample_rate": 48000,
        "seconds": 20.212666666666667,
        "rms_dbfs": -23.26849164790079,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -41.75180553875518
      },
      "mask": "fixtures/s4_4_quiet_ending.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 19.412666666666667
    },
    {
      "id": "s4_5_pause",
      "stage": 4,
      "scenario": 5,
      "variant": "pause",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s4_5_pause_headroom.wav",
      "sha256": "f328584a7ce22e3a31cb3931a8fafdeb06828aa5590f16e7650812fb23317918",
      "seconds": 21.012666666666668,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "pause_ms": 800,
        "at_sample": 588480,
        "headroom_preparation": {
          "gain_db": -6.140051108885939,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s4_5_pause.wav",
            "sha256": "f649ce53612df56dda6e3249d9fcc134ce7a540373b03f787570b3c3823e0fe7",
            "metrics": {
              "samples": 1008608,
              "sample_rate": 48000,
              "seconds": 21.012666666666668,
              "rms_dbfs": -17.254118245389776,
              "peak_dbfs": 3.1400511088859377,
              "near_clip_fraction_0_98": 0.006949181446111869,
              "full_scale_fraction": 0.006845077572258003,
              "non_speech_rms_dbfs": -35.406904996994875
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 1008608,
        "sample_rate": 48000,
        "seconds": 21.012666666666668,
        "rms_dbfs": -23.394169658804532,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -41.5469563679876
      },
      "mask": "fixtures/s4_5_pause.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 20.212666666666667
    },
    {
      "id": "s4_6_regulators",
      "stage": 4,
      "scenario": 6,
      "variant": "regulators",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s4_6_regulators.wav",
      "sha256": "43f0dc0201a711db8f3672cc4d23190f45b0bb6496d2ef4cd7e02bdba794d186",
      "seconds": 20.212666666666667,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "first_half_db": -18,
        "second_half_db": -6
      },
      "metrics": {
        "samples": 970208,
        "sample_rate": 48000,
        "seconds": 20.212666666666667,
        "rms_dbfs": -32.83879735266772,
        "peak_dbfs": -14.859949339498545,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -51.92857591786477
      },
      "mask": "fixtures/s4_6_regulators.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 19.412666666666667
    },
    {
      "id": "s5_1_command",
      "stage": 5,
      "scenario": 1,
      "variant": "command",
      "source": "male_ordinary",
      "split": "development",
      "wav": "fixtures/s5_1_command_headroom.wav",
      "sha256": "8a48c1e3715df1705aea4712c19f4649bc2919463a3c175f8820b4abb2c01133",
      "seconds": 8.15,
      "reference": "Найди ближайший открытый аэропорт. Покажи маршрут на карте и расскажи, какая там сейчас погода.",
      "params": {
        "headroom_preparation": {
          "gain_db": -2.597169194297961,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s5_1_command.wav",
            "sha256": "61565e92ec21b5a9b27dddc3208902244a66d8dd214678902f4f35cb367d6313",
            "metrics": {
              "samples": 391200,
              "sample_rate": 48000,
              "seconds": 8.15,
              "rms_dbfs": -18.842081467106148,
              "peak_dbfs": -0.4028308057020394,
              "near_clip_fraction_0_98": 0.0,
              "full_scale_fraction": 0.0,
              "non_speech_rms_dbfs": -50.40064364193561
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 391200,
        "sample_rate": 48000,
        "seconds": 8.15,
        "rms_dbfs": -21.439250708718603,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -52.99781288547504
      },
      "mask": "fixtures/s5_1_command.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 7.35
    },
    {
      "id": "s5_2_codes",
      "stage": 5,
      "scenario": 2,
      "variant": "codes",
      "source": "male_codes",
      "split": "development",
      "wav": "fixtures/s5_2_codes_headroom.wav",
      "sha256": "d47197148b5f3f4646d35f71982481a1d3133ab99c4e085119093a83e8d165ae",
      "seconds": 10.25,
      "reference": "Рейс ТЕСТ сто двадцать три. Скорость тысяча километров в час. Осталось тридцать минут. Полоса три тысячи пятьсот метров.",
      "params": {
        "headroom_preparation": {
          "gain_db": -2.6704379438853927,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s5_2_codes.wav",
            "sha256": "c2ca0213f524ca77a61703bbf078bd00eb9bf1a8b5d4abcc093fcb03018763b4",
            "metrics": {
              "samples": 492000,
              "sample_rate": 48000,
              "seconds": 10.25,
              "rms_dbfs": -20.359227043026785,
              "peak_dbfs": -0.3295620561146074,
              "near_clip_fraction_0_98": 0.0,
              "full_scale_fraction": 0.0,
              "non_speech_rms_dbfs": -48.26202398693245
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 492000,
        "sample_rate": 48000,
        "seconds": 10.25,
        "rms_dbfs": -23.02966530285658,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -50.932462252248946
      },
      "mask": "fixtures/s5_2_codes.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 9.45
    },
    {
      "id": "s5_3_pause200",
      "stage": 5,
      "scenario": 3,
      "variant": "pause200",
      "source": "male_ordinary",
      "split": "development",
      "wav": "fixtures/s5_3_pause200_headroom.wav",
      "sha256": "6bdbd80192fc543e283cd26cf48be4c988da3ec42bd13430de89136bd3acc533",
      "seconds": 8.35,
      "reference": "Найди ближайший открытый аэропорт. Покажи маршрут на карте и расскажи, какая там сейчас погода.",
      "params": {
        "pause_ms": 200,
        "at_sample": 124800,
        "headroom_preparation": {
          "gain_db": -2.597169194297961,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s5_3_pause200.wav",
            "sha256": "f9ef4fc25c5b4cfa202bce5ce920a3bafdeacc963acb46437a1a3998c49b8477",
            "metrics": {
              "samples": 400800,
              "sample_rate": 48000,
              "seconds": 8.35,
              "rms_dbfs": -18.947370134542403,
              "peak_dbfs": -0.4028308057020394,
              "near_clip_fraction_0_98": 0.0,
              "full_scale_fraction": 0.0,
              "non_speech_rms_dbfs": -50.790406817808424
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 400800,
        "sample_rate": 48000,
        "seconds": 8.35,
        "rms_dbfs": -21.54453937615486,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -53.38757606134786
      },
      "mask": "fixtures/s5_3_pause200.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 7.55
    },
    {
      "id": "s5_3_pause350",
      "stage": 5,
      "scenario": 3,
      "variant": "pause350",
      "source": "male_ordinary",
      "split": "development",
      "wav": "fixtures/s5_3_pause350_headroom.wav",
      "sha256": "af2e8b272b181e96ba02ce06f0eab762b7543a041c102e898e00180035e1f7b5",
      "seconds": 8.5,
      "reference": "Найди ближайший открытый аэропорт. Покажи маршрут на карте и расскажи, какая там сейчас погода.",
      "params": {
        "pause_ms": 350,
        "at_sample": 124800,
        "headroom_preparation": {
          "gain_db": -2.597169194297961,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s5_3_pause350.wav",
            "sha256": "8651df58d16bf76fb030574b3738bd082fc1baf697340921855a4f3059890f76",
            "metrics": {
              "samples": 408000,
              "sample_rate": 48000,
              "seconds": 8.5,
              "rms_dbfs": -19.024694636849308,
              "peak_dbfs": -0.4028308057020394,
              "near_clip_fraction_0_98": 0.0,
              "full_scale_fraction": 0.0,
              "non_speech_rms_dbfs": -52.95771168605483
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 408000,
        "sample_rate": 48000,
        "seconds": 8.5,
        "rms_dbfs": -21.621863878461763,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -55.55488092903789
      },
      "mask": "fixtures/s5_3_pause350.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 7.7
    },
    {
      "id": "s5_3_pause650",
      "stage": 5,
      "scenario": 3,
      "variant": "pause650",
      "source": "male_ordinary",
      "split": "development",
      "wav": "fixtures/s5_3_pause650_headroom.wav",
      "sha256": "5ff9f4b9febbdeffc2cca8f7dd893ba613d003d7e6c88ca544bc4e47614ee047",
      "seconds": 8.8,
      "reference": "Найди ближайший открытый аэропорт. Покажи маршрут на карте и расскажи, какая там сейчас погода.",
      "params": {
        "pause_ms": 650,
        "at_sample": 124800,
        "headroom_preparation": {
          "gain_db": -2.597169194297961,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s5_3_pause650.wav",
            "sha256": "88016b25a079ea482c8bf2ccb4549f07c13a1864be296882d5ec2f40ca798d67",
            "metrics": {
              "samples": 422400,
              "sample_rate": 48000,
              "seconds": 8.8,
              "rms_dbfs": -19.175332101208067,
              "peak_dbfs": -0.4028308057020394,
              "near_clip_fraction_0_98": 0.0,
              "full_scale_fraction": 0.0,
              "non_speech_rms_dbfs": -53.481592380651705
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 422400,
        "sample_rate": 48000,
        "seconds": 8.8,
        "rms_dbfs": -21.77250134282052,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -56.078761623634776
      },
      "mask": "fixtures/s5_3_pause650.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 8.0
    },
    {
      "id": "s5_4_ending",
      "stage": 5,
      "scenario": 4,
      "variant": "ending",
      "source": "male_ordinary",
      "split": "development",
      "wav": "fixtures/s5_4_ending_headroom.wav",
      "sha256": "212dce498be8a475ec199b959bcb1142afe355193dbd3f3051a51d0f4ebac58d",
      "seconds": 8.15,
      "reference": "Найди ближайший открытый аэропорт. Покажи маршрут на карте и расскажи, какая там сейчас погода.",
      "params": {
        "ending_attenuation_db": -18,
        "headroom_preparation": {
          "gain_db": -2.597169194297961,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s5_4_ending.wav",
            "sha256": "4c0f5a907381181f98c01908ad8115e905d39de22843b56bc47c5779acf08c32",
            "metrics": {
              "samples": 391200,
              "sample_rate": 48000,
              "seconds": 8.15,
              "rms_dbfs": -19.097640815064004,
              "peak_dbfs": -0.4028308057020394,
              "near_clip_fraction_0_98": 0.0,
              "full_scale_fraction": 0.0,
              "non_speech_rms_dbfs": -49.485039337477104
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 391200,
        "sample_rate": 48000,
        "seconds": 8.15,
        "rms_dbfs": -21.69481005659682,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -52.082208580246146
      },
      "mask": "fixtures/s5_4_ending.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 7.35
    },
    {
      "id": "s5_5_long",
      "stage": 5,
      "scenario": 5,
      "variant": "long",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s5_5_long_headroom.wav",
      "sha256": "9f796bc79ba5b973041c16fdc979faeeebe9538fd7f12a1c34ce4b971ccf9995",
      "seconds": 20.212666666666667,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "headroom_preparation": {
          "gain_db": -6.140051108885939,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s5_5_long.wav",
            "sha256": "03b92da1ea30d853889552854c386cdff4a68de8ace90a36e361575985de0a8a",
            "metrics": {
              "samples": 970208,
              "sample_rate": 48000,
              "seconds": 20.212666666666667,
              "rms_dbfs": -17.085542673454334,
              "peak_dbfs": 3.1400511088859377,
              "near_clip_fraction_0_98": 0.0072242240839077805,
              "full_scale_fraction": 0.007115999868069527,
              "non_speech_rms_dbfs": -35.086621466310746
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 970208,
        "sample_rate": 48000,
        "seconds": 20.212666666666667,
        "rms_dbfs": -23.225594086869084,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -41.22667283730347
      },
      "mask": "fixtures/s5_5_long.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 19.412666666666667
    },
    {
      "id": "s5_6_sequence",
      "stage": 5,
      "scenario": 6,
      "variant": "sequence",
      "source": "male_ordinary",
      "split": "development",
      "wav": "fixtures/s5_6_sequence_headroom.wav",
      "sha256": "982ab22cf8344762d3fe3c0adc6feaa70501f0a9b8028924cfcdb8f83749cf89",
      "seconds": 18.0,
      "reference": "Найди ближайший открытый аэропорт. Покажи маршрут на карте и расскажи, какая там сейчас погода. Рейс ТЕСТ сто двадцать три. Скорость тысяча километров в час. Осталось тридцать минут. Полоса три тысячи пятьсот метров.",
      "params": {
        "between_phrases_ms": 900,
        "headroom_preparation": {
          "gain_db": -2.6704379438853927,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s5_6_sequence.wav",
            "sha256": "9ba6fdd2f4236c539a8d2fdc18e5a7c63e29999829dd8ab9dbf3dd20645af3b0",
            "metrics": {
              "samples": 864000,
              "sample_rate": 48000,
              "seconds": 18.0,
              "rms_dbfs": -19.525849483809203,
              "peak_dbfs": -0.3295620561146074,
              "near_clip_fraction_0_98": 0.0,
              "full_scale_fraction": 0.0,
              "non_speech_rms_dbfs": -48.571079211521315
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 864000,
        "sample_rate": 48000,
        "seconds": 18.0,
        "rms_dbfs": -22.196287743734242,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -51.24151747704822
      },
      "mask": "fixtures/s5_6_sequence.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 2,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 17.2
    },
    {
      "id": "s6_1_quiet",
      "stage": 6,
      "scenario": 1,
      "variant": "quiet",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s6_1_quiet.wav",
      "sha256": "f6b30539820dd29b05e04c79f9e7cb7fb8d217191881589cfd34850a72e638e2",
      "seconds": 20.212666666666667,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "attenuation_db": -18
      },
      "metrics": {
        "samples": 970208,
        "sample_rate": 48000,
        "seconds": 20.212666666666667,
        "rms_dbfs": -35.08554315913364,
        "peak_dbfs": -14.859949339498545,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -53.08662190302996
      },
      "mask": "fixtures/s6_1_quiet.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 19.412666666666667
    },
    {
      "id": "s6_2_repetition",
      "stage": 6,
      "scenario": 2,
      "variant": "repetition",
      "source": "real1",
      "split": "development",
      "wav": "fixtures/s6_2_repetition_headroom.wav",
      "sha256": "64ce9d0b6b8bf6395fea0c55a3df0fb160aa39c7c23113d002ee9c7ae75fd994",
      "seconds": 39.12533333333333,
      "reference": "Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper Длинная нестабильная фраза может упереться в восьмисекундное окно.\nОкно сокращается после совпадения слов двух decode. Если устойчивый префикс не появляется, дальнейший рост приводит к overflow. Тест длинной фразы существует, но использует символический decoder, а не реальный Whisper",
      "params": {
        "repetitions": 2,
        "headroom_preparation": {
          "gain_db": -6.140051108885939,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s6_2_repetition.wav",
            "sha256": "679145bff01db2e20543719fc1025d5fac8725127d54f3e69ae4485066464c36",
            "metrics": {
              "samples": 1878016,
              "sample_rate": 48000,
              "seconds": 39.12533333333333,
              "rms_dbfs": -16.943587083081916,
              "peak_dbfs": 3.1400511088859377,
              "near_clip_fraction_0_98": 0.007464260155398037,
              "full_scale_fraction": 0.007352440021810251,
              "non_speech_rms_dbfs": -34.81086218180408
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 1878016,
        "sample_rate": 48000,
        "seconds": 39.12533333333333,
        "rms_dbfs": -23.083638496496658,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -40.95091355234806
      },
      "mask": "fixtures/s6_2_repetition.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 38.32533333333333
    },
    {
      "id": "s6_3_lifecycle",
      "stage": 6,
      "scenario": 3,
      "variant": "lifecycle",
      "source": "male_ordinary",
      "split": "development",
      "wav": "fixtures/s6_3_lifecycle_headroom.wav",
      "sha256": "8a48c1e3715df1705aea4712c19f4649bc2919463a3c175f8820b4abb2c01133",
      "seconds": 8.15,
      "reference": "Найди ближайший открытый аэропорт. Покажи маршрут на карте и расскажи, какая там сейчас погода.",
      "params": {
        "headroom_preparation": {
          "gain_db": -2.597169194297961,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s6_3_lifecycle.wav",
            "sha256": "61565e92ec21b5a9b27dddc3208902244a66d8dd214678902f4f35cb367d6313",
            "metrics": {
              "samples": 391200,
              "sample_rate": 48000,
              "seconds": 8.15,
              "rms_dbfs": -18.842081467106148,
              "peak_dbfs": -0.4028308057020394,
              "near_clip_fraction_0_98": 0.0,
              "full_scale_fraction": 0.0,
              "non_speech_rms_dbfs": -50.40064364193561
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 391200,
        "sample_rate": 48000,
        "seconds": 8.15,
        "rms_dbfs": -21.439250708718603,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -52.99781288547504
      },
      "mask": "fixtures/s6_3_lifecycle.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 7.35
    },
    {
      "id": "s6_4_lifecycle",
      "stage": 6,
      "scenario": 4,
      "variant": "lifecycle",
      "source": "male_ordinary",
      "split": "development",
      "wav": "fixtures/s6_4_lifecycle_headroom.wav",
      "sha256": "8a48c1e3715df1705aea4712c19f4649bc2919463a3c175f8820b4abb2c01133",
      "seconds": 8.15,
      "reference": "Найди ближайший открытый аэропорт. Покажи маршрут на карте и расскажи, какая там сейчас погода.",
      "params": {
        "headroom_preparation": {
          "gain_db": -2.597169194297961,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s6_4_lifecycle.wav",
            "sha256": "61565e92ec21b5a9b27dddc3208902244a66d8dd214678902f4f35cb367d6313",
            "metrics": {
              "samples": 391200,
              "sample_rate": 48000,
              "seconds": 8.15,
              "rms_dbfs": -18.842081467106148,
              "peak_dbfs": -0.4028308057020394,
              "near_clip_fraction_0_98": 0.0,
              "full_scale_fraction": 0.0,
              "non_speech_rms_dbfs": -50.40064364193561
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 391200,
        "sample_rate": 48000,
        "seconds": 8.15,
        "rms_dbfs": -21.439250708718603,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -52.99781288547504
      },
      "mask": "fixtures/s6_4_lifecycle.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 7.35
    },
    {
      "id": "s6_5_lifecycle",
      "stage": 6,
      "scenario": 5,
      "variant": "lifecycle",
      "source": "male_ordinary",
      "split": "development",
      "wav": "fixtures/s6_5_lifecycle_headroom.wav",
      "sha256": "8a48c1e3715df1705aea4712c19f4649bc2919463a3c175f8820b4abb2c01133",
      "seconds": 8.15,
      "reference": "Найди ближайший открытый аэропорт. Покажи маршрут на карте и расскажи, какая там сейчас погода.",
      "params": {
        "headroom_preparation": {
          "gain_db": -2.597169194297961,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s6_5_lifecycle.wav",
            "sha256": "61565e92ec21b5a9b27dddc3208902244a66d8dd214678902f4f35cb367d6313",
            "metrics": {
              "samples": 391200,
              "sample_rate": 48000,
              "seconds": 8.15,
              "rms_dbfs": -18.842081467106148,
              "peak_dbfs": -0.4028308057020394,
              "near_clip_fraction_0_98": 0.0,
              "full_scale_fraction": 0.0,
              "non_speech_rms_dbfs": -50.40064364193561
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 391200,
        "sample_rate": 48000,
        "seconds": 8.15,
        "rms_dbfs": -21.439250708718603,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -52.99781288547504
      },
      "mask": "fixtures/s6_5_lifecycle.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 7.35
    },
    {
      "id": "s6_6_silence",
      "stage": 6,
      "scenario": 6,
      "variant": "silence",
      "source": null,
      "split": "development",
      "wav": "fixtures/s6_6_silence.wav",
      "sha256": "02d3d34a823c39ce615cf7b476907b6f5d3741bce22cc959c54122cc4504dcba",
      "seconds": 7.3,
      "reference": "",
      "params": {},
      "metrics": {
        "samples": 350400,
        "sample_rate": 48000,
        "seconds": 7.3,
        "rms_dbfs": null,
        "peak_dbfs": null,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": null
      },
      "mask": "fixtures/s6_6_silence.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 0,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 6.5
    },
    {
      "id": "s6_6_noise",
      "stage": 6,
      "scenario": 6,
      "variant": "noise",
      "source": null,
      "split": "development",
      "wav": "fixtures/s6_6_noise.wav",
      "sha256": "5dbaf342d5b8fd1ab10d197acbae43464dc1bd3d803714da5cdb3fdc1d8f82aa",
      "seconds": 7.3,
      "reference": "",
      "params": {},
      "metrics": {
        "samples": 350400,
        "sample_rate": 48000,
        "seconds": 7.3,
        "rms_dbfs": -34.8311161835385,
        "peak_dbfs": -21.42929587889112,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -34.8311161835385
      },
      "mask": "fixtures/s6_6_noise.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 0,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 6.5
    },
    {
      "id": "s6_6_cost",
      "stage": 6,
      "scenario": 6,
      "variant": "cost",
      "source": "male_codes",
      "split": "development",
      "wav": "fixtures/s6_6_cost_headroom.wav",
      "sha256": "d47197148b5f3f4646d35f71982481a1d3133ab99c4e085119093a83e8d165ae",
      "seconds": 10.25,
      "reference": "Рейс ТЕСТ сто двадцать три. Скорость тысяча километров в час. Осталось тридцать минут. Полоса три тысячи пятьсот метров.",
      "params": {
        "headroom_preparation": {
          "gain_db": -2.6704379438853927,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s6_6_cost.wav",
            "sha256": "c2ca0213f524ca77a61703bbf078bd00eb9bf1a8b5d4abcc093fcb03018763b4",
            "metrics": {
              "samples": 492000,
              "sample_rate": 48000,
              "seconds": 10.25,
              "rms_dbfs": -20.359227043026785,
              "peak_dbfs": -0.3295620561146074,
              "near_clip_fraction_0_98": 0.0,
              "full_scale_fraction": 0.0,
              "non_speech_rms_dbfs": -48.26202398693245
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 492000,
        "sample_rate": 48000,
        "seconds": 10.25,
        "rms_dbfs": -23.02966530285658,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -50.932462252248946
      },
      "mask": "fixtures/s6_6_cost.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 9.45
    },
    {
      "id": "s7_1_clean",
      "stage": 7,
      "scenario": 1,
      "variant": "clean",
      "source": "real2",
      "split": "held_out",
      "wav": "fixtures/s7_1_clean_headroom.wav",
      "sha256": "dad7e10f63e2c17d1eeb7327a1db7e7e05b6ad5cfdd77c60ccdd8e0c912be4f7",
      "seconds": 14.570208333333333,
      "reference": "еполный PCM-чанк дополняется тишиной вместо накопления остатка.\nКаждый resampled frame разбивается отдельно; короткий остаток дополняется нулями. При иной пакетизации это способно добавлять лишнюю тишину и менять длительность.",
      "params": {
        "headroom_preparation": {
          "gain_db": -6.140051108885939,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s7_1_clean.wav",
            "sha256": "e70f6f1af6d9afa70181af86ab8b61411c13ded0c7834a0dab659adce68f1a5b",
            "metrics": {
              "samples": 699370,
              "sample_rate": 48000,
              "seconds": 14.570208333333333,
              "rms_dbfs": -15.609423300326169,
              "peak_dbfs": 3.1400511088859377,
              "near_clip_fraction_0_98": 0.011162903756237757,
              "full_scale_fraction": 0.010985601326908503,
              "non_speech_rms_dbfs": -34.029023092780314
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 699370,
        "sample_rate": 48000,
        "seconds": 14.570208333333333,
        "rms_dbfs": -21.74947471595692,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -40.16907446356713
      },
      "mask": "fixtures/s7_1_clean.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 13.770208333333333
    },
    {
      "id": "s7_2_quiet",
      "stage": 7,
      "scenario": 2,
      "variant": "quiet",
      "source": "real2",
      "split": "held_out",
      "wav": "fixtures/s7_2_quiet.wav",
      "sha256": "d65c9d121f150c74656c401c2993d6984662526f6ff23aed5eb34b0fcd5c07d3",
      "seconds": 14.570208333333333,
      "reference": "еполный PCM-чанк дополняется тишиной вместо накопления остатка.\nКаждый resampled frame разбивается отдельно; короткий остаток дополняется нулями. При иной пакетизации это способно добавлять лишнюю тишину и менять длительность.",
      "params": {
        "attenuation_db": -18
      },
      "metrics": {
        "samples": 699370,
        "sample_rate": 48000,
        "seconds": 14.570208333333333,
        "rms_dbfs": -33.609423788641585,
        "peak_dbfs": -14.859949339498545,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -52.029023528386716
      },
      "mask": "fixtures/s7_2_quiet.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 13.770208333333333
    },
    {
      "id": "s7_3_noise",
      "stage": 7,
      "scenario": 3,
      "variant": "noise",
      "source": "real2",
      "split": "held_out",
      "wav": "fixtures/s7_3_noise_headroom.wav",
      "sha256": "a6e83471352552118f4452fa1239a83f2778de1797b343a157d9284e3383267b",
      "seconds": 14.570208333333333,
      "reference": "еполный PCM-чанк дополняется тишиной вместо накопления остатка.\nКаждый resampled frame разбивается отдельно; короткий остаток дополняется нулями. При иной пакетизации это способно добавлять лишнюю тишину и менять длительность.",
      "params": {
        "snr_db": 5,
        "headroom_preparation": {
          "gain_db": -8.724668007619302,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s7_3_noise.wav",
            "sha256": "26469da8399009cd09f98aa7b343f7d5631475c6b0b62b5dfa1828c164cb288e",
            "metrics": {
              "samples": 699370,
              "sample_rate": 48000,
              "seconds": 14.570208333333333,
              "rms_dbfs": -13.062302306048757,
              "peak_dbfs": 5.724668007619301,
              "near_clip_fraction_0_98": 0.011290161145030527,
              "full_scale_fraction": 0.011105709424196062,
              "non_speech_rms_dbfs": -16.768045106413176
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 699370,
        "sample_rate": 48000,
        "seconds": 14.570208333333333,
        "rms_dbfs": -21.78696996112382,
        "peak_dbfs": -2.9999995180030155,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -25.492712759735774
      },
      "mask": "fixtures/s7_3_noise.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 13.770208333333333
    },
    {
      "id": "s7_4_transition",
      "stage": 7,
      "scenario": 4,
      "variant": "transition",
      "source": "real2",
      "split": "held_out",
      "wav": "fixtures/s7_4_transition.wav",
      "sha256": "eb97dc79b16a20234f34a0d687c4dc3463cfefd2fc6a66f12458a7103e327012",
      "seconds": 14.570208333333333,
      "reference": "еполный PCM-чанк дополняется тишиной вместо накопления остатка.\nКаждый resampled frame разбивается отдельно; короткий остаток дополняется нулями. При иной пакетизации это способно добавлять лишнюю тишину и менять длительность.",
      "params": {
        "first_db": -18,
        "last_db": 0
      },
      "metrics": {
        "samples": 699370,
        "sample_rate": 48000,
        "seconds": 14.570208333333333,
        "rms_dbfs": -30.40348544273783,
        "peak_dbfs": -14.491619123083236,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -37.053152821601756
      },
      "mask": "fixtures/s7_4_transition.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 13.770208333333333
    },
    {
      "id": "s7_5_codes",
      "stage": 7,
      "scenario": 5,
      "variant": "codes",
      "source": "female_codes",
      "split": "held_out",
      "wav": "fixtures/s7_5_codes_headroom.wav",
      "sha256": "a6f130582ec2ae38e84e01031737ab567f45682dfa6c8ff45a790a40ffd4611c",
      "seconds": 9.7375,
      "reference": "Рейс ТЕСТ четыреста пятьдесят шесть. Скорость восемьсот километров в час. Осталось двадцать минут. Полоса две тысячи восемьсот метров.",
      "params": {
        "headroom_preparation": {
          "gain_db": -1.9206716968769095,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s7_5_codes.wav",
            "sha256": "50cd6be305f182c64c6d50dc423ffe7fca0c80ef7049556e53e9d77ab70a5f4a",
            "metrics": {
              "samples": 467400,
              "sample_rate": 48000,
              "seconds": 9.7375,
              "rms_dbfs": -20.724786285982045,
              "peak_dbfs": -1.0793283031230911,
              "near_clip_fraction_0_98": 0.0,
              "full_scale_fraction": 0.0,
              "non_speech_rms_dbfs": -55.02690834067003
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 467400,
        "sample_rate": 48000,
        "seconds": 9.7375,
        "rms_dbfs": -22.645457960547475,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -56.94758001324139
      },
      "mask": "fixtures/s7_5_codes.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 8.9375
    },
    {
      "id": "s7_6_sentence",
      "stage": 7,
      "scenario": 6,
      "variant": "sentence",
      "source": "female_ordinary",
      "split": "held_out",
      "wav": "fixtures/s7_6_sentence_headroom.wav",
      "sha256": "11d8f3465f96c99646cb0d902dd0ad2513d8d99c6557f9dfca502d5165f91ba0",
      "seconds": 8.4,
      "reference": "Найди аэропорт с самым слабым ветром. Проверь открытость аэропорта и наличие свободной полосы. Покажи его на карте.",
      "params": {
        "headroom_preparation": {
          "gain_db": -1.4183893950614288,
          "peak_ceiling_dbfs": -3,
          "applied_to_whole_fixture_before_all_profiles": true,
          "snr_preserved_before_browser": true,
          "previous_input": {
            "wav": "fixtures/s7_6_sentence.wav",
            "sha256": "7a13229f1e86330022a1f6af693186a44e0d5a3350f80af55f5bdedf591bcfc5",
            "metrics": {
              "samples": 403200,
              "sample_rate": 48000,
              "seconds": 8.4,
              "rms_dbfs": -20.628378837000124,
              "peak_dbfs": -1.5816106049385716,
              "near_clip_fraction_0_98": 0.0,
              "full_scale_fraction": 0.0,
              "non_speech_rms_dbfs": -55.02474325124878
            }
          },
          "reason": "Synthetic mixing/resampling produced over-range values; apply one constant gain before capture, not a DSP candidate."
        }
      },
      "metrics": {
        "samples": 403200,
        "sample_rate": 48000,
        "seconds": 8.4,
        "rms_dbfs": -22.046768396972162,
        "peak_dbfs": -3.0000002493010487,
        "near_clip_fraction_0_98": 0.0,
        "full_scale_fraction": 0.0,
        "non_speech_rms_dbfs": -56.44313281760601
      },
      "mask": "fixtures/s7_6_sentence.npz",
      "mask_kind": "clean_source_energy_estimate",
      "expected_finals": 1,
      "source_waveform_begin_seconds": 0.5,
      "source_waveform_end_seconds": 7.6
    }
  ],
  "functional_types": [
    1,
    2,
    3,
    4
  ],
  "seed": 20261013,
  "maximum_new_scenario_types_per_stage": 6
}
