Edu*_*les 5 python audio frequency scipy python-3.x
我正在使用scipy的wavfile库来读取wav文件.
rate, data = scipy.io.wavfile.read(filename)
Run Code Online (Sandbox Code Playgroud)
这将返回给定wav文件名的速率和RAW数据.
从RAW数据到频率,我需要对数据阵列进行哪些转换?
我理解FFT用于进入频域,但我想进入时域.
任何帮助表示赞赏!:)
这将为您提供给定信号的平均频率:
def spectral_statistics(y: np.ndarray, fs: int) -> float:
"""
Compute mean frequency
:param y: 1-d signal
:param fs: sampling frequency [Hz]
:return: mean frequency
"""
spec = np.abs(np.fft.rfft(y))
freq = np.fft.rfftfreq(len(y), d=1/fs)
amp = spec / spec.sum()
mean = (freq * amp).sum()
return mean
Run Code Online (Sandbox Code Playgroud)
正如您所说,您可以使用 来读取波形scipy。如果您想获取音频块的频率,只需将数组分成几部分并将每个部分单独传递给函数即可。
| 归档时间: |
|
| 查看次数: |
374 次 |
| 最近记录: |