def METHOD_NAME(
    mix_wav,
):  # this is dummy --> it means one epoch will be same as without dynamic mixing
    """
    This audio pipeline defines the compute graph for dynamic mixing
    """
    speakers = np.random.choice(
        spk_list, hparams["num_spks"], replace=False, p=spk_weights
    )
    if "wham" in Path(hparams["data_folder"]).stem:
        noise_file = np.random.choice(noise_files, 1, replace=False)
        noise, fs_read = torchaudio.load(noise_file[0])
        noise = noise.squeeze()
        # gain = np.clip(random.normalvariate(1, 10), -4, 15)
        # noise = rescale(noise, torch.tensor(len(noise)), gain, scale="dB").squeeze()
    # select two speakers randomly
    sources = []
    first_lvl = None
    spk_files = [
        np.random.choice(spk_hashtable[spk], 1, False)[0]
        for spk in speakers
    ]
    minlen = min(
        *[torchaudio.info(x).num_frames for x in spk_files],
        hparams["training_signal_len"],
    )
    for i, spk_file in enumerate(spk_files):
        # select random offset
        length = torchaudio.info(spk_file).num_frames
        start = 0
        stop = length
        if length > minlen:  # take a random window
            start = np.random.randint(0, length - minlen)
            stop = start + minlen
        tmp, fs_read = torchaudio.load(
            spk_file, frame_offset=start, num_frames=stop - start,
        )
        # peak = float(Path(spk_file).stem.split("_peak_")[-1])
        tmp = tmp[0]  # * peak  # remove channel dim and normalize
        if i == 0:
            gain = np.clip(random.normalvariate(-27.43, 2.57), -45, 0)
            tmp = rescale(tmp, torch.tensor(len(tmp)), gain, scale="dB")
            # assert not torch.all(torch.isnan(tmp))
            first_lvl = gain
        else:
            gain = np.clip(
                first_lvl + random.normalvariate(-2.51, 2.66), -45, 0
            )
            tmp = rescale(tmp, torch.tensor(len(tmp)), gain, scale="dB")
            # assert not torch.all(torch.isnan(tmp))
        sources.append(tmp)
    # we mix the sources together
    # here we can also use augmentations ! -> runs on cpu and for each
    # mixture parameters will be different rather than for whole batch.
    # no difference however for bsz=1 :)
    # padding left
    # sources, _ = batch_pad_right(sources)
    sources = torch.stack(sources)
    mixture = torch.sum(sources, 0)
    if "wham" in Path(hparams["data_folder"]).stem:
        len_noise = len(noise)
        len_mix = len(mixture)
        min_len = min(len_noise, len_mix)
        mixture = mixture[:min_len] + noise[:min_len]
    max_amp = max(
        torch.abs(mixture).max().item(),
        *[x.item() for x in torch.abs(sources).max(dim=-1)[0]],
    )
    mix_scaling = 1 / max_amp * 0.9
    sources = mix_scaling * sources
    mixture = mix_scaling * mixture
    yield mixture
    for i in range(hparams["num_spks"]):
        yield sources[i]
    # If the number of speakers is 2, yield None for the 3rd speaker
    if hparams["num_spks"] == 2:
        yield None
    if "wham" in Path(hparams["data_folder"]).stem:
        mean_source_lvl = sources.abs().mean()
        mean_noise_lvl = noise.abs().mean()
        noise = (mean_source_lvl / mean_noise_lvl) * noise
        yield noise
    else:
        yield None