如何将非常大的波形/音频文件(400meg/22+分钟)的左右声道导出为图像(最好的格式可能是矢量图像格式)参见下面的波形文件图像。我试图将左右通道叠加在一起以获得图形。
我知道我可以截屏,但无法放大 22 分钟以上的声音文件以适应一个屏幕。有没有办法将每个放大的频道导出为矢量图?
如何将非常大的波形/音频文件(400meg/22+分钟)的左右声道导出为图像(最好的格式可能是矢量图像格式)参见下面的波形文件图像。我试图将左右通道叠加在一起以获得图形。
我知道我可以截屏,但无法放大 22 分钟以上的声音文件以适应一个屏幕。有没有办法将每个放大的频道导出为矢量图?
在 GNU Octave 中你可以做
[Y, FS, BPS] = wavread ("out2.wav");
samples = rows (Y);
# Plot 0.2s blocks
len_seconds = 0.2;
blocksize = FS * len_seconds;
numblocks = floor (samples / blocksize);
for k=0:numblocks;
idx_start = k * blocksize+1;
idx_stop = (k+1) * blocksize;
t = linspace ((idx_start-1) / FS, idx_stop / FS, blocksize);
plot (t, Y(idx_start:idx_stop, :))
grid on
xlabel ("time [s]");
print ("-dpdf", sprintf ("waveplot%i.pdf", k));
endfor
它读取整个 wav 并绘制 0.2 秒长的块。我附上了第一个生成的输出(转换为 png):
如果您的 PC 内存不足 (<8GB),我建议分块读取 wav 并单独处理它们,请参阅“help wavread”:[...] = wavread (FILENAME, [N1 N2])。您还应该考虑生成的图形图在硬盘上需要更多空间,我猜因子 5..20 取决于您的图像格式。