KR100324453B1 - 음성 인식 시스템에서 역추적 매트릭스 저장 방법 - Google Patents
음성 인식 시스템에서 역추적 매트릭스 저장 방법 Download PDFInfo
- Publication number
- KR100324453B1 KR100324453B1 KR1020000008391A KR20000008391A KR100324453B1 KR 100324453 B1 KR100324453 B1 KR 100324453B1 KR 1020000008391 A KR1020000008391 A KR 1020000008391A KR 20000008391 A KR20000008391 A KR 20000008391A KR 100324453 B1 KR100324453 B1 KR 100324453B1
- Authority
- KR
- South Korea
- Prior art keywords
- state
- frame
- pronunciation
- frames
- memory
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 27
- 239000011159 matrix material Substances 0.000 title claims description 8
- 230000007704 transition Effects 0.000 claims abstract description 45
- 238000012549 training Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 239000013598 vector Substances 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000004083 survival effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B01—PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
- B01D—SEPARATION
- B01D35/00—Filtering devices having features not specifically covered by groups B01D24/00 - B01D33/00, or for applications not specifically covered by groups B01D24/00 - B01D33/00; Auxiliary devices for filtration; Filter housing constructions
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/12—Speech classification or search using dynamic programming techniques, e.g. dynamic time warping [DTW]
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B01—PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
- B01D—SEPARATION
- B01D2201/00—Details relating to filtering apparatus
- B01D2201/31—Other construction details
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65F—GATHERING OR REMOVAL OF DOMESTIC OR LIKE REFUSE
- B65F1/00—Refuse receptacles; Accessories therefor
- B65F1/14—Other constructional features; Accessories
Landscapes
- Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Chemical Kinetics & Catalysis (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Chemical & Material Sciences (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Mobile Radio Communication Systems (AREA)
- Machine Translation (AREA)
- Telephonic Communication Services (AREA)
Abstract
음성 발음을 나타내는 신호를 발생하는 음성 인식 시스템 (204, 206, 207, 208)이 포함된 디바이스(100)가 제공된다. 발음은 그 발음을 나타내는 프레임 (frame)(Ft)으로 나뉜다. 프레임은 정렬 알고리즘 (alignment algorithm)을 사용해 상태 (state)(S1-S5)에 할당된다. 프레임 대 상태 할당을 나타내는 경로는 각 상태로의 상태 전이를 식별하는 상태 전이 종류를 사용해 메모리(110)에 저장된다.
Description
본 출원은 음성 인식에 관한 것으로, 특히 음성 인식 시스템을 위한 역추적 격자 정보(traceback lattice information)를 저장하는 방법에 관한 것이다.
발성자에 의존하는 음성 인식 시스템에서는 사용자가 그 시스템을 사용할 때 이용가능하길 원하는 어휘 단어를 등록시켜야만 한다. 어휘 '단어(word)'는 단일의 발성 단어 또는 짧은 관용구가 될 수 있고, 선택되는 어휘 단어는 특정한 응용에 의존한다. 예를 들어, 휴대용 무선전화기에 대한 음성 인식 실시는 사용자가 자주 호출되는 사람의 명칭이나 위치(예를 들면, '프레드의 사무실'), 또는 사용자 인터페이스에서 항상 이용가능한 자주 사용되는 특성에 대한 명령(예를 들면, '배터리 표시(battery meter)', '메시지(messages)', 또는 '잠금 기능(phone lock)')을 제공하도록 요구한다.
등록 과정 동안, 음성 인식 시스템은 각 어휘 단어에 대한 표시 템플레이트 (template)를 유도하도록 사용자의 입력에 응답한다. 일부 시스템에서, 이러한 템플레이트는 일련의 상태(state)로 구성되는 히든 마르코브 모델(hidden Markov model, HMM)로 나타내진다. 각 상태는 한정된 음성 발음부를 나타내고; 여기서 사용되는 발음은 하나 이상의 단어로 구성될 수 있는 '어휘 단어(vocabulary word)'를 칭한다. HMM의 각 상태를 통계적으로 표시하는 것은 사용자에 의해 발음된 특정한 어휘 단어의 등록 음성 샘플들을 하나 이상 사용해 계산된다. 이는 프레임 대 상태(frame-to-state) 지정을 통해 이루어진다.
이러한 상태 지정은 동작의 트레이닝(training) 및 음성 인식 모드에 대해 모두 사용된다. 특히, 지정된 상태는 음성 인식 모드 동안 비교 기준으로 사용되는 트레이닝 모드에서의 모델을 생성하는데 사용된다. 동작의 음성 인식 모드에서 입력 발음에 대한 지정은 스코어 정보를 발생하고 입력 발음을 저장된 기준 모델에 비교하는데 사용될 수 있다.
비터비 알고리즘(Viterbi algorithm)과 같은 정렬 알고리즘은 발음에 대한 프레임 대 상태 정렬에 사용된다. 모델에 대한 음성 발음의 최상 정합을 제공하는이 정렬 알고리즘은 어휘 단어 발음의 각 프레임을 각각의 모델 상태에 지정하는데 사용된다. 이 지정을 사용해, 각 상태에 대한 통계적인 표시는 개량될 수 있다.
프레임 정렬 동안에는 모델에서 상태와의 발음 프레임의 최적 정합을 찾음으로서 '경로(path)'가 정의된다. 이를 위해, 모든 프레임에서 HMM의 각 상태에 대해 평가가 실행된다. 이 평가 부분은 프레임 t까지 관찰 음성이 주어진다고 가정할 때, 소정의 상태에 이르는 상태들 중에서 어느 것이 프레임 t-1에 최상이었나를 결정한다. 전체적으로 연결된 HMM에서, 임의의 상태는 임의의 다른 상태로 전이될 수 있다. 그러므로, 각 상태로 N(N은 상태의 수)개의 경로가 가능하다.
이 기술을 사용할 때는 정렬 알고리즘 동안 모델에서 어느 음성 프레임이 각 상태에 맵핑(mapping)되는가를 추적할 필요가 있다. 종래 기술의 방법은 모든 프레임에 대한 정보를 저장하여 모든 상태로의 최상의 경로를 열거하기 위해 역추적 매트릭스(traceback matrix)라 칭하여지는 어레이를 사용한다. 이는 통상적으로 N x T 크기의 어레이를 요구한다. 여기서 N은 모델에서 상태의 수이고, T는 발음에서 프레임의 최대수이다. N이 20이고 T가 300인 경우, 이러한 실시는 6000 단어의 메모리를 요구한다.
랜덤 액세스 메모리(RAM)가 거의 이용가능하지 못한 무선 통신 디바이스와 같은 휴대용 디바이스에서 발성자에 의존하는 트레이닝 알고리즘을 실시하기 위해, 역추적 정보를 저장하는데 사용되는 기술은 요구되는 메모리를 최소화할 필요가 있다. 따라서, 더 작은 메모리로 HMM을 트레이닝하는데 필요한 역추적 정보를 저장할 수 있는 방법이 필요하다.
랜덤 액세스 메모리(RAM)가 거의 이용가능하지 못한 무선 통신 디바이스와 같은 휴대용 디바이스에서 발성자에 의존하는 트레이닝 알고리즘을 실시하기 위해, 역추적 정보를 저장하는데 사용되는 기술은 요구되는 메모리를 최소화할 필요가 있다. 따라서, 더 작은 메모리로 HMM을 트레이닝하는데 필요한 역추적 정보를 저장할 수 있는 방법이 필요하다.
도 1은 무선 전화기를 설명하는 블록도 형태의 회로도.
도 2는 도 1에 따른 무선 전화기에서 음성 인식 회로에 대한 입력 회로를 설명하는 블록도 형태의 회로도.
도 3은 프레임으로 분할된 2개의 연관된 음성 발음을 갖는 좌우측 히든 마르코브 모델 (hidden Markov Model)을 설명하는 도면.
도 4는 스킵 전이가 허용되지 않은 좌우측 모델에서 가능한 모든 상태 전이 경로와 연관된 역추적 격자 (traceback lattice)를 설명하는 도면.
도 5는 상태 전이 종류를 사용해 기록된 역추적 경로에 대한 상태 전이 경로의 메모리 어레이 (memory array).
도 6은 정렬 알고리즘에서 정보의 저장을 설명하는 흐름도.
도 7은 최상의 경로를 위해 프레임 대 상태 정렬을 발생하는 동작을 설명하는 흐름도.
도 8은 도 4에 대응하는 좌우측의 스킵이 없는 HMM을 설명하는 도면.
도 9는 상태 스킵을 수용하기 위해 도 6의 흐름도에서 사용될 수 있는 부분적인 흐름도.
도 10은 상태 스킵을 수용하기 위해 도 7의 흐름도에서 사용될 수 있는 부분적인 흐름도.
〈도면의 주요 부분에 대한 부호의 설명〉
100 : 디바이스
102 : 전송기
104 : 수신기
106 : 안테나
108 : 호출 프로세서
110 : 메모리
112: 오디오 회로
114 : 마이크로폰
116 : 디스플레이 프로세서
음성 인식을 위한 역추적 매트릭스(traceback matrix) 업데이트 및 저장에 대한 방법이 설명된다. 발성자에 의존하는 등록 과정 동안, 사용자는 등록되는 하나 이상의 음성 발음 반복을 제공한다. 이러한 발음 각각은 프레임 정렬 과정을 사용해 현존하는 히든 마르코브 모델에 대해 정합된다. 이 과정이 실행될 때, 발음내의 단시간 분석 프레임과 모델의 상태 사이의 연관을 기록하는 효과적인 방법은 각 상태 및 프레임에 대해 전이 종류를 저장함으로서 이루어진다.
도 1에서는 본 발명이 유리하게 사용될 수 있는 디바이스(100)가 설명된다. 디바이스(100)는 여기서 설명을 위해 휴대용 무선전화기인 것으로 설명되지만, 컴퓨터, 개인용 디지털 보조기, 또는 음성 인식을 유리하게 사용할 수 있는 다른 디바이스, 특히 메모리 효율성 음성 인식 시스템을 잘 이용할 수 있는 디바이스가 될 수 있다. 도시된 무선전화기는 안테나(106)에 연결된 전송기(102) 및 수신기(104)를 포함한다. 전송기(102) 및 수신기(104)는 호출 처리 기능을 실행하는 호출 프로세서(108)에 연결된다. 호출 프로세서(108)는 디지털 신호 프로세서(DSP), 마이크로프로세서, 마이크로제어기, 프로그램가능한 논리 유닛, 상기를 둘 이상 조합한 것, 또는 다른 적절한 디지털 회로를 사용해 실시될 수 있다.
호출 프로세서(108)는 메모리(110)에 연결된다. 메모리(110)는 RAM, EEPROM (electronically erasable programmable read only memory), ROM(read only memory), 플래쉬(flash) ROM, 또는 이들 메모리 종류를 둘 이상 조합한 것을 포함한다. 메모리(110)는 음성 인식 동작을 포함하여 호출 프로세서(108)의 동작을 지지하고, 이후 더 상세히 설명될 상태 전이 경로 메모리(state transition path memory)를 지지하도록 전자적으로 변경가능한 메모리를 포함하여야 한다. ROM은 디바이스 운영 프로그램을 저장하도록 제공될 수 있다.
오디오 회로(112)는 마이크로폰(114)으로부터 호출 프로세서(108)로 디지털화된 신호를 제공한다. 오디오 회로(112)는 호출 프로세서(108)로부터의 디지털 신호에 응답해 스피커(116)를 구동시킨다.
호출 프로세서(108)는 디스플레이 프로세서(120)에 연결된다. 디스플레이 프로세서는 디바이스(100)에 추가 프로세서 지지를 원하는 경우 선택적인 것이다. 특히, 디스플레이 프로세서는 디스플레이(126)에 디스플레이 제어 신호를 제공하고 키(key)(124)로부터 입력을 수신한다. 디스플레이 프로세서(120)는 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서, 프로그램가능한 논리 유닛, 또는 그들의 조합을 사용해 실시될 수 있다. 메모리(122)는 디지털 논리를 지지하도록 디스플레이 프로세서에 연결된다. 메모리(122)는 RAM, EEPROM, 플래쉬 ROM, 또는 이들 메모리 종류를 둘 이상 조합한 것을 사용해 실시될 수 있다.
도 2를 참고로, 마이크로폰(114)에 의해 수신되는 오디오 신호는 오디오 회로(112)의 아날로그 대 디지털 변환기(202)에서 디지털 신호로 변환된다. 종래 기술에 숙련된 자는 오디오 회로(112)가 간략하도록 여기서 설명되지 않은 필터링과 같은 추가 신호 처리를 제공함을 인식하게 된다. 호출 프로세서(108)는 마이크로폰(114)에 의해 출력된 아날로그 신호를 처리한 디지털 신호에 대해 특성 추출(204)을 실시하고, 사용자 발음을 나타내는 특성 벡터 세트를 만든다. 특성 벡터는 각 단시간 분석 윈도우(short time analysis window)에 대해 만들어진다. 여기서 설명되는 예에서는 단시간 분석 윈도우가 20 ms인 프레임이다. 그래서, 프레임 당 하나의 특성 벡터가 있다. 프로세서(108)는 음성 인식(206)이나 트레이닝 (training)(207)에 그 특성을 사용한다.
트레이닝에서, 발음에 대한 특성 벡터는 메모리(208)에 저장되는 HMM 형태의 템플레이트(template)를 생성하는데 사용된다. 음성 인식에서, 입력 발음을 나타내는 특성 벡터는 사용자가 말한 것을 결정하도록 메모리(208)에 저장된 어휘 단어의 템플레이트에 비교된다. 시스템은 최상의 정합, 최상 정합의 세트, 또는 선택적으로 비정합을 출력할 수 있다. 메모리(208)는 양호하게 메모리(110) (도 1) 중에서 비휘발성 메모리 부분으로, 예를 들면 EEPROM 또는 플래쉬 ROM이 될 수 있다. 여기서 사용되는 바와 같이, '단어'는 'John Doe'와 같이 하나 이상의 단어이거나 'call'과 같이 단일 단어가 될 수 있다.
상기에 간략하게 기술된 바와 같이, 메모리(208)에 저장된 어휘 단어는 트레이닝 모드에서 생성된다. 예를 들면, 저장된 어휘 단어는 초기에 각각의 특성 벡터로 구성된 발음(U1 및 U2) (도 3)의 두 트레이닝 신호로부터 각각 유도된다. 발음(U1)은 트레이닝 동안 발성자가 특정한 단어를 처음 말할 때 저장된 신호를 나타낸다. 발음(U2)는 트레이닝 동안 발성자가 특정한 단어를 두번째로 말한 신호를 나타낸다. 도시된 예에서, 발음(U1)은 발음(U2)과 다른 길이이다. 종래 기술에 숙련된 자는 더 많거나 적은 발음이 사용될 수 있는 것으로 인식하게 된다.
발음(U1 및 U2)이 다른 길이를 갖는 반면, 프레임은 똑같은 길이를 갖기 때문에, 각 발음이 프레임으로 나타내질 때, 다른 길이를 갖는 발음(U1 및 U2)은 유사하게 다른 수의 프레임을 갖게 된다. 다수의 프레임(Ft)이 발음을 구성한다. 일반적으로 발음은 (Ft) (여기서, t는 1 내지 T)로 식별되지만, 도 3의 표시에서는 발음의 프레임이 표시 (Fab) (여기서, a는 발음 번호이고, b는 프레임 번호)로 식별된다. 특별히, 발음(U1)은 10개의 프레임을 갖는다: 즉, F11, F12, F13, F14, F15, F16, F17, F18, F19, 및 F110. 발음(U2)은 12개 프레임을 갖는다: 즉, F21, F22, F23, F24, F25, F26, F27, F28, F29, F210, F211, 및 F12. 예를 들면, 각 프레임은 20 ms 의 사운드를 나타내는 특성을 갖는다.
특성 벡터는 종래의 방식으로 발생된다. 예를 들면, 특성 벡터는 A/D 변환기(202) (도 2)의 출력으로부터 발생되는 켑스트럼(cepstrum) 및 델타-켑스트럼 (delta-cepstrum) 특성을 포함한다.
도 3을 참고로, 먼저, 상태 1(S1)은 발음(U1)의 프레임(F11, F12) 및 발음(U2)의 프레임(F21, F22)으로부터 형성된다. 이들 프레임 값은 초기에 상태 1의 통계적인 표시를 구성하는 매개변수 중 일부 또는 그 모두를 계산하는데 사용된다. 바람직한 실시예에서, 통계적인 표시는 발음(U1) 및 발음(U2)으로부터의 프레임의 평균이다. 그래서, 상태 1은 초기에 발음(U1)의 프레임(F11, F12)과 발음(U2)의 프레임(F21, F22)의 평균으로 설정된다. 종래 기술에 숙련된 자는 분산이 또한 상태에 포함될 수 있음을 이해하게 된다. 다른 상태의 통계적인 표시도 또한 발생된다. 제2 상태(S2)는 발음(U1)의 프레임(F13, F14)과 발음(U2)의 프레임(F23, F24)의 평균이다. 상태(S3)는 유사하게 발음(U1)의 프레임(F15, F16)과 발음(U2)의 프레임(F25, F26)의 평균이다. 상태(S4)는 발음(U1)의 프레임(F17, F18)과 발음(U2)의 프레임(F27, F28, F29)의 평균이다.
상기에 예시화된 바와 같이, 발음(U2)에서 여분의 프레임은 마지막 두 상태에 할당된다. 제2 발음이 하나의 여분 프레임만을 가지면, 최종 상태만이 여분 프레임을 갖게 된다. 제2 발음이 3개의 여분 프레임을 가지면, 마지막 세 상태 각각에 여분 프레임이 할당된다. 유사하게, 제1 발음이 여분 프레임을 가지면, 예를 들어 4개의 여분 프레임을 가지면, 마지막 4개 상태는 각각 여분 프레임을 갖게 된다. 어느 한 발음이 다른 발음 보다 5개 더 많은 프레임을 가지면, 각 상태는 더 많은 프레임을 갖는 발음으로부터 3개 프레임을 수신하고 더 적은 프레임을 갖는 발음으로부터 2개 프레임을 수신한다.
상기의 프레임 할당은 프레임이 초기에 할당되는 방법과 상태의 통계적인 표시가 형성될 수 있는 방법의 예로 제공된다. 그러나, 종래 기술에 숙련된 자는 상태의 초기 할당 및 상태의 통계적인 표시에 대해 모두 다수의 다른 방법이 존재함을 인식하게 되므로, 본 발명이 상기 환경에 제한되는 것으로 의도되지 않는다.
예에서는 발음의 길이에 관계없이 5개 상태가 사용된다. 종래 기술에 숙련된 자는 임의의 수의 상태가 사용될 수 있음을 인식하게 되고, 각 발음에 대해 10개 이상의 상태가 사용되는 것으로 계획된다. 부가적으로, 상태의 수는 발음의 길이에 관계없이 고정되거나 발음의 길이에 의존할 수 있다. 나머지 논의는 길이에 관계없이 발음에 대해 5개의 상태를 사용하는 시스템에 대해 이루어진다.
일단 상태 (S1) 내지 (S5)가 발음(U1 및 U2)으로부터 프레임의 통계에서 생성되면, 히든 마르코브 모델이 생성된다. 호출 프로세서(108)는 생성된 HMM의 상태를 통해 각 발음을 운행하도록 정렬 알고리즘을 사용한다. 정렬은 상태의 통계적인 표시를 재평가하는데 사용될 수 있다. 특별히, 정렬 알고리즘은 도 4에 대해 일반적으로 설명될 바와 같이, 고려되는 각 경로에 대한 스코어를 근거로 임의의 점으로부터 최상의 역경로를 결정하도록 동작한다. 여기서 사용되는 점은 격자 (lattice)(400)에서 프레임 및 상태 위치이다. 경로는 점들을 통해 확장된다.
종래 기술에 숙련된 자는 격자(400) (도 4)가 8 프레임에 대해 상태 1 내지 5로부터 모든 역경로를 도시함을 인식하게 된다. 추가 제한은 프레임이 이전 프레임과 똑같은 상태 또는 이전 프레임의 상태 직후의 상태로 할당되어야 한다는 점이다 (상태는 스킵될 수 없다). 이는 음성 인식 시스템에서 상태에 대한 프레임의 할당과 일치하고, 데이터 경로를 기록하는데 필요한 역추적 정보의 양을 현저하게 줄인다. 모델내에서 상태에서 상태로의 가능한 경로의 이러한 제한은 음성 발음에서 음향적 사건의 순차적인 순서 본질에 도움이 된다. 일반적으로, HMM 상태 전이는 도 4에 도시된 바와 같이 사실상 좌-우가 되도록 제한되고, 여기서 특정한 상태 n으로 허용가능한 경로는 그 상태 (Sn에서 Sn으로의 '자체 루프(self loop)') 또는 선행하는 상태 (S(n-1)에서 Sn으로의 '단일 단계 전이')로부터 전해온다. 도 8은 좌-우의 스킵 없는 HMM을 설명한다. 이러한 HMM 설계는 많은 음성 인식 작업에 대해 효과적인 것으로 증명되었다. 본 발명은 제한 상태 전이의 이러한 지식을 사용하여, 역추적 경로를 기록하는데 필요한 메모리의 크기를 현저하게 줄이는 역추적 매트릭스를 더 개선시킨다.
도 4의 격자(400)에서, 상태 전이 종류는 상태 사이에 허용되는 각 경로와 연관된다. 상태 전이 종류 1은 자체 루프에 할당되고, 상태 전이 종류 0은 상태 변화에 할당된다. 이 모델에서는 스킵 상태가 나타내질 수 있지만, 단일 비트가 3개 이상의 전이 종류를 구별할 수 없기 때문에, 둘 이상의 비트 상태 전이 종류 표시자를 요구하게 된다. 어떠한 경우에서든, n-비트 심볼의 어레이가 비터비 정렬 알고리즘(Viterbi alignment algorithm)과 같은 정렬 알고리즘을 사용해 계산되는 경로 정보를 기록하는데 사용되므로, 상태 전이 종류를 사용하는 것은 경로를 저장하는데 요구되는 메모리 크기를 상당히 감소시키게 된다. 종래 기술에 숙련된 자는 종래 역추적 매트릭스 저장 구조에서 이전 상태를 식별하는데 8 내지 16 비트가 사용되는 반면, n은 1 또는 2 비트 정도로 작음을 인식하게 된다.
한 예로, 프레임 5(도 4의 수평축에서 번호 5)에 대한 비터비 알고리즘은 프레임 5에서 각 상태(상태 1(S1), 상태 2(S2), 상태 3(S3), 상태 4(S4), 및 상태 5(S5))로부터 최상의 역경로(즉, 최상의 스코어를 제공하는 각 상태로부터의 역경로)를 결정한다. 특별히, 알고리즘은 점 A로부터의 역경로에 대해, 처음 5개 프레임 모두에서 경로가 상태 1을 통해 놓이는 확률을 나타내는 확률 또는 스코어를 고려한다. 이는 현재 프레임이 이전 프레임과 똑같은 상태이거나 이전 프레임의 상태 보다 하나 더 높은 상태이어야 한다는 조건 때문에 필요하다.
알고리즘은 점 B에 대해 점 G를 통과하는 점 B로부터의 역경로와 연관된 스코어 및 점 H를 통과하는 점 B로부터의 역경로에 대한 스코어를 발생한다. 점 C에 대해, 비터비 알고리즘은 점 H를 통과하는 점 C로부터의 경로와 연관된 스코어 및 점 I를 통과하는 점 C로부터의 역경로와 연관된 스코어를 발생한다. 점 D에 대해, 비터비 알고리즘은 점 I를 통과하는 점 D로부터의 역경로와 연관된 스코어 및 점 J를 통과하는 점 D로부터의 역경로와 연관된 스코어를 고려한다. 점 E에 대해, 비트비 알고리즘은 점 J를 통과하는 점 E로부터의 역경로와 연관된 스코어 및 점 K를 통과하는 점 E로부터의 역경로와 연관된 스코어를 발생한다. 스코어를 계산한 이후에, 각 상태에 대해 가장 높은 스코어를 제공하는 경로 전이 종류는 프레임 5의 각 상태로의 경로로 저장된다.
비록 본 발명은 상태로의 전이를 최대 2n개 허용하는 좌-우측 모델에 적용가능하지만, 설명되는 실시예에서는 단 2개의 전이 종류만이 허용가능하다: 자체 루프 및 단일 단계 전이. 여기서, 역추적 매트릭스 메모리는 두가지 가능한 전이 중 어느 것이 취해졌는가를 기록하는 이진수 플래그(flag)의 어레이(500) (도 5)이다. 두가지 가능한 경로는 자체 루프를 나타내는 0과 더 낮은 상태에서 더 높은 상태로의 단계를 나타내는 0이 된다. 본 실시예는 상태를 스킵할 수 없는 인접한 프레임과 시간상으로 나중에 있는 프레임이 이전 프레임의 상태 보다 더 낮은 상태에 있을 수 없다는 요구조건에 의해 가능한 경로의 수가 제한되는 경우 특히 유리하다.
도 5의 메모리 어레이(500)는 5가지의 가능한 상태를 갖는 8개 프레임에 대한 매트릭스를 통해 경로를 나타낸다. X 위치는 무정의(don't care) 상황을 나타낸다. 프레임 8로부터의 역경로에서, 상단 위치 모서리에 있는 상태 S5, 0은 상태 5까지의 생존 경로가 프레임 7, 상태 S4를 통과하였음을 나타낸다. 상태 4, 프레임 7의 0은 경로가 프레임 6, 상태 S3을 통과함을 나타낸다. 프레임 6, 상태 3의 0은 경로가 프레임 5, 상태 S2를 통과함을 나타낸다. 프레임 5, 상태 S2의 1은 경로가 프레임 4, 상태 S2를 통과함을 나타낸다. 프레임 4, 상태 S2의 0은 경로가 프레임 3, 상태 S1을 통과함을 나타낸다. 경로는 또한 처음 2 프레임에서 상태 S1을 통과한다. 프레임 8, 상태 S4, S3, S2, 및 S2 각각으로의 생존 경로는 똑같은 방법을 사용해 유사하게 추적될 수 있다. 이러한 방식으로, 메모리(110)의 RAM에 저장된 이진수는 정렬 알고리즘의 생존 경로를 나타내는데 사용될 수 있음을 볼 수 있다.
이제는 메모리(110)에서의 프로세서(108) 저장 동작이 도 6을 참고로 설명된다. 먼저, 블록(602)에 나타내지는 바와 같이 제1 프레임의 상태가 설정된다. 제1 상태는 1로 설정되고, 프레임 1에 대한 상태 2 내지 5는 가능하지 않은 상태로 무시될 수 있는 무정의 상태인 X이다. 블록(604)에 나타내지는 바와 같이, 프레임 카운터는 2로 설정되고 상태 카운터는 1로 설정된다.
현재의 프레임과 상태에서(도 4의 격자(400)에서 한 점인), 프로세서(108)는 블록(606)에 나타내지는 바와 같이 이전 프레임의 상태 SN를 통한 현재 프레임의 상태 SN으로부터의 역경로인 자체 루프(self loop)에 대해 스코어를 계산한다. 스코어는 또한 블록(608)에 나타내지는 바와 같이 이전 프레임의 상태 SN-1를 통한 현재 프레임의 상태 SN으로부터의 역경로인 상태 전이(state transition)에 대해서도 유도된다.
프로세서(108)는 단계(610)에서 자체 루프 또는 상태 전이가 더 나은 스코어를 갖는가 여부를 결정한다. 자체 루프가 더 나은 스코어를 가지면, 1의 상태 전이 종류는 블록(612)에 나타내지는 바와 같이 현재 상태 및 프레임(즉, 현재 프레임의 상태 SN)에 대해 메모리(10)의 RAM에 저장된다. 그렇지 않은 경우에는 블록(614)에 나타내지는 바와 같이 1이 상태 전이로 메모리(110)의 RAM에 저장된다.
상태 카운터는 블록(616)에 나타내지는 바와 같이 증가된다. 프로세서는 결정 블록(618)에서 현재 프레임의 모든 상태에 대해 전이 종류가 계산되었나 여부를 결정한다. 마지막 상태가 계산되지 않았으면, 프로세서는 블록(606)에서 시작되는 다음 상태의 전이 종류를 계산하도록 단계(608)로 복귀한다.
결정 블록(618)에서 현재 프레임의 마지막 상태가 고려된 것으로 결정되면, 프로세서(110)는 블록(620)에 나타내지는 바와 같이 프레임 카운터를 증가시키고상태 카운터를 1로 재설정한다. 이어서, 프로세서는 방금 고려된 프레임이 마지막 프레임이었나 여부를 결정한다. 그렇지 않으면, 프로세서는 다음 프레임에 대한 상태 할당 처리를 시작하도록 단계(606)로 복귀한다.
블록(622)에서 방금 고려된 프레임이 발음의 마지막 프레임이었던 것으로 결정되면, 프로세서(110)는 모델이 현재 트레이닝 중인 경우 최상의 스코어를 갖는 경로를 상태 할당 모델로 변환하여야 한다. 인식하는 동안에는 스코어만이 사용된다. HMM으로의 경로 변환은 블록(702)에 나타내지는 바와 같이 최종 상태, 최종 프레임으로부터 뒤쪽으로 작업하고 그 상태에 대한 전이 종류를 출력함으로서 초기화된다. 프로세서(110)는 단계(704)에서 전이 종류가 자체 루프인가 여부를 결정한다. 자체 루프이면, 이전 프레임 상태는 블록(708)에 나타내지는 바와 같이 현재 프레임과 똑같은 상태로 설정된다. 그렇지 않은 경우에는 블록(706)에 나타내지는 바와 같이 이전 프레임 상태가 다음 낮은 상태로 설정된다.
단계(709)에서, 거주 시간을 추적하기 원하는 경우에는 상태 거주 시간 또는 기간 카운터가 증가된다. 선택적으로 주어지는 이 카운터가 제공되면, 단계(706)는 처음으로 상태에 들어갈 때 상태 거주 시간 카운터를 1로 초기화하고, 각 상태에 대해 카운터가 제공된다.
단계(710)에서, 프로세서(108)는 프레임 카운터를 감소시킨다. 블록(712)에 나타내지는 바와 같이, 단계 (704, 706, 708)에서 식별된 이전 프레임 상태는 이전 프레임에 대해 저장되고, 점, 프레임, 및 상태와 연관된 상태 전이 종류가 출력된다. 프레임 상태 출력이 제1 프레임이 아니면, 프로세서는 결정 블록(704)으로 복귀한다. 결정 블록(714)에서 제1 프레임 상태가 저장된 것으로 결정되면, 블록(716)에 나타내지는 바와 같이, 상태 지정 모델이 완료된다. 상태 지정 모델은 적절한 상태에 프레임의 특성을 할당하는 것을 포함한다. 이 정보는 트레이닝을 위해 저장되거나 저장된 모델을 업데이트하는데 사용될 수 있다.
이제는 상태 S를 갖는 제1 차원과 음성 프레임 F을 갖는 제2 차원(어레이의 크기가 N x T인)의 2차원 어레이 L에 대해 의사 코드(pseudo code) 실시가 설명된다. 또한, 동일 상태 전이(자체 루프)를 나타내는 심볼 1과 이전 상태로부터의 전이를 나타내는 심볼 0이 정의된다. 두가지의 가능한 심볼만이 있으므로, 그 저장을 위해서는 개별 비트가 사용된다. 비터비 정렬을 실행할 때, 전이를 기록하기 위해서는 다음의 알고리즘이 사용될 수 있다:
For 모든 음성 프레임 (t = 1 내지 T)
For HMM의 모든 상태 (S = 1 내지 N)
If 상태 s로의 최상 경로가 상태 s로부터 주어지면,
L[s][t] = 1
Else (최상 경로가 이전 상태로부터 주어져야 하면),
L[s][t] = 0
End If
End For 모든 상태
End For 모든 음성 프레임.
트레이닝 동안, 정렬의 목적은 일반적으로 발음의 각 프레임에 대해 상태 지정을 찾는 것이다. 상태의 지정을 어레이 A[t]에 기록하기 원하면, 이 지정은 다음과 같이 전이 매트릭스 L로부터 쉽게 회복될 수 있다:
상태 s를 최종 상태 N으로 초기화
For 모든 음성 프레임, 마지막으로부터 시작되어 (t = T 내지 1)
A[t] = s
If L[s][t] = 0,
s = s - 1
End If
End For 모든 음성 프레임.
앞서 기술된 바와 같이, 상기 알고리즘은 상태 스킵이 허용되지 않은 간략화된 경우에 가장 잘 동작한다. 상태 스킵이 허용되면, 어레이 L에 대해 또 다른 심볼이 추가될 필요가 있어, 이 어레이에 대한 저장 요구조건과 단계(606, 608)의 스코어 계산 회수를 증가시키게 된다.
정렬 처리 동안에는 또한 특정한 상태가 차지된 프레임의 수를 추적하는 것이 유용할 수 있다. 이 정보는 여기서 참고로 포함되고 Daniel Poppert의 이름으로 이와 같은 날짜에 출원된 현재 진행중인 특허 출원 docket number CS10104, '음성 인식 시스템과 연관되는 확률에 불이익을 선택적으로 지정하는 방법(METHOD OF SELECTIVELY ASSIGNING A PENALTY TO A PROBABILITY ASSOCIATED WITH A VOICE RECOGNITION SYSTEM)'에서 설명된 바와 같이 상태 기간 불이익을 할당하는데 사용될 수 있다. 이 거주 정보는 어레이 L에서 완전하게 표시된다. 상태 s가 시간 t에 차지된 프레임의 수 D[s][t]는 다음과 같이 찾을 수 있다:
D[s][t]를 1로 초기화
While (L[s][t] - D[s][t] = 1)
D[s][t]를 증가
End While.
설명된 인식 시스템은 단일 비트 플래그의 간단한 어레이를 사용해 역추적 정보의 메모리 자취를 감소시킨다. 도 4에 도시된 바와 같이, 상태 스킵을 허용하지 않는 HMM의 간단한 경우에 대해 주로 시도되었지만, 이는 메모리 비용을 증가시켜 보다 일반적인 경우에 대해 확장될 수 있다.
도 6의 흐름도는 블록(608) 내지 (614)에 도 9를 대치시킴으로서 상태 스킵을 수용하도록 수정될 수 있다. 특별히, 스킵 스코어 Pskip은 블록(609)에서 계산된다. 자체 루프가 블록(610)에서 최상의 스코어를 갖는 것으로 결정되면, 블록(614)에 나타내지는 바와 같이, RAM(208)에는 11(2개의 이진수 비트)이 저장된다. 블록(610)의 'no' 결정에 이어서, 프로세서(108)는 PD가 Pskip보다 나은가 여부를 결정한다. 단일 단계가 최상의 스코어와 연관된 것으로 결정되면, 블록(614)에 나타내지는 바와 같이, RAM(208)에는 00(2개의 이진수 비트)이 저장된다. 상태 스킵이 최상의 스코어를 갖는 것으로 결정되면, 단계(613)에 나타내지는 바와 같이, RAM에는 10이 저장된다. 도 7은 도 10에 도시된 바와 같이, 단계(705, 707)를 부가하고 단계(704)를 수정함으로서 스킵을 수용하도록 수정될 수 있다. 특별히,단계(704)는 자체 루프인 전이 종류 11을 찾는다. 자체 루프인 전이 종류가 아니면, 프로세서는 단계(705)에서 이것이 단일 상태 단계를 나타내는 00인가를 보도록 점검한다. 그렇지 않으면, 프로세서(108)는 단계(707)에 나타내지는 바와 같이, 현재 프레임 보다 두 상태 더 낮은 이전 프레임을 식별한다. 그렇지 않은 경우에는 프로세서가 이것을 단일 단계로 다룬다.
종래 기술에 숙련된 자는 유사한 처리 확장에 의해 추가 상태 스킵이 수용될 수 있음을 인식하게 된다. 각 상태/프레임에 대해 저장된 실제 비트수는 허용되는 스킵의 수에 의존하게 된다.
비록 상기의 설명과 도면에서 본 발명이 설명되고 도시되었지만, 이 설명은 단지 예이고 본 발명의 진정한 의도 및 범위에서 벗어나지 않고 종래 기술에 숙련된 자에 의해 다양한 변화 및 수정이 이루어질 수 있는 것으로 이해되어야 한다. 비록 본 발명이 셀룰러 무선전화기와 같은 휴대용 무선 디바이스에서 특정한 응용을 찾고 있지만, 본 발명은 호출기, 전자 수첩, 컴퓨터, 및 전화 장비를 포함하여 음성 인식을 사용하는 디바이스에 적용될 수 있다. 본 발명은 다음의 청구항에 의해서만 제한되어야 한다.
Claims (10)
- 음성 발음을 수신하는 단계;음성 발음을 나타내는 신호를 발생하는 단계;발음을 나타내는 신호를 프레임(frame)으로 나누는 단계;정렬 알고리즘(alignment algorithm)을 사용해 프레임을 상태(state)에 할당하는 단계; 및각 상태로의 상태 전이(state transition)를 식별하는 상태 전이 종류를 각 상태에 대해 메모리에 저장함으로서 프레임 대 상태 할당을 나타내는 경로를 저장하는 단계를 포함하는 것을 특징으로 하는 음성 인식 방법.
- 제1항에 있어서,메모리는 각 상태에 대해 그 상태로의 최상 경로를 저장하는 것을 특징으로 하는 음성 인식 방법.
- 제1항에 있어서,상태 전이 종류는 이진수 신호로 나타내지는 것을 특징으로 하는 음성 인식 방법.
- 제3항에 있어서,이진수 신호는 단일 논리 비트인 것을 특징으로 하는 음성 인식 방법.
- 제1항에 있어서,상태 전이 종류는 다수의 비트 신호로 나타내지는 것을 특징으로 하는 음성 인식 방법.
- 제1항에 있어서,상태 전이 종류를 사용해 프레임 대 상태 지정 기록을 발생하여 상태 지정 기록을 생성하는 단계를 더 포함하는 것을 특징으로 하는 음성 인식 방법.
- 제6항에 있어서,프레임 대 상태 정렬은 최종 프레임에서 시작하고 상태 전이 종류를 사용해 역경로를 추적함으로서 생성되는 것을 특징으로 하는 음성 인식 방법.
- 제6항에 있어서,상태 거주 시간을 회복하는 단계를 더 포함하는 것을 특징으로 하는 음성 인식 방법.
- 제8항에 있어서,상태 거주 시간은 상태 전이 정보로부터 유도되는 것을 특징으로 하는 음성 인식 방법.
- 제8항에 있어서,상태 거주 시간은 상태 지정 기록을 회복하도록 매트릭스를 역추적하면서 각 상태에 대해 자체 루프(self loop)의 수를 카운트함으로서 유도되는 것을 특징으로 하는 음성 인식 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US25755299A | 1999-02-23 | 1999-02-23 | |
US09/257,552 | 1999-02-23 | ||
US9/257,552 | 1999-02-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20000071365A KR20000071365A (ko) | 2000-11-25 |
KR100324453B1 true KR100324453B1 (ko) | 2002-02-27 |
Family
ID=22976749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020000008391A KR100324453B1 (ko) | 1999-02-23 | 2000-02-22 | 음성 인식 시스템에서 역추적 매트릭스 저장 방법 |
Country Status (6)
Country | Link |
---|---|
JP (1) | JP2000242293A (ko) |
KR (1) | KR100324453B1 (ko) |
CN (1) | CN1149532C (ko) |
BR (1) | BR0000894A (ko) |
DE (1) | DE10006937C2 (ko) |
GB (1) | GB2347254B (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1297525A4 (en) * | 2000-05-04 | 2005-09-28 | Motorola Inc | METHOD FOR STORING MATRIX MEMORY OF ORIGINAL SEARCH DATA IN A SPEECH RECOGNITION SYSTEM |
JP4048492B2 (ja) * | 2003-07-03 | 2008-02-20 | ソニー株式会社 | 音声対話装置及び方法並びにロボット装置 |
DK2306457T3 (en) * | 2009-08-24 | 2017-01-16 | Oticon As | Automatic audio recognition based on binary time frequency units |
KR101153736B1 (ko) * | 2010-05-31 | 2012-06-05 | 봉래 박 | 발음기관 애니메이션 생성 장치 및 방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3215868A1 (de) * | 1982-04-29 | 1983-11-03 | Philips Patentverwaltung Gmbh, 2000 Hamburg | Verfahren und anordnung zum erkennen der woerter in einer zusammenhaengenden wortkette |
GB8527913D0 (en) * | 1985-11-12 | 1985-12-18 | Pa Consulting Services | Analysing transitions in finite state machines |
GB2209418B (en) * | 1985-11-12 | 1989-10-11 | Nat Res Dev | Apparatus amd methods for analysing transitions in finite state machines |
-
2000
- 2000-02-15 JP JP2000036105A patent/JP2000242293A/ja active Pending
- 2000-02-16 DE DE10006937A patent/DE10006937C2/de not_active Expired - Lifetime
- 2000-02-21 BR BR0000894-0A patent/BR0000894A/pt not_active Application Discontinuation
- 2000-02-22 KR KR1020000008391A patent/KR100324453B1/ko not_active IP Right Cessation
- 2000-02-23 GB GB0004281A patent/GB2347254B/en not_active Expired - Fee Related
- 2000-02-23 CN CNB001024051A patent/CN1149532C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
GB2347254A (en) | 2000-08-30 |
DE10006937C2 (de) | 2003-02-13 |
DE10006937A1 (de) | 2000-10-12 |
GB0004281D0 (en) | 2000-04-12 |
GB2347254B (en) | 2001-08-22 |
JP2000242293A (ja) | 2000-09-08 |
CN1149532C (zh) | 2004-05-12 |
BR0000894A (pt) | 2000-09-12 |
KR20000071365A (ko) | 2000-11-25 |
CN1264890A (zh) | 2000-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Russell et al. | Experimental evaluation of duration modelling techniques for automatic speech recognition | |
US5268990A (en) | Method for recognizing speech using linguistically-motivated hidden Markov models | |
CN1760974B (zh) | 用于标识至少一个语音单元的方法 | |
CN108780646A (zh) | 用于改进型关键短语检测的中间评分和拒绝环回 | |
JP4703787B2 (ja) | 音声認識装置 | |
EP0706171A1 (en) | Speech recognition method and apparatus | |
CN100589180C (zh) | 使用切换状态空间模型的多模变分推导的语音识别方法 | |
US6246980B1 (en) | Method of speech recognition | |
JPS62231995A (ja) | 音声認識方法 | |
JPS62118399A (ja) | 有限状態マシン内での遷移解析装置及び方法 | |
US5956676A (en) | Pattern adapting apparatus using minimum description length criterion in pattern recognition processing and speech recognition system | |
EP0453649A2 (en) | Method and apparatus for modeling words with composite Markov models | |
US20050273334A1 (en) | Method for automatic speech recognition | |
KR20040068023A (ko) | 은닉 궤적 은닉 마르코프 모델을 이용한 음성 인식 방법 | |
KR100324453B1 (ko) | 음성 인식 시스템에서 역추적 매트릭스 저장 방법 | |
CA2051602C (en) | Method and apparatus for generating models of spoken words based on a small number of utterances | |
KR100321463B1 (ko) | 음성 인식 시스템과 연관된 확률에 불이익을 선택적으로지정하는 방법 | |
US7464033B2 (en) | Decoding multiple HMM sets using a single sentence grammar | |
Chatterjee et al. | Connected speech recognition on a multiple processor pipeline | |
JP4442211B2 (ja) | 音響モデル作成方法 | |
JP2006201265A (ja) | 音声認識装置 | |
US6801890B1 (en) | Method for enhancing recognition probability in voice recognition systems | |
JP3251005B2 (ja) | 標準パターン作成方法 | |
MXPA00001906A (es) | Metodo de almacenamiento de matriz de referencia en un sistema de reconocimiento de la voz | |
JPS60118894A (ja) | 音声認識装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121227 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20131227 Year of fee payment: 13 |
|
FPAY | Annual fee payment |
Payment date: 20150109 Year of fee payment: 14 |
|
FPAY | Annual fee payment |
Payment date: 20160113 Year of fee payment: 15 |
|
LAPS | Lapse due to unpaid annual fee |