Branch Log · Open in interactive viewer →

Section 5: Fundamentals of Speaker Recognition

5.1 What is speaker recognition?

Speaker recognition(화자 인식) system이 무엇인지 알아보기 전에 다른 개념들과 명확하게 구분지어 보자.

speaker recognition = voice recognition, voiceprint recognition, talker recognition


5.1.1 Speaker vs speech recognition

또한 speaker recognition과 speech recognition은 서로 다른 개념이다. 두 문제는 서로 orthogonal한 관계이므로 주의해야 한다.

speaker vs speech recognition

"Who is speaking?". 무슨 내용을 말하는지는 중요하지 않다.

speech organs(vocal folds, vocal tract), age, gender, language, accent, dialect, life experience, personal preference 등이 중요하다.

"What was spoken?". 누가 말하는지는 중요하지 않다.


5.2 Speaker recognition by task

speaker recognition 문제는 분류하고자 하는 크기에 따라, 크게 Speaker Verification(SV), Speaker Identification(SID) 두 가지 task로 분류할 수 있다.

Speaker Verification(SV) Speaker Identification(SID)
single candidate multiple candidates
Yes/No binary classification 다양한 multi-class classification
"Did he/she speak it?" "Did one of them speak it? If yes, who?"
wake up system, security 등에 사용 Personalization 등에 사용

5.2.1 Speaker Verification

먼저 SV에서는 target speaker가 주어지고, 이 사람이 맞는지 아닌지를 판별하는 문제이다.


5.2.1 Speaker Identification

SID는 speaker matching으로도 부르며, $M$ 명의 candidate speaker 집합에서 classification을 수행한다.

runtime audio는 오직 $M$ classification을 수행한다.

runtime audio가 imposter를 포함한 $M+1$ classification을 수행한다.

이러한 특성 떄문에 $M$ 이 크면 클수록 문제는 어려워진다.(비슷한 목소리를 가진 speaker가 더 많이 포함된다.)


5.3 Textual content

text content가 가진 성격에 따라서도, speaker recognition 문제를 구분할 수 있다.

이에 따라 6가지 종류의 problem이 존재하게 된다.


5.3.1 Text-dependent speaker recognition

다른 말로 fixed-text speaker recognition이라고도 부른다. 언제나 spoken phrase가 동일하므로 problem은 굉장히 단순하게 정의된다.

"Hey Google", "Hey Siri"과 같은 wake words나 password tokens가 이에 해당한다.

pattern matching, early statistical methods

소량의 phonemes만을 구분할 수 있는 model을 사용해도 된다.

간편히 fixed-length window를 사용할 수 있다.


5.3.2 Text-independent speaker recognition

다른 말로 freeform speaker recognition이라고도 부른다. 무엇을 말하든지 상관이 없으며, 그만큼 문제는 어려우나 유용하다.

예를 들어 enroll은 "What is the weather"이었지만, recognition은 "How is the weather"라는 phase가 주어질 수 있다.


5.3.3 Text-prompted speaker recognition

speaker recognition 문제는 imposter의 record attacks에 취약할 수밖에 없다.

word/password sequence를 녹음하여 사용할 수 있다.

어떠한 sequence든 녹음하여 사용할 수 있다.

따라서 이러한 보안의 취약성을 보완하기 위해 text-prompted speaker recognition이 등장했다. system prompts는 매 시도마다 speaker에게 다른 text를 읽도록 제시한다.

예를 들어 첫 시도에서는 "Open sesame"를 제시하고, 다음 시도에서는 "Open watermelon"을 제시한다.

text-prompted speaker recognition

이때 지원하는 phrases 수인 vocabulary size $M$ 에 따라 difficulty가 달라지게 된다.

참고로 $M$ 을 극단적으로 두고 보면, $M = 1$ : text-dependent, $M = \infty$ : text-independent가 된다. 따라서 다음과 같은 구현이 가능하다.

$M$ text-dependent models(한 phrase당 한 모델)

단일 text-independent model을 사용한다.

물론 이 둘을 결합해서도 사용할 수 있다. 예를 들어 "Ok Google play my favorite songs"라는 phrase를 사용한다고 하자.


5.4 System Triage

단, computational complexity를 줄이기 위해서는 expensive model은 오직 필요할 떄만 사용해야 한다.

small & cheap model: usually text-dependent model / large & expensive model: usually text-independent model.

confident accept. 따라서 expensive model을 사용할 필요가 없다.

confident reject. 따라서 expensive model을 사용할 필요가 없다.

unconfident. 따라서 final decision을 위해 expensive model을 사용한다.


5.5 System Workflow

speech recognition system의 workflow는 다음과 같이 크게 3단계로 구성된다.


5.5.1 Training Stage

machine learning model을 학습시키는 단계로, 모델은 statistical model일 수도 있고, weight/bias를 갖는 neural network일 수도 있다. 다만 이때 단순히 "model"이라고 지칭하면 안 된다. 각 speaker에 dependency를 갖는가에 따라서도 model의 성격이 크게 달라지기 때문이다.

voiceprint와 같이 각 speaker의 representation을 갖는다.

speaker embedding을 만들어내는 global machine learning model을 갖는다.


5.5.1.1 Embedding Learning

이처럼 speech recognition은 embedding learning problem(=representation learning)으로 볼 수 있다.

feature frames으로 구성된 sequence를 단일 fixed-dimension vector로 변환한다.


5.5.2 Enrollment Stage

다음은 runtime에 해당되는 enrollment stage를 살펴보자.

enrollment stage

embedding을 profile로 변환하는 과정을 의미한다. 대표적으로 average, normalize-and-average, concatenate 같은 방법이 있다.


5.5.3 Recognition Stage

runtime의 recognition stage은 다음과 같이 진행된다.

recognition stage


5.5.4 Summary of System Workflow

stage별 입출력을 바탕으로 system workflow를 요약하면 다음과 같다.

system workflow

Stage Inputs Outputs
Training Training data
(Audio clips from many different speaker)
speaker encoder
Enrollment Enrollment audio from the target speaker Speaker profile of the target speaker
Recognition Runtime audio Verification/Identification result

이론적으로는 위 세 가지 과정에서 사용하는 feature extraction이 동일해야 한다. (동일한 frame step/size, window function, FFT, filterbanks 등) 하지만 실제 training에서는 feature extraction 전/후 과정에서 augmentation이 적용되는 경우가 많다.