🎧 语音MOS评分系统 🎧
只需两行代码即可预测主观语音评分,支持多种MOS预测系统。
predictor = torch.hub.load("tarepan/SpeechMOS:v1.2.0", "utmos22_strong", trust_repo=True)
score = predictor(wave, sr)
# tensor([3.7730]),高质量语音!
演示
使用UTMOS预测您的音频的自然度(自然度平均意见得分):
import torch
import librosa
wave, sr = librosa.load("<你的音频>.wav", sr=None, mono=True)
predictor = torch.hub.load("tarepan/SpeechMOS:v1.2.0", "utmos22_strong", trust_repo=True)
score = predictor(torch.from_numpy(wave).unsqueeze(0), sr)
# tensor([3.7730])
使用方法
SpeechMOS使用torch.hub
内置的模型加载器,因此无需导入库😉
(作为一般依赖项,SpeechMOS需要Python>=3.8、torch
和torchaudio
。)
首先,使用模型指定字符串实例化MOS预测器:
import torch
predictor = torch.hub.load("tarepan/SpeechMOS:v1.2.0", "<模型指定符>", trust_repo=True)
然后,传入语音张量 :: (批次, 时间)
:
waves_tensor = torch.rand((2, 16000)) # 两段语音,每段1秒(采样率=16,000)
score = predictor(waves_tensor, sr=16000)
# tensor([2.0321, 2.0943])
返回的分数 :: (批次,)
是每段语音的预测MOS。
如果您希望对语音进行MOS平均(例如,用于TTS模型评估),只需对它们取平均值:
average_score = score.mean().item()
# 2.0632
预测器
本仓库是各种MOS预测系统的重新实现集合。
目前我们提供以下模型:
模型 | 指定符 | 论文 |
---|---|---|
UTMOS strong | utmos22_strong | Saeki (2022) |