  This paper discusses one of the most challenging practical engineering
problems in speaker recognition systems - the version control of models and
user profiles. A typical speaker recognition system consists of two stages: the
enrollment stage, where a profile is generated from user-provided enrollment
audio; and the runtime stage, where the voice identity of the runtime audio is
compared against the stored profiles. As technology advances, the speaker
recognition system needs to be updated for better performance. However, if the
stored user profiles are not updated accordingly, version mismatch will result
in meaningless recognition results. In this paper, we describe different
version control strategies for speaker recognition systems that had been
carefully studied at Google from years of engineering practice. These
strategies are categorized into three groups according to how they are deployed
in the production environment: device-side deployment, server-side deployment,
and hybrid deployment. To compare different strategies with quantitative
metrics under various network configurations, we present SpeakerVerSim, an
easily-extensible Python-based simulation framework for different server-side
deployment strategies of speaker recognition systems.
