Spaces:
Runtime error
Runtime error
TheStinger
commited on
Commit
•
ef9fce3
1
Parent(s):
3e41f57
Update app.py
Browse files
app.py
CHANGED
@@ -1,23 +1,24 @@
|
|
1 |
import gradio as gr
|
|
|
|
|
2 |
import matplotlib.pyplot as plt
|
3 |
-
import numpy as np
|
4 |
-
import os
|
5 |
-
import soundfile as sf
|
6 |
|
7 |
def create_spectrogram_and_get_info(audio_file):
|
8 |
-
|
9 |
-
# Clear figure in case it has data in it
|
10 |
-
plt.clf()
|
11 |
-
|
12 |
# Read the audio data from the file
|
13 |
-
audio_data, sample_rate =
|
|
|
|
|
|
|
14 |
|
15 |
-
#
|
16 |
-
|
17 |
|
18 |
-
#
|
19 |
-
plt.
|
20 |
-
|
|
|
|
|
|
|
21 |
|
22 |
# Save the spectrogram to a PNG file
|
23 |
plt.savefig('spectrogram.png')
|
@@ -40,9 +41,3 @@ def create_spectrogram_and_get_info(audio_file):
|
|
40 |
|
41 |
# Return the PNG file of the spectrogram and the info table
|
42 |
return info_table, 'spectrogram.png'
|
43 |
-
|
44 |
-
# Create the Gradio interface
|
45 |
-
iface = gr.Interface(fn=create_spectrogram_and_get_info, inputs=gr.Audio(type="filepath"), outputs=["markdown", "image"])
|
46 |
-
iface.launch()
|
47 |
-
|
48 |
-
|
|
|
1 |
import gradio as gr
|
2 |
+
import librosa
|
3 |
+
import librosa.display
|
4 |
import matplotlib.pyplot as plt
|
|
|
|
|
|
|
5 |
|
6 |
def create_spectrogram_and_get_info(audio_file):
|
|
|
|
|
|
|
|
|
7 |
# Read the audio data from the file
|
8 |
+
audio_data, sample_rate = librosa.load(audio_file)
|
9 |
+
|
10 |
+
# Compute the mel-scaled spectrogram
|
11 |
+
spectrogram = librosa.feature.melspectrogram(y=audio_data, sr=sample_rate)
|
12 |
|
13 |
+
# Convert the power spectrogram to decibel (dB) units
|
14 |
+
spectrogram_db = librosa.power_to_db(spectrogram, ref=np.max)
|
15 |
|
16 |
+
# Display the spectrogram
|
17 |
+
plt.figure(figsize=(10, 4))
|
18 |
+
librosa.display.specshow(spectrogram_db, x_axis='time', y_axis='mel', sr=sample_rate, fmax=8000)
|
19 |
+
plt.colorbar(format='%+2.0f dB')
|
20 |
+
plt.title('Mel spectrogram')
|
21 |
+
plt.tight_layout()
|
22 |
|
23 |
# Save the spectrogram to a PNG file
|
24 |
plt.savefig('spectrogram.png')
|
|
|
41 |
|
42 |
# Return the PNG file of the spectrogram and the info table
|
43 |
return info_table, 'spectrogram.png'
|
|
|
|
|
|
|
|
|
|
|
|