2021-05-24 23:31:44 +08:00
|
|
|
import matplotlib.pyplot as plt
|
|
|
|
import numpy as np
|
|
|
|
from scipy import signal
|
|
|
|
|
2022-01-21 21:44:12 +08:00
|
|
|
import gradio as gr
|
|
|
|
|
2021-05-24 23:31:44 +08:00
|
|
|
|
|
|
|
def spectrogram(audio):
|
|
|
|
sr, data = audio
|
|
|
|
if len(data.shape) == 2:
|
|
|
|
data = np.mean(data, axis=0)
|
2022-01-21 21:44:12 +08:00
|
|
|
frequencies, times, spectrogram_data = signal.spectrogram(
|
|
|
|
data, sr, window="hamming"
|
|
|
|
)
|
2021-05-24 23:31:44 +08:00
|
|
|
plt.pcolormesh(times, frequencies, np.log10(spectrogram_data))
|
|
|
|
return plt
|
|
|
|
|
|
|
|
|
2022-03-29 06:28:01 +08:00
|
|
|
demo = gr.Interface(spectrogram, "audio", "plot")
|
2021-05-24 23:31:44 +08:00
|
|
|
|
|
|
|
if __name__ == "__main__":
|
2022-03-29 06:28:01 +08:00
|
|
|
demo.launch()
|