2016-11-17 1143 views
1

我想在Matlab中构建一个合理的注释器。如何在matlab中重叠两个声音

之一此注释器的要求是能够采取记录样品(或预先录制的文件),并然后将其添加在现有文件的顶部。

比方说,我有第一个文件:

[y,Fs] = audioread(filename); 

第二个文件

[x,Fs2] = audioread(filename2); 

第一个文件可以是音乐片段,第二个文件只是一些记录的评论。有没有办法使用第一个文件作为基础创建一个新的声音文件,然后在特定的时间将第二个文件添加到该文件上(例如,在第2分钟,第3分钟),以便您可以听到音乐和录制的演讲?

回答

1

首先确保你的信号具有相同的采样频率

x2 = resample(x, Fs, Fs2); 

之后,你可以简单地将两个信号加在一起。

offset = (2 * 60 + 3) * Fs; 
output = y; 
output(offset:offset+length(x2);:) = output(offset:offset+length(x2);:) + x2 

也许你想申请一个增益来控制两个录音的音量和整体音量。

output = music_volume * y; 
output(offset:offset+length(x2);:) = (output(offset:offset+length(x2);:) + commentary_volume * x2); 
output = volume * output;