음성인식기술의 일반적인 구성(Daum백과)


음성 인식 기술은 컴퓨터가 사람이 말하는 소리를 인식하여 해당 문자열로 바꾸는 기술이다. 사람의 말은 음소들의 시간적 배열로 볼 수 있다. 컴퓨터는 각 단어의 음소들의 배열을 ‘기준 패턴’으로 미리 저장해 두고, 이를 입력된 음성에서 추출한 ‘입력 패턴’과 비교하여 단어를 인식한다.


음성을 인식하기 위해서 먼저 입력된 신호에서 잡음을 제거한 후 음성 신호만 추출한다. 그런 다음 음성 신호를 하나의 음소로 판단되는 구간인 ‘음소 추정 구간’들의 배열로 바꾸어 준다. 그런데 음성 신호를 음소 단위로 정확히 나누는 것은 쉽지 않다. 이를 해결하기 위해 먼저 음성 신호를 일정한 시간 간격의 ‘단위 구간’으로 나누고, 이 단위 구간 하나만으로 또는 연속된 단위 구간을 이어 붙여 음소 추정 구간들을 만든다.


음성의 비교는 음소 단위로 이루어지는데 음소 추정 구간에 해당하는 음소를 알아내기 위해서 각 구간에서 ‘특징 벡터’를 추출한다. 각 음소 추정 구간에서 추출하는 특징 벡터는 1개이다. 특징 벡터는 음소를 구별하는 데 필요한 정보를 수치로 나타낸 것으로, 음소 추정 구간의 길이에 상관없이 1개로만 추출된다. 특징 벡터는 음소의 특성을 잘 나타내는 정보들을 이용하지만 사람마다 다른 특성을 보이는 정보는 사용하지 않는다. 사용하는 정보의 가짓수가 많을수록 음소를 더 정확하게 인식할 수 있지만 그만큼 필요한 연산량이 많아져 처리 시간은 길어진다.


음성을 인식하려면 ㉠ 입력 패턴의 특징 벡터와 기준 패턴의 특징 벡터를 비교해야 한다. 이를 위해서 음소 추정 구간이 비교 하려는 기준 패턴의 음소 개수와 동일한 개수가 되도록 단위 구간을 조합한다. 그리고 각 음소 추정 구간에서 추출된 특징 벡터를 구간 순서대로 배열하여 입력 패턴을 생성한다.


예를 들어 ㉡ 입력된 음성 신호를 S₁ , S₂ , S₃ 3개의 단위 구간 으로 나눈 경우를 생각해 보자. 만일 비교하려는 기준 패턴의 음소가 3개라면 3개의 음소 추정 구간으로부터 입력 패턴이 구성되어야 하므로 [S₁ , S₂ , S₃ ]의 음소 추정 구간 배열을 설정하고, 이로부터 입력 패턴을 생성한다. 그런 다음 이것을 순서대로 기준 패턴의 음소와 일대일 대응시키고 각각의 특징 벡터의 차이를 구한 뒤 이것들을 모두 합하여 ‘패턴 거리’를 구한다. 만일 기준 패턴의 음소가 2개라면 3개의 단위 구간을 조합하여 [S₁ , S₂ ~S₃ ], [S₁ ~S₂ , S₃ ]로 2개의 음소 추정 구간 배열을 설정하고, 이로부터 입력 패턴을 생성한다. 이와 같이 1개의 기준 패턴에 대해 여러 개의 입력 패턴이 만들어질 수 있는 경우에는 ⓐ 생성 가능한 입력 패턴과 기준 패턴 사이의 패턴 거리를 모두 구하고, 그중의 최솟값을 그 기준 패턴에 대한 패턴 거리로 정한다. 만일 기준 패턴의 음소가 3개보다 크면 두 패턴을 일대일로 대응시킬 수 없으므로 비교가 불가능하다.


단위 구간의 시간 간격을 짧게 하여 그 개수를 늘리면 음소 추정 구간을 잘못 설정하여 발생하는 오류를 줄일 수 있다. 하지만 연산량이 많아져 처리 시간은 길어진다.


이와 같은 방법으로 컴퓨터에 저장된 모든 기준 패턴에 대해 패턴 거리를 구하고 그중 최솟값이 되는 기준 패턴을 선정한다. 최종적으로, 이 기준 패턴에 해당하는 문자열을 입력된 음성 신호에 대해 인식된 단어로 출력한다.