图片缩略图

音频文件IO例程

版本1.5.0 (308 KB)由 彼得Kabal
打印输出音频文件信息、读取音频文件、写入音频文件以及比较两个音频文件中的数据的例程。

33下载

更新2020年12月08

查看许可协议

音频文件IO例程v1 2020-11-08
这个包提供了一些例程,用于打印关于音频文件的信息、读取音频文件和写入音频文件。这些函数是Matlab例程audioinfo、audioread和audiowrite的包装器。第四个程序比较两个音频文件中的数据。

PrintAudioPar
这个例程输出关于音频文件的信息。打印输出的一个例子是:
音频文件:D: \ Matlab \音响\ \ audiofile \ Ti32s.aifc测试
样品/通道:5000(0.5秒)
采样频率:10000 Hz
通道数:2(32位整数)
标题:integer32 AIFF-C / sowt
艺术家:p . Kabal
2017-09-21 16:59:06 UTC
仅根据audioinfo返回的信息,不可能确定一个未压缩的32位数据是浮点数还是整数。在这个示例中,PrintAudioPar检查了文件内部,以确定该文件是使用32位浮点数还是32位整数。
PrintAudioPar在Windows上有一个变通方法,当audioinfo找到与请求的文件名不区分大小写的匹配时,可以找到完整文件名的正确大小写。

ReadAudioData
这个例程从音频文件中读取音频数据,并以双数组形式返回数据。在最简单的形式中,它直接从音频文件中读取数据。它还有另一种模式,适用于逐块处理音频数据的程序。在这种情况下,例程实现了一个前向缓冲区,这样以后对数据的请求就可以从缓冲区中得到满足。
ReadAudioData检查旧的audiread实现中的错误行为。在使用Matlab 2018a之前的Matlab版本访问包含law -law或a -law数据的音频文件时,它会抛出一个错误。
WriteAudioData
这个例程从一个实双数组或实单数组中获取数据,并将其写入带有整数数据的WAV或FLAC文件。对于WAV文件,对于浮点输入值(名义上是在-1到+1之间)audiowrite的默认行为是将这些值缩放到整数文件数据支持的值范围,然后使用地板函数将其转换为整数。万博1manbetx该例程使用舍入来将量化误差的最大幅度减小2倍。

WriteAudioData检查audiowrite中的异常行为。
在Matlab 2015a之前的Matlab版本中写入WAV文件时会抛出一个错误。在这些版本中,用于浮点输入到audiowrite的缩放是不正确的。
当写入WAV文件时,当文件中的数据的总长度是奇数字节时,它发出警告信号,在Matlab 2017b之前的Matlab版本。产生的WAV文件是畸形的-它缺少一个填充字节。虽然audiread接受这个畸形的文件,但其他程序可能不接受。
audiowrite中的剪切警告是基于位于区间-1≤x≤+1之外的输入浮点值。对于值x = 1,数据将被剪切,而不会收到警告消息。当转换成整数值后的数据超过文件格式所支持的范围时,就会发生裁剪。万博1manbetxWriteAudioData暂时关闭Matlab生成的剪辑消息,并根据实际发生剪辑的时间提供自己的剪辑消息(包括被剪辑的样本总数)。

CompAudioData
这个例程接受一个或两个文件名作为输入。对于单个文件,将打印音频数据的统计信息。这些统计数据包括最小值、最大值、标准差和平均值。这些值将以全尺寸的百分比显示。对于多通道数据,数据被视为单个通道。
对于两个文件,这个例程打印每个文件的统计信息。比较两个文件中的数据。
文件:
性病发展:64%,平均:-0.00456%
Max: 100% Min: -100%
文件B:
性病发展:32%,平均值:-0.00228%
Max: 50%, Min: -50%
信噪比= 6.02 dB
信噪比= 91.67 dB(文件B增益= 2.000)
最大差异:50%全刻度,没有。Diff = 9999/10000
信噪比(SNR)使用第一个文件作为参考,并计算第一个文件中的能量与两个文件样本之间的差能量的比值。这个比率是以分贝为单位表示的。另一种信噪比计算方法为第二个文件找到最佳增益,使信噪比最大化。在上面的示例输出中,我们看到第二个文件是第一个文件的缩放版本。

引用作为

彼得Kabal(2022)。音频文件IO例程(//www.tianjin-qmedu.com/matlabcentral/fileexchange/82209-audio-file-io-routines), MATLAB中央文件交换。检索

MATLAB版本兼容性
创建R2020a
兼容R2015b及后续版本
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB Central中找到宝藏,并发现社区可以如何帮助你!

开始狩猎!

AudioFileIO-v1.5 /音频

AudioFileIO-v1.5 /音频/测试

AudioFileIO-v1.5 /音频/测试/私人