{
  "short": {
    "requests": [
      {
        "id": "short_two_speaker_check",
        "text": "Speaker 1: Hi Frank. The first buoy is online, and the harbor link is clean.\nSpeaker 2: Great. I hear you clearly, and my voice should stay separate.",
        "voice_samples": [
          "reference/VibeVoiceCommunity/demo/voices/en-Alice_woman.wav",
          "reference/VibeVoiceCommunity/demo/voices/en-Frank_man.wav"
        ],
        "max_new_tokens": 0,
        "max_length_times": 2.0,
        "ddpm_steps": 20,
        "cfg_scale": 1.3,
        "seed": 1234
      }
    ]
  },
  "multi_batch_short": {
    "batch": true,
    "requests": [
      {
        "id": "batch_short_a",
        "text": "Speaker 1: Hi Frank. The harbor link is clean.\nSpeaker 2: Great. I hear you clearly.",
        "voice_samples": [
          "reference/VibeVoiceCommunity/demo/voices/en-Alice_woman.wav",
          "reference/VibeVoiceCommunity/demo/voices/en-Frank_man.wav"
        ],
        "max_new_tokens": 0,
        "max_length_times": 2.0,
        "ddpm_steps": 20,
        "cfg_scale": 1.3,
        "seed": 1234
      },
      {
        "id": "batch_short_b",
        "text": "Speaker 1: Hi Frank. The harbor link is clean.\nSpeaker 2: Great. I hear you clearly.",
        "voice_samples": [
          "reference/VibeVoiceCommunity/demo/voices/en-Alice_woman.wav",
          "reference/VibeVoiceCommunity/demo/voices/en-Frank_man.wav"
        ],
        "max_new_tokens": 0,
        "max_length_times": 2.0,
        "ddpm_steps": 20,
        "cfg_scale": 1.3,
        "seed": 1234
      }
    ]
  },
  "long_session_multi_request_unique_speakers": {
    "use_all_requests_by_default": true,
    "requests": [
      {
        "id": "session_watch_alice_frank",
        "text": "Speaker 1: Frank, the first station is reporting a clean uplink, but the pressure sensor keeps drifting whenever the deck crane moves.\nSpeaker 2: I see it too. Mark the crane cycles in the log, and I will compare them against the hydrophone noise floor before we call the buoy unstable.",
        "voice_samples": [
          "reference/VibeVoiceCommunity/demo/voices/en-Alice_woman.wav",
          "reference/VibeVoiceCommunity/demo/voices/en-Frank_man.wav"
        ],
        "max_new_tokens": 0,
        "max_length_times": 2.0,
        "ddpm_steps": 20,
        "cfg_scale": 1.3,
        "seed": 1234
      },
      {
        "id": "session_ops_carter_maya",
        "text": "Speaker 1: Maya, the maintenance window is shorter than planned, so I want the diagnostics ordered by risk instead of by subsystem.\nSpeaker 2: Agreed. I will start with the satellite relay, then the battery heater, and leave the cosmetic dashboard alerts for the end of the shift.",
        "voice_samples": [
          "reference/VibeVoiceCommunity/demo/voices/en-Carter_man.wav",
          "reference/VibeVoiceCommunity/demo/voices/en-Maya_woman.wav"
        ],
        "max_new_tokens": 0,
        "max_length_times": 2.0,
        "ddpm_steps": 20,
        "cfg_scale": 1.3,
        "seed": 1234
      },
      {
        "id": "session_reuse_alice_frank",
        "text": "Speaker 1: Frank, after your relay check, please confirm whether the control room can still see the northern buoy without packet loss.\nSpeaker 2: Alice, I already have the trace open. If the retry count stays flat for another minute, we can send the survey team back on schedule.",
        "voice_samples": [
          "reference/VibeVoiceCommunity/demo/voices/en-Alice_woman.wav",
          "reference/VibeVoiceCommunity/demo/voices/en-Frank_man.wav"
        ],
        "max_new_tokens": 0,
        "max_length_times": 2.0,
        "ddpm_steps": 20,
        "cfg_scale": 1.3,
        "seed": 1234
      },
      {
        "id": "session_new_samuel_bowen",
        "text": "Speaker 1: Bowen, the spare recorder is mounted, but I want a second check on the timestamp before we seal the case.\nSpeaker 2: 没问题。我会重新核对时钟、采样率和文件编号，确认每一段记录都能和甲板日志对上。",
        "voice_samples": [
          "reference/VibeVoiceCommunity/demo/voices/in-Samuel_man.wav",
          "reference/VibeVoiceCommunity/demo/voices/zh-Bowen_man.wav"
        ],
        "max_new_tokens": 0,
        "max_length_times": 2.0,
        "ddpm_steps": 20,
        "cfg_scale": 1.3,
        "seed": 1234
      },
      {
        "id": "session_reuse_alice_frank_after_eviction_pressure",
        "text": "Speaker 1: Frank, I need a plain-language summary for the shore team: what changed, what stayed stable, and what still needs attention.\nSpeaker 2: The short version is that the link recovered, the batteries are healthy, and the only open risk is the recorder timestamp until Bowen finishes his check.",
        "voice_samples": [
          "reference/VibeVoiceCommunity/demo/voices/en-Alice_woman.wav",
          "reference/VibeVoiceCommunity/demo/voices/en-Frank_man.wav"
        ],
        "max_new_tokens": 0,
        "max_length_times": 2.0,
        "ddpm_steps": 20,
        "cfg_scale": 1.3,
        "seed": 1234
      },
      {
        "id": "session_eviction_xinran_frank",
        "text": "Speaker 1: Frank, 最后一组数据已经上传，但我想确认英文报告里的风险等级不要写得太乐观。\nSpeaker 2: Good catch. I will phrase it as conditionally stable, because the instruments behaved well only after the timing issue was isolated.",
        "voice_samples": [
          "reference/VibeVoiceCommunity/demo/voices/zh-Xinran_woman.wav",
          "reference/VibeVoiceCommunity/demo/voices/en-Frank_man.wav"
        ],
        "max_new_tokens": 0,
        "max_length_times": 2.0,
        "ddpm_steps": 20,
        "cfg_scale": 1.3,
        "seed": 1234
      }
    ]
  },
  "long": {
    "requests": [
      {
        "id": "long_two_speaker_research_vessel",
        "text": "Speaker 1: When the overnight rain finally stopped, the research vessel was already easing away from the pier. I kept one hand on the rail and watched the city shrink behind us, because the whole morning felt like a test of patience: the weather station was late, the tide report had two conflicting numbers, and half the crew wanted to wait for clearer skies. But the acoustic buoys were drifting out of range, and if we missed this window we would lose the cleanest recording week of the season.\nSpeaker 2: I remember that departure differently. From the engine room it sounded less dramatic and more like a checklist finally doing its job. The generators were stable, the satellite link came up on the second attempt, and the spare hydrophone array passed its self test after I reseated one stubborn connector. What mattered to me was not whether the sky looked friendly, but whether every system could keep running once the waves started pushing against us.\nSpeaker 1: By noon the fog lifted enough to reveal a line of gulls circling over the shoals, and the first buoy came into view. We cut the engines, lowered the deck noise, and listened. There was a low mechanical hum from somewhere far north, a pattern of clicks that might have been dolphins, and beneath it all a slow pulse from the mooring chain. It was not a clean recording yet, but it was alive in the way field data always is: messy, specific, and stubbornly real.\nSpeaker 2: That is why I like this test case. It has narration, technical phrasing, turn taking, and enough duration to expose whether the model can hold two voices without collapsing into a short greeting. If the output sounds natural, we know the path is exercising actual long-form synthesis instead of merely proving that a checkpoint can make a few seconds of noise.",
        "voice_samples": [
          "reference/VibeVoiceCommunity/demo/voices/en-Alice_woman.wav",
          "reference/VibeVoiceCommunity/demo/voices/en-Frank_man.wav"
        ],
        "max_new_tokens": 0,
        "max_length_times": 2.0,
        "ddpm_steps": 20,
        "cfg_scale": 1.3,
        "seed": 1234
      }
    ]
  }
}
