我正在使用GMM进行演讲者验证项目,并且作为最后一步,我试图评估系统的性能,并且发现理想的方法是绘制ROC曲线或DET。
到目前为止,通过阅读不同的实现,我发现人们使用两个值,一个用于测试值,一个用于概率值(例如y_test,y_prob)。
在我的情况下,我有一个文本文件,其中所有说话者的名字都作为输入,在for循环中,我迭代每个文本并将其分配给名为 SPEAKER 的变量。
对于文件路径中的文件路径:
speaker = file_path.strip('\n').split('/')[0]
speaker = str(speaker)
所有GMM模型都存储在名为 SPEAKERS_GMM 的列表中,然后与每个发言人的语音功能进行比较。 从那里开始计算log_likelihood值。
我尝试使用bob库使用正列表和负列表来计算ROC,阈值等,但是在bob版本7.0.0中,我收到一个错误“ AttributeError:模块'bob'没有属性'measure'”。>
if speaker == str(speakers_gmm[winner]):
correct +=1
positives.append(final_score)
print('correct')
else:
wrong +=1
negatives.append(final_score)
print('wrong')
我的方法正确吗?有什么建议吗?