情节非常大的音频文件

10视图(30天)
Lemar DeSalis
Lemar DeSalis 2011年12月29日
你好!
我需要 显示很大的音频文件(WAV PCM, Mono, > 1 GB)在MATLAB数字 。问题是:这些音频文件太大一次整个文件加载到内存中(“内存溢出”错误)。
我希望能够看到振幅随着时间的推移,和 可以放大和缩小和做选择 ,就像在普通音频软件(例如音频处理):
所以当放大,它应该阅读部分的wav文件更新图。我还需要绝对的示例图中显示当前选择的数量。
最近我发现这是(在文件交换“简单的音频编辑器”):
然而,它读取整个wav文件,因此它不适合大的音频数据。
你能给我一个提示如何实现我想要的?

答案(2)

丹尼尔Shub
丹尼尔Shub 2011年12月30日
为什么不直接获得更多内存,1 GB并不大。否则你要破解FEX贡献或编写自己的。没有理由你不能这样做。你可以读一些声音wavread函数
医生wavread
问题是你需要编写自己的函数缩放和选择。这些函数将需要确定哪些部分文件需要加载,加载,存储抵消地方。如果用户把过太多你会遇到内存问题。在每小时工资率最低,你最好升级硬件。

Lemar DeSalis
Lemar DeSalis 2011年12月30日
哦,我有超过1 GB RAM: 6 GB的Win7 x64机和8 GB的另一台机器上,真的。那还不够!
加载1 GB wav文件并不意味着它只需要1 GB内存!在16位精度如果wav文件,您需要做的浮点操作,它将需要至少2 GB内存使用single-represantation时,甚至4 GB当使用双表示。真正的阴谋,你需要数量多的!绘图函数“dsplot”(downsampled情节)创建3副本的信号,它需要浮点数据,这是至少8 GB RAM的1 GB wav文件!
我需要加载两个大wav文件在同一时间!
因此,升级内存是不可能的!这必须用更少的内存消耗完成!

类别

找到更多的在音频I / O和波形的一代帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!