遇到问题:训练合成模型的训练数据是分批次录音的,不同批次录音音量有高有抵。
解决问题:用matlab实现音量标准化。批量处理所有录音的wav文件。
1、代码如下所示:
clear; close all; clc;
file_read=dir('./all_wav/4469_wav/*.wav');%读取路径中的内容
filenames={file_read.name}'; %得到所有wav文件的名字
file_length=length(file_read);%要处理wav文件的总个数
%FS,NBITS, % 显示采样频率和量化比特
for i=1:file_length
filenames{i} %显示wav文件名字
[Y,FS,NBITS]=wavread(strcat('./all_wav/4469_wav/',filenames{i})); % 将 WAV 文件转换成变量
Ym=max(max(max(Y)),max(abs(min(Y)))), % 找出声道幅值极值
X=Y/Ym; % 归一化处理
wavwrite(X,FS,NBITS,strcat('./new/',filenames{i}))
end
%%试听可知标准化处理后音量稍大。
Just SO SO ,糊涂图。