KR20210052036A - 복수 의도어 획득을 위한 합성곱 신경망을 가진 장치 및 그 방법 - Google Patents
복수 의도어 획득을 위한 합성곱 신경망을 가진 장치 및 그 방법 Download PDFInfo
- Publication number
- KR20210052036A KR20210052036A KR1020190138059A KR20190138059A KR20210052036A KR 20210052036 A KR20210052036 A KR 20210052036A KR 1020190138059 A KR1020190138059 A KR 1020190138059A KR 20190138059 A KR20190138059 A KR 20190138059A KR 20210052036 A KR20210052036 A KR 20210052036A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- feature map
- matrix
- filter
- filters
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000013527 convolutional neural network Methods 0.000 title abstract description 36
- 239000011159 matrix material Substances 0.000 claims abstract description 72
- 238000013528 artificial neural network Methods 0.000 claims abstract description 63
- 238000011176 pooling Methods 0.000 claims abstract description 23
- 230000015654 memory Effects 0.000 claims description 37
- 238000004891 communication Methods 0.000 claims description 28
- 230000003252 repetitive effect Effects 0.000 claims description 5
- 238000007781 pre-processing Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 27
- 238000001228 spectrum Methods 0.000 description 19
- 238000004458 analytical method Methods 0.000 description 18
- 238000010801 machine learning Methods 0.000 description 17
- 238000003058 natural language processing Methods 0.000 description 17
- 238000004422 calculation algorithm Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 16
- 230000015572 biosynthetic process Effects 0.000 description 14
- 238000003786 synthesis reaction Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 10
- 238000012549 training Methods 0.000 description 10
- 238000013473 artificial intelligence Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000007405 data analysis Methods 0.000 description 7
- 239000000284 extract Substances 0.000 description 7
- 230000005236 sound signal Effects 0.000 description 6
- 210000000225 synapse Anatomy 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 230000018044 dehydration Effects 0.000 description 4
- 238000006297 dehydration reaction Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000007774 longterm Effects 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 4
- 210000002569 neuron Anatomy 0.000 description 4
- 230000002787 reinforcement Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000005406 washing Methods 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000007418 data mining Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 239000010454 slate Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000251468 Actinopterygii Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000009194 climbing Effects 0.000 description 1
- 230000001268 conjugating effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- VIKNJXKGJWUCNN-XGXHKTLJSA-N norethisterone Chemical compound O=C1CC[C@@H]2[C@H]3CC[C@](C)([C@](CC4)(O)C#C)[C@@H]4[C@@H]3CCC2=C1 VIKNJXKGJWUCNN-XGXHKTLJSA-N 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000015541 sensory perception of touch Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 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/02—Feature extraction for speech recognition; Selection of recognition unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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
-
- 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
-
- 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/1822—Parsing for meaning understanding
-
- 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/26—Speech to text systems
-
- 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/28—Constructional details of speech recognition systems
- G10L15/30—Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
-
- 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/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/063—Training
- G10L2015/0635—Training updating or merging of old and new templates; Mean values; Weighting
-
- 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
- G10L2015/088—Word spotting
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Theoretical Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Machine Translation (AREA)
Abstract
본 발명은 음복수 의도어 획득을 위한 합성곱 신경망 구조, 해당 합성곱 신경망을 이용하는 음성 인식 장치 및 방법에 관한 것으로, 음성 인식 방법은 발화자의 음성에 기초하여 생성된 입력 데이터를 수신하는 동작, 상기 입력 데이터를 각각 N2개의 채널로 구성된 N3개의 필터와 합성곱 연산을 수행하여 각 필터의 채널별로 N4개의 데이터를 가지는 특징 지도(feature map)를 획득하는 동작, 상기 각 필터의 채널별 N4개의 데이터에 대해 맥스 풀링(max pooling)을 적용하여 대표 값을 획득하여 각 필터별로 N2 개의 데이터를 가지는 특징 지도를 획득하는 동작, 상기 각 필터별 특징 지도를 연결(concatenation)하여 N3xN2 행렬로 나타나는 하나의 특징 지도를 획득하는 동작, 상기 N3xN2 행렬의 특징 지도를 1xN3 행렬로 표시되는 필터와 합성곱 연산을 수행하여 1xN2 행렬로 나타나는 특징 지도를 획득하는 동작 및 상기 1xN2의 특징 지도를 인공 신경망에 입력시켜 적어도 하나의 의도어를 획득하는 동작을 포함할 수 있으며, 이에 의해 음성 인식 장치는 발화자의 음성에 포함된 복수의 의도어를 더욱 정확하게 인지할 수 있을 것이다.
Description
다양한 실시 예들은 복수 의도어 획득을 위한 합성곱 신경망 구조, 해당 합성곱 신경망을 이용하는 음성 인식 장치 및 방법에 관한 것이다.
인간에게 있어 음성으로 대화하는 것은 정보를 교환하는 가장 자연스럽고 간편한 방법으로 인식되어 지고 있고, 이를 반영하여, 최근 냉장고, 세탁기, 청소기 등을 포함하는 다양한 가전 제품과 로봇, 자동차 등에서 발화자의 음성을 인식하고, 발화자의 의도를 인지하고, 그에 맞추어 제어되도록 하기 위한 음성 인식 장치의 사용이 확대되어 가고 있다.
전자 장치와 음성으로 대화하기 위해서는 인간의 음성을 전자 장치가 처리할 수 있는 코드로 변환을 해줄 필요가 있으며, 음성인식 장치는 음성에 포함된 음향학적 정보로부터 언어적 정보를 추출하여 기계가 인지하고 반응할 수 있는 코드로 변환해주는 장치라 할 수 있다.
음성 인식의 정확도를 높이기 위하여 인공 지능 기술에 기반한 음성 인식이 시도되어 지고 있으나, 아직까지 음성에 포함되어 있는 복수의 의도어를 인식하는데 있어서는 한계가 있다.
사용자가 가전 제품을 동작 시키고자 하는 경우 복수의 의도를 가지고 복수의 키 입력을 통해 가전 제품의 제어 입력을 전달할 수 있다. 마찬가지로 음성으로 가전 제품을 동작 시키고자 하는 경우에도 복수의 의도어가 한번에 발화되어 음성 인식 장치로 입력될 수 있어. 음성 인식 장치는 발화된 음성에 포함된 복수의 의도어를 정확하게 인식하는 것이 필요하다.
본 발명의 다양한 실시 예는 발화된 음성에 포함된 복수의 의도어를 더욱 정확하게 분류할 수 있는 합성곱 신경망 구조를 제공할 수 있다.
본 발명의 다양한 실시 예는 제안하는 합성곱 신경망 구조를 이용하여 발화된 음성에 포함된 복수의 의도어를 획득하는 방법을 제공할 수 있다.
본 발명의 다양한 실시 예는 복수의 의도어를 분류할 수 있는 합성곱 신경망 구조에 기초한 음성 인식 장치를 제공할 수 있다.
본 발명의 다양한 실시 예는 해당 음성 인식 장치를 구비하여 복수의 의도어를 인식할 수 있는 전자 장치를 제공할 수 있다.
본 문서에서 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시의 다양한 실시 예들에 따르면, 음성 인식 장치는 메모리 및 적어도 하나의 프로세서를 포함하고, 상기 메모리는 음성 인식을 위한 프로그램을 저장하고 상기 적어도 하나의 프로세서는 상기 메모리에 저장된 프로그램을 로딩하여 실행할 수 있다.
본 개시의 다양한 실시 예들에 따르면, 전자 장치는 발화자의 음성을 수신하는 마이크로폰, 상기 마이크로폰으로부터 수신한 발화자의 음성을 전처리하는 오디오 프로세서 및 상기 오디오 프로세서와 작동적으로 연결된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는 음성 데이터를 획득하고, 상기 음성 데이터를 텍스트 데이터로 변환하고, 상기 텍스트 데이터를 임베딩 데이터로 변환하고, 상기 임베딩 데이터를 각각 N2개의 채널로 구성된 N3개의 필터와 합성곱 연산을 수행하여 각 필터의 채널별로 N4개의 데이터를 가지는 특징 지도(feature map)를 획득하고, 상기 각 필터의 채널별 N4개의 데이터에 대해 맥스 풀링(max pooling)을 적용하여 대표 값을 획득하여 각 필터별로 N2 개의 데이터를 가지는 특징 지도를 획득하고, 상기 각 필터별 특징 지도를 연결(concatenation)하여 N3xN2 행렬로 나타나는 하나의 특징 지도를 획득하고, 상기 N3xN2 행렬의 특징 지도를 1xN3 행렬로 표시되는 필터와 합성곱 연산을 수행하여 1xN2 행렬로 나타나는 특징 지도를 획득하고, 상기 1xN2의 특징 지도를 인공 신경망에 입력시켜 적어도 하나의 의도어를 획득할 수 있다.
본 개시의 다양한 실시 예들에 따르면, 음성 인식 방법은 발화자의 음성에 기초하여 생성된 입력 데이터를 수신하는 동작, 상기 입력 데이터를 각각 N2개의 채널로 구성된 N3개의 필터와 합성곱 연산을 수행하여 각 필터의 채널별로 N4개의 데이터를 가지는 특징 지도(feature map)를 획득하는 동작, 상기 각 필터의 채널별 N4개의 데이터에 대해 맥스 풀링(max pooling)을 적용하여 대표 값을 획득하여 각 필터별로 N2 개의 데이터를 가지는 특징 지도를 획득하는 동작, 상기 각 필터별 특징 지도를 연결(concatenation)하여 N3xN2 행렬로 나타나는 하나의 특징 지도를 획득하는 동작, 상기 N3xN2 행렬의 특징 지도를 1xN3 행렬로 표시되는 필터와 합성곱 연산을 수행하여 1xN2 행렬로 나타나는 특징 지도를 획득하는 동작 및 상기 1xN2의 특징 지도를 인공 신경망에 입력시켜 적어도 하나의 의도어를 획득하는 동작을 포함할 수 있다.
본 개시의 다양한 실시 예들에 따르면, 전자 장치의 동작 방법은 음성 데이터를 획득하는 동작, 상기 음성 데이터를 텍스트 데이터로 변환하는 동작, 상기 텍스트 데이터를 임베딩 데이터로 변환하는 동작, 상기 임베딩 데이터를 각각 N2개의 채널로 구성된 N3개의 필터와 합성곱 연산을 수행하여 각 필터의 채널별로 N4개의 데이터를 가지는 특징 지도(feature map)를 획득하는 동작, 상기 각 필터의 채널별 N4개의 데이터에 대해 맥스 풀링(max pooling)을 적용하여 대표 값을 획득하여 각 필터별로 N2 개의 데이터를 가지는 특징 지도를 획득하는 동작, 상기 각 필터별 특징 지도를 연결(concatenation)하여 N3xN2 행렬로 나타나는 하나의 특징 지도를 획득하는 동작, 상기 N3xN2 행렬의 특징 지도를 1xN3 행렬로 표시되는 필터와 합성곱 연산을 수행하여 1xN2 행렬로 나타나는 특징 지도를 획득하는 동작 및 상기 1xN2의 특징 지도를 인공 신경망에 입력시켜 적어도 하나의 의도어를 획득하는 동작을 포함할 수 있다.
다양한 실시 예들에 따라, 음성에 포함된 복수의 의도어를 정확하게 획득함으로써 음성 인식 장치를 가진 전자 장치가 사용자의 의도를 명확하게 파악하고 그에 맞게 동작할 수 있도록 할 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 음성 인식 기능을 수행할 수 있는 전자 장치(100)의 구성을 도시한 블록도이다.
도 2는 완전 연결된 인공 신경망 구조의 일 예를 도시한 도면이다.
도 3은 심층 신경망의 일종인 합성곱 신경망(convolutional neural network, CNN) 구조의 일 예를 도시한 도면이다.
도 4는 다양한 실시 예들에 따른 음성 시스템(1)을 설명하는 도면이다.
도 5은 다양한 실시 예들에 따른 음성 신호로부터 사용자의 발화 특징을 추출하는 과정을 설명하는 도면이다.
도 6은 일실시 예에 따른 음성 신호를 파워 스펙트럼으로 변환한 예를 설명한 도면이다.
도 7는 다양한 실시 예들에 따른 복수의 의도어를 획득하기 위한 합성곱 신경망 구조를 도시한 도면이다.
도 8은 다양한 실시 예들에 따른 전자 장치(100)의 적어도 하나의 프로세서에서 수행하는 구성요소들을 도시한 블록도이다.
도 9는 다양한 실시 예에 따른, 전자 장치(100)가 발화자의 음성에서 적어도 하나의 의도어를 획득하는 동작을 도시한 흐름도이다.
도 10은 지엽 특징을 획득할 수 있는 합성곱 신경망에 기초한 음성 인식에 의해 의도어를 획득하는 동작을 설명한 흐름도이다.
도면의 설명과 관련하여, 동일 또는 유사한 구성요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다.
도 2는 완전 연결된 인공 신경망 구조의 일 예를 도시한 도면이다.
도 3은 심층 신경망의 일종인 합성곱 신경망(convolutional neural network, CNN) 구조의 일 예를 도시한 도면이다.
도 4는 다양한 실시 예들에 따른 음성 시스템(1)을 설명하는 도면이다.
도 5은 다양한 실시 예들에 따른 음성 신호로부터 사용자의 발화 특징을 추출하는 과정을 설명하는 도면이다.
도 6은 일실시 예에 따른 음성 신호를 파워 스펙트럼으로 변환한 예를 설명한 도면이다.
도 7는 다양한 실시 예들에 따른 복수의 의도어를 획득하기 위한 합성곱 신경망 구조를 도시한 도면이다.
도 8은 다양한 실시 예들에 따른 전자 장치(100)의 적어도 하나의 프로세서에서 수행하는 구성요소들을 도시한 블록도이다.
도 9는 다양한 실시 예에 따른, 전자 장치(100)가 발화자의 음성에서 적어도 하나의 의도어를 획득하는 동작을 도시한 흐름도이다.
도 10은 지엽 특징을 획득할 수 있는 합성곱 신경망에 기초한 음성 인식에 의해 의도어를 획득하는 동작을 설명한 흐름도이다.
도면의 설명과 관련하여, 동일 또는 유사한 구성요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
이하의 설명에서 사용되는 구성요소에 대한 접미사 '모듈' 또는 '부'는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, '모듈' 또는 '부'는 소프트웨어 구성요소 또는 FPGA(field programmable gate array), ASIC(application specific integrated circuit)과 같은 하드웨어 구성요소를 의미할 수 있으며, '부' 또는 '모듈'은 어떤 역할들을 수행한다. 그렇지만 '부' 또는 '모듈'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부' 또는 '모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부' 또는 '모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다. 구성요소들과 '부' 또는 '모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부' 또는 '모듈'들로 결합되거나 추가적인 구성요소들과 '부' 또는 '모듈'들로 더 분리될 수 있다.
본 발명의 몇몇 실시예들과 관련하여 설명되는 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM, 또는 당업계에 알려진 임의의 다른 형태의 기록 매체에 상주할 수도 있다. 예시적인 기록 매체는 프로세서에 커플링되며, 그 프로세서는 기록 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 기록 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 기록 매체는 주문형 집적회로(ASIC) 내에 상주할 수도 있다. ASIC은 사용자 단말기 내에 상주할 수도 있다.
본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 '연결되어' 있다거나 '접속되어' 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 '직접 연결되어' 있다거나 '직접 접속되어' 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
도 1은 음성 인식 기능을 수행할 수 있는 전자 장치(100)의 구성을 도시한 블록도이다.
도 1에 도시된 전자 장치(100)는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 인공 지능 기기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device, 예를 들어, 워치형 인공 지능 기기 (smartwatch), 글래스형 인공 지능 기기 (smart glass), HMD(head mounted display)) 등과 같은 이동 전자 장치 또는 냉장고, 세탁기, 스마트 TV, 데스크탑 컴퓨터, 디지털 사이니지 등과 같은 고정 전자 장치일 수 있다. 또한, 전자 장치(100)는 고정 또는 이동 가능한 로봇일 수 있다.
도 1에 도시된 전자 장치(100)의 구성은 일실시 예로, 각각의 구성 요소는 하나의 칩, 부품 또는 전자 회로로 구성되거나, 칩, 부품 또는 전자 회로의 결합으로 구성될 수 있다. 다른 일실시 예에 따라, 도 1에 도시된 구성요소의 일부는 몇 개의 구성요소로 분리되어 서로 다른 칩 또는 부품 또는 전자 회로로 구성될 수 있으며, 또는 몇 개의 구성요소가 결합되어 하나의 칩, 부품 또는 전자 회로로 구성될 수도 있다. 또한, 다른 일실시 예에 따라, 도 1에 도시된 구성요소의 일부가 삭제될 수 있거나 또는 도 1에 도시되지 않은 구성요소가 추가될 수도 있다. 예를 들면, 데스크탑 컴퓨터의 경우 도 1에 도시된 무선 통신부(110)는 삭제될 수 있고, 이더넷 및/또는 LAN을 포함하는 유선 통신부가 추가될 수 있다.
도 1을 참조하면, 다양한 실시 예에 따른 전자 장치(100)는 무선 통신부(110), 입력부(120), 러닝 프로세서(130), 센싱부(140), 출력부(150), 인터페이스부(160), 메모리(170), 프로세서(180) 및 전원 공급부(190)를 포함할 수 있다.
다양한 실시 예에 따르면, 무선 통신부(110)는 방송 수신 모듈(111), 이동통신 모듈(112), 무선 인터넷 모듈(113), 근거리 통신 모듈(114), 위치정보 모듈(115) 중 적어도 하나를 포함할 수 있다.
방송 수신 모듈(111)은 방송 채널을 통하여 외부의 방송 관리 서버로부터 방송 신호 및/또는 방송 관련된 정보를 수신할 수 있다.
이동통신 모듈(112)은, 이동통신을 위한 기술표준들 또는 통신방식(예를 들어, GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), CDMA2000(Code Division Multi Access 2000), EV-DO(Enhanced Voice-Data Optimized or Enhanced Voice-Data Only), WCDMA(Wideband CDMA), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등)에 따라 구축된 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 데이터 통신을 위하여 무선 신호를 송수신할 수 있다.
무선 인터넷 모듈(113)은 무선 인터넷 접속을 위한 모듈을 말하는 것으로, 전자 장치(100)에 내장되거나 외장될 수 있다. 무선 인터넷 모듈(113)은 무선 인터넷 기술들에 따른 통신망에서 데이터 통신을 위하여 무선 신호를 송수신할 수 있다.
무선 인터넷 기술로는, 예를 들어 WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), Wi-Fi Direct, DLNA(Digital Living Network Alliance), WiBro(Wireless Broadband), WiMAX(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등이 있다.
근거리 통신 모듈(114)은 근거리 통신(Short range communication)을 위한 것으로서, 블루투스(Bluetooth??), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wideband), ZigBee, NFC(Near Field Communication), Wi-Fi(Wireless-Fidelity), Wi-Fi Direct, Wireless USB(Wireless Universal Serial Bus) 기술 중 적어도 하나를 이용하여, 근거리 통신을 지원할 수 있다.
위치정보 모듈(115)은 전자 장치(100)의 위치(또는 현재 위치)를 획득하기 위한 모듈로서, 그의 대표적인 예로는 GPS(Global Positioning System) 모듈 또는 WiFi(Wireless Fidelity) 모듈이 있다. 예를 들어, 전자 장치(100)는 GPS모듈을 활용하면, GPS 위성에서 보내는 신호를 이용하여 전자 장치(100)의 위치를 획득할 수 있다.
입력부(120)는 영상 신호 입력을 위한 카메라(121), 오디오 신호를 수신하기 위한 마이크로폰(122), 사용자로부터 정보를 입력 받기 위한 사용자 입력부(123)를 포함할 수 있다.
입력부(120)에서 수집한 음성 데이터나 이미지 데이터는 분석되어 사용자의 제어명령으로 처리될 수 있다.
카메라(121)는 화상 통화모드 또는 촬영 모드에서 이미지 센서에 의해 얻어지는 정지영상 또는 동영상 등의 화상 프레임을 처리한다. 처리된 화상 프레임은 디스플레이부(151)에 표시되거나 메모리(170)에 저장될 수 있다.
마이크로폰(122)은 외부의 음향 신호를 전기적인 음성 데이터로 처리한다. 처리된 음성 데이터는 전자 장치(100)에서 수행 중인 기능(또는 실행 중인 응용 프로그램)에 따라 다양하게 활용될 수 있다. 한편, 마이크로폰(122)에는 외부의 음향 신호를 입력 받는 과정에서 발생되는 잡음(noise)을 제거하기 위한 다양한 잡음 제거 알고리즘이 구현될 수 있다.
사용자 입력부(123)는 사용자로부터 정보를 입력 받기 위한 것으로서, 사용자 입력부(123)를 통해 정보가 입력되면, 프로세서(180)는 입력된 정보에 대응되도록 전자 장치(100)의 동작을 제어할 수 있다.
사용자 입력부(123)는 기계식 (mechanical) 입력수단(또는, 기계식 키, 예를 들어, 전자 장치(100)의 전/후면 또는 측면에 위치하는 버튼, 돔 스위치 (dome switch), 조그 휠, 조그 스위치 등) 및 터치식 입력수단을 포함할 수 있다. 일 예로서, 터치식 입력수단은, 소프트웨어적인 처리를 통해 터치스크린에 표시되는 가상 키(virtual key), 소프트 키(soft key) 또는 비주얼 키(visual key)로 이루어지거나, 상기 터치스크린 이외의 부분에 배치되는 터치 키(touch key)로 이루어질 수 있다.
센싱부(140)는 전자 장치(100) 내 정보, 전자 장치(100)를 둘러싼 주변 환경 정보 및 사용자 정보 중 적어도 하나를 센싱 하기 위한 하나 이상의 센서를 포함할 수 있다.
예를 들어, 센싱부(140)는 근접센서, 조도 센서, 터치 센서(touch sensor), 가속도 센서(acceleration sensor), 자기 센서(magnetic sensor), 중력 센서(G-sensor), 자이로스코프 센서(gyroscope sensor), 모션 센서(motion sensor), RGB 센서, 적외선 센서(IR 센서: infrared sensor), 지문인식 센서(finger scan sensor), 초음파 센서(ultrasonic sensor), 광 센서(optical sensor, 예를 들어, 카메라(121 참조)), 마이크로폰(microphone, 122 참조), 배터리 게이지(battery gauge), 환경 센서(예를 들어, 기압계, 습도계, 온도계, 방사능 감지 센서, 열 감지 센서, 가스 감지 센서 등), 화학 센서(예를 들어, 전자 코, 헬스케어 센서, 생체 인식 센서 등) 중 적어도 하나를 포함할 수 있다. 한편, 본 명세서에 개시된 전자 장치(100)는, 이러한 센서들 중 적어도 둘 이상의 센서에서 센싱되는 정보들을 조합하여 활용할 수 있다.
출력부(150)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시키기 위한 것으로, 디스플레이부(151), 음향 출력부(152), 햅틱(haptic) 모듈(153), 광 출력부(154) 중 적어도 하나를 포함할 수 있다.
디스플레이부(151)는 전자 장치(100)에서 처리되는 정보를 표시(출력)한다. 예를 들어, 디스플레이부(151)는 전자 장치(100)에서 구동되는 응용 프로그램의 실행화면 정보, 또는 이러한 실행화면 정보에 따른 UI(User Interface), GUI(Graphic User Interface) 정보를 표시할 수 있다.
디스플레이부(151)는 터치 센서와 상호 레이어 구조를 이루거나 일체형으로 형성됨으로써, 터치 스크린을 구현할 수 있다. 이러한 터치 스크린은, 전자 장치(100)와 사용자 사이의 입력 인터페이스를 제공하는 사용자 입력부(123)로써 기능함과 동시에, 전자 장치(100)와 사용자 사이의 출력 인터페이스를 제공할 수 있다.
음향 출력부(152)는 호 신호 수신, 통화모드 또는 녹음 모드, 음성인식 모드, 방송수신 모드 등에서 무선 통신부(110)로부터 수신되거나 메모리(170)에 저장된 오디오 데이터를 출력할 수 있다.
음향 출력부(152)는 리시버(receiver), 스피커(speaker), 버저(buzzer) 중 적어도 하나 이상을 포함할 수 있다.
햅틱 모듈(153)은 사용자가 느낄 수 있는 다양한 촉각 효과를 발생시킬 수 있다. 햅틱 모듈(153)이 발생시키는 촉각 효과의 대표적인 예로는 진동이 될 수 있다.
광 출력부(154)는 전자 장치(100)의 광원의 빛을 이용하여 이벤트 발생을 알리기 위한 신호를 출력한다. 전자 장치(100)에서 발생되는 이벤트의 예로는 메시지 수신, 호 신호 수신, 부재중 전화, 알람, 일정 알림, 이메일 수신, 애플리케이션을 통한 정보 수신 등이 될 수 있다.
인터페이스부(160)는 전자 장치(100)에 연결되는 다양한 종류의 외부 기기와의 통로 역할을 수행한다. 이러한 인터페이스부(160)는, 유/무선 헤드셋 포트(port), 외부 충전기 포트(port), 유/무선 데이터 포트(port), 메모리 카드(memory card) 포트, 식별 모듈이 구비된 장치를 연결하는 포트(port), 오디오 I/O(Input/Output) 포트(port), 비디오 I/O(Input/Output) 포트(port), 이어폰 포트(port) 중 적어도 하나를 포함할 수 있다. 전자 장치(100)에서는, 상기 인터페이스부(160)에 외부 기기가 연결되는 것에 대응하여, 연결된 외부 기기와 관련된 적절할 제어를 수행할 수 있다.
한편, 식별 모듈은 전자 장치(100)의 사용 권한을 인증하기 위한 각종 정보를 저장한 칩으로서, 사용자 인증 모듈(user identify module; UIM), 가입자 인증 모듈(subscriber identity module; SIM), 범용 사용자 인증 모듈(universal subscriber identity module; USIM) 등을 포함할 수 있다. 식별 모듈이 구비된 장치(이하 '식별 장치')는, 스마트 카드(smart card) 형식으로 제작될 수 있다. 따라서 식별 장치는 상기 인터페이스부(160)를 통하여 전자 장치(100)와 연결될 수 있다.
메모리(170)는 전자 장치(100)의 다양한 기능을 지원하는 데이터를 저장할 수 있다. 메모리(170)는 전자 장치(100)에서 구동되는 다수의 응용 프로그램(application program) 또는 애플리케이션(application), 전자 장치(100)의 동작을 위한 데이터들, 명령어들, 러닝 프로세서(130)의 동작을 위한 데이터들(예를 들어, 기계 학습(machine running)을 위한 적어도 하나의 알고리즘 정보 등)을 저장할 수 있다.
전원공급부(190)는 프로세서(180)의 제어 하에서, 외부의 전원, 내부의 전원을 인가받아 전자 장치(100)에 포함된 각 구성요소들에 전원을 공급할 수 있다. 이러한 전원공급부(190)는 배터리를 포함하며, 상기 배터리는 내장형 배터리 또는 교체 가능한 형태의 배터리가 될 수 있다.
프로세서(180)는 데이터 분석 및 기계 학습 알고리즘을 사용하여 결정되거나, 생성된 정보에 기초하여 전자 장치(100)의 적어도 하나의 실행 가능한 동작을 결정 또는 예측할 수 있다. 이를 위해, 프로세서(180)는 러닝 프로세서(130)의 데이터를 요청, 검색, 수신 또는 활용할 수 있고, 상기 적어도 하나의 실행 가능한 동작 중 예측되는 동작이나, 바람직한 것으로 판단되는 동작을 실행하도록 전자 장치(100)를 제어할 수 있다.
프로세서(180)는 지능적 에뮬레이션(즉, 지식 기반 시스템, 추론 시스템 및 지식 획득 시스템)을 구현하는 다양한 기능을 수행할 수 있다. 이는 적응 시스템, 기계 학습 시스템, 인공 신경망 등을 포함하는, 다양한 유형의 시스템(예컨대, 퍼지 논리 시스템)에 적용될 수 있다.
프로세서(180)는, 또한 I/O 처리 모듈, 환경 조건 모듈, 음성-텍스트 (speech-to-text, STT) 처리 모듈, 자연어 처리(natural language processing, NLP) 모듈, 작업 흐름 처리 모듈 및 서비스 처리 모듈과 같이, 음성 및 자연 언어 음성 처리를 수반하는 연산을 가능하게 하는 서브 모듈을 포함할 수 있다.
이들 서브 모듈들 각각은, 전자 장치(100)에서의 하나 이상의 시스템 또는 데이터 및 모델, 또는 이들의 서브 셋(subset) 또는 수퍼 셋(super set)에 대한 액세스를 가질 수 있다. 또한, 이들 서브 모듈들 각각은, 어휘 색인, 사용자 데이터, 작업 흐름 모델, 서비스 모델 및 자동 음성 인식 (automatic speech recognition, ASR) 시스템을 비롯한 다양한 기능을 제공할 수 있다.
다른 실시 예에서, 프로세서(180) 또는 전자 장치(100)의 다른 양태는 상기 서브 모듈, 시스템, 또는 데이터 및 모델로 구현될 수 있다.
일부 예에서, 러닝 프로세서(130)의 데이터에 기초하여, 프로세서(180)는 사용자 입력 또는 자연 언어 입력으로 표현된 문맥 조건 또는 사용자의 의도에 기초하여 요구 사항을 검출하고 감지하도록 구성될 수 있다.
프로세서(180)는 문맥 조건 또는 사용자의 의도에 기초하여 요구 사항을 완전히 결정하는데 필요한 정보를 능동적으로 이끌어 내고, 획득할 수 있다. 예를 들어, 프로세서(180)는 역사적 입력 및 출력, 패턴 매칭, 모호하지 않은 단어, 입력 의도 등을 포함하는 과거 데이터를 분석함으로써 요구 사항을 결정하는데, 필요한 정보를 능동적으로 이끌어낼 수 있다.
프로세서(180)는 문맥 조건 또는 사용자의 의도에 기초하여 요구 사항에 응답하는 기능을 실행하기 위한 동작의 흐름을 결정할 수 있다.
프로세서(180)는 러닝 프로세서(130)에서 프로세싱 및 저장을 위한 정보를 수집하기 위해, 전자 장치(100)에서 하나 이상의 감지 컴포넌트를 통해 데이터 분석 및 기계 학습 작업에 사용되는 신호 또는 데이터를 수집, 감지, 추출, 검출 및/또는 수신하도록 구성될 수 있다.
정보 수집은 센서를 통해 정보를 감지하는 것, 메모리(170)에 저장된 정보를 추출하는 것 또는 통신 수단을 통해 다른 전자 장치, 엔티티 또는 외부 저장 장치로부터 정보를 수신하는 것을 포함할 수 있다.
프로세서(180)는 전자 장치(100)의 사용 히스토리 정보를 수집하여, 저장할 수 있다.
프로세서(180)는 저장된 사용 히스토리 정보 및 예측 모델링을 사용하여 특정 기능을 실행하기 위한 최상의 매치를 결정할 수 있다.
프로세서(180)는 센싱부(140)를 통해 주변 환경 정보 또는 기타 정보를 수신하거나 감지할 수 있다.
프로세서(180)는 무선 통신부(110)를 통해 방송 신호 및/또는 방송 관련 정보, 무선 신호, 무선 데이터를 수신할 수 있고, 외부 전자 장치와 통신할 수 있다.
프로세서(180)는 입력부(120)로부터 이미지 정보 (또는 해당 신호), 오디오 정보 (또는 해당 신호), 데이터 또는 사용자 입력 정보를 수신할 수 있다.
프로세서(180)는 정보를 실시간으로 수집하고, 정보(예를 들어, 지식 그래프, 명령 정책, 개인화 데이터베이스, 대화 엔진 등)를 처리 또는 분류하고, 처리된 정보를 메모리(170) 또는 러닝 프로세서(130)에 저장할 수 있다.
전자 장치(100)의 동작이 데이터 분석 및 기계 학습 알고리즘 및 기술에 기초하여 결정될 때, 프로세서(180)는 결정된 동작을 실행하기 위해 전자 장치(100)의 구성 요소를 제어할 수 있다. 그리고 프로세서(180)는 제어 명령에 따라 전자 장치(100)를 제어하여 결정된 동작을 수행할 수 있다.
프로세서(180)는 특정 동작이 수행되는 경우, 데이터 분석 및 기계 학습 알고리즘 및 기법을 통해 특정 동작의 실행을 나타내는 이력 정보를 분석하고, 분석된 정보에 기초하여 이전에 학습한 정보의 업데이트를 수행할 수 있다.
따라서, 프로세서(180)는 러닝 프로세서(130)과 함께, 업데이트 된 정보에 기초하여 데이터 분석 및 기계 학습 알고리즘 및 기법의 미래 성능의 정확성을 향상시킬 수 있다.
프로세서(180)는 상기 응용 프로그램과 관련된 동작 외에도, 통상적으로 전자 장치(100)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(180)는 전자 장치(100)의 상태가 설정된 조건을 만족하면, 애플리케이션들에 대한 사용자의 제어 명령의 입력을 제한하는 잠금 상태를 실행하거나, 해제할 수 있다.
프로세서(180)는 위에서 살펴본 구성요소들을 통해 입력 또는 출력되는 신호, 데이터, 정보 등을 처리하거나 메모리(170)에 저장된 응용 프로그램을 구동함으로써, 사용자에게 적절한 정보 또는 기능을 제공 또는 처리할 수 있다.
또한, 프로세서(180)는 메모리(170)에 저장된 응용 프로그램을 구동하기 위하여, 도 1에 도시된 구성요소들 중 적어도 일부를 제어할 수 있다. 나아가, 프로세서(180)는 상기 응용프로그램의 구동을 위하여, 전자 장치(100)에 포함된 구성요소들 중 적어도 둘 이상을 서로 조합하여 동작 시킬 수 있다.
러닝 프로세서(130)는 데이터 마이닝, 데이터 분석, 지능형 의사 결정, 및 기계 학습 알고리즘 및 기술을 위해 이용될 정보를 수신, 분류, 저장 및 출력하도록 구성될 수 있다.
러닝 프로세서(130)는 전자 장치(100)에 의해 수신, 검출, 감지, 생성, 사전 정의 또는 다른 방식으로 출력되거나 수신, 검출, 감지, 생성, 사전 정의 또는 다른 방식으로 다른 컴포넌트, 디바이스, 전자 장치 또는 전자 장치와 통신하는 장치에 의해 출력되는 데이터를 저장하도록 구성된 하나 이상의 메모리 유닛을 포함 할 수 있다.
러닝 프로세서(130)는 전자 장치(100)에 통합되거나 구현된 메모리를 포함할 수 있다. 일부 실시 예에서, 러닝 프로세서(130)는 메모리(170)를 사용하여 구현될 수 있다.
선택적으로 또는 부가 적으로, 러닝 프로세서(130)는 전자 장치(100)에 직접 결합된 외부 메모리 또는 전자 장치(100)와 통신하는 서버에서 유지되는 메모리와 같이 전자 장치(100)와 관련된 메모리를 사용하여 구현될 수 있다.
다른 실시 예에서, 러닝 프로세서(130)는 클라우드 컴퓨팅 환경에서 유지되는 메모리, 또는 네트워크와 같은 통신 방식을 통해 전자 장치(100)에 의해 액세스 가능한 다른 원격 메모리 위치를 이용하여 구현될 수 있다.
러닝 프로세서(130)는 일반적으로 지도 학습, 비지도 학습, 강화 학습, 데이터 마이닝, 예측 분석 또는 다른 전자 장치에서 사용하기 위해 데이터를 식별, 색인화, 카테고리화, 조작, 저장, 검색 및 출력하기 위해 데이터를 하나 이상의 데이터베이스에 저장하도록 구성될 수 있다.
러닝 프로세서(130)에 의해 저장된 정보는 다양한 상이한 유형의 데이터 분석 알고리즘 및 기계 학습 알고리즘 중 임의의 것을 사용하여 프로세서(180) 또는 전자 장치(100)의 하나 이상의 다른 제어기에 의해 이용될 수 있다.
이러한, 알고리즘의 예로는, k-최근 인접 시스템, 퍼지 논리 (예: 가능성 이론), 신경 회로망, 볼츠만 기계, 벡터 양자화, 펄스 신경망, 지원 벡터 기계, 최대 마진 분류기, 힐 클라이밍, 유도 논리 시스템 베이지안 네트워크, 페리트넷 (예: 유한 상태 머신, 밀리 머신, 무어 유한 상태 머신), 분류기 트리 (예: 퍼셉트론 트리, 지원 벡터 트리, 마코프 트리, 의사 결정 트리 포리스트, 임의의 포리스트), 판돈 모델 및 시스템, 인공 융합, 센서 융합, 이미지 융합, 보강 학습, 증강 현실, 패턴 인식, 자동화된 계획 등을 포함할 수 있다.
러닝 프로세서(130)는 기계 학습 알고리즘에서 사용하는 인공 신경망(artificial neural network, ANN) 모델을 메모리에 저장할 수 있고, 인공 신경망 모델을 학습시킨 학습 모델을 생성하여 메모리에 저장하고 있을 수 있으며, 학습 모델을 이용하여 입력되는 데이터에 기초하여 분류, 검출, 인지와 같은 작업을 수행할 수 있다.
인공 지능은 인공적인 지능 또는 이를 만들 수 있는 방법론을 연구하는 분야를 의미하며, 기계 학습은 인공 지능 분야에서 다루는 다양한 문제를 정의하고 그것을 해결하는 방법론을 연구하는 분야를 의미한다. 기계 학습은 어떠한 작업에 대하여 꾸준한 경험을 통해 그 작업에 대한 성능을 높이는 알고리즘으로 정의하기도 한다.
인공 신경망은 기계 학습에서 사용되는 모델로서, 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)들로 구성되는, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다. 인공 신경망은 다른 레이어의 뉴런들 사이의 연결 패턴, 모델 파라미터를 갱신하는 학습 과정, 출력 값을 생성하는 활성화 함수(Activation Function)에 의해 정의될 수 있다.
도 2는 완전 연결된 인공 신경망 구조의 일 예를 도시한 도면이다.
도 2를 참조하면, 인공 신경망은 입력 층(Input Layer)(10), 출력 층(Output Layer)(20), 그리고 선택적으로 하나 이상의 은닉 층(Hidden Layer)(31, 33)을 포함할 수 있다. 각 층은 신경망의 뉴런에 대응되는 하나 이상의 노드를 포함하고, 인공 신경망은 한 층의 노드와 다른 층의 노드 간을 연결하는 시냅스를 포함할 수 있다. 인공 신경망에서 노드는 시냅스를 통해 입력되는 입력 신호들을 받고, 각 입력 신호들에 대한 가중치 및 편향에 대한 활성 함수에 기초하여 출력 값을 생성할 수 있다. 각 노드의 출력 값은 시냅스를 통해 다음 층의 입력 신호로 작용할 수 있다. 한 층의 모든 노드와 다음 층의 모든 노드가 시냅스를 통해 모두 연결된 경우의 인공 신경망을 완전 연결된 인공 신경망이라 칭할 수 있다.
인공 신경망 모델의 파라미터는 학습을 통해 결정되는 파라미터를 의미하며, 시냅스 연결의 가중치와 뉴런의 편향 등이 포함될 수 있다. 그리고, 하이퍼 파라미터는 기계 학습 알고리즘에서 학습 전에 설정되어야 하는 파라미터를 의미하며, 학습률(Learning Rate), 반복 횟수, 미니 배치 크기, 초기화 함수 등이 포함될 수 있다.
인공 신경망 중에서 복수의 은닉 층을 포함하는 심층 신경망(deep neural network, DNN)으로 구현되는 기계 학습을 심층 학습(Deep Learning)이라 부르기도 하며, 심층 학습은 기계 학습의 일부이다. 이하에서, 기계 학습은 심층 학습을 포함하는 의미로 사용될 수 있다.
도 3은 심층 신경망의 일종인 합성곱 신경망(convolutional neural network, CNN) 구조의 일 예를 도시한 도면이다.
이미지, 동영상, 문자열과 같은 구조적 공간 데이터를 식별하는 데 있어서는 도 3에 도시된 것과 같은 합성곱 신경망 구조가 더 효과적일 수 있다. 합성곱 신경망은 이미지의 공간 정보를 유지하면서 인접 이미지와의 특징을 효과적으로 인식할 수 있다.
도 3을 참조하면, 합성곱 신경망은 특징 추출 층(60)과 분류 층(70)을 포함할 수 있다. 특징 추출 층(60)은 합성곱(convolution)을 이용하여 이미지에서 공간적으로 가까이에 위치한 것들을 합성하여 이미지의 특징을 추출할 수 있다.
특징 추출 층(60)은 합성곱 층(61, 65)과 풀링 층(63, 67)을 복수 개 쌓은 형태로 구성될 수 있다. 합성곱 층(61, 65)은 입력 데이터에 필터를 적용한 후 활성화 함수를 적용한 것일 수 있다. 합성곱 층(61, 65)은 복수의 채널을 포함할 수 있으며, 각각의 채널은 서로 상이한 필터 및/또는 서로 상이한 활성화 함수를 적용한 것일 수 있다. 합성곱 층(61, 65)의 결과는 특징 지도(feature map)일 수 있다. 특징 지도는 2차원 행렬 형태의 데이터일 수 있다. 풀링 층(63, 67)은 합성곱 층(61, 65)의 출력 데이터, 즉 특징 지도를 입력으로 받아서 출력 데이터의 크기를 줄이거나, 특정 데이터를 강조하는 용도로 사용될 수 있다. 풀링 층(63, 67)은 합성곱 층(61, 65)의 출력 데이터의 일부 데이터 중에서 가장 큰 값을 선택하는 맥스 풀링(max pooling), 평균값을 선택하는 평균 풀링(average pooling), 최소 값을 선택하는 민 풀링(min pooling)의 함수를 적용하여 출력 데이터를 생성할 수 있다.
일련의 합성곱 층과 풀링 층을 거치면서 생성되는 특징 지도는 그 크기가 점점 작아질 수 있다. 마지막 합성곱 층과 풀링 층을 거쳐 생성된 최종 특징 지도는 1차원 형태로 변환되어 분류 층(70)으로 입력될 수 있다. 분류 층(70)은 도 2에 도시된 완전 연결된 인공 신경망 구조일 수 있다. 분류 층(70)의 입력 노드의 개수는 최종 특징 지도의 행렬의 원소 수에 채널의 수를 곱한 것과 동일할 수 있다.
심층 신경망 구조로 상술한 합성곱 신경망 외에도 순환신경망(recurrent neural network, RNN), LSTM(long short term memory network), GRU(gated recurrent units)등이 사용될 수도 있다. 순환신경망은 순차적인 데이터를 학습하여 분류 또는 예측을 수행할 수 있는 것으로 내부에 순환 구조가 들어 있어 과거 시간의 학습이 가중치와 곱해져 현재 학습에 반영될 수 있은 구조이다. 따라서 현재의 출력 결과는 과거 시간에서의 출력 결과에 영향을 받으며, 은닉 층은 일종의 메모리 기능을 수행한다. 순환신경망은 음성 파형을 분석하여 기계 번역을 수행하거나, 텍스트의 문장 앞 뒤 성분을 파악하여 텍스트를 생성하거나, 음성 인식을 위해 사용될 수 있다.
인공 신경망 학습의 목적은 손실 함수를 최소화하는 모델 파라미터를 결정하는 것으로 볼 수 있다. 손실 함수는 인공 신경망의 학습 과정에서 최적의 모델 파라미터를 결정하기 위한 지표로 이용될 수 있다. 완전 연결된 인공 신경망의 경우, 학습에 의하여 각 시냅스의 가중치가 결정될 수 있으며, 합성곱 신경망의 경우, 학습에 의하여 특징 지도를 추출하기 위한 합성곱 층의 필터가 결정될 수 있다.
기계 학습은 학습 방식에 따라 지도 학습(Supervised Learning), 비지도 학습(Unsupervised Learning), 강화 학습(Reinforcement Learning)으로 분류할 수 있다.
지도 학습은 학습 데이터에 대한 레이블(label)이 주어진 상태에서 인공 신경망을 학습시키는 방법을 의미하며, 레이블이란 학습 데이터가 인공 신경망에 입력되는 경우 인공 신경망이 추론해 내야 하는 정답(또는 결과 값)을 의미할 수 있다. 비지도 학습은 학습 데이터에 대한 레이블이 주어지지 않는 상태에서 인공 신경망을 학습시키는 방법을 의미할 수 있다. 강화 학습은 어떤 환경 안에서 정의된 에이전트가 각 상태에서 누적 보상을 최대화하는 행동 혹은 행동 순서를 선택하도록 학습시키는 학습 방법을 의미할 수 있다.
인공지능 기술을 이용하여 음성 인식 처리를 하는 경우 대량의 메모리와 높은 컴퓨팅 파워가 필요할 수 있다. 일실시 예에 따라, 전자 장치(100)가 음성 인식 처리를 위한 컴퓨팅 파워가 부족한 경우에 외부의 서버를 이용하여 음성 인식 처리를 수행할 수 있다.
도 4는 다양한 실시 예들에 따른 음성 시스템(1)을 설명하는 도면이다.
도 4를 참조하면, 음성 시스템(1)은 전자 장치(100), 음성 텍스트 변환(Speech To Text, STT) 서버(81), 자연어 처리(Natural Language Processing, NLP) 서버(83) 및 음성 합성 서버(85)를 포함할 수 있다.
전자 장치(100)는 음성 데이터를 STT 서버(81)에 전송할 수 있다.
STT 서버(81)는 전자 장치(100)로부터 수신된 음성 데이터를 텍스트 데이터로 변환할 수 있다.
STT 서버(81)는 언어 모델을 이용하여 음성-텍스트 변환의 정확도를 높일 수 있다.
언어 모델은 문장의 확률을 계산하거나, 이전의 단어들이 주어졌을 때 다음 단어가 나올 확률을 계산할 수 있는 모델을 의미할 수 있다.
예컨대, 언어 모델은 유니그램(Unigram) 모델, 바이그램(Bigram) 모델, N-그램(N-gram) 모델 등과 같은 확률론적 언어 모델들을 포함할 수 있다.
유니그램 모델은 모든 단어의 활용이 완전히 서로 독립적이라고 가정하는 모델로, 단어 열의 확률을 각 단어의 확률의 곱으로 계산하는 모델이다.
바이그램 모델은 단어의 활용이 이전 1개의 단어에만 의존한다고 가정하는 모델이다.
N-그램 모델은 단어의 활용이 이전 (n-1)개의 단어에 의존한다고 가정하는 모델이다.
STT 서버(81)는 언어 모델을 이용하여 음성 데이터로부터 변환된 텍스트 데이터가 적합하게 변환된 것인지 판단할 수 있고, 이를 통해 텍스트 데이터로의 변환의 정확도를 높일 수 있다.
STT 서버(81)는 텍스트 데이터의 각 글자 또는 단어를 추가적으로 N1 차원의 임베딩(embedding) 데이터로 변환할 수 있다. 임베딩 데이터는 글자 또는 단어를 N1 개의 실수 값을 가지는 벡터로 표현한 것이라 할 수 있다. 글자 또는 단어를 N1 차원의 임베딩 데이터로 변환하는 것을 단어 임베딩으로 칭할 수 있는데, 일실시 예에 따라, 단어 임베딩은 원핫 인코딩(one-hot encoding), 워드투벡(word2vec), 글로브(GloVe)와 같은 종래의 알고리즘을 이용하여 수행할 수 있다.
NLP 서버(83)는 STT 서버(81)로부터 텍스트 데이터를 수신할 수 있다. NLP 서버(83)는 수신된 텍스트 데이터에 기초하여, 텍스트 데이터에 대한 의도 분석을 수행할 수 있다.
NLP 서버(83)는 의도 분석의 수행 결과를 나타내는 의도 분석 정보를 전자 장치(100)에 전송할 수 있다.
NLP 서버(83)는 텍스트 데이터에 대해, 형태소 분석 동작, 구문 분석 동작, 화행 분석 동작, 대화 처리 동작을 수행하여 의도 분석 정보를 생성할 수 있다.
형태소 분석 동작은 사용자가 발화한 음성에 대응하는 텍스트 데이터를 의미를 지닌 가장 작은 단위인 형태소 단위로 분류하고, 분류된 각 형태소가 어떤 품사를 가지는지를 결정하는 동작이다.
구문 분석 동작은 형태소 분석 동작의 결과를 이용하여, 텍스트 데이터를 명사구, 동사구, 형용사 구 등으로 구분하고, 구분된 각 구들 사이에, 어떠한 관계가 존재하는지를 결정하는 동작이다.
구문 분석 동작을 통해, 사용자가 발화한 음성의 주어, 목적어, 수식어들이 결정될 수 있다.
화행 분석 동작은 구문 분석 동작의 결과를 이용하여, 사용자가 발화한 음성에 대한 의도를 분석하는 동작이다. 구체적으로, 화행 분석 동작은 사용자가 질문을 하는 것인지, 요청을 하는 것인지, 단순한 감정 표현을 하는 것인지와 같은 문장의 의도를 결정하는 동작일 수 있다.
대화 처리 동작은 화행 분석 동작의 결과를 이용하여, 사용자의 발화에 대해 대답을 할지, 호응을 할지, 추가 정보를 문의하는 질문을 할지를 판단하는 동작일 수 있다.
NLP 서버(83)는 대화 처리 단계 후, 사용자가 발화한 의도에 대한 답변, 호응, 추가 정보 문의 중 하나 이상을 포함하는 의도 분석 정보를 생성할 수 있다.
한편, NLP 서버(83)는 전자 장치(100)로부터 텍스트 데이터를 수신할 수도 있다. 예를 들어, 전자 장치(100)가 음성 텍스트 변환 기능을 지원하는 경우, 전자 장치(100)는 음성 데이터를 텍스트 데이터로 변환하고, 변환된 텍스트 데이터를 NLP 서버(83)로 전송할 수 있다. 여기서 텍스트 데이터는 임베딩 데이터일 수 있다.
음성 합성 서버(85)는 기 저장된 음성 데이터들을 조합하여, 합성 음성을 생성할 수 있다.
음성 합성 서버(85)는 모델로 선정된 한 사람의 음성을 녹음하고, 녹음된 음성을 음절 또는 단어 단위로 분할할 수 있다. 음성 합성 서버(85)는 음절 또는 단어 단위로, 분할된 음성을 내부 또는 외부의 데이터베이스에 저장할 수 있다.
음성 합성 서버(85)는 주어진 텍스트 데이터에 대응하는 음절 또는 단어를 데이터베이스로부터 검색하고, 검색된 음절 또는 단어들의 조합을 합성하여, 합성 음성을 생성할 수 있다.
음성 합성 서버(85)는 복수의 언어들 각각에 대응하는 복수의 음성 언어 그룹들을 저장하고 있을 수 있다.
예를 들어, 음성 합성 서버(85)는 한국어로 녹음된 제1 음성 언어 그룹, 영어로, 녹음된 제2 음성 언어 그룹을 포함할 수 있다.
음성 합성 서버(85)는 제1 언어의 텍스트 데이터를 제2 언어의 텍스트로 번역하고, 제2 음성 언어 그룹을 이용하여, 번역된 제2 언어의 텍스트에 대응하는 합성 음성을 생성할 수 있다.
음성 합성 서버(85)는 생성된 합성 음성을 전자 장치(100)로 전송할 수 있다.
음성 합성 서버(85)는 NLP 서버(83)로부터 의도 분석 정보를 수신할 수 있다.
음성 합성 서버(85)는 의도 분석 정보에 기초하여, 사용자의 의도를 반영한, 합성 음성을 생성할 수 있다.
일실시 예에서, STT 서버(81), NLP 서버(83) 및 음성 합성 서버(85)는 하나의 서버로 구현될 수 있다.
위에서, 설명된 STT 서버(81), NLP 서버(83) 및 음성 합성 서버(85) 각각의 기능은 전자 장치(100)에서도 수행될 수도 있다. 이를 위해, 전자 장치(100)는 복수의 프로세서들을 포함할 수 있다.
도 5은 다양한 실시 예들에 따른 음성 신호로부터 사용자의 발화 특징을 추출하는 과정을 설명하는 도면이다.
도 1에 도시된 전자 장치(100)는 오디오 프로세서(181)를 더 포함할 수 있다.
오디오 프로세서(181)는 프로세서(180)와 별도의 칩으로 구현되거나, 프로세서(180)에 포함된 칩으로 구현될 수 있다.
오디오 프로세서(181)는 음성 신호로부터, 잡음을 제거할 수 있다.
오디오 프로세서(181)는 음성 신호를 텍스트 데이터로 변환할 수 있다. 이를 위해, 오디오 프로세서(181)는 STT 엔진을 구비할 수 있다.
오디오 프로세서(181)는 전자 장치(100)의 음성 인식을 활성화시키기 위한 기동어를 인식할 수 있다. 오디오 프로세서(181)는 마이크로폰(122)을 통해 수신된 기동어를 텍스트 데이터로 변환하고, 변환된 텍스트 데이터가 기 저장된 기동어에 대응하는 텍스트 데이터인 경우, 기동어를 인식한 것으로 판단할 수 있다.
오디오 프로세서(181)는 잡음이 제거된 음성 신호를 파워 스펙트럼으로 변환할 수 있다.
파워 스펙트럼은 시간적으로 변동하는 음성 신호의 파형에 어떠한 주파수 성분이 어떠한 크기로 포함되어 있는지를 나타내는 파라미터일 수 있다.
파워 스펙트럼은 음성 신호의 파형의 주파수에 따른 진폭 제곱 값의 분포를 보여준다.
이에 대해서는 도 6을 참조하여 설명한다.
도 6은 일실시 예에 따른 음성 신호를 파워 스펙트럼으로 변환한 예를 설명한 도면이다.
도 6을 참조하면, 음성 신호(610)가 도시되어 있다. 음성 신호(610)는 마이크로폰(122)을 통해 수신되거나, 메모리(170)에 미리 저장된 신호일 수 있다.
음성 신호(610)의 x축은 시간이고, y축은 진폭의 크기를 나타낼 수 있다.
오디오 프로세서(181)는 x축이 시간 축인 음성 신호(610)를 x축이 주파수 축인 파워 스펙트럼(630)으로 변환할 수 있다.
오디오 프로세서(181)는 고속 푸리에 변환(Fast Fourier Transform, FFT)을 이용하여, 음성 신호(610)를 파워 스펙트럼(630)으로 변환할 수 있다.
파워 스펙트럼(630)의 x축은 주파수, y축은 진폭의 제곱 값을 나타낸다.
다시 도 5을 참조하면, 프로세서(180)는 오디오 프로세서(181)로부터 전달된 음성 신호(610) 또는 파워 스펙트럼(630) 중 하나 이상을 이용하여, 사용자의 발화 특징을 결정할 수 있다.
사용자의 발화 특징은 사용자의 성별, 사용자의 음의 높낮이, 사용자의 음색, 사용자의 발화 주제, 사용자의 발화 속도, 사용자의 성량 등을 포함할 수 있다.
프로세서(180)는 파워 스펙트럼(630)을 이용하여, 음성 신호(610)의 주파수 및 주파수에 대응하는 진폭을 획득할 수 있다.
프로세서(180)는 파워 스펙트럼(630)의 주파수 대역을 이용하여, 음성을 발화한 사용자의 성별을 결정할 수 있다.
예를 들어, 프로세서(180)는 파워 스펙트럼(630)의 주파수 대역이 기 설정된 제1 주파수 대역 범위 내인 경우, 사용자의 성별을 남자로 결정할 수 있다.
프로세서(180)는 파워 스펙트럼(630)의 주파수 대역이 기 설정된 제2 주파수 대역 범위 내인 경우, 사용자의 성별을 여자로 결정할 수 있다. 여기서, 제2 주파수 대역 범위는 제1 주파수 대역 범위보다 높은 주파수 대역 범위일 수 있다.
프로세서(180)는 파워 스펙트럼(630)의 주파수 대역을 이용하여, 음성의 높낮이를 결정할 수 있다.
예를 들어, 프로세서(180)는 특정 주파수 대역 범위 내에서, 진폭의 크기에 따라 음의 높낮이 정도를 결정할 수 있다.
프로세서(180)는 파워 스펙트럼(630)의 주파수 대역을 이용하여, 사용자의 음색(tone)을 결정할 수 있다. 예를 들어, 프로세서(180)는 파워 스펙트럼(630)의 주파수 대역들 중, 진폭의 크기가 일정 크기 이상인 주파수 대역을 사용자의 주요 음역대로 결정하고, 결정된 주요 음역대를 사용자의 음색으로 결정할 수 있다.
프로세서(180)는 변환된 텍스트 데이터로부터, 단위 시간 당 발화된 음절 수를 통해, 사용자의 발화 속도를 결정할 수 있다.
프로세서(180)는 변환된 텍스트 데이터에 대해, BOW 모델(Bag-Of-Word Model) 기법을 이용하여, 사용자의 발화 주제를 결정할 수 있다.
BOW 모델 기법은 문장 내 단어 빈도 수 기반으로, 주로 사용하는 단어를 추출하는 기법이다. 구체적으로, BOW 모델 기법은 문장 내에서, 유니크한 단어를 추출하고, 추출된 각 단어의 빈도 수를 벡터로 표현하여, 발화 주제의 특징을 결정하는 기법이다.
예를 들어, 프로세서(180)는 텍스트 데이터에 <달리기>, <체력> 등과 같은 단어가 자주 등장하면, 사용자의 발화 주제를 운동으로 분류할 수 있다.
프로세서(180)는 텍스트 카테고리화(Text Categorization) 기법을 이용하여, 텍스트 데이터로부터 사용자의 발화 주제를 결정할 수 있다. 프로세서(180)는 텍스트 데이터로부터 키워드를 추출하여, 사용자의 발화 주제를 결정할 수 있다.
프로세서(180)는 전체 주파수 대역에서의 진폭 정보를 고려하여 사용자의 성량을 결정할 수 있다.
예컨대, 프로세서(180)는 파워 스펙트럼의 각 주파수 대역에서의 진폭의 평균 또는 가중치 평균을 기준으로 사용자의 성량을 결정할 수 있다.
도 5에 도시된 오디오 프로세서(181) 및 프로세서(180)의 기능은 STT 서버(81), NLP 서버(83), 음성 합성 서버(85) 중 어느 하나의 서버에서 수행될 수 있다.
예를 들어, NLP 서버(83)는 음성 신호를 이용하여, 파워 스펙트럼을 추출하고, 추출된 파워 스펙트럼을 이용하여, 사용자의 발화 특징을 결정할 수 있다.
도 7는 다양한 실시 예들에 따른 복수의 의도어를 획득하기 위한 합성곱 신경망 구조를 도시한 도면이다. 도 7의 구조는 소프트웨어 알고리즘으로 구현될 수 있으며 도 1의 프로세서(180) 및/또는 러닝 프로세서(130) 또는 도 4의 NLP 서버(83)에 의해서 실행될 수 있다.
도 7를 참조하면, 복수의 의도어를 획득하기 위한 합성곱 신경망은 입력 데이터(710)로 발화자가 발화한 음성 데이터(예: 행굼탈수해)일 수 있다. 음성 데이터의 각 글자는 N1개의 실수 값의 행렬로 표현되는 N1(예: 50 또는 100) 차원의 임베딩(embedding) 데이터로 표시될 수 있다. 각 글자에 대한 임베딩 데이터는 별도의 인공 신경망 모델을 이용하여 학습함으로써 획득하거나, 또는 이미 학습된 인공신경망 모델의 결과로부터 획득한 값일 수 있다.
일실시 예에 따라 입력 데이터(710)는 N4xN1(예: 256x100) 행렬로 표시될 수 있다. 각각의 행은 도 7에 도시된 바와 같이 하나의 글자에 대한 임베딩 데이터를 나타낼 수 있다. 사용자가 발화한 음성에서 획득된 글자의 수가 N4보다 적은 경우에는 제로 패딩(zero padding)을 통해 N4xN1 행렬을 만들 수 있다.
다양한 실시 예에 따라, 입력 데이터(710)로부터 특징 지도를 획득하기 위하여 N3개(예: 4개)의 필터(720)가 사용할 수 있다. 각 필터는 N2(예: 64, 128)개의 채널을 가질 수 있다. 채널을 동일한 행렬 크기를 가지면서 행렬의 값, 즉 합성곱 수행시에 입력 데이터에 곱해지는 가중치가 서로 다른 필터를 의미할 수 있다. 도 7의 일실시 예에서는 4개의 필터가 사용되며 각 필터의 크기는 3xN1, 4xN1, 5xN1 또는 6xN1일 수 있다. 여기서 N1은 한 글자를 나타내는 임베딩 데이터가 가지는 차원이다. 각 필터는 동일한 크기이면서 가중치가 서로 다른 N2개의 채널을 가질 수 있다. N2개의 채널 각각이 가지는 필터의 계수(가중치)는 복수의 의도어들을 획득하기 위하여 입력 데이터에서 서로 다른 지엽의 특징을 검출하도록 학습될 수 있다.
다양한 실시 예에 따라, 입력 데이터(710)에 대해 각 필터의 각 채널로 합성곱을 취할 수 있다. 각 채널이 입력 데이터(710)와 합성곱을 취함으로써 N4(예: 256)개의 계산 결과를 얻을 수 있다. N2개의 채널을 가진 필터가 입력 데이터에 적용됨에 따라 각 필터 별로 N2개의 특징 지도(feature map)를 획득할 수 있다. 각 채널 별 특징 지도는 N4개의 값을 가지는 행렬로 표시될 수 있다. 다른 실시 예에 따라, 하나의 필터에 대해 N4xN2의 행렬로 구성되는 특징 지도를 획득할 수 있다. 따라서, N3개의 필터를 사용한다면 합성곱 계산을 통해 N4xN2(예: 256x128)의 행렬로 표시될 수 있는 N3개의 특징 지도(730)를 획득할 수 있다.
다양한 실시 예에 따라, 각 필터의 N2개의 채널 별 특징 지도의 N4개의 값 중에서 최대 값을 찾아서 대표값으로 하는 맥스 풀링(max pooling)(740)을 이용하여 특징 지도의 특징을 나타내는 값의 개수를 줄일 수 있다. 맥스 풀링(740)을 통해 각 필터의 각 채널 별 1개의 대표 값을 가질 수 있다. 따라서, N3개의 필터 각각에 대해 1xN2 행렬의 특징 지도(750)를 획득할 수 있다.
다양한 실시 예에 따라, N3개의 필터를 이용하여 구한 특징 지도를 연결(concatenation)함으로써 N3xN2 행렬의 특징 지도(760)를 획득할 수 있다. 그리고 N3개의 필터에 의해 획득한 특징을 결합하기 위하여 1xN3 크기의 필터(770)와 합성곱을 취하여 1xN2의 특징 지도(780)를 획득할 수 있다.
다양한 실시 예에 따라, 추출된 1xN2의 특징 지도(780)는 도 2에 도시된 것과 같은 완전 연결된 인공 신경망(790)의 입력으로 사용하고, 완전 연결된 인공 신경망(790)의 출력은 복수의 의도어를 나타내는 것일 수 있다. 여기서 의도어는 특정 단어가 인식되었을 때 전자 장치(100)가 그에 따라 제어 명령을 수행할 수 있도록 하는 음성 언어일 수 있다. 도 7의 일실시 예에서, "헹굼," "탈수"가 의도어가 될 수 있다. 그 외에도 일실시 예에 따라, 전자 장치를 제어하기 위한 키입력을 대체할 수 있는 음성 언어가 의도어가 될 수 있다. 예를 들면, 세탁기의 경우, "전원," "코스," "세탁," "헹굼," "탈수," "물온도," "스피드워시," "조용조용" 과 같이 키를 이용하여 설정할 수 있는 것이 의도어가 될 수 있다.
상술한 구조에서 종래의 합성곱 신경망과 상이하게, 각 필터의 N2개의 채널에 의해서 획득한 특징은 서로 통합되지 않고 유지되어 완전 연결된 인공 신경망(790)의 입력으로 사용된다. 이에 의하여 각 채널이 입력 데이터의 지엽 특징, 예를 들면 입력된 문장 전체의 정보 중 3글자만 봤을 때의 정보 또는 4글자만 봤을 때의 정보를 획득하도록 학습되는 경우 더욱 높은 정확도를 가지고 복수의 의도어를 획득할 수 있다. 도 7의 일실시 예를 참조하면, N2개의 채널 중 일부는 입력 데이터 중 "헹굼"에 대한 특성을 획득하도록 학습되고, 다른 일부 채널은 입력 데이터 중 "탈수"에 대한 특성을 획득하도록 학습될 수 있다. 그러면 각 채널이 획득한 특성이 서로 통합되지 않고 유지되면서 해당 의도어가 발화되었음을 인지할 수 있다.
상술한 구조에 따른 합성곱 신경망은 임의의 필터로 전체 입력 데이터의 특징을 보는 것을 유지하면서, 마지막 층에서 채널을 통합하지 않고 처음의 채널 정보를 유지시킴으로써 종래의 합성곱 신경망보다 더 지엽적인 특정 키워드(keyword) 단어 또는 글자에 집중할 수 있도록 하였다. 이에 따라, 특정 단어 또는 글자에 의존도가 큰 복수 의도어 분류 문제에 최적화되어 있다고 볼 수 있다.
도 7에 도시된 합성곱 신경망 모델은 학습을 통해 N3개의 필터(720)가 가지는 N2개의 채널의 가중치 값을 결정할 수 있다. 또한, N3개의 필터(720)에 의해 생성된 특징 지도를 통합하기 위한 필터(770)의 가중치 값도 학습을 통해 결정될 수 있고, 분류를 위한 완전 연결된 신경망(790)의 각 노드들 사이의 연결 가중치 값도 학습을 통해 결정될 수 있다. 학습은 복수의 의도어를 포함하는 음성의 임베딩 데이터를 학습 데이터로 하는 지도 학습을 통해 수행될 수 있다. 지도 학습을 통한 전방(forward) 및 후방(backward) 오류전파(error propagation)를 통해 각 가중치의 값들이 결정될 수 있다.
다음 표 1은 실험을 통하여 종래의 합성곱 신경망 구조와 본 발명에서 제안하는 합성곱 신경망 구조의 복수 의도어 인식의 정확도를 비교한 것이다. 여기서 정확도는 문장 내에 포함된 복수 의도어 모두를 정확히 인식한 경우를 정확한 것으로 하여 계산하였다.
문장에 포함된 의도어 개수 | 종래의 합성곱 신경망 | 본 발명에서 제안하는 합성곱 신경망 |
1 | 0.986(592/600) | 0.978 (587/600) |
2 | 0.972(1458/1500) | 0.954(1431/1500) |
3 | 0.968(1936/2000) | 0.947(1895/2000) |
4 | 0.948(1422/1500) | 0.915(1373/1500) |
5 | 0.688(413/600) | 0.813(488/600) |
6 | 0.58(348/600) | 0.858(515/600) |
평균 | 0.857 | 0.911 |
상술한 [표 1]에서 보여지는 바와 같이 평균적으로 본 발명에서 제안하는 합성곱 신경망의 정확도가 높고, 특히, 문장에 포함된 의도어의 개수가 높은 경우에 성능이 좋아짐을 알 수 있다.
도 8은 다양한 실시 예들에 따른 전자 장치(100)의 적어도 하나의 프로세서에서 수행하는 구성요소들을 도시한 블록도이다. 도 8에 도시된 구성요소들은 도 1의 프로세서(180), 러닝 프로세서(130) 및/또는 도 5에 도시된 오디오 프로세서(181)에 의해 실행될 수 있는 소프트웨어 프로그램 또는 어플리케이션 모듈일 수 있다. 일부 구성의 경우에는 해당 구성만을 실행하도록 제작된 별도의 칩, ASIC 또는 FPGA에 의해 구현될 수 있다. 이 경우, 해당 구성은 하드웨어 모듈로 고려될 수 있다. 또한, 적어도 하나의 프로세서는 일반적인 범용 프로세서, 특정 기능 또는 구성을 수행하도록 제작된 칩, ASIC, 또는 FPGA를 포함할 수 있다. 도 8에 도시된 구성은 일실시 예에 불과하다. 다른 일실시 예에 따라, 도 8에 도시된 하나의 구성요소가 몇 개의 구성요소로 분리될 수 있고, 또는 몇 개의 구성요소가 결합하여 하나의 구성요소를 이룰 수도 있다. 또한 다른 일실시 예에 따라, 도 8에 도시된 구성요소의 일부가 삭제될 수 있거나 또는 도 8에 도시되지 않은 구성요소가 추가될 수도 있다.
도 8을 참조하면, 전자 장치(100)는 음성 수신 모듈(810), STT 모듈(820), 단어 임베딩 모듈(830), 음성 인식 모듈(840), 제어 모듈(850)을 포함할 수 있다.
다양한 실시 예들에 따르면, 음성 수신 모듈(810)은 입력부(120)의 마이크로폰(122)을 통해 입력되는 발화자의 음성을 수신할 수 있다. 일실시 예에 따라, 발화자의 음성은 음성 인식 기능을 활성화시키기 위한 시동어를 포함할 수 있으며, 시동어에 대한 인식은 별도의 동작을 통해 수행될 수 있고, 본 발명의 범위를 벗어나므로 추가적인 설명은 생략한다.
음성 수신 모듈(810)은 수신한 음성을 STT 모듈(820)로 전달할 수 있다.
다양한 실시 예들에 따르면, STT 모듈(820)은 음성 수신 모듈(810)에서 전달받은 음성 데이터를 텍스트 데이터로 변환할 수 있다. 음성 수신 모듈(810)은 언어 모델을 이용하여 음성-텍스트 변환의 정확도를 높일 수 있다. STT 모듈(820)은 상술한 STT 서버(81)와 동일한 기능을 수행할 수 있다.
일실시 예에 따라, STT 모듈(820)은 직접 음성-텍스트 변환을 수행하지 않고 통신부(110)를 통해 음성 시스템(1)의 STT 서버(81)로 음성 데이터를 전달하고, STT 서버(81)로부터 음성 데이터를 변환한 텍스트 데이터를 수신할 수 있다. 전자 장치(100)의 컴퓨팅 파워가 부족한 경우에 외부의 STT 서버(81)를 이용하는 것이 더욱 효율적일 수 있다.
STT 모듈(820)은 텍스트 데이터를 단어 임베딩 모듈(830)로 전달할 수 있다.
단어 임베딩 모듈(830)은 텍스트 데이터의 각 글자 또는 단어를 임베딩 데이터로 변환할 수 있다. 임베딩 데이터는 인공 신경망이 효율적으로 특징을 획득할 수 있도록 하기 위하여 글자 또는 단어를 특정 형식으로 변환한 데이터일 수 있다. 일실시 예로, 임베딩 데이터는 N1개의 실수 값(N1 차원)을 가지는 행렬일 수 있다. 이에 따라, 하나의 글자 또는 하나의 단어는 N1(예: 50 또는 100) 개의 실수 값을 가지는 1xN1 행렬로 표시될 수 있다.
일실시 예에 따라, 각 글자 또는 각 단어에 대응하는 임베딩 데이터는 미리 설정된 값일 수 있다. 이에 의하여 동일한 글자에 대하여는 동일한 임베딩 데이터가 설정될 수 있다. 다른 일실시 예에 따라, 임베딩 데이터는 별도의 인공 신경망에 기초하여 매번 새롭게 생성될 수도 있다. 이에 의하여 동일한 글자라도 매번 상이한 임베딩 데이터가 설정될 수 있다.
단어 임베딩 모듈(830)은 STT 모듈(820)로부터 전달받은 텍스트 데이터의 각각의 글자 또는 단어를 임베딩 데이터로 변환할 수 있다. 예를 들면, 사용자의 "헹굼탈수해"라는 발화 음성에 대해 5xN1 행렬의 임베딩 데이터로 변환할 수 있다.
단어 임베딩 모듈(830)에서 생성된 임베딩 데이터는 음성 인식 모듈(840)의 입력으로 사용될 수 있다.
일실시 예에 따라, 단어 임베딩 동작은 외부의 별도의 전자 장치(예: STT 서버(81))에서 수행할 수도 있다. 전자 장치(100)의 컴퓨팅 파워가 낮은 경우에 단어 임베딩을 위하여 외부 전자 장치를 사용하는 것이 효율적일 수 있다.
다양한 실시 예들에 따르면, 음성 인식 모듈(840)은 도 7에 도시된 구조의 합성곱 신경망에 기초하여 적어도 하나의 의도어를 식별할 수 있다. 음성 인식 모듈(840)은 단어 임베딩 모듈(830)로부터 사용자가 발화한 음성에 대응하는 임베딩 데이터로 구성된 입력 데이터(710)를 수신하고, 도 7에 도시된 알고리즘에 기초하여 처리를 수행하고, 사용자가 발화한 음성 중에 포함되어 있는 적어도 하나의 의도어를 식별하여 출력(795)할 수 있다.
일실시 예에 따라, 음성 인식 모듈(840)에서 사용하는 합성곱 신경망 모델은 미리 학습되어 있을 수 있다. 적어도 하나의 의도어를 포함하는 임베딩 데이터를 학습 데이터로 하고, 해당 임베딩 데이터에 포함되어 있는 의도어가 무엇인지를 나타내는 레이블(label)을 함께 제공하는 지도학습을 통해 도 7에 도시된 합성곱 신경망 모델을 학습시킬 수 있다. 이러한 학습은 실시간일 필요는 없으며, 미리 학습을 수행할 수 있다. 일실시 예에 따라, 학습된 모델의 성능은 각 글자 또는 단어에 대응하는 임베딩 데이터 형식 및/또는 값에 의하여도 차이가 날 수 있으므로, 복수의 의도어 인식을 위한 합성곱 신경망 모델 학습 시에, 각 글자 또는 각 단어에 대응하는 임베딩 데이터를 결정하는 것에 대한 학습도 함께 진행할 수 있다.
음성 인식 모듈(840)은 식별한 의도어를 제어 모듈(850)에 전달할 수 있다.
다양한 실시 예들에 따르면, 제어 모듈(850)은 식별한 의도어를 수신하고, 해당 의도어에 대응하는 제어를 실행할 수 있다. 일실시 예로 제어 모듈(850)은 "전원"이라는 의도어를 수신한 경우, 해당 전자 장치(100)가 활성화되도록, 해당 전자 장치(100)의 전원을 온(on)시킬 수 있다.
다양한 실시 예들에 따르면, 음성 인식 장치는 메모리 및 적어도 하나의 프로세서를 포함하고, 상기 메모리는 음성 인식을 위한 프로그램을 저장하고 상기 적어도 하나의 프로세서는 상기 메모리에 저장된 프로그램을 로딩하여 실행할 수 있다.
상기 메모리에 저장된 프로그램은 상기 적어도 하나의 프로세서가 발화자의 음성에 기초하여 생성된 입력 데이터를 수신하는 동작, 상기 입력 데이터를 각각 N2개의 채널로 구성된 N3개의 필터와 합성곱 연산을 수행하여 각 필터의 채널별로 N4개의 데이터를 가지는 특징 지도(feature map)를 획득하는 동작, 상기 각 필터의 채널별 N4개의 데이터에 대해 맥스 풀링(max pooling)을 적용하여 대표 값을 획득하여 각 필터별로 N2 개의 데이터를 가지는 특징 지도를 획득하는 동작, 상기 각 필터별 특징 지도를 연결(concatenation)하여 N3xN2 행렬로 나타나는 하나의 특징 지도를 획득하는 동작, 상기 N3xN2 행렬의 특징 지도를 1xN3 행렬로 표시되는 필터와 합성곱 연산을 수행하여 1xN2 행렬로 나타나는 특징 지도를 획득하는 동작 및 상기 1xN2의 특징 지도를 인공 신경망에 입력시켜 적어도 하나의 의도어를 획득하는 동작을 수행하도록 할 수 있다.
다양한 실시 예들에 따르면, 상기 메모리에 저장된 프로그램은 상기 적어도 하나의 프로세서가 상기 N3개 필터 각각의 N2개의 채널들이 사용하는 가중치, 상기 1xN3 행렬로 표시되는 필터가 사용하는 가중치 및 상기 인공 신경망에서 사용되는 가중치들을 전방(forward) 및 후방(backward) 오류 전파(error propagation)를 통한 반복 학습을 통해 결정하는 동작을 더 수행하도록 할 수 있다.
다양한 실시 예들에 따르면, 전자 장치(예: 도 1의 전자 장치(100))는 발화자의 음성을 수신하는 마이크로폰(예: 도 1의 마이크로폰(122)), 상기 마이크로폰으로부터 수신한 발화자의 음성을 전처리하는 오디오 프로세서(예: 도 5의 오디오 프로세서(181)) 및 상기 오디오 프로세서와 작동적으로 연결된 적어도 하나의 프로세서(예: 도 1의 프로세서(180) 또는 러닝 프로세서(130))를 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 적어도 하나의 프로세서는 음성 데이터를 획득하고, 상기 음성 데이터를 텍스트 데이터로 변환하고, 상기 텍스트 데이터를 임베딩 데이터로 변환하고, 상기 임베딩 데이터를 각각 N2개의 채널로 구성된 N3개의 필터와 합성곱 연산을 수행하여 각 필터의 채널별로 N4개의 데이터를 가지는 특징 지도(feature map)를 획득하고, 상기 각 필터의 채널별 N4개의 데이터에 대해 맥스 풀링(max pooling)을 적용하여 대표 값을 획득하여 각 필터별로 N2 개의 데이터를 가지는 특징 지도를 획득하고, 상기 각 필터별 특징 지도를 연결(concatenation)하여 N3xN2 행렬로 나타나는 하나의 특징 지도를 획득하고, 상기 N3xN2 행렬의 특징 지도를 1xN3 행렬로 표시되는 필터와 합성곱 연산을 수행하여 1xN2 행렬로 나타나는 특징 지도를 획득하고, 상기 1xN2의 특징 지도를 인공 신경망에 입력시켜 적어도 하나의 의도어를 획득할 수 있다.
다양한 실시 예들에 따르면, 상기 전자 장치는 통신부를 더 포함하고, 상기 적어도 하나의 프로세서는 상기 통신부를 통해 외부의 STT(speech to text) 서버로 상기 음성 데이터를 전송하고, 상기 통신부를 통해 상기 STT 서버로부터 상기 음성 데이터를 변환한 텍스트 데이터를 획득함으로써 상기 음성 데이터를 상기 텍스트 데이터로 변환할 수 있다.
다양한 실시 예들에 따르면, 상기 적어도 하나의 프로세서는 상기 적어도 하나의 의도어에 대응하는 제어 또는 설정 동작을 수행할 수 있다.
다양한 실시 예들에 따르면, 상기 N3개의 필터는 4개의 필터이고, 상기 4개의 필터의 크기는 각각 3xN1, 4xN1, 5xN1, 6xN1이고, N1은 상기 임베딩 데이터의 차원을 나타내고 50 또는 100의 값을 가질 수 있다.
다양한 실시 예들에 따르면, 상기 N2는 64 또는 128이고, 상기 N3는 4이고, 상기 N4는 256일 수 있다.
다양한 실시 예들에 따르면, 상기 적어도 하나의 프로세서는 상기 N3개 필터 각각의 N2개의 채널들이 사용하는 가중치, 상기 1xN3 행렬로 표시되는 필터가 사용하는 가중치 및 상기 인공 신경망에서 사용되는 가중치들을 전방(forward) 및 후방(backward) 오류 전파(error propagation)를 통한 반복 학습을 통해 결정할 수 있다.
도 9는 다양한 실시 예에 따른, 전자 장치(100)가 발화자의 음성에서 적어도 하나의 의도어를 획득하는 동작을 도시한 흐름도이다. 도 9에 도시된 흐름도에 따른 동작은 전자 장치(예: 도 1의 전자 장치(100)) 또는 전자 장치의 적어도 하나의 프로세서(예: 도 1의 프로세서(180), 러닝 프로세서(130) 또는 도 5의 오디오 프로세서(181))에 의해 실현될 수 있다.
도 9를 참조하면, 동작 910에서, 전자 장치(100)는 입력부(120)의 마이크로폰(122)을 통해 발화자의 음성을 수신할 수 있다. 발화자의 음성 데이터에는 전자 장치(100)가 특정 기능을 수행하도록 제어할 수 있는 적어도 하나의 의도어를 포함하고 있을 수 있다.
다양한 실시 예들에 따르면, 동작 920에서, 전자 장치(100)는 수신한 음성 데이터를 텍스트 데이터로 변환할 수 있다. 일실시 예에 따라, 전자 장치(100)는 외부 STT 서버(81)를 이용하여 음성 데이터를 텍스트 데이터로 변환할 수 있다.
다양한 실시 예들에 따르면, 동작 930에서, 전자 장치(100)는 텍스트 데이터를 임베딩 데이터로 변환할 수 있다. 임베딩 데이터는 인공 신경망이 효율적으로 특징을 획득할 수 있도록 하기 위하여 글자 또는 단어를 특정 형식으로 변환한 데이터일 수 있다. 일실시 예로, 임베딩 데이터는 N1개의 실수 값을 가지는 행렬로 표시된 수 있다.
다양한 실시 예들에 따르면, 동작 940에서, 전자 장치(100)는 도 7에 도시된 지엽 특징을 획득할 수 있는 합성곱 신경망에 기초한 음성 인식을 수행하여 적어도 하나의 의도어를 획득할 수 있다. 여기서 의도어는 전자 장치를 제어하기 위한 키입력을 대체할 수 있는 음성 언어일 수 있으며, 미리 정해진 한정된 개수의 단어일 수 있다.
도 10은 지엽 특징을 획득할 수 있는 합성곱 신경망에 기초한 음성 인식에 의해 의도어를 획득하는 동작을 설명한 흐름도이다. 도 10에 도시된 흐름도에 따른 동작은 전자 장치(예: 도 1의 전자 장치(100)) 또는 전자 장치의 적어도 하나의 프로세서(예: 도 1의 프로세서(180), 러닝 프로세서(130) 또는 도 5의 오디오 프로세서(181))에 의해 실현될 수 있다. 도 10의 흐름도는 도 9의 동작 940의 일실시 예일 수 있다.
도 10을 참조하면, 동작 941에서, 전자 장치(100)는 입력 데이터를 각각 N2개의 채널로 구성된 N3개의 필터와 합성곱 연산을 수행하여 각 필터의 각 채널별 N4개의 데이터를 가지는 특징 지도를 획득할 수 있다. 일실시 예에 따라, N4개의 데이터를 가지는 N2xN3 개의 특징 지도를 획득할 수 있다. 전자 장치(100)는 N2xN3 개의 필터를 적용함으로써 입력 데이터가 가지고 있는 다양한 특징을 획득할 수 있다.
동작 943에서, 전자 장치(100)는 N2xN3개의 특징 지도 각각의 N4개의 데이터에 대해 맥스 풀링(max pooling)을 적용하여 대표 값을 획득하여 이 값만을 사용함으로써 특징 지도의 데이터 수를 줄일 수 있다. 이 동작에 의하여 N2xN3개의 특징 지도 각각은 가장 큰 특징을 나타내는 것이라 할 수 있는 하나의 값만을 가진다. 이에 따라, N2개의 데이터를 가지는 N3개의 특징 지도로 그 크기를 줄일 수 있다.
동작 945에서, 전자 장치(100)는 N3개의 필터에 대한 특징 지도를 연결하여 N3xN2로 나타나는 하나의 특징 지도를 획득할 수 있다.
동작 947에서, 전자 장치(100)는 N3xN2 행렬의 특징 지도를 1xN3 행렬로 표시되는 필터와 합성곱 연산을 수행하여 1xN2 행렬의 특징 지도를 획득할 수 있다. 이 동작에서는 각 필터를 통해 획득한 특징이 채널 별로 통합될 수 있다.
동작 949에서, 전자 장치(100)는 1xN2 행렬의 특징 지도를 완전 연결된 인공 신경망에 입력시켜 특징의 분류를 수행하여 의도어에 대한 결과를 획득할 수 있다. 여기서 완전 연결된 인공 신경망은 다양한 의도어를 포함하는 음성 데이터를 학습 데이터로 한 지도 학습을 통해 미리 학습된 인공 신경망일 수 있다.
동작 949에서 획득한 의도어는 전자 장치(100)의 제어 명령으로 인식될 수 있으며, 전자 장치(100)는 획득한 의도어에 대응하는 동작을 수행할 수 있다.
상술한 도 10의 동작을 살펴보면 특징 지도의 데이터는 N2개의 필터별 채널이 획득한 특징이 서로 결합되지 않고 그대로 유지하도록 하고 있어 이에 의하여 각 채널에 의하여 획득한 입력 데이터의 지엽적인 특징이 다른 지엽적인 특징과 결합하지 않고 그대로 유지되어 복수의 의도어를 획득하는 데 더 좋은 성능을 제시할 수 있다.
다양한 실시 예들에 따르면, 음성 인식 방법은 발화자의 음성에 기초하여 생성된 입력 데이터를 수신하는 동작, 상기 입력 데이터를 각각 N2개의 채널로 구성된 N3개의 필터와 합성곱 연산을 수행하여 각 필터의 채널별로 N4개의 데이터를 가지는 특징 지도(feature map)를 획득하는 동작, 상기 각 필터의 채널별 N4개의 데이터에 대해 맥스 풀링(max pooling)을 적용하여 대표 값을 획득하여 각 필터별로 N2 개의 데이터를 가지는 특징 지도를 획득하는 동작, 상기 각 필터별 특징 지도를 연결(concatenation)하여 N3xN2 행렬로 나타나는 하나의 특징 지도를 획득하는 동작, 상기 N3xN2 행렬의 특징 지도를 1xN3 행렬로 표시되는 필터와 합성곱 연산을 수행하여 1xN2 행렬로 나타나는 특징 지도를 획득하는 동작 및 상기 1xN2의 특징 지도를 인공 신경망에 입력시켜 적어도 하나의 의도어를 획득하는 동작을 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 입력 데이터는 상기 발화자의 음성에 기초하여 생성된 50차원 내지 100 차원의 임베딩 데이터일 수 있다.
다양한 실시 예들에 따르면, 상기 N3개의 필터는 4개의 필터이고, 상기 4개의 필터의 크기는 각각 3xN1, 4xN1, 5xN1, 6xN1이고, N1은 상기 임베딩 데이터의 차원을 나타내고 50 또는 100의 값을 가질 수 있다.
다양한 실시 예들에 따르면, 상기 N2는 64 또는 128이고, 상기 N3는 4이고, 상기 N4는 256일 수 있다.
다양한 실시 예들에 따르면, 상기 N3개 필터 각각의 N2개의 채널들이 사용하는 가중치, 상기 1xN3 행렬로 표시되는 필터가 사용하는 가중치 및 상기 인공 신경망에서 사용되는 가중치들을 전방(forward) 및 후방(backward) 오류 전파(error propagation)를 통한 반복 학습을 통해 결정하는 동작을 더 포함할 수 있다.
다양한 실시 예들에 따르면, 전자 장치(예: 도 1의 전자 장치(100))의 동작 방법은 음성 데이터를 획득하는 동작, 상기 음성 데이터를 텍스트 데이터로 변환하는 동작, 상기 텍스트 데이터를 임베딩 데이터로 변환하는 동작, 상기 임베딩 데이터를 각각 N2개의 채널로 구성된 N3개의 필터와 합성곱 연산을 수행하여 각 필터의 채널별로 N4개의 데이터를 가지는 특징 지도(feature map)를 획득하는 동작, 상기 각 필터의 채널별 N4개의 데이터에 대해 맥스 풀링(max pooling)을 적용하여 대표 값을 획득하여 각 필터별로 N2 개의 데이터를 가지는 특징 지도를 획득하는 동작, 상기 각 필터별 특징 지도를 연결(concatenation)하여 N3xN2 행렬로 나타나는 하나의 특징 지도를 획득하는 동작, 상기 N3xN2 행렬의 특징 지도를 1xN3 행렬로 표시되는 필터와 합성곱 연산을 수행하여 1xN2 행렬로 나타나는 특징 지도를 획득하는 동작 및 상기 1xN2의 특징 지도를 인공 신경망에 입력시켜 적어도 하나의 의도어를 획득하는 동작을 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 음성 데이터를 텍스트 데이터로 변환하는 동작은 상기 통신부를 통해 외부의 STT(speech to text) 서버로 상기 음성 데이터를 전송하는 동작 및 상기 통신부를 통해 상기 STT 서버로부터 상기 음성 데이터를 변환한 텍스트 데이터를 획득하는 동작을 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 적어도 하나의 의도어에 대응하는 제어 또는 설정을 하는 동작을 더 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 N3개의 필터는 4개의 필터이고, 상기 4개의 필터의 크기는 각각 3xN1, 4xN1, 5xN1, 6xN1이고, N1은 상기 임베딩 데이터의 차원을 나타내고 50 또는 100의 값을 가질 수 있다.
다양한 실시 예들에 따르면, 상기 N2는 64 또는 128이고, 상기 N3는 4이고, 상기 N4는 256일 수 있다.
다양한 실시 예들에 따르면, 상기 촬영부를 제어하여 촬영되는 동영상의 줌(zoom)을 조정하는 동작은 상기 적어도 하나의 관심 대상 객체가 가능한한 크게 상기 동영상에 모두 포함되도록 촬영되는 영상의 줌을 조정하는 동작을 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 방법은 상기 N3개 필터 각각의 N2개의 채널들이 사용하는 가중치, 상기 1xN3 행렬로 표시되는 필터가 사용하는 가중치 및 상기 인공 신경망에서 사용되는 가중치들을 전방(forward) 및 후방(backward) 오류 전파(error propagation)를 통한 반복 학습을 통해 결정하는 동작을 더 포함할 수 있다.
본 개시에서는 음성 데이터의 지엽적인 특징을 인지할 수 있는 합성곱 신경망을 사용함으로써 발화자의 음성에서 적어도 하나의 의도어를 인식하여 획득할 수 있는 음성 인식 장치 및 방법 그리고 그 음성 인식 장치를 포함하는 전자 장치를 제공하여, 특히 발화자의 음성에서 복수의 의도어를 획득하는 성능을 높일 수 있을 것이다.
Claims (18)
- 음성 인식 방법에 있어서,
발화자의 음성에 기초하여 생성된 입력 데이터를 수신하는 동작;
상기 입력 데이터를 각각 N2개의 채널로 구성된 N3개의 필터와 합성곱 연산을 수행하여 각 필터의 채널별로 N4개의 데이터를 가지는 특징 지도(feature map)를 획득하는 동작;
상기 각 필터의 채널별 N4개의 데이터에 대해 맥스 풀링(max pooling)을 적용하여 대표 값을 획득하여 각 필터별로 N2 개의 데이터를 가지는 특징 지도를 획득하는 동작;
상기 각 필터별 특징 지도를 연결(concatenation)하여 N3xN2 행렬로 나타나는 하나의 특징 지도를 획득하는 동작;
상기 N3xN2 행렬의 특징 지도를 1xN3 행렬로 표시되는 필터와 합성곱 연산을 수행하여 1xN2 행렬로 나타나는 특징 지도를 획득하는 동작; 및
상기 1xN2의 특징 지도를 인공 신경망에 입력시켜 적어도 하나의 의도어를 획득하는 동작을 포함하는, 음성 인식 방법.
- 제1항에 있어서,
상기 입력 데이터는 상기 발화자의 음성에 기초하여 생성된 50차원 내지 100 차원의 임베딩 데이터인, 음성 인식 방법.
- 제2항에 있어서,
상기 N3개의 필터는 4개의 필터이고,
상기 4개의 필터의 크기는 각각 3xN1, 4xN1, 5xN1, 6xN1이고,
N1은 상기 임베딩 데이터의 차원을 나타내고 50 또는 100의 값을 가지는, 음성 인식 방법.
- 제1항에 있어서,
상기 N2는 64 또는 128이고,
상기 N3는 4이고,
상기 N4는 256인, 음성 인식 방법.
- 제1항에 있어서,
상기 N3개의 필터 각각의 N2개의 채널들이 사용하는 가중치, 상기 1xN3 행렬로 표시되는 필터가 사용하는 가중치 및 상기 인공 신경망에서 사용되는 가중치들을 전방(forward) 및 후방(backward) 오류 전파(error propagation)를 통한 반복 학습을 통해 결정하는 동작을 더 포함하는, 음성 인식 방법.
- 음성 인식 장치에 있어서,
메모리; 및
적어도 하나의 프로세서를 포함하고,
상기 메모리는 제1항 내지 제5항 중 어느 하나의 방법에 기초한 프로그램을 저장하고,
상기 적어도 하나의 프로세서는,
상기 메모리에 저장된 프로그램을 로딩하여 실행하는 음성 인식 장치.
- 전자 장치에 있어서,
발화자의 음성을 수신하는 마이크로폰;
상기 마이크로폰으로부터 수신한 발화자의 음성을 전처리하는 오디오 프로세서; 및
상기 오디오 프로세서와 작동적으로 연결된 적어도 하나의 프로세서를 포함하고,
상기 적어도 하나의 프로세서는,
음성 데이터를 획득하고,
상기 음성 데이터를 텍스트 데이터로 변환하고,
상기 텍스트 데이터를 임베딩 데이터로 변환하고,
상기 임베딩 데이터를 각각 N2개의 채널로 구성된 N3개의 필터와 합성곱 연산을 수행하여 각 필터의 채널별로 N4개의 데이터를 가지는 특징 지도(feature map)를 획득하고,
상기 각 필터의 채널별 N4개의 데이터에 대해 맥스 풀링(max pooling)을 적용하여 대표 값을 획득하여 각 필터별로 N2 개의 데이터를 가지는 특징 지도를 획득하고,
상기 각 필터별 특징 지도를 연결(concatenation)하여 N3xN2 행렬로 나타나는 하나의 특징 지도를 획득하고,
상기 N3xN2 행렬의 특징 지도를 1xN3 행렬로 표시되는 필터와 합성곱 연산을 수행하여 1xN2 행렬로 나타나는 특징 지도를 획득하고,
상기 1xN2의 특징 지도를 인공 신경망에 입력시켜 적어도 하나의 의도어를 획득하는, 전자 장치.
- 제7항에 있어서,
통신부를 더 포함하고,
상기 적어도 하나의 프로세서는,
상기 통신부를 통해 외부의 STT(speech to text) 서버로 상기 음성 데이터를 전송하고,
상기 통신부를 통해 상기 STT 서버로부터 상기 음성 데이터를 변환한 텍스트 데이터를 획득함으로써 상기 음성 데이터를 상기 텍스트 데이터로 변환하는, 전자 장치.
- 제7항에 있어서,
상기 적어도 하나의 프로세서는,
상기 적어도 하나의 의도어에 대응하는 제어 또는 설정 동작을 수행하는, 전자 장치.
- 제7항에 있어서,
상기 N3개의 필터는 4개의 필터이고,
상기 4개의 필터의 크기는 각각 3xN1, 4xN1, 5xN1, 6xN1이고,
N1은 상기 임베딩 데이터의 차원을 나타내고 50 또는 100의 값을 가지는, 전자 장치.
- 제7항에 있어서,
상기 N2는 64 또는 128이고,
상기 N3는 4이고,
상기 N4는 256인, 전자 장치.
- 제7항에 있어서,
상기 적어도 하나의 프로세서는,
상기 N3개의 필터 각각의 N2개의 채널들이 사용하는 가중치, 상기 1xN3 행렬로 표시되는 필터가 사용하는 가중치 및 상기 인공 신경망에서 사용되는 가중치들을 전방(forward) 및 후방(backward) 오류 전파(error propagation)를 통한 반복 학습을 통해 결정하는, 전자 장치.
- 전자 장치의 동작 방법에 있어서,
음성 데이터를 획득하는 동작;
상기 음성 데이터를 텍스트 데이터로 변환하는 동작;
상기 텍스트 데이터를 임베딩 데이터로 변환하는 동작;
상기 임베딩 데이터를 각각 N2개의 채널로 구성된 N3개의 필터와 합성곱 연산을 수행하여 각 필터의 채널별로 N4개의 데이터를 가지는 특징 지도(feature map)를 획득하는 동작;
상기 각 필터의 채널별 N4개의 데이터에 대해 맥스 풀링(max pooling)을 적용하여 대표 값을 획득하여 각 필터별로 N2 개의 데이터를 가지는 특징 지도를 획득하는 동작;
상기 각 필터별 특징 지도를 연결(concatenation)하여 N3xN2 행렬로 나타나는 하나의 특징 지도를 획득하는 동작;
상기 N3xN2 행렬의 특징 지도를 1xN3 행렬로 표시되는 필터와 합성곱 연산을 수행하여 1xN2 행렬로 나타나는 특징 지도를 획득하는 동작; 및
상기 1xN2의 특징 지도를 인공 신경망에 입력시켜 적어도 하나의 의도어를 획득하는 동작을 포함하는, 방법.
- 제13항에 있어서,
상기 음성 데이터를 텍스트 데이터로 변환하는 동작은,
통신부를 통해 외부의 STT(speech to text) 서버로 상기 음성 데이터를 전송하는 동작 및
상기 통신부를 통해 상기 STT 서버로부터 상기 음성 데이터를 변환한 텍스트 데이터를 획득하는 동작을 포함하는, 방법.
- 제13항에 있어서,
상기 적어도 하나의 의도어에 대응하는 제어 또는 설정을 하는 동작을 더 포함하는, 방법.
- 제13항에 있어서,
상기 N3개의 필터는 4개의 필터이고,
상기 4개의 필터의 크기는 각각 3xN1, 4xN1, 5xN1, 6xN1이고,
N1은 상기 임베딩 데이터의 차원을 나타내고 50 또는 100의 값을 가지는, 방법.
- 제13항에 있어서,
상기 N2는 64 또는 128이고,
상기 N3는 4이고,
상기 N4는 256인, 방법.
- 제13항에 있어서,
상기 N3개의 필터 각각의 N2개의 채널들이 사용하는 가중치, 상기 1xN3 행렬로 표시되는 필터가 사용하는 가중치 및 상기 인공 신경망에서 사용되는 가중치들을 전방(forward) 및 후방(backward) 오류 전파(error propagation)를 통한 반복 학습을 통해 결정하는 동작을 더 포함하는, 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190138059A KR20210052036A (ko) | 2019-10-31 | 2019-10-31 | 복수 의도어 획득을 위한 합성곱 신경망을 가진 장치 및 그 방법 |
US16/845,563 US11423884B2 (en) | 2019-10-31 | 2020-04-10 | Device with convolutional neural network for acquiring multiple intent words, and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190138059A KR20210052036A (ko) | 2019-10-31 | 2019-10-31 | 복수 의도어 획득을 위한 합성곱 신경망을 가진 장치 및 그 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210052036A true KR20210052036A (ko) | 2021-05-10 |
Family
ID=75686564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190138059A KR20210052036A (ko) | 2019-10-31 | 2019-10-31 | 복수 의도어 획득을 위한 합성곱 신경망을 가진 장치 및 그 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11423884B2 (ko) |
KR (1) | KR20210052036A (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11922314B1 (en) * | 2018-11-30 | 2024-03-05 | Ansys, Inc. | Systems and methods for building dynamic reduced order physical models |
EP3963474A4 (en) * | 2019-05-01 | 2022-12-14 | Microsoft Technology Licensing, LLC | METHOD AND SYSTEM FOR USING UNSUPERVISED LEARNING TO IMPROVE TEXT ON SUGGESTED CONTENT |
EP3948590A4 (en) * | 2019-05-01 | 2022-11-16 | Microsoft Technology Licensing, LLC | METHOD AND SYSTEM FOR USING UNSUPERVISED LEARNING TO IMPROVE CONTENT TEXT SUGGESTIONS |
US11727270B2 (en) | 2020-02-24 | 2023-08-15 | Microsoft Technology Licensing, Llc | Cross data set knowledge distillation for training machine learning models |
US11120805B1 (en) * | 2020-06-19 | 2021-09-14 | Micron Technology, Inc. | Intelligent microphone having deep learning accelerator and random access memory |
US20220067663A1 (en) * | 2020-08-26 | 2022-03-03 | Capital One Services, Llc | System and method for estimating workload per email |
CN114936280A (zh) * | 2022-03-16 | 2022-08-23 | 青岛海尔科技有限公司 | 文本分类方法、文本分类装置、存储介质及电子装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102276339B1 (ko) * | 2014-12-09 | 2021-07-12 | 삼성전자주식회사 | Cnn의 근사화를 위한 학습 장치 및 방법 |
US10339921B2 (en) * | 2015-09-24 | 2019-07-02 | Google Llc | Multichannel raw-waveform neural networks |
KR102301232B1 (ko) * | 2017-05-31 | 2021-09-10 | 삼성전자주식회사 | 다채널 특징맵 영상을 처리하는 방법 및 장치 |
US10713537B2 (en) * | 2017-07-01 | 2020-07-14 | Algolux Inc. | Method and apparatus for joint image processing and perception |
US11429771B2 (en) * | 2020-01-31 | 2022-08-30 | Fotonation Limited | Hardware-implemented argmax layer |
-
2019
- 2019-10-31 KR KR1020190138059A patent/KR20210052036A/ko active Search and Examination
-
2020
- 2020-04-10 US US16/845,563 patent/US11423884B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20210134274A1 (en) | 2021-05-06 |
US11423884B2 (en) | 2022-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11423884B2 (en) | Device with convolutional neural network for acquiring multiple intent words, and method thereof | |
US11705105B2 (en) | Speech synthesizer for evaluating quality of synthesized speech using artificial intelligence and method of operating the same | |
US11825278B2 (en) | Device and method for auto audio and video focusing | |
US11580969B2 (en) | Artificial intelligence device and method of operating artificial intelligence device | |
US11568853B2 (en) | Voice recognition method using artificial intelligence and apparatus thereof | |
US11393465B2 (en) | Artificial intelligence apparatus for speech interaction and method for the same | |
US11200888B2 (en) | Artificial intelligence device for providing speech recognition function and method of operating artificial intelligence device | |
KR102281504B1 (ko) | 인공 지능을 이용한 음성 합성 장치, 음성 합성 장치의 동작 방법 | |
US20210110815A1 (en) | Method and apparatus for determining semantic meaning of pronoun | |
KR102688236B1 (ko) | 인공 지능을 이용한 음성 합성 장치, 음성 합성 장치의 동작 방법 및 컴퓨터로 판독 가능한 기록 매체 | |
US11030991B2 (en) | Method and device for speech processing | |
US11492741B2 (en) | Electronic device | |
US20210337274A1 (en) | Artificial intelligence apparatus and method for providing visual information | |
US10917721B1 (en) | Device and method of performing automatic audio focusing on multiple objects | |
KR102642617B1 (ko) | 인공 지능을 이용한 음성 합성 장치, 음성 합성 장치의 동작 방법 및 컴퓨터로 판독 가능한 기록 매체 | |
KR102631143B1 (ko) | 인공 지능을 이용한 음성 합성 장치, 음성 합성 장치의 동작 방법 및 컴퓨터로 판독 가능한 기록 매체 | |
US11218803B2 (en) | Device and method of performing automatic audio focusing on multiple objects | |
KR102603282B1 (ko) | 인공 지능을 이용한 음성 합성 장치, 음성 합성 장치의 동작 방법 및 컴퓨터로 판독 가능한 기록 매체 | |
WO2024063856A1 (en) | Hybrid language translation on mobile devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |