说话人识别,用python怎么画DET 或者EER曲线

小凡云 2018-05-25 05:31:54
刚入门说话人识别,用的tensorflow框架, 有会用python画DET曲线图的吗?有代码最好,万分感谢!
...全文
1403 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
斯多葛的信徒 2019-03-17
  • 打赏
  • 举报
回复
很简单啊 import numpy as np import matplotlib.pyplot as plt from data import get_names # peo 说话人名字, datum 测试数据分数 def draw_DET(peo, datum): up = np.max(datum) down = np.min(datum) pos_num = len(datum)//2 x = [] y = [] dot_num = 1000 # DET图上的数据点数 step = (up - down) / (dot_num + 1) threshod = up size = len(datum) for i in range(dot_num): threshod -= step false_neg = 0 false_pos = 0 for d in range(size): if d < pos_num and datum[d] < threshod: false_pos += 1 elif d > pos_num and datum[d] > threshod: false_neg += 1 print(threshod,end="\t") print("false_alarm:%f" % (false_pos / size), end="\t") print("missing:%f" % (false_neg / size)) x.append(false_pos / size) y.append(false_neg / size) x = np.array(x) y = np.array(y) fig = plt.figure() ax1 = fig.add_subplot(111) # 设置标题 ax1.set_title('DET curves') # 设置X轴标签 plt.xlabel('False Alarm probability (in%)') # 设置Y轴标签 plt.ylabel('Miss probability (in%)') # 画散点图 ax1.scatter(x, y, c='r', marker='.') # 设置图标 plt.legend('x1') # 显示所画的图 plt.savefig(dir + peo + ".png")

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧