0

我正在尝试根据此文档使用我自己的训练模型执行离线识别:https ://github.com/tensorflow/tfjs-models/tree/master/speech-commands

我遇到了与https://github.com/tensorflow/tfjs/issues/3820描述的相同的问题,并且我尝试了从那里建议的所有解决方案,包括 colab(预处理模型)支持https://colab.research.google .com/github/tensorflow/tfjs-models/blob/master/speech-commands/training/browser-fft/training_custom_audio_model_in_python.ipynb#scrollTo=1AjdTru5NnQQ与给定的wav文件配合良好,但在使用我的自带wav文件:</p>

filepath = '/my/own/file.wav'
file_contents = tf.io.read_file(filepath)
wavform = tf.expand_dims(tf.squeeze(tf.audio.decode_wav(
      file_contents, 
      desired_channels=-1,
      desired_samples=TARGET_SAMPLE_RATE).audio, axis=-1), 0)
    cropped_waveform = tf.slice(waveform, begin=[0, 0], size=[1, EXPECTED_WAVEFORM_LEN])    
    spectrogram = tf.squeeze(preproc_model(cropped_waveform), axis=0)
print(spectrogram)


Output:

tf.Tensor(
[[[nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]
   ...
   [nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]
  [nan]]], shape=(43, 232, 1), dtype=float32)

有没有办法解决这个问题?

例如,我应该根据给定的 wav 文件修改我的 wav 文件数据吗?但是怎么做?在处理自己的 wav 文件时,我是否错过了预处理过程中的一些重要步骤?或者有没有更简单的方法可以在 javascript 中而不是在 python 中实现这一点?

4

1 回答 1

1

您的问题与 github 问题https://github.com/tensorflow/tfjs/issues/3820相同。

你能检查你的 preproc_model() 输入张量是否包含很多零条目吗?我认为正是这些零条目导致了“nan”问题。

于 2021-09-08T04:00:11.173 回答