将mel谱图归一化为单位峰值振幅?

2024-04-19 22:39:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python和librosa都是新手。我尝试使用以下方法来实现语音识别器:acoustic front end

我的代码:

import librosa
import librosa.display
import numpy as np

y, sr = librosa.load('test.wav', sr = None)
normalizedy = librosa.util.normalize(y)

stft = librosa.core.stft(normalizedy, n_fft = 256, hop_length=16)
mel = librosa.feature.melspectrogram(S=stft, n_mels=32)
melnormalized = librosa.util.normalize(mel)
mellog = np.log(melnormalized) - np.log(10**-5)

问题是当我申请的时候librosa.util.normalize对于变量mel,我希望值介于1和-1之间,但它们不是。我缺少什么?在


Tags: 方法importlogutilnp语音normalizelibrosa
1条回答
网友
1楼 · 发布于 2024-04-19 22:39:42

如果希望输出按日志缩放并规范化为-1到-1之间,则应先记录缩放比例,然后再进行规格化:

import librosa
import librosa.display
import numpy as np

y, sr = librosa.load('test.wav', sr = None)
normalizedy = librosa.util.normalize(y)

stft = librosa.core.stft(normalizedy, n_fft = 256, hop_length=16)
mel = librosa.feature.melspectrogram(S=stft, n_mels=32)
mellog = np.log(mel + 1e-9)
melnormalized = librosa.util.normalize(mellog)
# use melnormalized

相关问题 更多 >