0

有人向我提出了一个问题,要对“悲伤”这个词进行录音;一个。删除 dc 内容并使记录标准化 b. 删除我记录的样本中的滞后和尾随零。

这是我的两个疑问?1. 是否删除滞后均值,从录音中删除零 2,是否删除此方法实现的尾随零

  new_signal_sad(52000:end)=[];

为什么我如此不确定是当我播放悲伤的录音时使用:

   sound(sad, 44100);

它玩得很好。

当我使用此删除滞后和尾随零后播放录音时:

 sound(new_signal_sad, 44100);

我听到的只是一个简短的“嘘”,然后很伤心,尽管它比第一个要快得多。

这是我程序的代码!!!

%Removing dc offset from sad signal
ip1=wavread('N:\Arutu Peter\sad.wav');
for channelNo = 1:size(ip1,2)
ip1(:, channelNo) = ip1(:, channelNo) - mean(ip1(:, channelNo));
end
%Normalizing the sad signal
sad=ip1/max(ip1);

%Now to remove trailing zeros and lagging from sad
frame_duration=0.1;
frame_len=fs*frame_duration;
N=length(sad);
num_frames=floor(N/frame_len);
new_signal_sad=zeros(N,1);
count=0;

%step1: Break the sound signal into frames
for k=1:num_frames
frame=sad( (k-1)*frame_len+1 :frame_len*k);
%step 2: Identifying the silent frames with maximum amplitude less than 0.02
max_val=max(frame);
if (max_val>0.02)
    %signal with no zeros
    count=count+1; 
    %step3: construct a new signal with no zeros
    new_signal_sad( (count-1)*frame_len+1:frame_len*count)=frame;
    %%Removing trailing zeros from the new_signal love
    new_signal_sad(52000:end)=[];
    subplot(4,2,1);
    plot(new_signal_sad);
    grid;
    title('sad');

 end

end
4

0 回答 0