2016-11-17 86 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;