gpt4 book ai didi

audio - 是否有可能从 tensorflow mfcc 和 librosa mfcc 获得完全相同的结果?

转载 作者:行者123 更新时间:2023-12-02 22:18:55 26 4
gpt4 key购买 nike

我正在尝试让 tensorflow mfcc 给我与 python lybrosa mfcc 相同的结果我试图匹配 librosa 使用的所有默认参数在我的 tensorflow 代码中得到了不同的结果

这是我用过的tensorflow代码:

waveform = contrib_audio.decode_wav(
audio_binary,
desired_channels=1,
desired_samples=sample_rate,
name='decoded_sample_data')


sample_rate = 16000

transwav = tf.transpose(waveform[0])

stfts = tf.contrib.signal.stft(transwav,
frame_length=2048,
frame_step=512,
fft_length=2048,
window_fn=functools.partial(tf.contrib.signal.hann_window,
periodic=False),
pad_end=True)

spectrograms = tf.abs(stfts)
num_spectrogram_bins = stfts.shape[-1].value
lower_edge_hertz, upper_edge_hertz, num_mel_bins = 0.0,8000.0, 128
linear_to_mel_weight_matrix =
tf.contrib.signal.linear_to_mel_weight_matrix(
num_mel_bins, num_spectrogram_bins, sample_rate, lower_edge_hertz,
upper_edge_hertz)
mel_spectrograms = tf.tensordot(
spectrograms,
linear_to_mel_weight_matrix, 1)
mel_spectrograms.set_shape(spectrograms.shape[:-1].concatenate(
linear_to_mel_weight_matrix.shape[-1:]))
log_mel_spectrograms = tf.log(mel_spectrograms + 1e-6)
mfccs = tf.contrib.signal.mfccs_from_log_mel_spectrograms(
log_mel_spectrograms)[..., :20]

librosa 中的等价物:libr_mfcc = librosa.feature.mfcc(wav, 16000)

以下是结果图: tensorflow mfcc results

librosa mfcc results

最佳答案

我是 tf.signal 的作者。很抱歉没有早点看到这篇文章,但是如果你在将信号传递到 tf.signal.stft 之前将信号居中填充,你可以让 librosa 和 tf.signal.stft 匹配>。参见 this GitHub issue了解更多详情。

关于audio - 是否有可能从 tensorflow mfcc 和 librosa mfcc 获得完全相同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47056432/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com