-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathplot_tsne.py
93 lines (80 loc) · 3.75 KB
/
plot_tsne.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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
from itertools import count
from pathlib import Path
import random
import IPython.display as ipd
import librosa
import matplotlib.pyplot as plt
from matplotlib import offsetbox
from sklearn import (manifold, datasets, decomposition, ensemble, discriminant_analysis, random_projection)
import glob
import numpy as np
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
from mpl_toolkits.mplot3d import proj3d
import pylab
from umap import UMAP
import random
speakers = ['BDL (M, L1)', 'CLB (F, L1)', 'ERMS (M, SP)', 'NJS (F, SP)', 'TXHC (M, CN)', 'LXC (F, CN)', 'YKWK (M, KR)', 'YDCK (F, KR)', 'ABA (M, AB)', 'ZHAA (F, AB)']
# baseline_speakers = ['FAC-B (TXHC + L1)', 'FAC-B (YKWK + L1)']
# proposed_speakers = ['src_BDL_ref_TXHC (TXHC + L1(BDL))', 'src_CLB_ref_YKWK (YKWK + L1(CLB))']
proposed_speakers = ['src_TXHC_ref_CLB (TXHC + L1(CLB))','src_BDL_ref_YKWK (voice YKWK)']
# speakers = ['BDL (M, L1)', 'YKWK (M, KR)']
# # baseline_speakers = ['FAC-B (TXHC + L1)', 'FAC-B (YKWK + L1)']
# proposed_speakers = ['src_BDL_ref_TXHC (TXHC + L1(BDL))', 'src_CLB_ref_YKWK (YKWK + L1(CLB))']
# # proposed_speakers = ['src_BDL_ref_YKWK (voice YKWK)']
all_speakers = speakers + proposed_speakers
markers = ["d" , "d", "o", "o", "^", "^", "p", "p", "P", "P"]
fac_markers = [ "s", "v"]
base_dir = '/mnt/data2/bhanu/datasets/dvec/GE2E_spkEmbed_step_5805000'
all_embedings = []
speaker_labels = []
for sp in all_speakers:
speaker = sp.split(" ")[0]
speaker_file_list = sorted(glob.glob(f"/mnt/data2/bhanu/datasets/dvec/GE2E_spkEmbed_step_5805000/{speaker}/*.npy"))
print(f"Number of source utterances: {len(speaker_file_list)}.")
# t = np.load(speaker_file_list[0])
cnt = 0
# print(speaker_file_list)
# speaker_file_list = random.shuffle(speaker_file_list)
for spf in speaker_file_list:
if cnt > 40:
break
all_embedings.append(np.load(spf))
speaker_labels.append(sp)
cnt = cnt +1
print(np.array(all_embedings).shape)
print("Computing t-SNE embedding - speaker")
tsne_sp = manifold.TSNE(n_components=2, init='pca', random_state=0)
# tsne_sp = UMAP(n_components=2, init='spectral', random_state=0)
speaker_tsne = tsne_sp.fit_transform(np.array(all_embedings))
print(speaker_tsne.shape)
colors = mpl.cm.get_cmap('tab20')(np.arange(12))
plt.figure(figsize=(12,8))
speakers_all = all_speakers
markers_all = markers + fac_markers
for speaker, c, m in zip(speakers_all, colors, markers_all):
X_speaker_embedding = speaker_tsne[np.where(speaker==np.array(speaker_labels))]
print(X_speaker_embedding.shape, speaker)
plt.scatter(X_speaker_embedding[:,0], X_speaker_embedding[:,1], label=speaker, marker=m, color=c)
plt.text(X_speaker_embedding[-1,0], X_speaker_embedding[-1,1], speaker)
plt.legend()
plt.tight_layout()
plt.savefig("embed_viz/tsne_10p5_itr.png", format='png')
# print("Computing t-SNE embedding - speaker")
# tsne_sp = manifold.TSNE(n_components=3, init='pca', random_state=0)
# speaker_tsne = tsne_sp.fit_transform(np.array(all_embedings))
# print(speaker_tsne.shape)
# colors = mpl.cm.get_cmap('tab20')(np.arange(12))
# plt.figure(figsize=(12,8))
# fig = pylab.figure()
# ax = fig.add_subplot(111, projection = '3d')
# speakers_all = all_speakers
# markers_all = markers + fac_markers
# for speaker, c, m in zip(speakers_all, colors, markers_all):
# X_speaker_embedding = speaker_tsne[np.where(speaker==np.array(speaker_labels))]
# print(X_speaker_embedding.shape, speaker)
# ax.scatter(X_speaker_embedding[:,0], X_speaker_embedding[:,1],X_speaker_embedding[:,2], label=speaker, marker=m, color=c)
# # ax.text(X_speaker_embedding[-1,0], X_speaker_embedding[-1,1],X_speaker_embedding[-1,2], speaker)
# # plt.legend()
# plt.tight_layout()
# plt.savefig("embed_viz/SpeakerEmbeddings_ppg2ppg.png", format='png')