Frame-level representations produced by the final cell are fed to a gated recurrent unit (GRU) layer to obtain utterance-level representations. These representations are then fed to a fully connected layer which extracts the embedding. We use mean-square error (MSE) for P2SGrad [1]} as the loss function. An activation layer is first applied to calculate the cosine distance \(\cos \theta \)  between the input embedding and the class weight. As in [2]}, this step is hyper-parameter-free, which reduces the sensitivity of margin-based softmax towards its scale and angular margin parameter settings, thus giving relatively consistent results. The network loss is the MSE between \(\cos \theta \)  and the target class label. Scores used for performance evaluation are \(\cos \theta \)  for the bona fide class.
