@@ -31,102 +31,104 @@ public static void main(String[] args) {
3131 SpeakerEmbeddingExtractor extractor = new SpeakerEmbeddingExtractor (config );
3232 SpeakerEmbeddingManager manager = new SpeakerEmbeddingManager (extractor .getDim ());
3333
34- String [] spk1Files =
35- new String [] {
36- "./sr-data/enroll/fangjun-sr-1.wav" ,
37- "./sr-data/enroll/fangjun-sr-2.wav" ,
38- "./sr-data/enroll/fangjun-sr-3.wav" ,
39- };
40-
41- float [][] spk1Vec = new float [spk1Files .length ][];
42-
43- for (int i = 0 ; i < spk1Files .length ; ++i ) {
44- spk1Vec [i ] = computeEmbedding (extractor , spk1Files [i ]);
45- }
34+ try {
35+ String [] spk1Files =
36+ new String [] {
37+ "./sr-data/enroll/fangjun-sr-1.wav" ,
38+ "./sr-data/enroll/fangjun-sr-2.wav" ,
39+ "./sr-data/enroll/fangjun-sr-3.wav" ,
40+ };
41+
42+ float [][] spk1Vec = new float [spk1Files .length ][];
43+
44+ for (int i = 0 ; i < spk1Files .length ; ++i ) {
45+ spk1Vec [i ] = computeEmbedding (extractor , spk1Files [i ]);
46+ }
4647
47- String [] spk2Files =
48- new String [] {
49- "./sr-data/enroll/leijun-sr-1.wav" , "./sr-data/enroll/leijun-sr-2.wav" ,
50- };
48+ String [] spk2Files =
49+ new String [] {
50+ "./sr-data/enroll/leijun-sr-1.wav" , "./sr-data/enroll/leijun-sr-2.wav" ,
51+ };
5152
52- float [][] spk2Vec = new float [spk2Files .length ][];
53+ float [][] spk2Vec = new float [spk2Files .length ][];
5354
54- for (int i = 0 ; i < spk2Files .length ; ++i ) {
55- spk2Vec [i ] = computeEmbedding (extractor , spk2Files [i ]);
56- }
55+ for (int i = 0 ; i < spk2Files .length ; ++i ) {
56+ spk2Vec [i ] = computeEmbedding (extractor , spk2Files [i ]);
57+ }
5758
58- if (!manager .add ("fangjun" , spk1Vec )) {
59- System .out .println ("Failed to register fangjun" );
60- return ;
61- }
59+ if (!manager .add ("fangjun" , spk1Vec )) {
60+ System .out .println ("Failed to register fangjun" );
61+ return ;
62+ }
6263
63- if (!manager .add ("leijun" , spk2Vec )) {
64- System .out .println ("Failed to register leijun" );
65- return ;
66- }
64+ if (!manager .add ("leijun" , spk2Vec )) {
65+ System .out .println ("Failed to register leijun" );
66+ return ;
67+ }
6768
68- if (manager .getNumSpeakers () != 2 ) {
69- System .out .println ("There should be two speakers" );
70- return ;
71- }
69+ if (manager .getNumSpeakers () != 2 ) {
70+ System .out .println ("There should be two speakers" );
71+ return ;
72+ }
7273
73- if (!manager .contains ("fangjun" )) {
74- System .out .println ("It should contain the speaker fangjun" );
75- return ;
76- }
74+ if (!manager .contains ("fangjun" )) {
75+ System .out .println ("It should contain the speaker fangjun" );
76+ return ;
77+ }
7778
78- if (!manager .contains ("leijun" )) {
79- System .out .println ("It should contain the speaker leijun" );
80- return ;
81- }
79+ if (!manager .contains ("leijun" )) {
80+ System .out .println ("It should contain the speaker leijun" );
81+ return ;
82+ }
8283
83- System .out .println ("---All speakers---" );
84- String [] allSpeakers = manager .getAllSpeakerNames ();
85- for (String s : allSpeakers ) {
86- System .out .println (s );
87- }
88- System .out .println ("------------" );
89-
90- String [] testFiles =
91- new String [] {
92- "./sr-data/test/fangjun-test-sr-1.wav" ,
93- "./sr-data/test/leijun-test-sr-1.wav" ,
94- "./sr-data/test/liudehua-test-sr-1.wav"
95- };
96-
97- float threshold = 0.6f ;
98- for (String file : testFiles ) {
99- float [] embedding = computeEmbedding (extractor , file );
100-
101- String name = manager .search (embedding , threshold );
102- if (name .isEmpty ()) {
103- name = "<Unknown>" ;
84+ System .out .println ("---All speakers---" );
85+ String [] allSpeakers = manager .getAllSpeakerNames ();
86+ for (String s : allSpeakers ) {
87+ System .out .println (s );
88+ }
89+ System .out .println ("------------" );
90+
91+ String [] testFiles =
92+ new String [] {
93+ "./sr-data/test/fangjun-test-sr-1.wav" ,
94+ "./sr-data/test/leijun-test-sr-1.wav" ,
95+ "./sr-data/test/liudehua-test-sr-1.wav"
96+ };
97+
98+ float threshold = 0.6f ;
99+ for (String file : testFiles ) {
100+ float [] embedding = computeEmbedding (extractor , file );
101+
102+ String name = manager .search (embedding , threshold );
103+ if (name .isEmpty ()) {
104+ name = "<Unknown>" ;
105+ }
106+ System .out .printf ("%s: %s\n " , file , name );
104107 }
105- System .out .printf ("%s: %s\n " , file , name );
106- }
107108
108- // test verify
109- if (!manager .verify ("fangjun" , computeEmbedding (extractor , testFiles [0 ]), threshold )) {
110- System .out .printf ("%s should match fangjun!\n " , testFiles [0 ]);
111- return ;
112- }
109+ // test verify
110+ if (!manager .verify ("fangjun" , computeEmbedding (extractor , testFiles [0 ]), threshold )) {
111+ System .out .printf ("%s should match fangjun!\n " , testFiles [0 ]);
112+ return ;
113+ }
113114
114- if (!manager .remove ("fangjun" )) {
115- System .out .println ("Failed to remove fangjun" );
116- return ;
117- }
115+ if (!manager .remove ("fangjun" )) {
116+ System .out .println ("Failed to remove fangjun" );
117+ return ;
118+ }
118119
119- if (manager .verify ("fangjun" , computeEmbedding (extractor , testFiles [0 ]), threshold )) {
120- System .out .printf ("%s should match no one!\n " , testFiles [0 ]);
121- return ;
122- }
120+ if (manager .verify ("fangjun" , computeEmbedding (extractor , testFiles [0 ]), threshold )) {
121+ System .out .printf ("%s should match no one!\n " , testFiles [0 ]);
122+ return ;
123+ }
123124
124- if (manager .getNumSpeakers () != 1 ) {
125- System .out .println ("There should only 1 speaker left." );
126- return ;
125+ if (manager .getNumSpeakers () != 1 ) {
126+ System .out .println ("There should only 1 speaker left." );
127+ return ;
128+ }
129+ } finally {
130+ extractor .release ();
131+ manager .release ();
127132 }
128-
129- extractor .release ();
130- manager .release ();
131133 }
132134}
0 commit comments