Spaces:
Running
Running
import gradio as gr | |
import numpy as np | |
import matplotlib.pyplot as plt | |
import librosa | |
import librosa.display | |
def plot_stft(audio_file): | |
# Load audio file | |
y, sr = librosa.load(audio_file) | |
# Compute the Short-Time Fourier Transform (STFT) | |
D = librosa.stft(y) | |
S_db = librosa.amplitude_to_db(np.abs(D), ref=np.max) | |
# Plot the STFT | |
plt.figure(figsize=(10, 6)) | |
librosa.display.specshow(S_db, sr=sr, x_axis='time', y_axis='log') | |
plt.colorbar(format='%+2.0f dB') | |
plt.title('STFT (Short-Time Fourier Transform)') | |
# Save the plot as an image | |
plt.savefig('stft_plot.png') | |
plt.close() | |
return 'stft_plot.png' | |
# Gradio interface | |
demo = gr.Interface(fn=plot_stft, | |
inputs=gr.Audio(type="filepath"), | |
outputs="image") | |
demo.launch() | |