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

Eli*_*ski 2 audio mfcc tensorflow librosa

我试图让 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]
Run Code Online (Sandbox Code Playgroud)

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

以下是结果图表: 张量流 mfcc 结果

librosa mfcc 结果

rry*_*yan 5

我是tf.signal. 很抱歉没有早点看到这篇文章,但是tf.signal.stft如果在将信号传递到tf.signal.stft. 有关更多详细信息,请参阅此 GitHub 问题