Librosa 振幅为 dB [关闭]

问题描述 投票:0回答:0

使用 librosa 和 Log10() 的示例计算:

import librosa, librosa.display
import numpy as np

magnitude_values = np.array([0, 108.963])
log_spectro_test = librosa.amplitude_to_db(magnitude_values)
print("magnitude_values:", magnitude_values)
print("log_spectro_test:", log_spectro_test)

my_max_val = 20 * np.log10(108.963 + 1e-6)
my_min_val = 20 * np.log10(0 + 1e-6)
print ("my_min_val", my_min_val, "my_max_val", my_max_val)

输出值:

magnitude_values: [  0.    108.963]
log_spectro_test: [-39.25441896  40.74558104]
my_min_val -120.0 my_max_val 40.745581116739906

对于最大值它是正确的但对于最小值不正确。 我如何使用 log10 获得相同的值? 帮我找出我错在哪里?

我也看到了:

librosa min dB value -39.25441896 is
-39.25441896/20 = -1,962720948
10^-1,962720948 = 0,0108963000

这是最大震级值 108.963 除以 10000

fft voice-recognition librosa spectrogram
© www.soinside.com 2019 - 2024. All rights reserved.