我目前正在努力了解正在发生的事情。因此,我在Matlab中使用audiowrite
函数创建了一种声音(该声音是使用两种不同的声音创建的,但我认为这并不重要),首先以44100 Hz的采样频率进行采样,而另一种采样率则是相同,但采样频率为48000 Hz。现在我观察到以44100Hz产生的声音约为比另一个长30秒(48000Hz采样)。看起来有些相移,但我不确定。任何帮助/解释表示赞赏。我还绘制了一个幅度/时间图以更好地理解:
(我将x轴设置为350秒,以查看信号结束的位置)。
编辑:这是我如何创建声音文件的代码:
[y1,F1] = audioread(cave_file); %cave and forest files are mp3 files loaded earlier both have samp.freq of 48000Hz
[y2,F2] = audioread(forest_file);
samp_freq=44100;
%samp_freq=48000;
a = max(size(y1),size(y2));
z = [[y1;zeros(abs([a(1),0]-size(y1)))],[y2;zeros(abs([a(1),0]- size(y2)))]]
audiowrite('test_sound.wav', z,samp_freq);
答案 0 :(得分:0)
什么是存储格式?更具体地说,是否在文件元数据中存储有关采样率和通道数量的信息?然后在播放期间使用。
如果是,则此行为有3种可能性: 1)44.1KHz文件的采样率元数据不正确,而音频是以正确的速率(即44.1KHz)采样的。由于44.1KHz文件的播放时间比48KHz的播放时间长(我假设它会产生正确的声音,并且播放时间正确),因此可以得出结论,44.1KHz的采样率元数据远小于44.1KHz。 您能否检查元数据?或在此处附加文件,以便我可以尝试看看? 2)采样未按正确的速率进行,而元数据的采样率为44.1KHz。 3)通道数存储不正确。
如果文件是原始PCM,则在播放44.1KHz文件时可能未选择正确的采样率和/或通道数。
希望这会有所帮助