Spaces:
Running
on
Zero
Running
on
Zero
Update app.py
Browse files
app.py
CHANGED
|
@@ -3,6 +3,7 @@ import torch
|
|
| 3 |
import numpy as np
|
| 4 |
import librosa
|
| 5 |
from torchmetrics.functional.audio.nisqa import non_intrusive_speech_quality_assessment as tm_nisqa
|
|
|
|
| 6 |
|
| 7 |
SR = 16000
|
| 8 |
|
|
@@ -29,6 +30,7 @@ def explain_dim(name: str):
|
|
| 29 |
"Loudness": "Perceived loudness appropriateness (higher = more appropriate)."
|
| 30 |
}[name]
|
| 31 |
|
|
|
|
| 32 |
def predict_nisqa(audio):
|
| 33 |
if isinstance(audio, tuple):
|
| 34 |
_sr, y = audio
|
|
@@ -36,8 +38,11 @@ def predict_nisqa(audio):
|
|
| 36 |
else:
|
| 37 |
y, _ = librosa.load(audio, sr=SR, mono=True)
|
| 38 |
|
| 39 |
-
|
| 40 |
-
|
|
|
|
|
|
|
|
|
|
| 41 |
|
| 42 |
metrics = [
|
| 43 |
("MOS (overall)", mos, label_mos(mos), "Higher = better perceived quality."),
|
|
|
|
| 3 |
import numpy as np
|
| 4 |
import librosa
|
| 5 |
from torchmetrics.functional.audio.nisqa import non_intrusive_speech_quality_assessment as tm_nisqa
|
| 6 |
+
import spaces
|
| 7 |
|
| 8 |
SR = 16000
|
| 9 |
|
|
|
|
| 30 |
"Loudness": "Perceived loudness appropriateness (higher = more appropriate)."
|
| 31 |
}[name]
|
| 32 |
|
| 33 |
+
@spaces.GPU()
|
| 34 |
def predict_nisqa(audio):
|
| 35 |
if isinstance(audio, tuple):
|
| 36 |
_sr, y = audio
|
|
|
|
| 38 |
else:
|
| 39 |
y, _ = librosa.load(audio, sr=SR, mono=True)
|
| 40 |
|
| 41 |
+
device = "cuda" if torch.cuda.is_available() else "cpu"
|
| 42 |
+
wav = torch.tensor(y, dtype=torch.float32, device=device)
|
| 43 |
+
mos, noisiness, discontinuity, coloration, loudness = (
|
| 44 |
+
tm_nisqa(wav, SR).detach().to("cpu").numpy().tolist()
|
| 45 |
+
)
|
| 46 |
|
| 47 |
metrics = [
|
| 48 |
("MOS (overall)", mos, label_mos(mos), "Higher = better perceived quality."),
|