[英]How do I find amplitude of wav file in python?
我正在使用 python 中的 librosa 库进行 wav 文件分析。 我使用librosa.load()加载音频文件。 显然,这个函数将 wav 文件加载到一个 numpy 数组中,归一化幅度值在 -1 到 1 的范围内。但我需要获取实际的幅度值进行处理。 我怎样才能找到那个?
提前致谢!
您正确地观察到librosa始终将样本标准化为单声道[-1:1]
(以及 22050 Hz)。 也就是说,它是数字音频,所以可以乘以任何你想要获得不同音阶的东西。 如果您坚持认为您的样本在-2^15
到2^15
,只需乘以2^15
。 这几乎意味着相同。
除了将编码音频格式的特殊性拖入您的数据之外,您将一无所获。
也就是说,如果这就是你想要的,你可以像这样使用PySoundFile :
import soundfile as sf
y, sr = sf.read('existing_file.wav', dtype='int16')
参数dtype='int16'
告诉库假设每个样本采用带符号的 16 位格式。
你不能。 正如 Hendrik 所提到的,信号是数字的,WAV 文件中的幅度不会告诉您有关实际声波幅度/声功率的任何信息。 在将其数字化为 WAV 的那一刻,这完全消失了。
话虽如此,您可以计算例如响度,声功率的相对感知。 如果您正在处理人类听觉系统,推荐的方法之一是:
如果您不想自己计算,请查看例如YAAFE 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.