[Python] How to visualise and choose parameters spectrogram tensorflow

Discussão em 'Python' iniciado por Stack, Setembro 16, 2025.

  1. Stack

    Stack Membro Participativo

    I have audio of 3 min duration ,I have Waveform shape: (2880000,) so what should be the value for frame_length and frame_step

    spectrogram = tf.signal.stft(waveform, frame_length=?, frame_step=?)

    spectrogram = tf.abs(spectrogram)


    On choosing frame_length=255 & frame_step=128 I get spectrogram shape as 22499,129 and when I try to visualise

    def plot_spectrogram(spectrogram, ax):
    # Convert to frequencies to log scale and transpose so that the time is
    # represented in the x-axis (columns).
    log_spec = np.log(spectrogram.T)
    height = log_spec.shape[0]
    X = np.arange(2880000, step=height + 1)
    Y = range(height)
    ax.pcolormesh(X, Y, log_spec)


    fig, axes = plt.subplots(2, figsize=(12, 8))
    timescale = np.arange(audio.shape[0])
    axes[0].plot(timescale, audio.numpy())
    axes[0].set_title('Waveform')
    axes[0].set_xlim([0, 2880000])
    plot_spectrogram(spectrogram.numpy(), axes[1])
    axes[1].set_title('Spectrogram')
    plt.show()


    I get this error Dimensions of C (129, 22499) are incompatible with X (22154) and/or Y (129); see help(pcolormesh)

    So question is how to choose parameters and then visualise

    Continue reading...

Compartilhe esta Página