用Matlab 音量标准化 处理wav文件

遇到问题:训练合成模型的训练数据是分批次录音的,不同批次录音音量有高有抵。

解决问题:用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 ,糊涂图。

你可能感兴趣的:(matlab)