我正在尝试在Matlab中构建一个声音注释器。
此注释器的一个要求是能够拍摄录制样本(或预先录制的文件),然后将其添加到现有文件之上。
假设我有第一个文件:
[y,Fs] = audioread(filename);
和第二个文件
[x,Fs2] = audioread(filename2);
第一个文件可以是音乐片段,第二个文件只是一些录制的评论。有没有办法使用第一个文件作为基础创建一个新的声音文件,然后在某个时间在它上面添加第二个文件(让我们说在第2分钟,第二个3),这样你就可以听到音乐和录制的演讲?
答案 0 :(得分: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;