Skip to content

vllm_omni.diffusion.models.soulx_singer.modules.preprocess.rosvot

ROSVOT note transcription.

logger module-attribute

logger = init_logger(__name__)

MelNet

Bases: Module

device instance-attribute

device = device

fmax instance-attribute

fmax = hparams['fmax']

fmin instance-attribute

fmin = hparams['fmin']

hann_window instance-attribute

hann_window = torch.hann_window(self.win_size).to(
    self.device
)

hop_size instance-attribute

hop_size = hparams['hop_size']

mel_basis instance-attribute

mel_basis = mel.float().to(self.device)

n_fft instance-attribute

n_fft = hparams['fft_size']

num_mels instance-attribute

num_mels = hparams['audio_num_mel_bins']

sampling_rate instance-attribute

sampling_rate = hparams['audio_sample_rate']

win_size instance-attribute

win_size = hparams['win_size']

forward

forward(y, center=False, complex=False)

to

to(device, **kwagrs)

MidiExtractor

Bases: Module

cond_encoder instance-attribute

cond_encoder = ConvBlocks(
    hidden_size,
    out_dims=hidden_size,
    dilations=None,
    kernel_size=3,
    layers_in_block=1,
    c_multiple=1,
    post_net_kernel=3,
)

hidden_size instance-attribute

hidden_size = hparams['hidden_size']

hparams instance-attribute

hparams = hparams.copy()

mel_encoder instance-attribute

mel_encoder = ConvBlocks(
    hidden_size,
    out_dims=hidden_size,
    dilations=None,
    kernel_size=3,
    layers_in_block=2,
    c_multiple=1,
    post_net_kernel=3,
)

mel_proj instance-attribute

mel_proj = nn.Conv1d(
    hparams["use_mel_bins"],
    hidden_size,
    kernel_size=3,
    padding=1,
)

net instance-attribute

net = BackboneNet(hparams)

note_bd_min_gap instance-attribute

note_bd_min_gap = round(
    hparams.get("note_bd_min_gap", 100)
    * hparams["audio_sample_rate"]
    / 1000
    / hparams["hop_size"]
)

note_bd_out instance-attribute

note_bd_out = nn.Linear(hidden_size, 1)

note_bd_ref_min_gap instance-attribute

note_bd_ref_min_gap = round(
    hparams.get("note_bd_ref_min_gap", 50)
    * hparams["audio_sample_rate"]
    / 1000
    / hparams["hop_size"]
)

note_bd_temperature instance-attribute

note_bd_temperature = max(
    1e-07, hparams.get("note_bd_temperature", 1.0)
)

note_bd_threshold instance-attribute

note_bd_threshold = hparams.get('note_bd_threshold', 0.5)

pitch_decoder instance-attribute

pitch_decoder = PitchDecoder(hparams)

pitch_embed instance-attribute

pitch_embed = Embedding(300, hidden_size, 0, 'kaiming')

use_pitch instance-attribute

use_pitch = hparams.get('use_pitch_embed', True)

use_wbd instance-attribute

use_wbd = hparams.get('use_wbd', True)

uv_embed instance-attribute

uv_embed = Embedding(3, hidden_size, 0, 'kaiming')

word_bd_embed instance-attribute

word_bd_embed = Embedding(3, hidden_size, 0, 'kaiming')

forward

forward(
    mel,
    word_bd=None,
    note_bd=None,
    pitch=None,
    uv=None,
    non_padding=None,
    train=True,
)

run_encoder

run_encoder(mel, word_bd=None, pitch=None, uv=None)

PitchDecoder

Bases: Module

dropout instance-attribute

dropout = hparams.get('dropout', 0.0)

hidden_size instance-attribute

hidden_size = hparams['hidden_size']

multihead_dot_attn instance-attribute

multihead_dot_attn = nn.Linear(
    hidden_size, self.pitch_attn_num_head
)

note_bd_out instance-attribute

note_bd_out = nn.Linear(hidden_size, 1)

note_bd_temperature instance-attribute

note_bd_temperature = max(
    1e-07, hparams.get("note_bd_temperature", 1.0)
)

note_num instance-attribute

note_num = hparams.get('note_num', 100)

note_start instance-attribute

note_start = hparams.get('note_start', 30)

pitch_attn_num_head instance-attribute

pitch_attn_num_head = hparams.get('pitch_attn_num_head', 1)

pitch_out instance-attribute

pitch_out = nn.Linear(
    hidden_size, hparams.get("note_num", 100) + 4
)

pitch_temperature instance-attribute

pitch_temperature = max(
    1e-07, hparams.get("note_pitch_temperature", 1.0)
)

post instance-attribute

post = ConvBlocks(
    hidden_size,
    out_dims=hidden_size,
    dilations=None,
    kernel_size=3,
    layers_in_block=1,
    c_multiple=1,
    post_net_kernel=3,
)

forward

forward(feat, note_bd, train=True)

RosvotModel

Bases: Module, SupportAudioInput, SupportsComponentDiscovery

hparams instance-attribute

hparams = load_rosvot_config(
    resolved_config, hparams_str=f"note_bd_threshold={the}"
)

mel_net instance-attribute

mel_net = MelNet(self.hparams)

midi instance-attribute

midi = MidiExtractor(self.hparams)

pe instance-attribute

pe = (
    pe
    if pe is not None
    and self.hparams.get("use_pitch_embed", False)
    else None
)

support_audio_input class-attribute

support_audio_input: bool = True

verbose instance-attribute

verbose = verbose

forward

forward(
    wav: Tensor, word_durs: list[float]
) -> dict[str, Any]

load_checkpoint

load_checkpoint(
    checkpoint_path: str | None = None,
    *,
    verbose: bool = False,
) -> None

transcribe

transcribe(
    item: dict[str, Any],
    *,
    segment_info: dict[str, Any] | None = None,
    verbose: bool = False,
) -> dict[str, Any]

regulate_boundary

regulate_boundary(
    bd_logits,
    threshold,
    min_gap=18,
    ref_bd=None,
    ref_bd_min_gap=8,
    non_padding=None,
)

regulate_ill_slur

regulate_ill_slur(
    notes: ndarray, note_itv: ndarray, note2words: ndarray
) -> tuple[ndarray, ndarray, ndarray]

regulate_real_note_itv

regulate_real_note_itv(
    note_itv: ndarray,
    note_bd: ndarray,
    word_bd: ndarray,
    word_durs: ndarray,
    hop_size: int,
    audio_sample_rate: int,
) -> tuple[ndarray, ndarray]