paddlespeech.vector.exps.ge2e.audio_processor 模块

class paddlespeech.vector.exps.ge2e.audio_processor.SpeakerVerificationPreprocessor(sampling_rate: int, audio_norm_target_dBFS: float, vad_window_length, vad_moving_average_width, vad_max_silence_length, mel_window_length, mel_window_step, n_mels, partial_n_frames: int, min_pad_coverage: float = 0.75, partial_overlap_ratio: float = 0.5)[来源]

基础: object

方法

提取梅尔部分

梅尔频谱图

预处理_wav

extract_mel_partials(wav)[来源]
melspectrogram(wav)[来源]
preprocess_wav(fpath_or_wav, source_sr=None)[来源]
paddlespeech.vector.exps.ge2e.audio_processor.compute_partial_slices(n_samples: int, partial_utterance_n_frames: int, hop_length: int, min_pad_coverage: float = 0.75, overlap: float = 0.5)[来源]

计算在哪里分割一段波形和对应的梅尔频谱图,以获得每个的部分发声。返回波形和梅尔频谱图切片,以便使每个部分发声的波形与其频谱图相对应。此函数假设所使用的梅尔频谱图参数是定义在params_data.py中的那些。

返回的范围可能会超出波形的长度。建议您将波形填充为零,直到 wave_slices[-1].stop。
参数
----------
n_samples : int

波形中的样本数量。

partial_utterance_n_framesint

每个部分发声中的梅尔频谱帧数。

min_pad_coverageint

当达到最后一个部分发声时,可能会没有足够的帧。如果至少存在,那么最后一个部分发声将被认为是被填充了音频。否则,它将被丢弃,就好像我们修剪了音频。如果没有足够的帧用于 1 个部分发声,则此参数将被忽略,以便函数始终返回至少 1 个切片。

overlapfloat

部分发声应该重叠多少。如果设置为0,部分发声将完全不重叠。

返回

波形切片和梅尔频谱切片作为数组切片的列表。 分别用这些切片索引波形和梅尔频谱以获得部分话语。

paddlespeech.vector.exps.ge2e.audio_processor.normalize_volume(wav, target_dBFS, increase_only=False, decrease_only=False)[来源]
paddlespeech.vector.exps.ge2e.audio_processor.trim_long_silences(wav, vad_window_length: int, vad_moving_average_width: int, vad_max_silence_length: int, sampling_rate: int)[来源]

确保波形中没有语音的段落保持不超过由params.py中的VAD参数确定的阈值。
参数
----------
wav : np.array

原始波形作为一个浮点数的numpy数组

返回

np.array

去掉静音后的相同波形(长度 <= 原始 wav 长度)