KR102292921B1 - 언어 모델 학습 방법 및 장치, 음성 인식 방법 및 장치 - Google Patents
언어 모델 학습 방법 및 장치, 음성 인식 방법 및 장치 Download PDFInfo
- Publication number
- KR102292921B1 KR102292921B1 KR1020200131992A KR20200131992A KR102292921B1 KR 102292921 B1 KR102292921 B1 KR 102292921B1 KR 1020200131992 A KR1020200131992 A KR 1020200131992A KR 20200131992 A KR20200131992 A KR 20200131992A KR 102292921 B1 KR102292921 B1 KR 102292921B1
- Authority
- KR
- South Korea
- Prior art keywords
- words
- language model
- learning
- word
- training data
- Prior art date
Links
- 238000012549 training Methods 0.000 title claims abstract description 186
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000013528 artificial neural network Methods 0.000 claims abstract description 110
- 239000013598 vector Substances 0.000 claims description 95
- 239000011159 matrix material Substances 0.000 claims description 59
- 238000006243 chemical reaction Methods 0.000 claims description 20
- 210000002569 neuron Anatomy 0.000 description 21
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000000605 extraction Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000003278 mimic effect Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000015654 memory Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012567 pattern recognition method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- 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/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
-
- 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/16—Speech classification or search using artificial neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Machine Translation (AREA)
Abstract
뉴럴 네트워크에 기반한 언어 모델을 학습시키는 언어 모델 학습 방법 및 장치, 학습된 언어 모델에 기초하여 음성 데이터를 인식하는 음성 인식 방법 및 장치가 개시된다. 일 실시예에 따른 언어 모델 학습 장치는 입력된 학습 데이터를 오류가 포함된 학습 데이터로 변환하고, 오류가 포함된 학습 데이터에 기초하여 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다. 음성 인식 장치는 학습된 언어 모델을 통해 음성 데이터를 인식하고, 음성 데이터의 인식 결과를 출력할 수 있다.
Description
아래의 설명은 뉴럴 네트워크 기반의 언어 모델을 학습시키는 기술 및 언어 모델에 기초하여 음성 인식을 수행하는 기술에 관한 것이다.
입력 패턴을 특정 그룹으로 분류하는 문제를 해결하는 방안으로써, 인간이 지니고 있는 효율적인 패턴 인식 방법을 실제 컴퓨터에 적용시키려는 연구가 활발히 진행되고 있다. 이러한 연구 중 하나로, 인간의 생물학적 신경 세포의 특성을 수학적 표현에 의해 모델링한 인공의 뉴럴 네트워크(neural network)에 대한 연구가 있다. 입력 패턴을 특정 그룹으로 분류하는 문제를 해결하기 위해, 뉴럴 네트워크에서는 인간이 가지고 있는 학습이라는 능력을 모방한 알고리즘을 이용한다. 이 알고리즘을 통하여 뉴럴 네트워크는 입력 패턴과 출력 패턴들 사이의 사상(mapping)을 생성해낼 수 있는데, 이를 뉴럴 네트워크가 학습 능력이 있다고 표현한다. 또한, 뉴럴 네트워크는 학습된 결과에 기초하여 학습에 이용되지 않았던 입력 패턴에 대하여 비교적 올바른 출력을 생성할 수 있는 일반화 능력을 가지고 있다.
최근에는, 위와 같은 뉴럴 네트워크를 이용하여 음성 인식을 수행하는 기술이 활발히 연구되고 있다. 예를 들어, 주변 사용자의 발화 음성 또는 외부 잡음 등과 같은 다양한 환경에서의 음성 인식의 정확도를 높이기 위한 연구가 지속적으로 이루어지고 있다.
일 실시예에 따른 언어 모델 학습 방법은, 학습 데이터를 오류가 포함된 학습 데이터로 변환하는 단계; 및 상기 오류가 포함된 학습 데이터를 이용하여 뉴럴 네트워크에 기초한 언어 모델을 학습시키는 단계를 포함할 수 있다.
일 실시예에 따른 언어 모델 학습 방법에서, 상기 학습 데이터를 상기 오류가 포함된 학습 데이터로 변환하는 단계는, 상기 학습 데이터에 포함된 단어들 중에서 오류 단어로 대체될 적어도 하나의 단어를 선택하는 단계; 및 상기 학습 데이터에서 선택된 단어를 오류 단어로 대체하여 상기 오류가 포함된 학습 데이터를 생성하는 단계를 포함할 수 있다.
일 실시예에 따른 언어 모델 학습 방법에서, 상기 학습 데이터를 상기 오류가 포함된 학습 데이터로 변환하는 단계는, 상기 학습 데이터에서 선택된 단어와 관련된 복수의 후보 단어들 중에서 상기 오류 단어를 선택하는 단계를 포함할 수 있다.
일 실시예에 따른 언어 모델 학습 방법에서, 상기 후보 단어들은, 상기 학습 데이터에서 선택된 단어와의 발음 유사도에 기초하여 결정될 수 있다.
일 실시예에 따른 언어 모델 학습 방법에서, 상기 오류 단어를 선택하는 단계는, 상기 후보 단어들에 할당된 가중치에 기초하여 상기 학습 데이터에서 선택된 단어를 대체할 오류 단어를 선택할 수 있다.
일 실시예에 따른 언어 모델 학습 방법에서, 상기 적어도 하나의 단어를 선택하는 단계는, 상기 학습 데이터에 포함된 단어들 중에서 상기 적어도 하나의 단어를 랜덤하게 선택할 수 있다.
일 실시예에 따른 언어 모델 학습 방법은, 상기 학습 데이터를 상기 오류가 포함된 학습 데이터로 변환할지 여부를 결정하는 단계를 더 포함할 수 있다.
다른 실시예에 따른 언어 모델 학습 방법은, 단어들 간의 발음 유사도에 기초하여 학습 데이터에 포함된 단어들을 벡터 값으로 변환하는 단계; 및 상기 벡터 값을 이용하여 뉴럴 네트워크에 기초한 언어 모델을 학습시키는 단계를 포함할 수 있다.
다른 실시예에 따른 언어 모델 학습 방법에서, 상기 학습 데이터에 포함된 단어들을 벡터 값으로 변환하는 단계는, 단어들 간의 발음 유사도에 기초한 어쿠스틱 임베딩 매트릭스를 상기 학습 데이터에 포함된 단어들에 적용하여 상기 학습 데이터에 포함된 단어들을 상기 벡터 값으로 변환할 수 있다.
다른 실시예에 따른 언어 모델 학습 방법에서, 상기 학습 데이터에 포함된 단어들을 벡터 값으로 변환하는 단계는, 상기 어쿠스틱 임베딩 매트릭스를 이용하여 발음이 유사한 단어들이 서로 인접한 공간 상에 위치하도록 상기 학습 데이터에 포함된 단어들의 벡터 값을 결정할 수 있다.
다른 실시예에 따른 언어 모델 학습 방법에서, 상기 어쿠스틱 임베딩 매트릭스는, 학습 단어들 간의 발음 유사도에 기초하여 결정되고, 상기 학습 단어들 간의 발음 유사도는, 상기 학습 단어들의 음소 시퀀스들 간의 발음 유사도에 기초하여 결정될 수 있다.
일 실시예에 따른 언어 모델 학습 장치는, 학습 데이터를 오류가 포함된 학습 데이터로 변환하는 학습 데이터 변환부; 및 상기 오류가 포함된 학습 데이터를 이용하여 뉴럴 네트워크에 기초한 언어 모델을 학습시키는 언어 모델 학습부를 포함할 수 있다.
일 실시예에 따른 언어 모델 학습 장치에서, 상기 학습 데이터 변환부는, 상기 학습 데이터에 포함된 단어들 중에서 오류 단어로 대체할 적어도 하나의 단어를 선택하고, 상기 학습 데이터에서 선택된 단어를 오류 단어로 대체하여 상기 오류가 포함된 학습 데이터를 생성할 수 있다.
일 실시예에 따른 언어 모델 학습 장치는, 상기 학습 데이터를 상기 오류가 포함된 학습 데이터로 변환할지 여부를 결정하는 제어부를 더 포함할 수 있다.
다른 실시예에 따른 언어 모델 학습 장치는, 단어들 간의 발음 유사도에 기초하여 학습 데이터에 포함된 단어들을 벡터 값으로 변환하는 학습 데이터 변환부; 및 상기 벡터 값을 이용하여 뉴럴 네트워크에 기초한 언어 모델을 학습시키는 언어 모델 학습부를 포함할 수 있다.
다른 실시예에 따른 언어 모델 학습 장치에서, 상기 학습 데이터 변환부는, 단어들 간의 발음 유사도에 기초한 어쿠스틱 임베딩 매트릭스를 상기 학습 데이터에 포함된 단어들에 적용하여 상기 학습 데이터에 포함된 단어들을 상기 벡터 값으로 변환할 수 있다.
일 실시예에 따른 음성 인식 장치는, 단어들 간의 발음 유사도에 기초하여 음성 데이터에 포함된 단어들을 벡터 값으로 변환하는 음성 데이터 변환부; 및 뉴럴 네트워크에 기초한 언어 모델에 상기 벡터 값을 적용하고, 상기 적용 결과에 기초하여 상기 음성 데이터의 인식 결과를 결정하는 음성 데이터 인식부를 포함할 수 있다.
도 1은 일 실시예에 따른 언어 모델 학습 장치의 구성을 도시한 도면이다.
도 2는 다른 실시예에 따른 언어 모델 학습 장치의 구성을 도시한 도면이다.
도 3은 일 실시예에 따른 언어 모델에 이용되는 뉴럴 네트워크를 설명하기 위한 도면이다.
도 4는 다른 실시예에 따른 언어 모델에 이용되는 뉴럴 네트워크를 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 음성 인식 장치의 구성을 도시한 도면이다.
도 6은 다른 실시예에 따른 음성 인식 장치의 구성을 도시한 도면이다.
도 7은 또 다른 실시예에 따른 음성 인식 장치의 구성을 도시한 도면이다.
도 8은 일 실시예에 따른 언어 모델 학습 방법의 동작을 설명하기 위한 흐름도이다.
도 9는 다른 실시예에 따른 언어 모델 학습 방법의 동작을 설명하기 위한 흐름도이다.
도 10은 다른 실시예에 따른 언어 모델 학습 방법의 동작을 보다 구체화한 흐름도이다.
도 11은 또 다른 실시예에 따른 언어 모델 학습 방법의 동작을 설명하기 위한 흐름도이다.
도 12는 또 다른 실시예에 따른 언어 모델 학습 방법의 동작을 보다 구체화한 흐름도이다.
도 13은 일 실시예에 따른 음성 인식 방법의 동작을 도시한 흐름도이다.
도 2는 다른 실시예에 따른 언어 모델 학습 장치의 구성을 도시한 도면이다.
도 3은 일 실시예에 따른 언어 모델에 이용되는 뉴럴 네트워크를 설명하기 위한 도면이다.
도 4는 다른 실시예에 따른 언어 모델에 이용되는 뉴럴 네트워크를 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 음성 인식 장치의 구성을 도시한 도면이다.
도 6은 다른 실시예에 따른 음성 인식 장치의 구성을 도시한 도면이다.
도 7은 또 다른 실시예에 따른 음성 인식 장치의 구성을 도시한 도면이다.
도 8은 일 실시예에 따른 언어 모델 학습 방법의 동작을 설명하기 위한 흐름도이다.
도 9는 다른 실시예에 따른 언어 모델 학습 방법의 동작을 설명하기 위한 흐름도이다.
도 10은 다른 실시예에 따른 언어 모델 학습 방법의 동작을 보다 구체화한 흐름도이다.
도 11은 또 다른 실시예에 따른 언어 모델 학습 방법의 동작을 설명하기 위한 흐름도이다.
도 12는 또 다른 실시예에 따른 언어 모델 학습 방법의 동작을 보다 구체화한 흐름도이다.
도 13은 일 실시예에 따른 음성 인식 방법의 동작을 도시한 흐름도이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 아래의 특정한 구조적 내지 기능적 설명들은 단지 실시예들을 설명하기 위한 목적으로 예시된 것으로, 실시예의 범위가 본문에 설명된 내용에 한정되는 것으로 해석되어서는 안된다. 관련 기술 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타내며, 공지된 기능 및 구조는 생략하도록 한다.
도 1은 일 실시예에 따른 언어 모델 학습 장치의 구성을 도시한 도면이다. 도 1을 참조하면, 언어 모델 학습 장치(100)는 학습 데이터 변환부(110) 및 언어 모델 학습부(120)를 포함할 수 있다. 학습 데이터 변환부(110)는 입력된 학습 데이터를 변환하고, 언어 모델 학습부(120)는 변환된 학습 데이터에 기초하여 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다.
언어 모델 학습 장치(100)는 학습 데이터에 기초하여 뉴럴 네트워크 기반의 언어 모델을 학습(training)시킬 수 있다. 뉴럴 네트워크는 많은 수의 인공 뉴런(또는, 노드)들을 이용하여 생물학적인 시스템의 계산 능력을 모방하는 소프트웨어나 하드웨어로 구현된 인식 모델이다. 인공 뉴런들은 연결 가중치(connection weight)(또는, 연결 강도)를 가지는 연결선을 통해 상호 연결될 수 있다. 연결 가중치는 연결선이 갖는 특정한 값을 나타낸다. 뉴럴 네트워크는 인공 뉴런들을 통해 인간의 인지 작용이나 학습 과정을 수행할 수 있다.
언어 모델(language model)은 단어들 사이의 연결 관계에 기초한 확률 값을 제공할 수 있다. 언어 모델은 뉴럴 네트워크의 인식 기능을 이용하여 입력된 단어에 연결될 다음 단어에 대한 확률 값을 제공할 수 있다. 예를 들어, 언어 모델에 "this"의 단어가 입력되는 경우, 언어 모델은 "this" 다음에 "is" 또는 "was"가 연결될 확률 값들을 결정할 수 있다. 언어 모델은 스마트폰, 스마트 TV 등과 같은 다양한 스마트 기기에 적용되어 음성 인식에 이용될 수 있다. 또한, 언어 모델은 S-Voice와 같은 음성 기반 개인 비서 서비스, 차량용 음성 명령 시스템, 음성 딕테이션(voice dictation) 등의 어플리케이션에 이용될 수 있다.
언어 모델 학습 장치(100)는 학습시킬 학습 데이터를 변형하고, 변형된 학습 데이터에 기초하여 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다. 언어 모델 학습 장치(100)는 학습 데이터에 인위적으로 오류를 포함시키거나 또는 학습 데이터를 발음 상의 유사도에 기초한 벡터 값으로 변환할 수 있다. 언어 모델은 위와 같이 변형된 학습 데이터를 학습하는 것에 의해 음성 데이터에 포함된 노이즈에 강인(robust)한 특성을 가질 수 있다. 예를 들어, 노이즈가 포함된 음성 데이터가 언어 모델에 입력되더라도 변형된 학습 데이터의 학습 결과에 의해 언어 모델로부터 정답인 결과가 출력될 확률이 높아질 수 있다.
이하에서는, 언어 모델 학습 장치(100)가 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 때, (1) 학습 데이터에 인위적으로 오류를 포함시키는 실시예와 (2) 단어들 간의 발음 유사도에 기초하여 학습 데이터를 변환하는 실시예를 구별하여 설명하도록 한다.
<학습 데이터에 인위적으로 오류를 포함시키는 실시예>
일 실시예에 따르면, 언어 모델 학습 장치(100)는 학습 데이터에 오류(또는, 노이즈)를 부가하여 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다. 언어 모델이 인위적으로 오류가 포함된 학습 데이터를 학습함으로써 인식 과정에서 언어 모델에 입력된 단어에 오류가 존재하더라도 다음에 연결될 단어의 정답 확률을 높아질 수 있고, 오류가 계속적으로 전파(propagation)되는 것이 최소화될 수 있다. 단어 시퀀스(word sequence)에 포함된 특정 단어가 노이즈 등에 의해 잘못 인식되었다면, 잘못 인식된 단어와의 연결 관계에 의해 해당 특정 단어의 다음 단어도 잘못 인식될 확률이 증가될 수 있다. 언어 모델 학습 장치(100)는 위와 같이 노이즈에 의해 음성 데이터가 잘못 인식되는 것을 최소화하기 위해 학습 데이터에 인위적으로 오류를 부가하여 언어 모델을 학습시킬 수 있다.
학습 데이터 변환부(110)는 학습 데이터를 오류가 포함된 학습 데이터로 변환할 수 있다. 학습 데이터 변환부(110)는 학습 데이터에 포함된 단어들 중에서 오류 단어에 의해 대체될 하나 이상의 단어를 선택할 수 있다. 예를 들어, 학습 데이터 변환부(110)는 학습 데이터에 포함된 단어들 중에서 마지막 단어 또는 랜덤(random)하게 결정된 단어를 오류 단어에 의해 대체될 단어로 선택할 수 있다.
학습 데이터 변환부(110)는 복수의 후보 단어들 중에서 오류 단어를 선택할 수 있다. 후보 단어들은 단어들 간의 발음 유사도에 기초하여 결정될 수 있다. 후보 단어들은 오류 단어에 의해 대체될 단어와 발음상(acoustically)으로 유사할 수 있다. 예를 들어, 학습 데이터에 포함된 단어들 중 오류 단어에 의해 대체될 단어가 "write"이면, 후보 단어들은 "write"와 발음이 유사한 "wrote", "rewrite", "light", "right", 및 "lite" 등의 단어들이 있을 수 있다. 학습 데이터 변환부(110)는 "wrote", "rewrite", "light", "right", 및 "lite" 등의 후보 단어들 중에서 학습 데이터에 선택된 단어를 대체할 오류 단어를 선택할 수 있다. 각 후보 단어들이 오류 단어로 선택될 선택 확률은 동일하거나 또는 특정 후보 단어가 보다 큰 선택 확률을 가질 수도 있다. 예를 들어, "write"에 대한 "wrote", "rewrite", "light", "right", 및 "lite"의 후보 단어들 중에서, "write"가 "right"로 가장 많이 잘못 인식되었다면, 해당 후보 단어들 중에서 "right"가 "write"의 오류 단어로 선택될 확률이 다른 후보 단어들에 비해 높게 설정될 수 있다.
오류 단어에 의해 대체될 각각의 단어들에 대한 후보 단어들은 미리 학습되어 저장될 수 있다. 예를 들어, 어쿠스틱 임베딩(acoustic embedding) 방법을 통해 사전(dictionary)에 포함된 모든 단어들이 임베딩 스페이스(embedding space)의 연속(continuous)된 벡터 값으로 변환된 후, 주어진 단어로부터 일정한 유클리디언 거리(Euclidean distance) 안에 들어오는 단어들이 후보 단어들로 결정될 수 있다. 어쿠스틱 임베딩 방법을 통해 발음이 유사한 단어들은 서로 유사한 벡터 값으로 변환되고, 벡터 값이 표현되는 공간 상에서 서로 인접한 위치에 배치될 수 있다.
학습 데이터 변환부(110)는 학습 데이터에서 선택된 단어를 오류 단어로 대체하여 오류가 포함된 학습 데이터를 생성할 수 있다. 오류가 포함된 학습 데이터는 뉴럴 네트워크에 기초한 언어 모델에 입력되고, 언어 모델 학습부(120)는 오류가 포함된 학습 데이터를 이용하여 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다.
언어 모델 학습부(120)는 감독 학습(supervised learning)을 통해 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다. 감독 학습이란 학습 데이터와 그에 대응하는 출력 데이터를 함께 뉴럴 네트워크에 입력하고, 학습 데이터에 대응하는 출력 데이터가 출력되도록 인공 뉴런들 간 연결선들의 연결 가중치를 업데이트하는 방법이다. 예를 들어, 언어 모델 학습부(120)는 오류 역전파 학습(backpropagation learning) 등을 통해 인공 뉴런들 간 연결선들의 연결 가중치를 업데이트할 수 있다. 오류 역전파 학습은, 주어진 학습 데이터에 대해 전방 계산(forwawd computation)으로 오류를 추정한 후, 뉴럴 네트워크의 출력 레이어에서 시작하여 히든 레이어와 프로젝션 레이어의 방향으로 역으로 전진하여 추정한 오류를 전파하고, 오류를 줄이는 방향으로 연결 가중치를 업데이트하는 방법이다.
언어 모델 학습부(120)는 뉴럴 네트워크에서 현재 설정된 연결 가중치들이 얼마나 최적에 가까운지를 측정하기 위한 목적 함수(objective function)를 정의하고, 목적 함수의 결과에 기초하여 연결 가중치들을 계속 변경하고, 학습을 반복적으로 수행할 수 있다. 예를 들어, 목적 함수는 뉴럴 네트워크가 학습 데이터에 기초하여 실제 출력한 출력 값과 출력되기로 원하는 기대 값 간의 오류를 계산하기 위한 오류 함수일 수 있다. 언어 모델 학습부(120)는 뉴럴 네트워크의 출력 레이어에서 생성된 출력 값과 학습 데이터에 대한 원하는 기대 값을 비교하고, 출력 값과 기대 값 간의 차이를 줄이는 방향으로 연결 가중치를 조절할 수 있다.
<단어들 간의 발음 유사도에 기초하여 학습 데이터를 변환하는 실시예>
다른 실시예에 따르면, 언어 모델 학습 장치(100)는 어쿠스틱 임베딩(acoustic embedding)에 기초하여 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다. 어쿠스틱 임베딩이란 단어들 사이의 발음 유사도에 기초하여 단어를 공간 상에 표현하는 방법이다. 어쿠스틱 임베딩을 통해, 예를 들어 "write", "wrote", "rewrite", "light", "right", 및 "lite"과 같이 발음이 유사한 단어들이 서로 유사한 벡터 값 또는 특징 값을 가질 수 있다. 언어 모델 학습 장치(100)는 뉴럴 네트워크에 입력될 단어들을 발음 유사도에 기초한 벡터 값으로 변환하고, 변환된 벡터 값에 기초하여 뉴럴 네트워크를 학습시킬 수 있다. 어쿠스틱 임베딩을 이용하여 뉴럴 네트워크를 학습시키는 것에 의해 발음상으로 유사한 단어가 오류로서 뉴럴 네트워크에 입력되더라도 뉴럴 네트워크가 정답인 출력 단어를 맞출 확률이 높아질 수 있다.
학습 데이터 변환부(110)는 단어들 간의 발음 유사도에 기초하여 학습 데이터에 포함된 단어를 벡터 값으로 변환할 수 있다. 학습 데이터 변환부(110)는 미리 학습된 변환 매트릭스인 어쿠스틱 임베딩 매트릭스(acoustic embedding matrix)를 이용하여 학습 데이터의 단어를 발음 유사도에 따른 벡터 값으로 변환할 수 있다. 학습 데이터 변환부(110)는 단어들 간의 발음 유사도에 기초한 어쿠스틱 임베딩 매트릭스를 학습 데이터에 포함된 단어들에 적용하여 학습 데이터에 포함된 단어들을 발음 유사도에 따른 벡터 값으로 변환할 수 있다. 학습 데이터 변환부(110)는 어쿠스틱 임베딩 매트릭스를 이용하여 발음이 유사한 단어들이 서로 인접한 공간 상에 위치하도록 학습 데이터에 포함된 단어들의 벡터 값을 결정할 수 있다.
학습 데이터에 포함된 단어들은 어쿠스틱 임베딩 매트릭스에 의해 연속(continuous)된 벡터 값으로 변환되어 뉴럴 네트워크에 입력될 수 있다. 어쿠스틱 임베딩 매트릭스를 통해 발음이 유사한 단어들은 서로 유사한 벡터 값으로 변환될 수 있다. 어쿠스틱 임베딩에 의해 표현되는 어쿠스틱 임베딩 스페이스에서, 발음이 유사한 단어들은 서로 가깝게 위치할 수 있다. 예를 들어, write, wrote, rewrite 등과 같이 발음상 비슷한 단어들의 벡터 값은 어쿠스틱 임베딩 스페이스에서 서로 인접하게 위치할 수 있다.
일 실시예에 따른 언어 모델 학습 장치(100)가 어쿠스틱 임베딩 매트릭스를 학습시키는 과정은 다음과 같다.
언어 모델 학습 장치(100)는 예를 들어, 단어들 간의 발음 유사도에 기초하여 사전(dictionary)에 포함된 단어들을 어쿠스틱 임베딩 매트릭스를 위한 벡터 값으로 변환할 수 있다. 언어 모델 학습 장치(100)는 사전에 포함된 단어들을 구성하는 음소(phoneme)들 간의 거리 행렬을 결정할 수 있다. 음소는 단어의 의미를 구별짓는 최소의 소리 단위를 나타내고, 단어는 음소들로 구성될 수 있다. 음소들 간의 거리 행렬은 음소들 간의 발음 유사도를 나타내는 발음 거리를 나타내는 행렬이다. 음소들 간의 발음이 유사할수록 발음 거리가 짧을 수 있다. 단어의 음소 시퀀스는 단어에 포함된 음소들의 연속된 배열을 나타낸다. 예를 들어, "rewrite"의 음소 시퀀스는 [r iy r ay t]이고, 음소 시퀀스의 길이는 5이다. 언어 모델 학습 장치(100)는 단어들의 음소 시퀀스들을 비교하여 음소들 간의 발음 거리를 결정하고, 음소들 간의 발음 거리를 음소들 간의 거리 행렬로 나타낼 수 있다.
언어 모델 학습 장치(100)는 음소들 간의 거리 행렬에 기초하여 단어들 간의 거리 행렬을 결정할 수 있다. 단어들 간의 거리 행렬은 단어들 간의 발음 거리를 나타내는 행렬이고, 단어들 간의 발음 거리는 단어들의 음소 시퀀스들 간의 발음 거리를 나타낸다. 일 실시예에 따르면, 언어 모델 학습 장치(100)는 리벤슈타인 거리(Levenshtein distance) 기법을 변형한 거리 계산 기법에 기초하여 단어들 간의 발음 거리를 결정할 수 있다. 예를 들어, 언어 모델 학습 장치(100)는 문자 당 단위 거리로 '1' 대신 '음소들 간 발음 거리'를 이용하는 것에 의해 단어들 간의 발음 거리를 계산할 수 있다. 언어 모델 학습 장치(100)는 단어들 간 거리 행렬에 다중 차원 스케일링 기법(Multi-Dimensional Scaling, MDS)을 적용함으로써 각 단어들의 벡터 값 정보를 포함하는 어쿠스틱 임베딩 테이블(acoustic embedding table)을 결정할 수 있다. 다중 차원 스케일링 기법은 개체들의 특성을 측정한 후, 측정한 특성에 기초하여 개체들 간의 유사성에 따라 개체들을 다차원 공간 상의 점으로 배치하는 기법이다. 언어 모델 학습 장치(100)는 단어들의 음소 시퀀스와 어쿠스틱 임베딩 테이블에 포함된 각 단어들의 벡터 값 정보에 기초하여 어쿠스틱 임베딩 매트릭스를 결정할 수 있다.
다시 돌아오면, 언어 모델 학습부(120)는 감독 학습을 통해 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다. 언어 모델 학습부(120)는 학습 데이터에 포함된 단어에 대한 벡터 값에 기초하여 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다. 예를 들어, 언어 모델 학습부(120)는 오류 역전파 학습 등을 통해 인공 뉴런들 사이의 연결 가중치를 업데이트할 수 있다. 언어 모델 학습부(120)는 뉴럴 네트워크에서 현재 설정된 연결 가중치들이 얼마나 최적에 가까운지를 측정하기 위한 목적 함수를 정의하고, 목적 함수의 결과에 기초하여 연결 가중치들을 변경하고, 학습을 반복적으로 수행할 수 있다. 위와 같은 과정을 통해 발음이 유사한 잘못된 단어들이 뉴럴 네트워크에 기초한 언어 모델에 입력으로 들어와도 정답이 출력될 확률이 높아질 수 있다.
도 2는 다른 실시예에 따른 언어 모델 학습 장치의 구성을 도시한 도면이다.
도 2를 참조하면, 언어 모델 학습 장치(200)는 제어부(210), 학습 데이터 변환부(220) 및 언어 모델 학습부(230)를 포함할 수 있다. 언어 모델 학습 장치(200)는 학습 데이터를 이용하여 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 때 일정 조건 하에서 학습 데이터를 변환하여 언어 모델을 학습시킬 수 있다.
제어부(210)는 학습 데이터를 오류가 포함된 학습 데이터로 변환할지 여부를 결정할 수 있다. 예를 들어, 제어부(210)는 입력된 학습 데이터를 오류가 포함된 학습 데이터로 변환할지 여부를 랜덤하게 결정할 수 있다. 또는, 제어부(210)는 특정 반복 주기에 따라 학습 데이터를 오류가 포함된 학습 데이터로 변환하는 것으로 결정할 수 있다. 예를 들어, 제어부(210)는 50%의 확률로 학습 데이터를 오류가 포함된 학습 데이터로 변환하는 것으로 결정하거나, 또는 학습 횟수가 3번, 6번, 9번, ... 3N(N은 자연수)번 수행될 때마다 학습 데이터를 오류가 포함된 학습 데이터로 변환하는 것으로 결정할 수 있다.
학습 데이터에 오류를 포함시키지 않는 것으로 결정된 경우, 제어부(210)는 언어 모델 학습부(230)가 언어 모델 학습 장치(200)에 입력된 원래(original)의 학습 데이터를 학습하도록 제어할 수 있다.
학습 데이터를 오류가 포함된 학습 데이터로 변환시키는 것으로 결정된 경우, 제어부(210)는 학습 데이터 변환부(220)가 학습 데이터를 오류가 포함된 학습 데이터로 변환시키도록 제어할 수 있다. 학습 데이터 변환부(220)는 제어부(210)의 제어에 의해, 학습 데이터를 오류가 포함된 학습 데이터로 변환할 수 있다. 학습 데이터 변환부(220)는 학습 데이터에 포함된 단어들 중에서 오류 단어에 의해 대체될 하나 이상의 단어를 선택할 수 있다. 예를 들어, 학습 데이터 변환부(220)는 학습 데이터에 포함된 단어들 중에서 마지막 순서의 단어 또는 랜덤하게 결정된 단어를 오류 단어에 의해 대체될 단어로 선택할 수 있다.
학습 데이터 변환부(220)는 학습 데이터에서 선택된 단어와 관련된 복수의 후보 단어들 중에서 오류 단어를 선택할 수 있다. 후보 단어들은 단어들 간의 발음 유사도에 기초하여 결정될 수 있다. 예를 들어, 후보 단어들은 오류 단어에 의해 대체될 단어와 발음상으로 유사할 수 있다. 오류 단어에 의해 대체될 각각의 단어들에 대한 후보 단어들은 미리 학습되어 저장될 수 있다. 학습 데이터 변환부(220)는 학습 데이터에서 선택된 단어를 오류 단어로 대체하여 오류가 포함된 학습 데이터를 생성할 수 있다. 오류가 포함된 학습 데이터는 뉴럴 네트워크에 기초한 언어 모델에 입력되고, 언어 모델 학습부(230)는 오류가 포함된 학습 데이터를 이용하여 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다.
언어 모델 학습부(230)는 감독 학습을 통해 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다. 예를 들어, 언어 모델 학습부(230)는 델타 규칙과 오류 역전파 학습 등을 통해 뉴럴 네트워크에 포함된 인공 뉴런들 간 연결선의 연결 가중치를 업데이트할 수 있다. 언어 모델 학습부(230)는, 뉴럴 네트워크에서 현재 설정된 연결 가중치들이 얼마나 최적에 가까운지를 측정하기 위한 목적 함수를 정의하고, 목적 함수의 결과에 기초하여 연결 가중치들을 변경하고, 학습을 반복적으로 수행할 수 있다.
도 3은 일 실시예에 따른 언어 모델에 이용되는 뉴럴 네트워크를 설명하기 위한 도면이다.
언어 모델 학습 장치에 의해 학습되는 뉴럴 네트워크(330)는 복수의 레이어(layer)들을 포함할 수 있다. 예를 들어, 뉴럴 네트워크(330)는 프로젝션 레이어(projection layer) (320), 히든 레이어(hidden layer)(330), 출력 레이어(output layer) (340)를 포함할 수 있다. 가장 하위 레이어가 학습 데이터가 입력되는 프로젝션 레이어(320)이고, 가장 상위 레이어가 입력 값에 대한 뉴럴 네트워크(330)의 출력 값이 출력되는 출력 레이어(340)이다. 프로젝션 레이어(320)와 출력 레이어(340) 사이의 중간 레이어가 히든 레이어(330)이다. 뉴럴 네트워크(330)는 복수 개의 히든 레이어(330)들을 포함할 수 있고, 복수 개의 히든 레이어(330)들을 포함하는 뉴럴 네트워크(330)를 딥 뉴럴 네트워크(deep neural network)라고 한다.
출력 레이어(340)는 히든 레이어(330)의 인공 뉴런들로부터 수신한 신호에 기초하여 뉴럴 네트워크(330)의 출력을 생성할 수 있다. 히든 레이어(330)는 프로젝션 레이어(320)로부터 전달된 정보를 예측하기 쉬운 정보로 변환할 수 있다. 프로젝션 레이어(320)와 히든 레이어(330)에 포함된 인공 뉴런들은 연결 가중치를 가지는 연결선을 통해 서로 연결되고, 히든 레이어(330)와 출력 레이어(340)에 포함된 인공 뉴런들도 연결 가중치를 가지는 연결선을 통해 서로 연결될 수 있다.
뉴럴 네트워크(330)는 프로젝션 레이어(320) -> 히든 레이어(330) -> 출력 레이어(340)의 방향으로 연결되어 있다. 프로젝션 레이어(320)의 각 인공 뉴런들에 학습 데이터가 입력되면, 학습 데이터는 프로젝션 레이어(320)의 각 인공 뉴런들에서 변환되어 히든 레이어(330)에 전달되고, 출력 레이어(340)에서 입력된 학습 데이터에 대응하는 출력 값이 생성된다.
뉴럴 네트워크(330)에 기초한 언어 모델은 학습 데이터에 포함된 n 개의 단어를 입력받을 수 있다. 도 3에서는 뉴럴 네트워크(330)가 단어 Wn -3, 단어 Wn -2 및 단어 Wn -1의 3개의 단어들(310)로 구성된 단어 시퀀스를 학습하는 것으로 가정한다. 이 때, 언어 모델 학습 장치는 학습 데이터에 포함된 3개의 단어들 중 일부 단어를 임의의 오류 단어로 대체하여 뉴럴 네트워크(330)를 학습시킬 수 있다. 언어 모델 학습 장치는 도 3에서와 같이 단어 Wn -1(315)을 오류 단어 W' 로 대체하여 오류가 포함된 학습 데이터를 생성하고, 오류가 포함된 학습 데이터에 기초하여 뉴럴 네트워크(330)를 학습시킬 수 있다. 오류가 포함된 학습 데이터는 입력 벡터의 형태로 변환되어 프로젝션 레이어(320)에 입력될 수 있다. 프로젝션 레이어(320)에 입력되는 입력 벡터는 각 단어들에 대응하는 1-hot 벡터들이 서로 연결(concatenate)된 형태를 가질 수 있다. 예를 들어, 단어 Wn -3, 단어 Wn -2 및 오류 단어 W' 가 각각 (1, 0, 0, 0), (0, 1, 0, 0) 및 (0, 0, 1, 0)의 벡터로 표현된다면, 프로젝션 레이어(320)에 입력되는 입력 벡터는 (1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0)의 형태를 가진다.
언어 모델 학습 장치는 단어 Wn -1(315)과 관련된 후보 단어들 중에서 단어 Wn - 1(315)를 대체할 오류 단어 W' 를 선택할 수 있고, 후보 단어들은 단어 Wn -1(315)과 발음상으로 유사한 단어들을 포함할 수 있다. 예를 들어, 단어 Wn -1(315)이 "write"이라면, 오류 단어 W' 로서 "write"와 발음이 유사한 "right"가 선택될 수 있고, "right"가 포함된 학습 데이터가 뉴럴 네트워크(330)에 입력될 수 있다.
일 실시예에 따르면, 뉴럴 네트워크(330)에 입력될 단어들 중 얼마나 많은 단어가 오류 단어로 대체될 것인지 여부는 미리 결정될 수 있고, 뉴럴 네트워크(330)에 입력된 단어들 중 어떠한 단어를 오류 단어로 대체할 것인지 여부는 랜덤하게 결정될 수 있다.
오류 단어가 포함된 학습 데이터는 프로젝션 레이어(320)에 입력되고, 프로젝션 레이어(320)에서는 시맨틱 임베딩(semantic embedding) 또는 문법적 임베딩(grammatical embedding)이 수행될 수 있다. 시맨틱 임베딩 또는 문법적 임베딩을 통하여 몇몇 출력 예상 단어 시퀀스들의 확률이 굉장히 작게 되는 것이 방지되고, 이에 따라 인식 결과가 개선될 수 있다. 출력 레이어(340)에서는 소프트맥스(softmax) 방식을 이용하여 입력된 3개의 단어들에 이어질 다음 단어의 확률을 결정할 수 있다. 소프트맥스 방식이란 현재 최적이라고 생각되는 솔루션(solution)의 선택 가능성은 최대로 유지하고, 나머지 솔루션들에 대해서는 추정된 값에 따라 가중치를 부여하여 선택 확률을 조절하는 방법이다.
언어 모델 학습 장치는 출력 레이어(340)의 출력 값과 원하는 기대 값을 비교하고, 출력 값과 기대 값 간의 차이를 줄여나가는 방향으로 뉴럴 네트워크(330)에 포함된 인공 뉴런들 간 연결선들의 연결 가중치를 조절할 수 있다. 언어 모델 학습 장치는 연결 가중치를 조정하는 것에 의해 뉴럴 네트워크(330)를 학습시킬 수 있다. 예를 들어, 프로젝션 레이어(320)에 입력된 학습 데이터가 히든 레이어(330)를 거치면서 연결 가중치와 곱해지고 더해지는 과정을 통해 출력 레이어(340)로부터 출력 값이 생성될 수 있다. 출력 레이어(340)에서 생성된 출력 값과 기대하는 출력 값 간에 서로 차이가 발생할 수 있고, 언어 모델 학습 장치는 해당 차이를 최소화하는 방향으로 연결 가중치를 업데이트할 수 있다.
도 4는 다른 실시예에 따른 언어 모델에 이용되는 뉴럴 네트워크를 설명하기 위한 도면이다.
언어 모델 학습 장치는 단어들의 어쿠스틱(acoustic) 정보에 기초하여 뉴럴 네트워크(400)에 기초한 언어 모델을 학습시킬 수 있다. 언어 모델 학습 장치는 학습 데이터에 대해 어쿠스틱 임베딩(410)을 수행할 수 있다. 어쿠스틱 임베딩(410)에서는 미리 학습된 어쿠스틱 임베딩 매트릭스에 의해 학습 대상인 단어 Wn -3, 단어 Wn -2 및 단어 Wn -1이 연속된 벡터 값으로 변환될 수 있다. 예를 들어, 단어 Wn-3은 어쿠스틱 임베딩 매트릭스에 의해 (0.12, 0.54, 0.98, ... , 0.05)와 같은 연속된 벡터 값으로 변환될 수 있다.
어쿠스틱 임베딩(410)에 의해 학습 데이터에 포함된 단어가 발음 유사도에 기초한 벡터 값으로 변환될 수 있고, 발음 상으로 유사한 단어들이 서로 인접한 공간에 위치되도록 해당 단어의 벡터 값이 결정될 수 있다. 어쿠스틱 임베딩(410)을 통해 발음이 서로 유사한 단어들은 공간 상에서 서로 인접한 위치에 배치될 수 있다.
어쿠스틱 임베딩(410)에 의해 변환된 단어 Wn -3, 단어 Wn -2 및 단어 Wn -1의 각 벡터 값들이 서로 연결(concatenate)된 형태로 뉴럴 네트워크(400)의 프로젝션 레이어(420)에 입력되고, 프로젝션 레이어(420)에서는 시맨틱 임베딩 또는 문법적 임베딩이 수행될 수 있다. 프로젝션 레이어(420)와 출력 레이어(440) 사이에 위치한 히든 레이어(430)는 프로젝션 레이어(420)로부터 전달된 정보를 예측하기 쉬운 정보로 변환할 수 있다. 출력 레이어(440)에서는 입력된 3개의 단어들에 이어질 다음 단어의 확률을 결정할 수 있다.
언어 모델 학습 장치는 출력 레이어(440)의 출력 값과 원하는 기대 값을 비교하고, 출력 값과 기대 값 간의 차이를 줄여나가는 방향으로 뉴럴 네트워크(400)에 포함된 인공 뉴런들 간 연결선의 연결 가중치를 조절할 수 있다. 언어 모델 학습 장치는 연결 가중치를 조정하는 것에 의해 뉴럴 네트워크(400)를 학습시킬 수 있다.
도 5는 일 실시예에 따른 음성 인식 장치의 구성을 도시한 도면이다.
음성 인식 장치(500)는 음성 데이터가 어떠한 문장을 나타내는지를 결정할 수 있다. 도 5를 참조하면, 음성 인식 장치(500)는 특징 추출부(510), 어쿠스틱 모델(520), 제1 언어 모델(530), 분석부(540), 결정부(560) 및 제2 언어 모델(550)을 포함할 수 있다.
음성 데이터들은 특정 시간 단위로 분할되고, 특정 시간 단위로 분할된 음성 데이터가 순차적으로 음성 인식 장치(500)에 입력될 수 있다. 특징 추출부(510)는 음성 데이터로부터 특징 값을 추출할 수 있다. 예를 들어, 특징 추출부(510)는 음성 데이터에서 시간에 따라 변화하는 상대적인 변화량을 특징 값으로 추출할 수 있다. 어쿠스틱 모델(520)은 음성 데이터로부터 추출된 특징 값에 기초하여 음성 데이터를 음소 단위로 인식하여 출력할 수 있다.
제1 언어 모델(530)은 음성 데이터에 포함된 단어들 간의 연결 관계를 추정할 수 있다. 제1 언어 모델(530)은 음성 데이터에 포함된 단어들 간의 연결 관계를 결정하기 위한 확률 값을 제공할 수 있다. 제1 언어 모델(530)은 뉴럴 네트워크에 기초하여 단어들 간의 연결 관계를 추정할 수 있고, 뉴럴 네트워크는 오류가 포함된 학습 데이터에 기초하여 미리 학습된다.
분석부(540)는 어쿠스틱 모델(520)로부터 출력된 결과 값과 제1 언어 모델(530)로부터 출력된 결과 값에 기초하여 음성 데이터에 대한 후보 인식 결과들을 생성할 수 있다. 분석부(540)는 어쿠스틱 모델(520)과 제1 언어 모델(530)의 출력 값들에 기초하여 음성 데이터에 포함된 단어들의 연결 경로(path)를 추정할 수 있다.
결정부(560)는 제1 언어 모델(530)보다 인식 성능이 뛰어난 제2 언어 모델(550)에 기초하여 후보 인식 결과들 중에서 음성 데이터에 대한 최종 인식 결과를 결정할 수 있다. 제2 언어 모델(550)은 제1 언어 모델(530)보다 더 인식 성능이 뛰어난 언어 모델이다. 예를 들어, 제2 언어 모델(550)은 재귀적 뉴럴 네트워크(recurrent neural network) 또는 LSTM(long short term memory)에 기초한 언어 모델일 수 있다. 재귀적 뉴럴 네트워크는 서로 다른 시간 구간에서 히든 레이어에 포함된 인공 뉴런들 간에 재귀적(recurrent)인 연결이 있는 뉴럴 네트워크를 나타낸다. 제1 언어 모델(530)을 통해 음성 데이터에 대한 복수의 후보 솔루션들은 도출하고, 제1 언어 모델(530)보다 인식 성능이 뛰어난 제2 언어 모델(550)을 통해 최종 솔루션을 결정하는 것에 의해 처리 시간 및 필요 자원량이 저감될 수 있다.
결정부(560)는 제2 언어 모델(550)에 기초하여 후보 인식 결과들의 확률 값을 다시 계산하고, 가장 큰 확률 값을 가지는 후보 인식 결과를 음성 데이터에 대한 최종 인식 결과로 결정할 수 있다.
도 6은 다른 실시예에 따른 음성 인식 장치의 구성을 도시한 도면이다.
음성 인식 장치(600)는 학습된 뉴럴 네트워크에 기초한 언어 모델에 기초하여 음성 데이터를 인식할 수 있다. 음성 인식 장치(600)는, 예를 들어 스마트 폰, PDA와 같은 휴대용 단말, 및 사용자의 신체에 탈부착이 가능한 웨어러블 디바이스(wearable device) 뿐만 아니라 각종 음성 명령 시스템을 포함하는 단말에 내장될 수 있다. 도 6을 참조하면, 음성 인식 장치(600)는 음성 데이터 변환부(610) 및 음성 데이터 인식부(620)를 포함할 수 있다.
음성 데이터 변환부(610)는 단어들 간의 발음 유사도에 기초하여 음성 데이터에 포함된 단어를 벡터 값으로 변환할 수 있다. 음성 데이터 변환부(610)는 음성 데이터로부터 음소 시퀀스를 도출하고, 발음 유사도에 기초하여 음소 시퀀스에 대한 벡터 값을 결정할 수 있다. 음성 데이터 변환부(610)는 어쿠스틱 임베딩에 기초하여 음성 데이터의 단어를 발음 유사도에 기초한 벡터 값으로 변환할 수 있다.
음성 데이터 변환부(610)는 이전에 학습된 어쿠스틱 임베딩 매트릭스를 음성 데이터에 포함된 단어들에 적용하여 음성 데이터의 단어를 발음 유사도에 따른 벡터 값으로 변환할 수 있다. 어쿠스틱 임베딩 매트릭스에 의해 발음이 유사한 단어들은 서로 유사한 벡터 값 또는 특징 값을 가질 수 있다. 예를 들어, 발음이 유사한 단어들은 어쿠스틱 임베딩 매트릭스에 의해 공간 상에서 서로 인접한 위치에 배치되도록 벡터 값이 결정될 수 있다.
음성 데이터 인식부(620)는 음성 데이터가 무엇을 나타내는지를 결정할 수 있다. 음성 데이터 인식부(620)는 음성 데이터에 포함된 단어들 간의 연결 관계를 추정하여 음성데이터를 인식할 수 있다. 음성 데이터 인식부(620)는 음성 데이터 변환부(610)로부터 출력된 음성 데이터의 벡터 값을 뉴럴 네트워크에 기초한 언어 모델에 적용하고, 적용 결과에 기초하여 음성 데이터의 인식 결과를 결정할 수 있다.
음성 데이터 인식부(620)는 미리 학습되어 저장된 어쿠스틱 임베딩 테이블에 기초하여 음성 데이터를 인식할 수 있다. 예를 들어, 어쿠스틱 임베딩 테이블은 음소 시퀀스들 간의 발음 유사도에 기초하여 결정된 일반 단어들의 벡터 값 정보를 포함할 수 있다. 어쿠스틱 임베딩 테이블은 일반 단어들을 공간 상의 한 차원의 점으로 표현한 벡터 정보를 포함할 수 있다. 음성 데이터 인식부(620)는 어쿠스틱 임베딩 테이블에 포함된 단어들의 벡터 값들 중 음성 데이터에 포함된 타겟 단어의 벡터 값과 가장 가까운 위치에 배치된 벡터 값을 선택하고, 선택된 벡터 값에 대응하는 단어를 음성 데이터의 타겟 단어로 결정할 수 있다.
도 7은 또 다른 실시예에 따른 음성 인식 장치의 구성을 도시한 도면이다.
음성 인식 장치(700)는 음성 데이터가 어떠한 문장을 나타내는지를 결정할 수 있다. 도 7을 참조하면, 음성 인식 장치(700)는 제1 언어 모델(710), 특징 추출부(750), 어쿠스틱 모델(760), 제1 언어 모델(740), 분석부(770), 제2 언어 모델(780) 및 결정부(790)를 포함할 수 있다. 제1 언어 모델(710)은 단어 입력부(720), 음성 데이터 변환부(730) 및 뉴럴 네트워크(740)를 포함할 수 있다.
음성 데이터들은 특정 시간 단위로 분할되고, 특정 시간 단위로 분할된 음성 데이터가 순차적으로 음성 인식 장치(700)에 입력될 수 있다. 특징 추출부(750)는 음성 데이터로부터 특징 값을 추출할 수 있다. 예를 들어, 특징 추출부(750)는 음성 데이터에서 시간에 따라 변화하는 상대적인 변화량을 특징 값으로 추출할 수 있다. 어쿠스틱 모델(760)은 음성 데이터로부터 추출된 특징 값에 기초하여 음성 데이터를 음소 단위로 인식하여 출력할 수 있다.
제1 언어 모델(710)은 뉴럴 네트워크(740)에 기초하여 음성 데이터에 포함된 단어들 간의 연결 관계를 추정할 수 있다. 단어 입력부(720)는 음성 데이터에 포함된 하나 이상의 단어를 입력받을 수 있다.
음성 데이터 변환부(730)는 단어들 간의 발음 유사도에 기초하여 음성 데이터에 포함된 단어를 벡터 값으로 변환할 수 있다. 음성 데이터 변환부(730)는 음성 데이터로부터 음소 시퀀스를 도출하고, 발음 유사도에 기초하여 음소 시퀀스에 대한 벡터 값을 결정할 수 있다. 음성 데이터 변환부(730)는 이전에 학습된 어쿠스틱 임베딩 매트릭스를 음성 데이터에 포함된 단어들에 적용하여 음성 데이터의 단어를 발음 유사도에 따른 벡터 값으로 변환할 수 있다. 어쿠스틱 임베딩 매트릭스에 의해 발음이 유사한 단어들은 서로 유사한 벡터 값 또는 특징 값을 가질 수 있다. 발음이 유사한 단어들은 어쿠스틱 임베딩 매트릭스에 의해 공간 상에서 서로 인접한 위치에 배치되도록 벡터 값이 결정될 수 있다.
뉴럴 네트워크(740)는 인공 뉴런들에 기초한 인식 모델로서, 음성 데이터에 포함된 단어들 간의 연결 관계를 결정하기 위한 확률 값을 제공할 수 있다.
분석부(770)는 어쿠스틱 모델(760)로부터 출력된 결과 값과 제1 언어 모델(710)로부터 출력된 결과 값에 기초하여 음성 데이터에 대한 후보 인식 결과들을 생성할 수 있다. 분석부(770)는 어쿠스틱 모델(760)과 제1 언어 모델(710)의 출력 값들에 기초하여 음성 데이터에 포함된 단어들의 연결 경로를 추정할 수 있다.
결정부(790)는 제1 언어 모델(710)보다 인식 성능이 뛰어난 제2 언어 모델(780)에 기초하여 후보 인식 결과들 중에서 음성 데이터에 대한 최종 인식 결과를 결정할 수 있다. 제2 언어 모델(780)은 제1 언어 모델(710)보다 더 인식 성능이 뛰어난 언어 모델이다. 예를 들어, 제2 언어 모델(780)은 재귀적 뉴럴 네트워크 또는 LSTM에 기초한 언어 모델일 수 있다. 결정부(790)는 제2 언어 모델(780)에 기초하여 후보 인식 결과들의 확률 값을 다시 계산하고, 가장 큰 확률 값을 가지는 후보 인식 결과를 음성 데이터에 대한 최종 인식 결과로 결정할 수 있다.
도 8은 일 실시예에 따른 언어 모델 학습 방법의 동작을 설명하기 위한 흐름도이다.
단계(810)에서, 언어 모델 학습 장치는 학습 데이터를 오류가 포함된 학습 데이터로 변환할 수 있다. 언어 모델 학습 장치는 학습 데이터에 포함된 단어들 중에서 오류 단어에 의해 대체될 하나 이상의 단어를 선택할 수 있다. 예를 들어, 언어 모델 학습 장치는 학습 데이터에 포함된 단어들 중에서 마지막 단어 또는 랜덤하게 결정된 단어를 오류 단어에 의해 대체될 단어로 결정할 수 있다.
언어 모델 학습 장치는 복수의 후보 단어들 중에서 오류 단어를 선택할 수 있다. 후보 단어들은 단어들 간의 발음 유사도에 기초하여 결정될 수 있다. 후보 단어들은 오류 단어에 의해 대체될 단어와 발음상으로 유사할 수 있다. 각 후보 단어들이 오류 단어로 선택될 선택 확률은 동일하거나 또는 특정 후보 단어가 보다 큰 선택 확률을 가질 수도 있다. 오류 단어에 의해 대체될 각각의 단어들에 대한 후보 단어들은 미리 학습되어 저장될 수 있다. 언어 모델 학습 장치는 학습 데이터에서 선택된 단어를 오류 단어로 대체하여 오류가 포함된 학습 데이터를 생성할 수 있다
단계(820)에서, 언어 모델 학습 장치는 오류가 포함된 학습 데이터에 기초하여 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다. 언어 모델 학습 장치는 감독 학습을 통해 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다. 예를 들어, 언어 모델 학습 장치는 델타 규칙과 오류 역전파 학습 등을 통해 인공 뉴런들 간 연결선들의 연결 가중치를 업데이트하는 것에 의해 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다.
도 9는 다른 실시예에 따른 언어 모델 학습 방법의 동작을 설명하기 위한 흐름도이다.
단계(910)에서, 언어 모델 학습 장치로 학습 데이터가 입력될 수 있다. 학습 데이터로서 순차적 데이터인 음성 데이터가 입력될 수 있다. 언어 모델 학습 장치는 외부로부터 수신한 학습 데이터를 저장하고, 저장한 학습 데이터로부터 특징을 추출할 수 있다.
단계(920)에서, 언어 모델 학습 장치는 학습 데이터를 오류가 포함된 학습 데이터로 변환할지 여부를 결정할 수 있다. 예를 들어, 언어 모델 학습 장치는 특정 반복 주기 또는 특정 확률에 따라 학습 데이터를 오류가 포함된 학습 데이터로 변환하는 것으로 결정할 수 있다.
학습 데이터를 오류가 포함된 학습 데이터로 변환하기로 결정하지 않은 경우, 단계(940)에서 언어 모델 학습 장치는 원래의 학습 데이터에 기초하여 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다.
학습 데이터를 오류가 포함된 학습 데이터로 변환하기로 결정한 경우, 단계(930)에서 언어 모델 학습 장치는 학습 데이터를 오류가 포함된 학습 데이터로 변환할 수 있다. 언어 모델 학습 장치는 학습 데이터에 포함된 단어들 중에서 오류 단어에 의해 대체될 하나 이상의 단어를 선택할 수 있다. 언어 모델 학습 장치는 복수의 후보 단어들 중에서 오류 단어를 선택할 수 있다. 후보 단어들은 단어들 간의 발음 유사도에 기초하여 결정될 수 있다. 오류 단어에 의해 대체될 각각의 단어들에 대한 후보 단어들은 미리 학습되어 저장될 수 있다. 언어 모델 학습 장치는 학습 데이터에서 선택된 단어를 오류 단어로 대체하여 오류가 포함된 학습 데이터를 생성할 수 있다
단계(940)에서, 언어 모델 학습 장치는 오류가 포함된 학습 데이터에 기초하여 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다. 언어 모델 학습 장치는 관련 기술 분야의 다양한 방법들을 이용하여 뉴럴 네트워크의 언어 모델을 학습시킬 수 있다. 예를 들어, 언어 모델 학습 장치는 델타 규칙과 오류 역전파 학습 등을 통해 뉴럴 네트워크에 포함된 인공 뉴런들 간 연결선들의 연결 가중치를 업데이트할 수 있다.
도 10은 다른 실시예에 따른 언어 모델 학습 방법의 동작을 보다 구체화한 흐름도이다.
단계(1010)에서, 언어 모델 학습 장치에 언어 모델의 학습을 위한 문장 데이터가 입력될 수 있다.
단계(1020)에서, 언어 모델 학습 장치는 문장 데이터에 포함된 전체 단어들 중에서 특정 개수의 단어를 포함하는 단어 시퀀스를 선택할 수 있다. 예를 들어, 언어 모델 학습 장치는 문장 데이터에 포함된 전체 단어들에서 앞에서부터 N-1 개의 단어를 포함하는 단어 시퀀스를 선택할 수 있다.
단계(1030)에서, 언어 모델 학습 장치는 선택한 단어 시퀀스에 오류를 포함시킬지 여부를 결정할 수 있다. 예를 들어, 언어 모델 학습 장치는 주어진 N-1 개의 단어를 포함하는 단어 시퀀스에 오류를 포함시킬지 여부를 특정 확률 또는 특정 주기에 기초하여 결정할 수 있다.
단어 시퀀스에 오류를 포함시키지 않기로 결정된 경우, 단계(1060)에서 언어 모델 학습 장치는 단계(1020)에서 선택된 단어 시퀀스에 기초하여 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다.
단어 시퀀스에 오류를 포함시키기로 결정된 경우, 단계(1040)에서, 언어 모델 학습 장치는 단어 시퀀스에 오류 단어를 포함시킬 수 있다.
구체적으로, 단계(1045)에서, 언어 모델 학습 장치는 단어 시퀀스에 포함된 N-1 개의 단어들 중 M 개(M은 N-1 이하의 자연수)의 단어를 선택할 수 있다. 단계(1050)에서, 언어 모델 학습 장치는 후보 단어들 중에서 오류 단어를 선택할 수 있다. 언어 모델 학습 장치는 후보 단어들 중 단계(1045)에서 선택된 M 개의 단어를 대체할 M 개의 오류 단어를 선택할 수 있다. 후보 단어들은 단어들 간의 발음 유사도에 기초하여 결정될 수 있다. 오류 단어에 의해 대체될 각각의 단어들에 대한 후보 단어들은 미리 학습되어 저장될 수 있다. 각 후보 단어들이 오류 단어로 선택될 선택 확률은 동일하거나 또는 특정 후보 단어가 보다 큰 선택 확률을 가질 수도 있다. 단계(1055)에서, 언어 모델 학습 장치는 단계(1045)에서 선택된 단어 시퀀스의 M 개의 단어를 단계(1050)에서 선택된 M 개의 오류 단어로 대체하여 오류 단어가 포함된 단어 시퀀스를 생성할 수 있다.
단계(1060)에서, 언어 모델 학습 장치는 오류 단어가 포함된 단어 시퀀스에 기초하여 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다.
단계(1065)에서, 언어 모델 학습 장치는 단어 시퀀스가 문장 데이터의 끝에 도달하였는지 여부를 결정할 수 있다.
단어 시퀀스가 문장 데이터의 끝에 도달하지 않은 경우, 단계(1070)에서 언어 모델 학습 장치는 문장 데이터에 포함된 단어들에서 학습을 위한 단어 시퀀스를 한 단어씩 이동시킬 수 있다. 예를 들어, 문장 데이터가 "this is a test sentence"를 나타내고, 해당 문장 데이터에서 선택된 현재 단어 시퀀스가 "this is a"이라면, 단계(1070)에 의해 단어 시퀀스가 "is a test"로 결정될 수 있다. 언어 모델 학습 장치는 한 단어씩 이동시킨 단어 시퀀스에 기초하여 단계(1020)부터 다시 수행할 수 있다.
단어 시퀀스가 문장 데이터의 끝에 도달한 경우, 단계(1075)에서 언어 모델 학습 장치는 언어 모델의 학습시키기 위한 다음 문장 데이터가 존재하는지 여부를 결정할 수 있다.
다음 문장 데이터가 존재하는 경우, 단계(1080)에서 언어 모델 학습 장치는 다음 문장 데이터를 입력시키고, 다음 문장 데이터에 기초하여 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다. 언어 모델 학습 장치는 다음 문장 데이터에 대해 단계(1020)부터 단계(1075)까지의 과정을 다시 수행할 수 있다.
도 11은 또 다른 실시예에 따른 언어 모델 학습 방법의 동작을 설명하기 위한 흐름도이다.
단계(1110)에서, 언어 모델 학습 장치는 단어들 간의 발음 유사도에 기초하여 학습 데이터를 벡터 값으로 변환할 수 있다. 언어 모델 학습 장치는 단어들 간의 발음 유사도에 기초한 어쿠스틱 임베딩 매트릭스를 학습 데이터에 포함된 단어들에 적용하여 학습 데이터에 포함된 단어들을 발음 유사도에 따른 벡터 값으로 변환할 수 있다. 언어 모델 학습 장치는 어쿠스틱 임베딩 매트릭스를 이용하여 발음이 유사한 단어들이 공간 상에서 서로 인접한 위치에 배치되도록 학습 데이터에 포함된 단어들의 벡터 값을 결정할 수 있다.
학습 데이터에 포함된 단어들은 어쿠스틱 임베딩 매트릭스에 의해 연속된 벡터 값으로 변환될 수 있다. 어쿠스틱 임베딩 매트릭스를 통해 발음이 유사한 단어들은 서로 유사한 벡터 값으로 변환될 수 있다. 어쿠스틱 임베딩에 의해 표현되는 어쿠스틱 임베딩 스페이스에서, 발음이 유사한 단어들은 서로 가깝게 위치할 수 있다.
단계(1120)에서, 언어 모델 학습 장치는 단계(1110)에서 결정된 학습 데이터의 벡터 값에 기초하여 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다. 언어 모델 학습 장치는 감독 학습을 통해 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다. 언어 모델 학습 장치는 단계(1110)에서 결정된 학습 데이터의 벡터 값을 뉴럴 네트워크에 기초한 언어 모델에 입력시키고, 뉴럴 네트워크의 출력 값과 기대 값을 비교하여 뉴럴 네트워크에 포함된 인공 뉴런들 간 연결선들의 연결 가중치를 조정하 수 있다. 언어 모델 학습 장치는 관련 기술 분야의 다양한 방법들을 이용하여 뉴럴 네트워크의 언어 모델을 학습시킬 수 있다.
도 12는 또 다른 실시예에 따른 언어 모델 학습 방법의 동작을 보다 구체화한 흐름도이다.
단계(1210)에서, 언어 모델 학습 장치에 언어 모델의 학습을 위한 문장 데이터가 입력될 수 있다.
단계(1220)에서, 언어 모델 학습 장치는 문장 데이터에 포함된 전체 단어들 중에서 특정 개수의 단어를 포함하는 단어 시퀀스를 선택할 수 있다. 예를 들어, 언어 모델 학습 장치는 문장 데이터에 포함된 전체 단어들에서 앞에서부터 N-1 개의 단어를 포함하는 단어 시퀀스를 선택할 수 있다.
단계(1230)에서, 언어 모델 학습 장치는 단어 시퀀스에 포함된 단어들을 단어들 간의 발음 유사도에 기초한 벡터 값으로 변환시킬 수 있다. 언어 모델 학습 장치는 단어들 간의 발음 유사도에 기초한 어쿠스틱 임베딩 매트릭스를 단어 시퀀스에 적용하여 단어 시퀀스에 포함된 단어들을 발음 유사도에 따른 벡터 값으로 변환할 수 있다. 단어 시퀀스에 포함된 단어들은 어쿠스틱 임베딩 매트릭스에 의해 연속된 벡터 값으로 변환될 수 있다.
단계(1240)에서, 언어 모델 학습 장치는 뉴럴 네트워크에 기초한 언어 모델에 단계(1230)에서의 벡터 값을 적용하여 해당 언어 모델을 학습시킬 수 있다. 언어 모델 학습 장치는 감독 학습을 통해 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다. 언어 모델 학습 장치는 단계(1230)에서 결정된 벡터 값을 뉴럴 네트워크에 기초한 언어 모델에 입력시키고, 뉴럴 네트워크의 출력 값과 기대 값을 비교하여 뉴럴 네트워크에 포함된 인공 뉴런들 간 연결선들의 연결 가중치를 조정할 수 있다.
단계(1250)에서, 언어 모델 학습 장치는 단어 시퀀스가 문장 데이터의 끝에 도달하였는지 여부를 결정할 수 있다.
단어 시퀀스가 문장 데이터의 끝에 도달하지 않은 경우, 단계(1260)에서 언어 모델 학습 장치는 문장 데이터에 포함된 단어들에서 학습을 위한 단어 시퀀스를 한 단어씩 이동시킬 수 있다. 그 후, 언어 모델 학습 장치는 한 단어씩 이동하여 새롭게 결정된 단어 시퀀스에 기초하여 단계(1220)부터 단계(1250)까지의 동작을 위에서와 동일하게 수행할 수 있다.
단어 시퀀스가 문장 데이터의 끝에 도달한 경우, 단계(1270)에서 언어 모델 학습 장치는 언어 모델의 학습시키기 위한 다음 문장 데이터가 존재하는지 여부를 결정할 수 있다.
다음 문장 데이터가 존재하는 경우, 단계(1280)에서 언어 모델 학습 장치는 다음 문장 데이터를 입력시키고, 다음 문장 데이터에 기초하여 뉴럴 네트워크에 기초한 언어 모델을 학습시킬 수 있다. 언어 모델 학습 장치는 다음 문장 데이터에 대해 단계(1220)부터 단계(1270)까지의 과정을 다시 수행할 수 있다.
도 13은 일 실시예에 따른 음성 인식 방법의 동작을 도시한 흐름도이다.
단계(1310)에서, 음성 인식 장치는 단어들 간의 발음 유사도에 기초하여 음성 데이터를 벡터 값으로 변환시킬 수 있다. 음성 인식 장치는 단어들 간의 발음 유사도에 기초한 어쿠스틱 임베딩 매트릭스를 음성 데이터에 포함된 단어들에 적용하여 음성 데이터에 포함된 단어들을 발음 유사도에 따른 벡터 값으로 변환할 수 있다. 음성 인식 장치는 어쿠스틱 임베딩 매트릭스를 이용하여 발음이 유사한 단어들이 공간 상에서 서로 인접한 위치에 배치되도록 음성 데이터에 포함된 단어들의 벡터 값을 결정할 수 있다. 음성 인식 장치는 어쿠스틱 임베딩 매트릭스를 이용하여 음성 데이터에 포함된 단어들을 연속된 벡터 값으로 변환할 수 있다. 어쿠스틱 임베딩 매트릭스를 통해 발음이 유사한 단어들은 서로 유사한 벡터 값으로 변환될 수 있다.
단계(1320)에서, 음성 인식 장치는 뉴럴 네트워크에 기초한 언어 모델에 단계(1310)에서 변환된 음성 데이터의 벡터 값을 적용할 수 있다. 언어 모델은 음성 데이터의 벡터 값에 기초하여 음성 데이터에 대한 인식 결과를 제공할 수 있다. 언어 모델은 입력된 음성 데이터의 벡터 값에 기초하여 음성 데이터에 대한 후보 인식 결과들을 제공할 수 있다.
단계(1330)에서, 음성 인식 장치는 음성 데이터의 인식 결과를 결정할 수 있다. 음성 인식 장치는 뉴럴 네트워크에 기초한 언어 모델보다 성능이 뛰어난 다른 언어 모델을 이용하여 후보 인식 결과들 중에서 음성 데이터에 대한 최종 인식 결과를 결정할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 비록 한정된 도면에 의해 실시예들이 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Claims (15)
- 단어들 간의 발음 유사도에 기초하여 학습 데이터에 포함된 단어들을 벡터 값으로 변환하는 단계; 및
상기 벡터 값을 이용하여 뉴럴 네트워크에 기초한 언어 모델을 학습시키는 단계를 포함하고,
상기 학습 데이터에 포함된 단어들을 벡터 값으로 변환하는 단계는,
서로 다른 단어들 간의 발음 거리를 행렬로 표현한 단어들 간 거리 행렬에 기초하여 각 단어들의 벡터 값 정보를 포함하는 어쿠스틱 임베딩 테이블(acoustic embedding table)을 결정하는 단계;
단어들의 음소 시퀀스와 상기 어쿠스틱 임베딩 테이블에 포함된 각 단어들의 벡터 값 정보에 기초하여 어쿠스틱 임베딩 매트릭스(acoustic embedding matrix)를 결정하는 단계; 및
상기 어쿠스틱 임베딩 매트릭스를 상기 학습 데이터에 포함된 단어들에 적용하여 상기 학습 데이터에 포함된 단어들을 상기 벡터 값으로 변환하는 단계
를 포함하는, 언어 모델 학습 방법. - 삭제
- 제1항에 있어서,
상기 학습 데이터에 포함된 단어들을 벡터 값으로 변환하는 단계는,
상기 어쿠스틱 임베딩 매트릭스를 이용하여 발음이 유사한 단어들이 서로 인접한 공간 상에 위치하도록 상기 학습 데이터에 포함된 단어들의 벡터 값을 결정하는, 언어 모델 학습 방법. - 삭제
- 제1항에 있어서,
상기 어쿠스틱 임베딩 매트릭스는,
서로 다른 단어들 간의 발음 거리를 행렬로 표현한 단어들 간 거리 행렬에 다중 차원 스케일링(Multi-Dimensional Scaling) 기법을 적용하여 결정되는, 언어 모델 학습 방법. - 제1항에 있어서,
상기 학습된 언어 모델은,
단어들 간의 연결 관계를 추정하는데 이용되는 것인,
언어 모델 학습 방법. - 제1항, 제3항, 제5항 및 제6항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체.
- 단어들 간의 발음 유사도에 기초하여 학습 데이터에 포함된 단어들을 벡터 값으로 변환하는 학습 데이터 변환부; 및
상기 벡터 값을 이용하여 뉴럴 네트워크에 기초한 언어 모델을 학습시키는 언어 모델 학습부
를 포함하고,
상기 학습 데이터 변환부는,
서로 다른 단어들 간의 발음 거리를 행렬로 표현한 단어들 간 거리 행렬에 기초하여 각 단어들의 벡터 값 정보를 포함하는 어쿠스틱 임베딩 테이블(acoustic embedding table)을 결정하고,
단어들의 음소 시퀀스와 상기 어쿠스틱 임베딩 테이블에 포함된 각 단어들의 벡터 값 정보에 기초하여 어쿠스틱 임베딩 매트릭스(acoustic embedding matrix)를 결정하고,
상기 어쿠스틱 임베딩 매트릭스를 상기 학습 데이터에 포함된 단어들에 적용하여 상기 학습 데이터에 포함된 단어들을 상기 벡터 값으로 변환하는, 언어 모델 학습 장치. - 삭제
- 제8항에 있어서,
상기 학습 데이터 변환부는,
상기 어쿠스틱 임베딩 매트릭스를 이용하여 발음이 유사한 단어들이 서로 인접한 공간 상에 위치하도록 상기 학습 데이터에 포함된 단어들의 벡터 값을 결정하는, 언어 모델 학습 장치. - 삭제
- 제8항에 있어서,
상기 어쿠스틱 임베딩 매트릭스는,
서로 다른 단어들 간의 발음 거리를 행렬로 표현한 단어들 간 거리 행렬에 다중 차원 스케일링(Multi-Dimensional Scaling) 기법을 적용하여 결정되는, 언어 모델 학습 장치. - 단어들 간의 발음 유사도에 기초하여 음성 데이터에 포함된 단어들을 벡터 값으로 변환하는 음성 데이터 변환부; 및
뉴럴 네트워크에 기초한 언어 모델에 상기 벡터 값을 적용하고, 상기 적용 결과에 기초하여 상기 음성 데이터의 인식 결과를 결정하는 음성 데이터 인식부
를 포함하고,
상기 음성 데이터 변환부는,
단어들의 음소 시퀀스와 어쿠스틱 임베딩 테이블(acoustic embedding table)에 포함된 각 단어들의 벡터 값 정보에 기초하여 결정된 어쿠스틱 임베딩 매트릭스를 상기 음성 데이터에 포함된 단어들에 적용하여 상기 음성 데이터에 포함된 단어들을 상기 벡터 값으로 변환하고,
상기 음성 데이터 인식부는,
서로 다른 단어들 간의 발음 거리를 행렬로 표현한 단어들 간 거리 행렬에 기초하여 결정된 각 단어들의 상기 벡터 값 정보를 포함하는 상기 어쿠스틱 임베딩 테이블에 기초하여 상기 음성 데이터의 인식 결과를 결정하는,
음성 인식 장치. - 삭제
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200131992A KR102292921B1 (ko) | 2014-12-08 | 2020-10-13 | 언어 모델 학습 방법 및 장치, 음성 인식 방법 및 장치 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140175152A KR102167719B1 (ko) | 2014-12-08 | 2014-12-08 | 언어 모델 학습 방법 및 장치, 음성 인식 방법 및 장치 |
KR1020200131992A KR102292921B1 (ko) | 2014-12-08 | 2020-10-13 | 언어 모델 학습 방법 및 장치, 음성 인식 방법 및 장치 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140175152A Division KR102167719B1 (ko) | 2014-12-08 | 2014-12-08 | 언어 모델 학습 방법 및 장치, 음성 인식 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200120595A KR20200120595A (ko) | 2020-10-21 |
KR102292921B1 true KR102292921B1 (ko) | 2021-08-24 |
Family
ID=73034996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200131992A KR102292921B1 (ko) | 2014-12-08 | 2020-10-13 | 언어 모델 학습 방법 및 장치, 음성 인식 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102292921B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024048990A1 (ko) * | 2022-08-31 | 2024-03-07 | 삼성전자주식회사 | 전자 장치 및 이의 제어 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030074369A1 (en) * | 1999-01-26 | 2003-04-17 | Hinrich Schuetze | System and method for identifying similarities among objects in a collection |
JP2011048405A (ja) * | 2010-12-10 | 2011-03-10 | Nippon Hoso Kyokai <Nhk> | 音声認識装置及び音声認識プログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100904049B1 (ko) * | 2007-07-06 | 2009-06-23 | 주식회사 예스피치 | 음성 인식에 대한 통계적 의미 분류 시스템 및 방법 |
-
2020
- 2020-10-13 KR KR1020200131992A patent/KR102292921B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030074369A1 (en) * | 1999-01-26 | 2003-04-17 | Hinrich Schuetze | System and method for identifying similarities among objects in a collection |
JP2011048405A (ja) * | 2010-12-10 | 2011-03-10 | Nippon Hoso Kyokai <Nhk> | 音声認識装置及び音声認識プログラム |
Non-Patent Citations (1)
Title |
---|
Quin Cui 등, "Learning Effective Word Embedding using Morphological Word Similarity", arXiv:1407.1687v1 [cs.CL], 2014.07.07.* |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024048990A1 (ko) * | 2022-08-31 | 2024-03-07 | 삼성전자주식회사 | 전자 장치 및 이의 제어 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20200120595A (ko) | 2020-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102167719B1 (ko) | 언어 모델 학습 방법 및 장치, 음성 인식 방법 및 장치 | |
KR102305584B1 (ko) | 언어 모델 학습 방법 및 장치, 언어 인식 방법 및 장치 | |
KR102424514B1 (ko) | 언어 처리 방법 및 장치 | |
US20200335093A1 (en) | Latency constraints for acoustic modeling | |
KR102380833B1 (ko) | 음성 인식 방법 및 음성 인식 장치 | |
KR102410820B1 (ko) | 뉴럴 네트워크를 이용한 인식 방법 및 장치 및 상기 뉴럴 네트워크를 트레이닝하는 방법 및 장치 | |
Peddinti et al. | A time delay neural network architecture for efficient modeling of long temporal contexts. | |
US20180137855A1 (en) | Method and apparatus for processing natural language, method and apparatus for training natural language processing model | |
KR20180071029A (ko) | 음성 인식 방법 및 장치 | |
US10580432B2 (en) | Speech recognition using connectionist temporal classification | |
KR20200128938A (ko) | 모델 학습 방법 및 장치 | |
US10825445B2 (en) | Method and apparatus for training acoustic model | |
KR102577589B1 (ko) | 음성 인식 방법 및 음성 인식 장치 | |
JP2020042257A (ja) | 音声認識方法及び装置 | |
KR20210042696A (ko) | 모델 학습 방법 및 장치 | |
WO2019126881A1 (en) | System and method for tone recognition in spoken languages | |
KR102167157B1 (ko) | 발음 변이를 적용시킨 음성 인식 방법 | |
KR102292921B1 (ko) | 언어 모델 학습 방법 및 장치, 음성 인식 방법 및 장치 | |
KR20220010259A (ko) | 음성 신호 처리 방법 및 장치 | |
KR102570908B1 (ko) | 음성의 끝점 검출 장치, 프로그램 및 그것의 제어 방법 | |
KR102300303B1 (ko) | 발음 변이를 적용시킨 음성 인식 방법 | |
KR102410831B1 (ko) | 음향 모델을 트레이닝하는 방법 및 그 장치 | |
KR20240057182A (ko) | 음성인식 방법 및 장치 | |
Yazdchi et al. | A new bidirectional neural network for lexical modeling and speech recognition improvement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |