File size: 512 Bytes
0bd62e5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import matplotlib.pyplot as plt
import numpy as np
from scipy import signal

import gradio as gr

def spectrogram(audio):
    sr, data = audio
    if len(data.shape) == 2:
        data = np.mean(data, axis=0)
    frequencies, times, spectrogram_data = signal.spectrogram(
        data, sr, window="hamming"
    )
    plt.pcolormesh(times, frequencies, np.log10(spectrogram_data))
    return plt

demo = gr.Interface(spectrogram, "audio", "plot")

if __name__ == "__main__":
    demo.launch()