我正在研究大鼠的超声波发声(它们在超声波中的发音)。我有几个老鼠演讲的音频wav文件。理想情况下,我会将整个文件导入matlab并进行处理,但即使是最小的70mb文件也会出现内存问题。这就是我需要帮助的地方。
y,Fs,nbits = audioread('T0000201.wav');
S F T=语谱图(y,100,[],256,Fs,'yaxis');..。。程序的..rest
我可以考虑将音频(在一个文件中)分成块,然后在考虑下一个块之前对块进行处理,但我不确定如果rat调用在块的末尾中途被切断的情况下该怎么办(这可能会对STFT频谱图产生负面影响)。
我遇到了另一种名为"Mapreduce“的技术,它似乎允许我在不实际读取数据的情况下使用整个数据。虽然这似乎是最理想的,但我不太明白它是如何工作的或可以实现的。"Hadoop“也被提及。有谁能提供帮助吗?
我目前正在使用这个(http://uk.mathworks.com/help/matlab/import_export/find-maximum-value-with-mapreduce.html)作为参考。我的第一步是尝试使用wav文件作为数据存储(就像示例中的csv文件一样),但这不起作用。
发布于 2015-07-02 12:13:09
由于您主要使用音频(.wav)文件存储库,因此mapreduce可能不是您的最佳选择。数据存储函数仅适用于文本文件或键值文件。
使用memory函数来探索MATLAB的内存限制,并尝试按照您所提到的在较小的块中处理音频文件。通过组合使用audio break ()、audio of ()和audio audiowrite(),您可以将音频文件集合分解为较大的较小文件集合,然后可以单独处理这些文件。
如果要处理的文件数量很少,则可以手动检查较小的块,以确保块之间没有重要的rat调用被切断。当然,如果您有数千个文件要处理,那么这种方法将不可行。
https://stackoverflow.com/questions/29051055
复制相似问题