↑ 音频特征
预处理¶
预处理规范示例 (假设音频文件的采样率为 16000)
preprocessing:
type: fbank
missing_value_strategy: bfill
audio_file_length_limit_in_s: 7.5
fill_value: null
norm: null
window_length_in_s: 0.04
window_shift_in_s: 0.02
window_type: hamming
in_memory: true
padding_value: 0.0
num_fft_points: null
num_filter_bands: 80
Ludwig 支持使用 PyTorch 的 Torchaudio 库读取音频文件。该库支持 WAV
, AMB
, MP3
, FLAC
, OGG/VORBIS
, OPUS
, SPHERE
和 AMR-NB
格式。
参数
type
(默认:fbank
) : 定义要使用的音频特征类型。选项:fbank
,group_delay
,raw
,stft
,stft_phase
。有关每种类型的解释,请参阅此处。missing_value_strategy
(默认:bfill
) : 当音频列中存在缺失值时应遵循的策略。选项:fill_with_const
,fill_with_mode
,bfill
,ffill
,drop_row
。详见缺失值策略。audio_file_length_limit_in_s
(默认:7.5
): 定义音频文件最大长度限制(以秒为单位)的浮点值。所有超过此限制的文件将被截断。所有短于此限制的文件将使用 padding_value 进行填充。fill_value
(默认:null
): 在 missing_value_strategy 为 fill_with_const 时用于替换缺失值的值。norm
(默认:null
): 音频文件的归一化策略。如果为 None,则不执行归一化。如果为 per_file,则按“每个文件”级别应用 z-norm。选项:per_file
,null
。window_length_in_s
(默认:0.04
): 定义短时傅里叶变换使用的窗口长度。仅当 audio_feature_type 为 'raw' 时需要此参数。window_shift_in_s
(默认:0.02
): 定义短时傅里叶变换使用的窗口移位(也称为 hop_length)。仅当 audio_feature_type 为 'raw' 时需要此参数。window_type
(默认:hamming
): 定义在进行短时傅里叶变换之前对信号进行加权处理的窗口类型。选项:bartlett
,blackman
,hamming
,hann
。in_memory
(默认:true
): 定义音频数据集在训练过程中是驻留在内存中,还是动态地从磁盘获取(对大型数据集有用)。后一种情况下,每个训练迭代都会从磁盘获取一批输入音频。选项:true
,false
。padding_value
(默认:0.0
): 用于填充的浮点值。num_fft_points
(默认:null
): 定义短时傅里叶变换使用的 FFT 点数。num_filter_bands
(默认:80
): 定义滤波器组中使用的滤波器数量。仅当 audio_feature_type 为 'fbank' 时需要此参数。
预处理参数也可以在 类型全局预处理 部分中定义一次并应用于所有音频输入特征。
输入特征¶
音频文件根据 preprocessing
配置下的 type
参数转换为以下类型之一。
raw
: 音频文件被转换为大小为N x L x W
的浮点张量(其中N
是数据集的大小,L
对应于audio_file_length_limit_in_s * sample_rate
,W = 1
)。stft
: 音频被转换为stft
幅度。音频文件被转换为大小为N x L x W
的浮点张量(其中N
是数据集的大小,L
对应于ceil(audio_file_length_limit_in_s * sample_rate - window_length_in_s * sample_rate + 1/ window_shift_in_s * sample_rate) + 1
,W
对应于num_fft_points / 2
)。fbank
: 音频文件被转换为 FBANK 特征(也称为 log Mel-滤波器组值)。FBANK 特征是根据 HTK Book 中的定义实现的:原始信号 -> 预加重 -> 去除直流均值 ->stft
幅度 -> 功率谱:stft^2
-> Mel-滤波器组值:应用在 Mel 尺度上等间距的三角形滤波器 -> 对数压缩:log()
。总体而言,音频文件被转换为大小为N x L x W
的浮点张量,其中N,L
与stft
中的相同,W
等于num_filter_bands
。stft_phase
: 每个 stft bin 的相位信息附加到stft
幅度上,因此音频文件被转换为大小为N x L x 2W
的浮点张量,其中N,L,W
与stft
中的相同。group_delay
: 音频根据这篇论文中的方程 (23) 转换为群延迟特征。群延迟特征与stft
具有相同的张量大小。
在特征级别指定的编码器参数为
tied
(默认null
): 用于与该编码器共享权重的另一个输入特征的名称。它必须是同一类型且具有相同编码器参数的特征的名称。
输入特征列表中的音频特征条目示例
name: audio_column_name
type: audio
tied: null
encoder:
type: parallel_cnn
编码器¶
音频特征编码器与 序列特征 的编码器相同。
编码器类型和编码器参数也可以在 类型全局编码器 部分中定义一次并应用于所有音频输入特征。
输出特征¶
目前没有音频解码器。
如果这为您的应用开启了有趣的用例,请提交 GitHub Issue 或在社区 Discord 上联系我们。