티스토리 뷰

목차

  1. 핵심어 검출 (KWS, Keyword Spotting) 개요
  2. 발화자의 음성에서 핵심어를 검출하는 방법
    1. 발화자의 음성에서 특징 추출
    2. 음향 모델을 활용한 키워드 판별
  3. 카카오 미니의 핵심어 검출 엔진

 

1. 핵심어 검출 (KWS, Keyword Spotting) 개요

핵심어 검출(Keyword spotting)은 연속적으로 입력되는 음성신호로부터 미리 정해진 핵심어(중심어, keyword)만을 찾아내는 것이다 

예를 들어 인공지능 스피커인 카카오 미니는 호출 명령어를 알아듣기 위해 핵심어 검출(keyword spotting) 기반의 음성 인식 기술을 사용한다. 사람의 음성을 계속 듣고 있다가 특정 키워드가 발성되었는지를 검출하는 방법이다.

 

"헤이, 카카오!, 신나는 노래 틀어"라고 말하면 [그림 1]과 같이 연속으로 입력되는 음성 구간에서 키워드(헤이, 카카오!)에 해당하는 발음 시퀀스(sequence)가 순차적으로 들어오는지를 지속적으로 감지한다.

[ 그림 1 ] 음성 구간에 대한 핵심어 검출 결과

 

2. 발화자의 음성에서 핵심어를 검출하는 방법

1) 발화자 음성에서 특징 추출

핵심어 검출은 [그림 2]와 같은 순서로 동작한다.

 

우선 발화자의 음성(raw speech)에서 특징 벡터(feature)를 추출한다.

  • 특징 벡터는 음성의 특성을 잘 반영하고 편리한 계산을 위해 사용된다.
  • 일반으로 사용되는 특징 벡터에는 멜 주파수 캡스트럼(Mel Frequency Cepstral Coefficients, MFCC)이나 필터 뱅크 에너지(Filter Bank Energy) 또는 지각 선형 예측(Perceptual Linear Prediction, PLP)등이 있다.

[ 그림 2 ] 핵심어 검출 구조도

2) 음향 모델을 활용한 키워드 판별

현재 음성 신호가 들어오는지 확인하고, 해당 음성 구간이 키워드인지 아닌지를 판별한다. 키워드 판열을 위해서는 미리 구성한 음향 모델(acoustic model)을 사용한다. 음향 모델은 많은 사람의 목소리가 저장된 음성 데이터베이스를 이용하며 원하는 기계 학습(machine learning)을 선택하여 구축한다.

 

일반적으로 음향 모델은 음소 (phoneme) 단위를 기반으로 한 은닉 마르코프 모델 (Hidden Markov Mldeo, HMM) 형태로 구성된다.

  • 음소는 우리말의 자음, 모음과 유사한 개념으로 소리의 기본 단위를 말한다.
  • 음소 단위 HMM 모델에서는 음소를 1~3개의 상태(state)로 나누며 이 모델은 각 상태의 연결 확률 (transition probability)과 관측 확률(observation probability)로 구성된다.
  • 과거에는 음성 인식 분야에서 관측 확률 값을 계산할 때 가우시안 혼합 모델(Gaussian Mixture Model, GMM)을 많이 사용하였으나, 최근에는 DNN을 적용하여 성능 향상을 보이고 있다.

 

핵심어 검출을 위한 음성 인식 네트워크는 [그림 3]과 같이 키워드 모델, 안티 키워드(anti-keyword) 모델 그리고 백그라운드(background) 모델과 이들의 연결 구조로 이루어진다.

  • 시작 노드(node)에서 시작해서 각각의 모델 경로를 지나갈 수 있으며, 음성이 지속적으로 입력되기 때문에 종료 노드에서 다시 시작 노드로 되돌아갈 수 있다. 여기서 키워드 모델은 [그림 1]과 같은 키워드 단어의 발음 열에 해당하는 음소 단위 HMM을 연결한 것이다.
  • 백그라운드 모델(또는 garbage 모델)은 키워드가 아닌  모든 음성에 대응 가능한 모델이며 일반적으로 각각의 음소 모델을 활용한다. 음소는 자음이나 모음과 같이 음성의 발음을 표현하는 기본 단위로 만약 N개의 음소를 정의한다면, [그림 3]과 같이 N개의 백그라운드 음소 모델을 구성할 수 있다.
  • 안티 키워드 모델은 키워드와 유사한 발음을 가진 단어에 대응 가능한 모델이다. 만약 키워드가 '키카오'라면 이와 유사하게 들릴 수 있는 단어를 안티 키워드로 등록하여 잘못된 인식을 방지할 수 있다.

[ 그림 3 ] 핵심어 검출을 위한 음성 인식 네트워크 구성

 

3. 카카오 미니의 핵심어 검출 엔진

카카오 미니의 핵심어 검출 엔진은 안티 키워드 모델과 DNN 기법을 적용하여 높은 인식률을 가진다. 

 

대부분의 인공지능 스피커는 몇 개의 호출 명령어 중에서 하나를 선택하는 방식을 사용한다. 이 경우 실제로 동작하는 키워드는 한 개가 되며, [그림 4]처럼 싱글 키워드(single keyword)를 검출하는 형태로 동작한다. 만약 사용자가 호출 명령어로 '키워드 A'를 선택하면 그에 대응되는 안티 키워드 A1, A2, A3가 함께 적용되며, 호출 명령어를 변경하면 그에 맞는 안티 키워드 목록도 함께 변경된다.

 

[ 그림 4 ] 하나의 호출 명령어를 선택하는 싱글키워드 방식

음성 인식 네트워크를 구성하지 않고 더 간단하게 핵심어를 검출하는 방법도 있다. [그림 5]는 DNN을 이용한 핵심어 검출 시스템을 보여준다.

  • 입력되는 음성에서 10 msec(millisecond) 단위의 프레임 구간마다 특징 벡터를 추출한 뒤 이를 바로 DNN입력으로 넣는다.
  • 이때 특징 벡터는 앞뒤로 여러 프레임의 값을 합친 슈퍼 벡터(super vector) 형태로 구성한다.
  • 그리고 입력된 특징 벡터는 미리 학습한 DNN의 계산을 통해 keyword 노드와 non-keyword 노드의 확률 값으로 변환된다.
  • 프레임마다 발생하는 이 출력 값에 대해 후처리 과정을 거치면 키워드 검출이 가능하다.

이 방법은 백그라운드 모델을 설계한 필요가 없고 구조가 간단하다는 장점이 있다. 또한 오류가 발생한 음성 데이터를 재학습 할 수도 있다. 하지만 학습 데이터를 음소 단위로 쪼개어 사용하지 않기 때문에 키워드 전체가 포함된 학습용 음성 데이터가 많이 필요하다.

[ 그림 5 ] DNN을 이용한 핵심어 검출 시스템

 

 

참고

- 정대성 박종세, 카카오 정책산업 연구 : "헤이, 카카오!"를 불러야 하는 이유

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
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
글 보관함