-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patheer_test.py
32 lines (27 loc) · 1.35 KB
/
eer_test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import pickle
import pandas as pd
from compute_eer import compute_scores, find_eer, DistanceMetric
def main():
embed_model = 'pyannote'
print(f"{embed_model} 테스트중")
print("임베딩 로드 중...")
with open(f'speaker_embed_{embed_model}.pkl', 'rb') as f:
embeddings = pickle.load(f)
print("라벨 데이터 로드 중...")
labels_df = pd.read_csv('labels_consensus.csv')
# 코사인 거리 메트릭 테스트
print("\n코사인 거리 메트릭 사용:")
scores, labels = compute_scores(embeddings, labels_df, DistanceMetric.cosine_distance, random_seed=42)
eer, threshold = find_eer(scores, labels, distance_metric="cosine",
num_iterations=5, num_cores=16) # num_cores를 원하는 만큼 설정
print(f"EER: {eer:.4f}")
print(f"최적 임계값: {threshold:.4f}")
# 유클리드 거리 메트릭 테스트
print("\n유클리드 거리 메트릭 사용:")
scores, labels = compute_scores(embeddings, labels_df, DistanceMetric.euclidean_distance, random_seed=123)
eer, threshold = find_eer(scores, labels, distance_metric="euclidean",
num_iterations=5, num_cores=16) # num_cores를 원하는 만큼 설정
print(f"EER: {eer:.4f}")
print(f"최적 임계값: {threshold:.4f}")
if __name__ == "__main__":
main()