paddleaudio.compliance.librosa模块

paddleaudio.compliance.librosa.adaptive_spect_augment(spect: ndarray, tempo_axis: int = 0, level: float = 0.1) ndarray[来源]

进行自适应谱图增强。增强的级别由参数level控制,范围从0到1,其中0表示没有增强。

Args:

spect (np.ndarray): 输入声谱图。
tempo_axis (int, optional): 指示节奏轴。默认值为 0。
level (float, optional): 掩盖的级别因子。默认值为 0.1。

Returns:

np.ndarray:增强的频谱图。

paddleaudio.compliance.librosa.compute_fbank_matrix(sr: int, n_fft: int, n_mels: int = 128, fmin: float = 0.0, fmax: ~typing.Optional[float] = None, htk: bool = False, norm: str = 'slaney', dtype: type = <class 'numpy.float32'>) ndarray[来源]

计算 fbank 矩阵。

Args:

sr (int): 采样率。
n_fft (int): FFT大小。
n_mels (int, optional): Mel箱数。默认为128。
fmin (float, optional): 最小频率(Hz)。默认为0.0。
fmax (Optional[float], optional): 最大频率(Hz)。默认为None。
htk (bool, optional): 使用htk缩放。默认为False。
norm (str, optional): 归一化类型。默认为"slaney"。
dtype (type, optional): 数据类型。默认为np.float32。

Returns:

np.ndarray: 具有形状 (n_mels, n_fft//2 + 1) 的梅尔变换矩阵。

paddleaudio.compliance.librosa.depth_augment(y: ndarray, choices: List = ['int8', 'int16'], probs: List[float] = [0.5, 0.5]) ndarray[来源]

音频深度增强。进行音频深度增强,以模拟量化带来的失真。

Args:

y (np.ndarray): 输入波形数组,1维或2维。 choices (List, optional): 用于深度转换的数据类型列表。默认值为 ['int8', 'int16']。 probs (List[float], optional): 深度转换的概率。默认值为 [0.5, 0.5]。

Returns:

np.ndarray: 增强的波形。

paddleaudio.compliance.librosa.hz_to_mel(frequencies: Union[float, List[float], ndarray], htk: bool = False) ndarray[来源]

将赫兹转换为梅尔。

Args:

frequencies (Union[float, List[float], np.ndarray]): 以赫兹为单位的频率。
htk (bool, optional): 使用htk缩放。默认为False。

Returns:

np.ndarray: 以梅尔为单位的频率。

paddleaudio.compliance.librosa.mel_frequencies(n_mels: int = 128, fmin: float = 0.0, fmax: float = 11025.0, htk: bool = False) ndarray[来源]

计算梅尔频率。

Args:

n_mels (int, optional): mel频率条目的数量。默认为128.
fmin (float, optional): 最低频率,以Hz为单位。默认为0.0.
fmax (float, optional): 最高频率,以Hz为单位。默认为11025.0.
htk (bool, optional): 使用htk缩放。默认为False.

Returns:

np.ndarray: 具有形状 (n_mels,) 的 n_mels 频率的赫兹向量。

paddleaudio.compliance.librosa.mel_to_hz(mels: Union[float, List[float], ndarray], htk: int = False) ndarray[来源]

将mel频率转换为频率。

Args:

mels (Union[float, List[float], np.ndarray]): 以梅尔为单位的频率。 htk (bool, optional): 使用htk缩放。默认为False。

Returns:

np.ndarray: 以Hz为单位的频率。

paddleaudio.compliance.librosa.melspectrogram(x: ndarray, sr: int = 16000, window_size: int = 512, hop_length: int = 320, n_mels: int = 64, fmin: float = 50.0, fmax: Optional[float] = None, window: str = 'hann', center: bool = True, pad_mode: str = 'reflect', power: float = 2.0, to_db: bool = True, ref: float = 1.0, amin: float = 1e-10, top_db: Optional[float] = None) ndarray[来源]

计算mel谱图。

Args:

x (np.ndarray): 输入的一维波形。 sr (int, optional): 采样率。默认为16000。 window_size (int, optional): FFT的大小和窗口长度。默认为512。 hop_length (int, optional): 相邻窗口之间的前进步数。默认为320。 n_mels (int, optional): mel桶的数量。默认为64。 fmin (float, optional): 最小频率(Hz)。默认为50.0。 fmax (Optional[float], optional): 最大频率(Hz)。默认为None。 window (str, optional): 窗口规范的字符串。默认为"hann"。 center (bool, optional): 是否对x进行填充,使其在t-th帧的中心位置位于\(t imes hop\_length\)。默认为True。 pad_mode (str, optional): 当centerTrue时选择填充模式。默认为"reflect"。 power (float, optional): 幅值melspectrogram的指数。默认为2.0。 to_db (bool, optional): 启用分贝刻度。默认为True。 ref (float, optional): 参考值。如果小于1.0,则信号的分贝水平将相应提升。否则,分贝水平将降低。默认为1.0。 amin (float, optional): 最小阈值。默认为1e-10。 top_db (Optional[float], optional): 在峰值下将输出阈值设置为top_db。默认为None。

Returns:

np.ndarray: 以功率尺度或分贝尺度表示的mel谱,形状为 (n_mels, num_frames)

paddleaudio.compliance.librosa.mfcc(x: ndarray, sr: int = 16000, spect: Optional[ndarray] = None, n_mfcc: int = 20, dct_type: int = 2, norm: str = 'ortho', lifter: int = 0, **kwargs) ndarray[来源]

梅尔频率倒谱系数 (MFCCs)

Args:

x (np.ndarray): 一维输入波形。
sr (int, optional): 采样率。默认为16000。
spect (Optional[np.ndarray], optional): 输入对数功率梅尔谱图。默认为None。
n_mfcc (int, optional): MFCC中的倒谱系数数量。默认为20。
dct_type (int, optional): 离散余弦变换(DCT)类型。默认为2。
norm (str, optional): 归一化类型。默认为"ortho"。
lifter (int, optional): 倒谱过滤。默认为0。

Returns:

np.ndarray: 梅尔频率倒谱系数数组,形状为 (n_mfcc, num_frames)

paddleaudio.compliance.librosa.mu_decode(y: ndarray, mu: int = 255, quantized: bool = True) ndarray[来源]

μ-law 解码。根据输入代码计算 μ-law 解码。它假设输入 y 在量化为 True 时的范围为 [0,mu-1],否则为 [-1,1]

Args:

y (np.ndarray): 编码波形。 mu (int, optional): 编码参数。默认为 255。 quantized (bool, optional): 如果 True,则输入被认为量化为 1 + mu 个不同的整数值。默认为 True。

Returns:

np.ndarray:均值法解码后的波形。

paddleaudio.compliance.librosa.mu_encode(x: ndarray, mu: int = 255, quantized: bool = True) ndarray[来源]

Mu-law 编码。基于 mu-law 压缩对波形进行编码。当 quantized 为 True 时,结果将被转换为范围 [0,mu-1] 内的整数。否则,结果波形在范围 [-1,1] 内。

Args:

x (np.ndarray): 输入的波形进行编码。
mu (int, optional): 编码参数。默认为 255。
quantized (bool, optional): 如果 True,将编码值量化为 1 + mu 个不同的整数值。默认为 True。

Returns:

np.ndarray: mu-law 编码的波形。

paddleaudio.compliance.librosa.power_to_db(spect: ndarray, ref: float = 1.0, amin: float = 1e-10, top_db: Optional[float] = 80.0) ndarray[来源]

将功率谱图(幅度的平方)转换为分贝(dB)单位。该函数以数值稳定的方式计算缩放 10 * log10(x / ref)

Args:

spect (np.ndarray): 输入波形的STFT功率谱图。
ref (float, optional): 参考值。如果小于1.0,信号的分贝等级将相应提高。否则,分贝等级将下降。默认为1.0。
amin (float, optional): 最小阈值。默认为1e-10。
top_db (Optional[float], optional): 在峰值以下以top_db为阈值限制输出。默认为80.0。

Returns:

np.ndarray: 分贝尺度的功率谱图。

paddleaudio.compliance.librosa.random_crop1d(y: ndarray, crop_len: int) ndarray[来源]

对输入波形进行随机裁剪。

Args:

y (np.ndarray): 输入波形数组,维度为1D。
crop_len (int): 要裁剪的波形长度。

Returns:

np.ndarray: 裁剪后的波形。

paddleaudio.compliance.librosa.random_crop2d(s: ndarray, crop_len: int, tempo_axis: int = 0) ndarray[来源]

在声谱图上随机裁剪。

Args:

s (np.ndarray): 输入的二维声谱图。
crop_len (int): 要裁剪的声谱图长度。
tempo_axis (int, optional): 指示节奏轴。默认为 0。

Returns:

np.ndarray: 裁剪后的声谱图。

paddleaudio.compliance.librosa.spect_augment(spect: ndarray, tempo_axis: int = 0, max_time_mask: int = 3, max_freq_mask: int = 3, max_time_mask_width: int = 30, max_freq_mask_width: int = 20) ndarray[来源]

在时间和频率轴上进行频谱图增强。

Args:

spect (np.ndarray): 输入声谱图。
tempo_axis (int, optional): 指定节奏轴。默认为 0。
max_time_mask (int, optional): 最大时间遮罩数量。默认为 3。
max_freq_mask (int, optional): 最大频率遮罩数量。默认为 3。
max_time_mask_width (int, optional): 最大时间遮罩宽度。默认为 30。
max_freq_mask_width (int, optional): 最大频率遮罩宽度。默认为 20。

Returns:

np.ndarray:增强的频谱图。

paddleaudio.compliance.librosa.spectrogram(x: ndarray, sr: int = 16000, window_size: int = 512, hop_length: int = 320, window: str = 'hann', center: bool = True, pad_mode: str = 'reflect', power: float = 2.0) ndarray[来源]

计算谱图。

Args:

x (np.ndarray): 输入的一维波形。 sr (int, optional): 采样率。默认为16000。 window_size (int, optional): FFT和窗口长度的大小。默认为512。 hop_length (int, optional): 相邻窗口之间的步数。默认为320。 window (str, optional): 窗口规格的字符串。默认为"hann"。 center (bool, optional): 是否填充 x 以使得 \(t imes hop\_length\) 位于 t-th 帧的中心。默认为True。 pad_mode (str, optional): 当 centerTrue 时选择填充模式。默认为"reflect"。 power (float, optional): 幅度 mel 频谱图的指数。默认为2.0。

Returns:

np.ndarray:功率尺度下的STFT谱图 (n_fft//2 + 1, num_frames)

paddleaudio.compliance.librosa.stft(x: ~numpy.ndarray, n_fft: int = 2048, hop_length: ~typing.Optional[int] = None, win_length: ~typing.Optional[int] = None, window: str = 'hann', center: bool = True, dtype: type = <class 'numpy.complex64'>, pad_mode: str = 'reflect') ndarray[来源]

短时傅里叶变换 (STFT)。

Args:

x (np.ndarray): 一维输入波形。 n_fft (int, optional): FFT大小。默认为2048。 hop_length (Optional[int], optional): 相邻窗口之间的步进数。默认为None。 win_length (Optional[int], optional): 窗口的大小。默认为None。 window (str, optional): 窗口规范的字符串。默认为"hann"。 center (bool, optional): 是否对x进行填充,以使\(t imes hop\_length\)t-th帧的中心。默认为True。 dtype (type, optional): STFT结果的数据类型。默认为np.complex64。 pad_mode (str, optional): 当centerTrue时选择填充模式。默认为"reflect"。

Returns:

np.ndarray:具有形状 (n_fft//2 + 1, num_frames) 的复杂 STFT 输出。