KR102701423B1 - Electronic device for performing speech recognition and the method for the same - Google Patents
Electronic device for performing speech recognition and the method for the same Download PDFInfo
- Publication number
- KR102701423B1 KR102701423B1 KR1020180046268A KR20180046268A KR102701423B1 KR 102701423 B1 KR102701423 B1 KR 102701423B1 KR 1020180046268 A KR1020180046268 A KR 1020180046268A KR 20180046268 A KR20180046268 A KR 20180046268A KR 102701423 B1 KR102701423 B1 KR 102701423B1
- Authority
- KR
- South Korea
- Prior art keywords
- domain
- language model
- processor
- text data
- data
- Prior art date
Links
- 238000000034 method Methods 0.000 title abstract description 24
- 238000012545 processing Methods 0.000 claims abstract description 25
- 230000000007 visual effect Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 14
- 238000004891 communication Methods 0.000 description 50
- 235000013550 pizza Nutrition 0.000 description 43
- 238000010586 diagram Methods 0.000 description 26
- 238000006243 chemical reaction Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 20
- 230000008859 change Effects 0.000 description 17
- 230000009471 action Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 10
- 238000003860 storage Methods 0.000 description 8
- 230000004308 accommodation Effects 0.000 description 7
- 238000007781 pre-processing Methods 0.000 description 7
- 238000011017 operating method Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 235000015220 hamburgers Nutrition 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- DHSSDEDRBUKTQY-UHFFFAOYSA-N 6-prop-2-enyl-4,5,7,8-tetrahydrothiazolo[4,5-d]azepin-2-amine Chemical compound C1CN(CC=C)CCC2=C1N=C(N)S2 DHSSDEDRBUKTQY-UHFFFAOYSA-N 0.000 description 1
- 241000238557 Decapoda Species 0.000 description 1
- 235000002595 Solanum tuberosum Nutrition 0.000 description 1
- 244000061456 Solanum tuberosum Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003155 kinesthetic effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000000638 stimulation Effects 0.000 description 1
- 229950008418 talipexole Drugs 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/1613—Constructional details or arrangements for portable computers
- G06F1/1633—Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
- G06F1/1637—Details related to the display arrangement, including those related to the mounting of the display in the housing
- G06F1/1647—Details related to the display arrangement, including those related to the mounting of the display in the housing including at least an additional display
- G06F1/165—Details related to the display arrangement, including those related to the mounting of the display in the housing including at least an additional display the additional display being small, e.g. for presenting status information
-
- 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
-
- 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
-
- 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
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/08—Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
-
- 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/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04R—LOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
- H04R1/00—Details of transducers, loudspeakers or microphones
- H04R1/20—Arrangements for obtaining desired frequency or directional characteristics
- H04R1/32—Arrangements for obtaining desired frequency or directional characteristics for obtaining desired directional characteristic only
- H04R1/40—Arrangements for obtaining desired frequency or directional characteristics for obtaining desired directional characteristic only by combining a number of identical transducers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04R—LOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
- H04R1/00—Details of transducers, loudspeakers or microphones
- H04R1/20—Arrangements for obtaining desired frequency or directional characteristics
- H04R1/32—Arrangements for obtaining desired frequency or directional characteristics for obtaining desired directional characteristic only
- H04R1/40—Arrangements for obtaining desired frequency or directional characteristics for obtaining desired directional characteristic only by combining a number of identical transducers
- H04R1/403—Arrangements for obtaining desired frequency or directional characteristics for obtaining desired directional characteristic only by combining a number of identical transducers loud-speakers
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Theoretical Computer Science (AREA)
- Acoustics & Sound (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Otolaryngology (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
다양한 실시예에 따른 전자 장치 및 전자 장치의 동작을 제어하는 방법에서, 본 발명의 다양한 실시예에 따른 전자 장치는 네트워크 인터페이스, 상기 네트워크 인터페이스와 작동적으로 연결된 적어도 하나의 프로세서, 및 상기 프로세서와 작동적으로 연결된 적어도 하나의 메모리를 포함하고, 상기 적어도 하나의 메모리는 자동 음성 인식 (ASR, automatic speech recognition)을 위한 제너릭 랭귀지 모델(a generic language model) 및 복수의 도메인 기반 랭귀지 모델들(a plurality of domain-based language models)을 저장하도록 구성되고, 상기 적어도 하나의 메모리는, 실행 시에, 상기 프로세서가 상기 네트워크 인터페이스를 통해 마이크로폰(microphone)을 포함하는 외부 장치로부터 제 1 음성 데이터를 수신하고, 상기 제너릭 랭귀지 모델을 이용하되, 상기 도메인 기반 랭귀지 모델들은 이용하지 않고, 상기 ASR로, 상기 제 1 음성데이터를 처리하여, 상기 시스템에 의해 수행될 적어도 하나의 태스크와 연관된 제 1 텍스트 데이터를 생성하고, 상기 제 1 텍스트 데이터에 적어도 일부 기반하여, 상기 태스크와 연관된 도메인을 결정하고, 상기 도메인 기반 랭귀지 모델들 중에, 상기 결정된 도메인과 연관된 하나의 도메인 기반 랭귀지 모델을 선택하고, 상기 제 1 음성데이터 수신 후 및 상기 태스크 수행 전에 상기 네트워크 인터페이스를 통해 상기 외부 장치로부터 제 2 음성 데이터를 수신하고, 상기 ASR로, 상기 제너릭 랭귀지 모델 및 상기 선택된 하나의 도메인 기반 랭귀지 모델을 이용하여, 상기 ARS로, 상기 제 2 음성데이터를 처리하여 제 2 텍스트 데이터를 생성하도록 하는 인스트럭션들(instructions)을 저장할 수 있다.
이 밖에, 다양한 실시예들이 가능하다.In various embodiments of the present invention, an electronic device and a method of controlling an operation of an electronic device include a network interface, at least one processor operatively connected to the network interface, and at least one memory operatively connected to the processor, wherein the at least one memory is configured to store a generic language model and a plurality of domain-based language models for automatic speech recognition (ASR), and the at least one memory is configured to, when executed, cause the processor to receive first speech data from an external device including a microphone through the network interface, use the generic language model but not the domain-based language models, process the first speech data with the ASR to generate first text data associated with at least one task to be performed by the system, determine a domain associated with the task based at least in part on the first text data, and generate one domain-based language model associated with the determined domain among the domain-based language models. The method may store instructions for selecting a language model, receiving second voice data from the external device through the network interface after receiving the first voice data and before performing the task, and processing the second voice data with the ARS using the generic language model and the selected one domain-based language model with the ASR to generate second text data.
Besides these, various other embodiments are possible.
Description
본 발명의 다양한 실시예는, 음성 인식을 수행하는 전자 장치 및 그의 동작 방법에 관한 것이다.Various embodiments of the present invention relate to an electronic device performing voice recognition and a method of operating the same.
스마트 폰(smart phone), 태블릿 PC(tablet PC), PMP(portable multimedia player), PDA(personal digital assistant), 랩탑 PC(laptop personal computer) 및 웨어러블 기기(wearable device) 등의 다양한 전자 장치들이 보급되고 있다.Various electronic devices such as smart phones, tablet PCs, portable multimedia players (PMPs), personal digital assistants (PDAs), laptop personal computers, and wearable devices are becoming widespread.
최근에는 전자 장치에 음성 인식 기능이 적용되고 있으며, 전자 장치의 사용자는 음성을 이용하여 전자 장치의 다양한 기능을 실행할 수 있다.Recently, voice recognition functions have been applied to electronic devices, and users of electronic devices can use their voices to execute various functions of the electronic devices.
더 나아가, 사용자의 생활 환경에서 사용하는 장치들을 유무선 네트워크로 연결해 정보를 공유하는 사물 인터넷이 적용되기 시작하면서, 텔레비전, 냉장고 등 다양한 전자 장치를 이용하여 네트워크로 연결된 다른 전자 장치들에 대한 음성 명령을 수행할 수 있는 환경이 갖추어 지고 있다. Furthermore, as the Internet of Things, which connects devices used in the user's living environment to wired and wireless networks to share information, begins to be applied, an environment is being created in which various electronic devices, such as televisions and refrigerators, can perform voice commands to other electronic devices connected to the network.
음성 인식 기술은 사용자가 발화한 음성을 인식하기 위해, 음향모델과 언어모델을 사용할 수 있다. 음향 모델은 음성 데이터에 대한 처리를 수행하여 획득한 특징 벡터와 특징 벡터에 대응하는 음소들이 포함된 음소 후보군들이 매핑되어 저장된 데이터 베이스를 의미할 수 있다. 언어 모델은 음향 모델에서 추출한 음성 데이터에 대응하는 음소들을 이용하여 단어나 음절 등의 언어적인 순서 관계를 모델링하는데 이용되는 정보가 저장된 데이터 베이스를 의미할 수 있다.Speech recognition technology can use an acoustic model and a language model to recognize the voice spoken by the user. An acoustic model can mean a database in which feature vectors obtained by processing voice data and candidate phonemes corresponding to the feature vectors are mapped and stored. A language model can mean a database in which information used to model the linguistic order relationship of words or syllables, etc., is stored using phonemes corresponding to voice data extracted from an acoustic model.
일반적인 단어가 아닌 특정 분야에서 이용되는 단어의 경우, 언어 모델에 포함되어 있지 않은 경우가 많아서, 특정 분야에서 이용되는 단어에 대한 음성 인식의 정확성은 일반적으로 많이 이용되는 단어에 대한 음성 인식의 정확성에 비해 낮을 수 있다.For words used in specific fields rather than general words, they are often not included in language models, so the accuracy of speech recognition for words used in specific fields may be lower than the accuracy of speech recognition for words used commonly.
본 발명의 다양한 실시예에 따른 시스템은 네트워크 인터페이스, 상기 네트워크 인터페이스와 작동적으로 연결된 적어도 하나의 프로세서, 및 상기 프로세서와 작동적으로 연결된 적어도 하나의 메모리를 포함하고, 상기 적어도 하나의 메모리는 자동 음성 인식 (ASR, automatic speech recognition)을 위한 제너릭 랭귀지 모델(a generic language model) 및 복수의 도메인 기반 랭귀지 모델들(a plurality of domain-based language models)을 저장하도록 구성되고, 상기 적어도 하나의 메모리는, 실행 시에, 상기 프로세서가 상기 네트워크 인터페이스를 통해 마이크로폰(microphone)을 포함하는 외부 장치로부터 제 1 음성 데이터를 수신하고, 상기 제너릭 랭귀지 모델을 이용하되, 상기 도메인 기반 랭귀지 모델들은 이용하지 않고, 상기 ASR로, 상기 제 1 음성데이터를 처리하여, 상기 시스템에 의해 수행될 적어도 하나의 태스크와 연관된 제 1 텍스트 데이터를 생성하고, 상기 제 1 텍스트 데이터에 적어도 일부 기반하여, 상기 태스크와 연관된 도메인을 결정하고, 상기 도메인 기반 랭귀지 모델들 중에, 상기 결정된 도메인과 연관된 하나의 도메인 기반 랭귀지 모델을 선택하고, 상기 제 1 음성데이터 수신 후 및 상기 태스크 수행 전에 상기 네트워크 인터페이스를 통해 상기 외부 장치로부터 제 2 음성 데이터를 수신하고, 상기 ASR로, 상기 제너릭 랭귀지 모델 및 상기 선택된 하나의 도메인 기반 랭귀지 모델을 이용하여, 상기 ARS로, 상기 제 2 음성데이터를 처리하여 제 2 텍스트 데이터를 생성하도록 하는 인스트럭션들(instructions)을 저장할 수 있다.A system according to various embodiments of the present invention comprises a network interface, at least one processor operatively connected to the network interface, and at least one memory operatively connected to the processor, wherein the at least one memory is configured to store a generic language model and a plurality of domain-based language models for automatic speech recognition (ASR), and wherein the at least one memory is configured to, when executed, cause the processor to receive first speech data from an external device including a microphone through the network interface, use the generic language model but not the domain-based language models, process the first speech data with the ASR to generate first text data associated with at least one task to be performed by the system, determine a domain associated with the task based at least in part on the first text data, select one domain-based language model associated with the determined domain from among the domain-based language models, and, after receiving the first speech data and performing the task, Before the execution, instructions can be stored for receiving second voice data from the external device through the network interface, and processing the second voice data with the ARS using the generic language model and the selected domain-based language model with the ASR to generate second text data.
본 발명의 다양한 실시예에 따른 시스템은 네트워크 인터페이스, 상기 네트워크 인터페이스와 작동적으로 연결된 적어도 하나의 프로세서, 및 상기 프로세서와 작동적으로 연결된 적어도 하나의 메모리;를 포함하고, 상기 적어도 하나의 메모리는 자동 음성 인식 (ASR, automatic speech recognition)을 위한 제너릭 랭귀지 모델(a generic language model) 및 복수의 도메인 기반 랭귀지 모델들(a plurality of domain-based language models)을 저장하도록 구성되고, 상기 적어도 하나의 메모리는, 실행 시에, 상기 프로세서가, 상기 네트워크 인터페이스를 통해 마이크로폰(microphone)을 포함하는 외부 장치로부터 제 1 음성 데이터를 수신하고, 상기 제너릭 랭귀지 모델을 이용하되, 상기 도메인 기반 랭귀지 모델들은 이용하지 않고, 상기 ASR로, 상기 제 1 음성데이터를 처리하여, 상기 시스템에 의해 수행될 적어도 하나의 태스크와 연관된 제 1 텍스트 데이터를 생성하고, 상기 제 1 텍스트 데이터에 적어도 일부 기반하여, 상기 태스크와 연관된 도메인을 결정하고, 상기 도메인 기반 랭귀지 모델들 중에, 상기 결정된 도메인과 연관된 하나의 도메인 기반 랭귀지 모델을 선택하고, 상기 제 1 음성데이터 수신 후 및 상기 태스크 수행 전에 상기 네트워크 인터페이스를 통해 상기 외부 장치로부터 제 2 음성 데이터를 수신하고, 상기 ASR로, 상기 선택된 하나의 도메인 기반 랭귀지 모델을 이용하여, 상기 ARS로, 상기 제 2 음성데이터를 처리하여 제 2 텍스트 데이터를 생성하도록 하는 인스트럭션들(instructions)을 저장할 수 있다.A system according to various embodiments of the present invention comprises a network interface, at least one processor operatively connected to the network interface, and at least one memory operatively connected to the processor; wherein the at least one memory is configured to store a generic language model and a plurality of domain-based language models for automatic speech recognition (ASR), and wherein the at least one memory is configured to cause, when executed, the processor to receive first speech data from an external device including a microphone through the network interface, to process the first speech data using the generic language model but not using the domain-based language models, to generate first text data associated with at least one task to be performed by the system, to determine a domain associated with the task based at least in part on the first text data, to select one domain-based language model associated with the determined domain from among the domain-based language models, and after receiving the first speech data, Before performing the above task, instructions can be stored for receiving second voice data from the external device through the network interface, and processing the second voice data with the ARS using the selected domain-based language model with the ASR to generate second text data.
본 발명의 다양한 실시예에 따른 음성 인식을 수행하는 전자 장치의 동작 방법은 네트워크 인터페이스를 통해 마이크로폰(microphone)을 포함하는 외부 장치로부터 제 1 음성 데이터를 수신하는 동작, 자동 음성 인식(ASR, automatic speech recognition)을 위한 제너릭 랭귀지 모델(generic language model)을 이용하되, 복수의 도메인 기반 랭귀지 모델들(a plurality of domain-based language model)들은 이용하지 않고, 상기 ASR을 이용하여, 상기 제 1 음성 데이터를 처리하여, 상기 전자 장치에 의해 수행될 적어도 하나의 태스크와 연관된 제 1 텍스트 데이터를 생성하는 동작, 상기 제 1 텍스트 데이터에 적어도 일부 기반하여, 상기 태스크와 연관된 도메인을 결정하는 동작, 상기 도메인 기반 랭귀지 모델들 중, 상기 결정된 도메인과 연관된 하나의 도메인 기반 랭귀지 모델을 선택하는 동작, 상기 제 1 음성 데이터 수신 후 및 상기 태스크 수행 전에 상기 네트워크 인터페이스를 통해 상기 외부 장치로부터 제 2 음성 데이터를 수신하는 동작, 상기 제너릭 랭귀지 모델 및 상기 선택된 하나의 도메인 기반 랭귀지 모델을 이용하여, 상기 ASR로, 상기 제 2 음성 데이터를 처리하여 제 2 텍스트 데이터를 생성하는 동작을 포함할 수 있다.An operating method of an electronic device performing speech recognition according to various embodiments of the present invention comprises: receiving first speech data from an external device including a microphone through a network interface; using a generic language model for automatic speech recognition (ASR), but not using a plurality of domain-based language models, processing the first speech data using the ASR to generate first text data associated with at least one task to be performed by the electronic device; determining a domain associated with the task based at least in part on the first text data; selecting one domain-based language model associated with the determined domain among the domain-based language models; receiving second speech data from the external device through the network interface after receiving the first speech data and before performing the task; processing the second speech data with the ASR using the generic language model and the selected one domain-based language model to generate second text data. May include generating actions.
본 발명의 다양한 실시예에 따른 음성 인식을 수행하는 전자 장치 및 전자 장치의 동작 방법은 음성 데이터를 변환한 텍스트 데이터를 이용하여 도메인을 결정하고, 도메인에 대응하는 컨텐츠 제공자 언어 모델 및 기본 언어 모델을 모두 이용하여 음성 인식을 수행함으로써, 음성 인식의 정확도가 증가할 수 있다.An electronic device performing speech recognition according to various embodiments of the present invention and an operating method of the electronic device determine a domain using text data converted from speech data, and perform speech recognition using both a content provider language model and a basic language model corresponding to the domain, thereby increasing the accuracy of speech recognition.
본 발명의 다양한 실시예에 따른 음성 인식을 수행하는 전자 장치 및 전자 장치의 동작 방법은 특정 서비스 또는 특정 분야에 특화된 컨텐츠 제공자 언어 모델을 이용함으로써, 특정 분야에서 이용되는 단어에 대한 음성 인식의 정확도가 증가할 수 있다.An electronic device performing speech recognition according to various embodiments of the present invention and an operating method of the electronic device can increase the accuracy of speech recognition for words used in a specific field by using a language model of a content provider specialized for a specific service or a specific field.
도 1은 본 발명의 다양한 실시예에 따른 전자 장치의 블록도이다.
도 2는 본 발명의 다양한 실시예에 따른 전자 장치 상에서 동작하는 프로그램의 블록도이다.
도 3은 본 발명의 다양한 실시예에 따른 음성 인식을 수행하는 전자 장치 및 서버를 포함하는 통합 지능화 시스템을 나타낸 도면이다.
도 4는 본 발명의 다양한 실시예에 따른 음성 인식을 수행하는 지능형 서버를 도시한 블록도이다.
도 5a 내지 도 5b는 본 발명의 다양한 실시예에 따른 지능형 서버에서, 언어 모델 및 음성 인식부를 도시한 블록도이다.
도 6a 내지 도 6c는 본 발명의 다양한 실시예에 따른 지능형 서버에서, 언어 모델을 선택하고, 선택된 언어 모델을 이용하여 음성 인식을 수행하는 실시예를 도시한 도면이다.
도 7은 본 발명의 다양한 실시예에 따른 전자 장치를 도시한 블록도이다.
도 8a 내지 도 8d는 본 발명의 다양한 실시예에 따른 지능형 서버 및 전자 장치에서, 언어 모델을 선택하고, 선택된 언어 모델을 이용하여 음성 인식을 수행하는 실시예를 도시한 도면이다.
도 9는 본 발명의 다양한 실시예에 따른 지능형 서버 및 전자 장치에서, 복수의 언어 모델을 선택하고, 선택된 언어 모델들을 이용하여 음성 인식을 수행하는 실시예를 도시한 도면이다.
도 10a 내지 도 12b는 본 발명의 다양한 실시예에 따른 전자 장치에서, 세션에 대한 정보를 출력하는 실시예를 도시한 도면이다.
도 13은 본 발명의 다양한 실시예에 따른 음성 인식을 수행하는 전자 장치의 동작 방법을 도시한 동작 흐름도이다.FIG. 1 is a block diagram of an electronic device according to various embodiments of the present invention.
FIG. 2 is a block diagram of a program operating on an electronic device according to various embodiments of the present invention.
FIG. 3 is a diagram illustrating an integrated intelligent system including an electronic device and a server performing voice recognition according to various embodiments of the present invention.
FIG. 4 is a block diagram illustrating an intelligent server performing voice recognition according to various embodiments of the present invention.
FIGS. 5A and 5B are block diagrams illustrating a language model and a speech recognition unit in an intelligent server according to various embodiments of the present invention.
FIGS. 6A to 6C are diagrams illustrating an example of selecting a language model and performing speech recognition using the selected language model in an intelligent server according to various embodiments of the present invention.
FIG. 7 is a block diagram illustrating an electronic device according to various embodiments of the present invention.
FIGS. 8A to 8D are diagrams illustrating examples of selecting a language model and performing speech recognition using the selected language model in an intelligent server and electronic device according to various embodiments of the present invention.
FIG. 9 is a diagram illustrating an example of selecting multiple language models and performing speech recognition using the selected language models in an intelligent server and electronic device according to various embodiments of the present invention.
FIGS. 10A to 12B are diagrams illustrating examples of outputting information about a session in an electronic device according to various embodiments of the present invention.
FIG. 13 is a flowchart illustrating an operation method of an electronic device performing voice recognition according to various embodiments of the present invention.
도 1은, 다양한 실시예들에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블럭도이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))가 생략되거나, 하나 이상의 다른 구성 요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들은 하나의 통합된 회로로 구현될 수 있다. 예를 들면, 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)은 표시 장치(160)(예: 디스플레이)에 임베디드된 채 구현될 수 있다FIG. 1 is a block diagram of an electronic device (101) in a network environment (100) according to various embodiments. Referring to FIG. 1, in the network environment (100), the electronic device (101) may communicate with the electronic device (102) through a first network (198) (e.g., a short-range wireless communication network), or may communicate with the electronic device (104) or a server (108) through a second network (199) (e.g., a long-range wireless communication network). According to one embodiment, the electronic device (101) may communicate with the electronic device (104) through the server (108). According to one embodiment, the electronic device (101) may include a processor (120), a memory (130), an input device (150), an audio output device (155), a display device (160), an audio module (170), a sensor module (176), an interface (177), a haptic module (179), a camera module (180), a power management module (188), a battery (189), a communication module (190), a subscriber identification module (196), or an antenna module (197). In some embodiments, the electronic device (101) may omit at least one of these components (e.g., the display device (160) or the camera module (180)), or may include one or more other components. In some embodiments, some of these components may be implemented as a single integrated circuit. For example, a sensor module (176) (e.g., a fingerprint sensor, an iris sensor, or a light sensor) may be implemented embedded in a display device (160) (e.g., a display).
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 추가적으로 또는 대체적으로, 보조 프로세서(123)은 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.The processor (120) may control at least one other component (e.g., a hardware or software component) of the electronic device (101) connected to the processor (120) by executing, for example, software (e.g., a program (140)), and may perform various data processing or calculations. According to one embodiment, as at least a part of the data processing or calculations, the processor (120) may load a command or data received from another component (e.g., a sensor module (176) or a communication module (190)) into the volatile memory (132), process the command or data stored in the volatile memory (132), and store the resulting data in the nonvolatile memory (134). According to one embodiment, the processor (120) may include a main processor (121) (e.g., a central processing unit or an application processor), and a secondary processor (123) (e.g., a graphic processing unit, an image signal processor, a sensor hub processor, or a communication processor) that may operate independently or together therewith. Additionally or alternatively, the auxiliary processor (123) may be configured to use less power than the main processor (121), or to be specialized for a given function. The auxiliary processor (123) may be implemented separately from the main processor (121), or as a part thereof.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다. The auxiliary processor (123) may control at least a portion of functions or states associated with at least one of the components of the electronic device (101) (e.g., the display device (160), the sensor module (176), or the communication module (190)), for example, on behalf of the main processor (121) while the main processor (121) is in an inactive (e.g., sleep) state, or together with the main processor (121) while the main processor (121) is in an active (e.g., application execution) state. In one embodiment, the auxiliary processor (123) (e.g., an image signal processor or a communication processor) may be implemented as a part of another functionally related component (e.g., a camera module (180) or a communication module (190)).
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다. The memory (130) can store various data used by at least one component (e.g., processor (120) or sensor module (176)) of the electronic device (101). The data can include, for example, software (e.g., program (140)) and input data or output data for commands related thereto. The memory (130) can include volatile memory (132) or nonvolatile memory (134).
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다. The program (140) may be stored as software in memory (130) and may include, for example, an operating system (142), middleware (144), or an application (146).
입력 장치(150)는, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 장치(150)은, 예를 들면, 마이크, 마우스, 또는 키보드를 포함할 수 있다. The input device (150) can receive commands or data to be used in a component of the electronic device (101) (e.g., a processor (120)) from an external source (e.g., a user) of the electronic device (101). The input device (150) can include, for example, a microphone, a mouse, or a keyboard.
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 장치(155)는, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있고, 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.The audio output device (155) can output an audio signal to the outside of the electronic device (101). The audio output device (155) can include, for example, a speaker or a receiver. The speaker can be used for general purposes such as multimedia playback or recording playback, and the receiver can be used to receive an incoming call. According to one embodiment, the receiver can be implemented separately from the speaker or as a part thereof.
표시 장치(160)는 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 표시 장치(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 표시 장치(160)는 터치를 감지하도록 설정된 터치 회로(touch circuitry), 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 센서 회로(예: 압력 센서)를 포함할 수 있다. The display device (160) can visually provide information to an external party (e.g., a user) of the electronic device (101). The display device (160) can include, for example, a display, a holographic device, or a projector and a control circuit for controlling the device. According to one embodiment, the display device (160) can include touch circuitry configured to detect a touch, or a sensor circuitry configured to measure a strength of a force generated by the touch (e.g., a pressure sensor).
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 장치(150) 를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102)) (예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.The audio module (170) can convert sound into an electric signal, or vice versa, convert an electric signal into sound. According to one embodiment, the audio module (170) can obtain sound through an input device (150), or output sound through an audio output device (155), or an external electronic device (e.g., an electronic device (102)) (e.g., a speaker or a headphone) directly or wirelessly connected to the electronic device (101).
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다. The sensor module (176) can detect an operating state (e.g., power or temperature) of the electronic device (101) or an external environmental state (e.g., user state) and generate an electrical signal or data value corresponding to the detected state. According to one embodiment, the sensor module (176) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
인터페이스(177)는 전자 장치(101)이 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.The interface (177) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (101) to an external electronic device (e.g., the electronic device (102)). In one embodiment, the interface (177) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(178)은, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.The connection terminal (178) may include a connector through which the electronic device (101) may be physically connected to an external electronic device (e.g., the electronic device (102)). According to one embodiment, the connection terminal (178) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.The haptic module (179) can convert an electrical signal into a mechanical stimulus (e.g., vibration or movement) or an electrical stimulus that a user can perceive through a tactile or kinesthetic sense. According to one embodiment, the haptic module (179) can include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.The camera module (180) can capture still images and moving images. According to one embodiment, the camera module (180) can include one or more lenses, image sensors, image signal processors, or flashes.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.The power management module (188) can manage power supplied to the electronic device (101). According to one embodiment, the power management module (188) can be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.A battery (189) may power at least one component of the electronic device (101). In one embodiment, the battery (189) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108))간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(198)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성 요소(예: 단일 칩)으로 통합되거나, 또는 서로 별도의 복수의 구성 요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 및 인증할 수 있다. The communication module (190) may support establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (101) and an external electronic device (e.g., the electronic device (102), the electronic device (104), or the server (108)), and performance of communication through the established communication channel. The communication module (190) may operate independently from the processor (120) (e.g., the application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (190) may include a wireless communication module (192) (e.g., a cellular communication module, a short-range wireless communication module, or a GNSS (global navigation satellite system) communication module) or a wired communication module (194) (e.g., a local area network (LAN) communication module or a power line communication module). A corresponding communication module among these communication modules can communicate with an external electronic device via a first network (198) (e.g., a short-range communication network such as Bluetooth, WiFi direct, or IrDA (infrared data association)) or a second network (199) (e.g., a long-range communication network such as a cellular network, the Internet, or a computer network (e.g., a LAN or WAN)). These various types of communication modules can be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (192) can identify and authenticate the electronic device (101) within a communication network such as the first network (198) or the second network (199) by using subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module (196).
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 하나 이상의 안테나들을 포함할 수 있고, 이로부터, 제 1 네트워크 198 또는 제 2 네트워크 199와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부 전자 장치 간에 송신되거나 수신될 수 있다.The antenna module (197) can transmit or receive signals or power to or from an external device (e.g., an external electronic device). According to one embodiment, the antenna module (197) can include one or more antennas, from which at least one antenna suitable for a communication method used in a communication network, such as the
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.At least some of the above components may be connected to each other and exchange signals (e.g., commands or data) with each other via a communication method between peripheral devices (e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부 전자 장치들(102, 104, or 108) 중 하나 이상의 외부 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다.. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.According to one embodiment, a command or data may be transmitted or received between the electronic device (101) and an external electronic device (104) via a server (108) connected to a second network (199). Each of the electronic devices (102, 104) may be the same or a different type of device as the electronic device (101). According to one embodiment, all or part of the operations executed in the electronic device (101) may be executed in one or more of the external electronic devices (102, 104, or 108). For example, when the electronic device (101) is to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device (101) may, instead of executing the function or service itself or in addition, request one or more external electronic devices to perform at least a part of the function or service. One or more external electronic devices that have received the request may execute at least a part of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device (101). The electronic device (101) may process the result as is or additionally and provide it as at least a part of a response to the request. For this purpose, for example, cloud computing, distributed computing, or client-server computing technology may be used.
도 2은 다양한 실시예에 따른 프로그램(140)을 예시하는 블록도(200)이다. 일실시예에 따르면, 프로그램(140)은 전자 장치(101)의 하나 이상의 리소스들을 제어하기 위한 운영 체제(142), 미들웨어(144), 또는 상기 운영 체제(142)에서 실행 가능한 어플리케이션(146)을 포함할 수 있다. 운영 체제(142)는, 예를 들면, AndroidTM, iOSTM, WindowsTM, SymbianTM, TizenTM, 또는 BadaTM를 포함할 수 있다. 프로그램(140) 중 적어도 일부 프로그램은, 예를 들면, 제조 시에 전자 장치(101)에 프리로드되거나, 또는 사용자에 의해 사용 시 외부 전자 장치(예: 전자 장치(102 또는 104), 또는 서버(108))로부터 다운로드되거나 갱신 될 수 있다.FIG. 2 is a block diagram (200) illustrating a program (140) according to various embodiments. According to one embodiment, the program (140) may include an operating system (142), middleware (144), or an application (146) executable in the operating system (142) for controlling one or more resources of the electronic device (101). The operating system (142) may include, for example, AndroidTM, iOSTM, WindowsTM, SymbianTM, TizenTM, or BadaTM. At least some of the programs (140) may be preloaded in the electronic device (101), for example, at the time of manufacturing, or may be downloaded or updated from an external electronic device (e.g., the electronic device (102 or 104), or a server (108)) when used by a user.
운영 체제(142)는 전자 장치(101)의 하나 이상의 시스템 리소스들(예: 프로세스, 메모리, 또는 전원)의 관리(예: 할당 또는 회수)를 제어할 수 있다. 운영 체제(142)는, 추가적으로 또는 대체적으로, 전자 장치(101)의 다른 하드웨어 디바이스, 예를 들면, 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 구동하기 위한 하나 이상의 드라이버 프로그램들을 포함할 수 있다.The operating system (142) may control the management (e.g., allocation or retrieval) of one or more system resources (e.g., processes, memory, or power) of the electronic device (101). The operating system (142) may additionally or alternatively include one or more driver programs for driving other hardware devices of the electronic device (101), such as an input device (150), an audio output device (155), a display device (160), an audio module (170), a sensor module (176), an interface (177), a haptic module (179), a camera module (180), a power management module (188), a battery (189), a communication module (190), a subscriber identification module (196), or an antenna module (197).
미들웨어(144)는 전자 장치(101)의 하나 이상의 리소스들로부터 제공되는 기능 또는 정보가 어플리케이션(146)에 의해 사용될 수 있도록 다양한 기능들을 어플리케이션(146)으로 제공할 수 있다. 미들웨어(144)는, 예를 들면, 어플리케이션 매니저(201), 윈도우 매니저(203), 멀티미디어 매니저(205), 리소스 매니저(207), 파워 매니저(209), 데이터베이스 매니저(211), 패키지 매니저(213), 커넥티비티 매니저(215), 노티피케이션 매니저(217), 로케이션 매니저(219), 그래픽 매니저(221), 시큐리티 매니저(223), 통화 매니저(225), 또는 음성 인식 매니저(227)를 포함할 수 있다. The middleware (144) may provide various functions to the application (146) so that functions or information provided from one or more resources of the electronic device (101) may be used by the application (146). The middleware (144) may include, for example, an application manager (201), a window manager (203), a multimedia manager (205), a resource manager (207), a power manager (209), a database manager (211), a package manager (213), a connectivity manager (215), a notification manager (217), a location manager (219), a graphics manager (221), a security manager (223), a call manager (225), or a voice recognition manager (227).
어플리케이션 매니저(201)는, 예를 들면, 어플리케이션(146)의 생명 주기를 관리할 수 있다. 윈도우 매니저(203)는, 예를 들면, 화면에서 사용되는 하나 이상의 GUI 자원들을 관리할 수 있다. 멀티미디어 매니저(205)는, 예를 들면, 미디어 파일들의 재생에 필요한 하나 이상의 포맷들을 파악하고, 그 중 선택된 해당하는 포맷에 맞는 코덱을 이용하여 상기 미디어 파일들 중 해당하는 미디어 파일의 인코딩 또는 디코딩을 수행할 수 있다. 리소스 매니저(207)는, 예를 들면, 어플리케이션(146)의 소스 코드 또는 메모리(130)의 메모리의 공간을 관리할 수 있다. 파워 매니저(209)는, 예를 들면, 배터리(189)의 용량, 온도 또는 전원을 관리하고, 이 중 해당 정보를 이용하여 전자 장치(101)의 동작에 필요한 관련 정보를 결정 또는 제공할 수 있다. 일실시예에 따르면, 파워 매니저(209)는 전자 장치(101)의 바이오스(BIOS: basic input/output system)(미도시)와 연동할 수 있다.The application manager (201) can manage, for example, the life cycle of the application (146). The window manager (203) can manage, for example, one or more GUI resources used on the screen. The multimedia manager (205) can identify, for example, one or more formats required for playing media files, and perform encoding or decoding of a corresponding media file among the media files using a codec suitable for a corresponding format selected among the formats. The resource manager (207) can manage, for example, the source code of the application (146) or the memory space of the memory (130). The power manager (209) can manage, for example, the capacity, temperature, or power of the battery (189), and determine or provide related information required for the operation of the electronic device (101) using the corresponding information. According to one embodiment, the power manager (209) can be linked with a BIOS (basic input/output system) (not shown) of the electronic device (101).
데이터베이스 매니저(211)는, 예를 들면, 어플리케이션(146)에 의해 사용될 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 패키지 매니저(213)는, 예를 들면, 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 갱신을 관리할 수 있다. 커넥티비티 매니저(215)는, 예를 들면, 전자 장치(101)와 외부 전자 장치 간의 무선 연결 또는 직접 연결을 관리할 수 있다. 노티피케이션 매니저(217)는, 예를 들면, 지정된 이벤트(예: 착신 통화, 메시지, 또는 알람)의 발생을 사용자에게 알리기 위한 기능을 제공할 수 있다. 로케이션 매니저(219)는, 예를 들면, 전자 장치(101)의 위치 정보를 관리할 수 있다. 그래픽 매니저(221)는, 예를 들면, 사용자에게 제공될 하나 이상의 그래픽 효과들 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. The database manager (211) may, for example, create, search, or modify a database to be used by the application (146). The package manager (213) may, for example, manage the installation or update of an application distributed in the form of a package file. The connectivity manager (215) may, for example, manage a wireless connection or direct connection between the electronic device (101) and an external electronic device. The notification manager (217) may, for example, provide a function for notifying a user of the occurrence of a specified event (e.g., an incoming call, a message, or an alarm). The location manager (219) may, for example, manage location information of the electronic device (101). The graphics manager (221) may, for example, manage one or more graphic effects to be provided to the user or a user interface related thereto.
시큐리티 매니저(223)는, 예를 들면, 시스템 보안 또는 사용자 인증을 제공할 수 있다. 통화(telephony) 매니저(225)는, 예를 들면, 전자 장치(101)에 의해 제공되는 음성 통화 기능 또는 영상 통화 기능을 관리할 수 있다. 음성 인식 매니저(227)는, 예를 들면, 사용자의 음성 데이터를 서버(108)로 전송하고, 그 음성 데이터에 적어도 일부 기반하여 전자 장치(101)에서 수행될 기능에 대응하는 명령어(command), 또는 그 음성 데이터에 적어도 일부 기반하여 변환된 문자 데이터를 서버(108)로부터 수신할 수 있다. 일 실시예에 따르면, 미들웨어(244)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. 일 실시예에 따르면, 미들웨어(144)의 적어도 일부는 운영 체제(142)의 일부로 포함되거나, 또는 운영 체제(142)와는 다른 별도의 소프트웨어로 구현될 수 있다.The security manager (223) may provide, for example, system security or user authentication. The telephony manager (225) may manage, for example, a voice call function or a video call function provided by the electronic device (101). The voice recognition manager (227) may, for example, transmit a user's voice data to the server (108) and receive, from the server (108), a command corresponding to a function to be performed in the electronic device (101) based at least in part on the voice data, or converted text data based at least in part on the voice data. In one embodiment, the middleware (244) may dynamically delete some of the existing components or add new components. In one embodiment, at least a portion of the middleware (144) may be included as a part of the operating system (142), or may be implemented as separate software different from the operating system (142).
어플리케이션(146)은, 예를 들면, 홈(251), 다이얼러(253), SMS/MMS(255), IM(instant message)(257), 브라우저(259), 카메라(261), 알람(263), 컨택트(265), 음성 인식(267), 이메일(269), 달력(271), 미디어 플레이어(273), 앨범(275), 와치(277), 헬스(279)(예: 운동량 또는 혈당과 같은 생체 정보를 측정), 또는 환경 정보(281)(예: 기압, 습도, 또는 온도 정보 측정) 어플리케이션을 포함할 수 있다. 일실시예에 따르면, 어플리케이션(146)은 전자 장치(101)와 외부 전자 장치 사이의 정보 교환을 지원할 수 있는 정보 교환 어플리케이션(미도시)을 더 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들면, 외부 전자 장치로 지정된 정보 (예: 통화, 메시지, 또는 알람)를 전달하도록 설정된 노티피케이션 릴레이 어플리케이션, 또는 외부 전자 장치를 관리하도록 설정된 장치 관리 어플리케이션을 포함할 수 있다. 노티피케이션 릴레이 어플리케이션은, 예를 들면, 전자 장치(101)의 다른 어플리케이션(예: 이메일 어플리케이션(269))에서 발생된 지정된 이벤트(예: 메일 수신)에 대응하는 알림 정보를 외부 전자 장치로 전달할 수 있다. 추가적으로 또는 대체적으로, 노티피케이션 릴레이 어플리케이션은 외부 전자 장치로부터 알림 정보를 수신하여 전자 장치(101)의 사용자에게 제공할 수 있다. The application (146) may include, for example, a home (251), a dialer (253), an SMS/MMS (255), an instant message (IM) (257), a browser (259), a camera (261), an alarm (263), a contact (265), voice recognition (267), an email (269), a calendar (271), a media player (273), an album (275), a watch (277), a health (279) (e.g., measuring biometric information such as the amount of exercise or blood sugar), or an environmental information (281) (e.g., measuring barometric pressure, humidity, or temperature information) application. According to one embodiment, the application (146) may further include an information exchange application (not shown) that can support information exchange between the electronic device (101) and an external electronic device. The information exchange application may include, for example, a notification relay application configured to transmit designated information (e.g., a call, a message, or an alarm) to an external electronic device, or a device management application configured to manage an external electronic device. The notification relay application may, for example, transmit notification information corresponding to a designated event (e.g., receipt of a mail) that occurred in another application (e.g., an email application (269)) of the electronic device (101) to the external electronic device. Additionally or alternatively, the notification relay application may receive notification information from the external electronic device and provide the information to a user of the electronic device (101).
장치 관리 어플리케이션은, 예를 들면, 전자 장치(101)와 통신하는 외부 전자 장치 또는 그 일부 구성 요소(예: 표시 장치(160) 또는 카메라 모듈(180))의 전원(예: 턴-온 또는 턴-오프) 또는 기능(예: 표시 장치(160) 또는 카메라 모듈(180)의 밝기, 해상도, 또는 포커스)을 제어할 수 있다. 장치 관리 어플리케이션은, 추가적으로 또는 대체적으로, 외부 전자 장치에서 동작하는 어플리케이션의 설치, 삭제, 또는 갱신을 지원할 수 있다.The device management application may control, for example, the power (e.g., turning on or off) or the function (e.g., brightness, resolution, or focus of the display device (160) or the camera module (180)) of an external electronic device or a component thereof (e.g., a display device (160) or a camera module (180)) that communicates with the electronic device (101). The device management application may additionally or alternatively support installation, deletion, or updating of an application running on the external electronic device.
도 3은 본 발명의 다양한 실시예에 따른 음성 인식을 수행하는 전자 장치 및 서버를 포함하는 통합 지능화 시스템을 나타낸 도면이다.FIG. 3 is a diagram illustrating an integrated intelligent system including an electronic device and a server performing voice recognition according to various embodiments of the present invention.
도 3을 참조하면, 통합 지능화 시스템(300)은 사용자 단말(예: 도 1의 전자 장치(101), 310), 지능형 서버(예: 도 1의 서버(108), 320), 클라우드 서버(330) 및 서드 파티 서버(340)를 포함할 수 있다.Referring to FIG. 3, the integrated intelligence system (300) may include a user terminal (e.g., an electronic device (101), 310 of FIG. 1), an intelligent server (e.g., a server (108), 320 of FIG. 1), a cloud server (330), and a third-party server (340).
본 발명의 다양한 실시예에 따르면, 사용자 단말(310)은 사용자 단말(310) 내부에 저장된 앱(app)(또는, 어플리케이션 프로그램(application program))(예: 알람 앱, 메시지 앱, 또는 사진(갤러리) 앱 등)을 통해 사용자에게 필요한 서비스를 제공할 수 있다. 예를 들어, 사용자 단말(310)은 사용자 단말(310) 내부에 저장된 지능형 앱(또는, 음성 인식 앱)을 통해 다른 앱을 실행하고 동작시킬 수 있다. 사용자 단말(310)의 상기 지능형 앱을 통해 상기 다른 앱의 실행하고 동작을 실행시키기 위한 사용자 입력을 수신할 수 있다. 상기 사용자 입력은, 예를 들어, 물리적 버튼, 터치 패드, 음성 입력, 원격 입력 등을 통해 수신될 수 있다. 일 실시 예에 따르면, 사용자 단말(310)은 휴대폰, 스마트폰, PDA(personal digital assistant), 노트북 컴퓨터, IoT 기술이 적용된 전자 장치(예를 들면, 스마트 TV, 스마트 냉장고, 공기 청정기 등) 등 인터넷에 연결 가능한 각종 단말 장치(또는, 전자 장치)가 이에 해당될 수 있다.According to various embodiments of the present invention, the user terminal (310) can provide a service required by the user through an app (or application program) (e.g., an alarm app, a message app, or a photo (gallery) app, etc.) stored in the user terminal (310). For example, the user terminal (310) can execute and operate another app through an intelligent app (or a voice recognition app) stored in the user terminal (310). The user input for executing and operating the other app can be received through the intelligent app of the user terminal (310). The user input can be received through, for example, a physical button, a touch pad, a voice input, a remote input, etc. According to one embodiment, the user terminal (310) can be various terminal devices (or electronic devices) that can be connected to the Internet, such as a mobile phone, a smart phone, a PDA (personal digital assistant), a notebook computer, an electronic device to which IoT technology is applied (e.g., a smart TV, a smart refrigerator, an air purifier, etc.).
본 발명의 다양한 실시예에 따르면, 사용자 단말(310)은 사용자의 발화를 사용자 입력으로 수신할 수 있다. 사용자 단말(310)은 사용자의 발화를 수신하고, 상기 사용자의 발화에 기초하여 앱을 동작시키는 명령을 생성할 수 있다. 이에 따라, 사용자 단말(310)은 상기 명령을 이용하여 상기 앱을 동작시킬 수 있다.According to various embodiments of the present invention, the user terminal (310) can receive the user's speech as a user input. The user terminal (310) can receive the user's speech and generate a command for operating an app based on the user's speech. Accordingly, the user terminal (310) can operate the app using the command.
본 발명의 다양한 실시예에 따르면, 사용자 단말(310)은 사용자의 발화를 수신하고, 사용자의 발화에 대응하는 음성 데이터를 생성할 수 있다. 생성된 음성 데이터는 지능형 서버(320)에 전송될 수 있다.According to various embodiments of the present invention, the user terminal (310) can receive a user's speech and generate voice data corresponding to the user's speech. The generated voice data can be transmitted to an intelligent server (320).
본 발명의 다양한 실시에에 따르면, 사용자 단말(310)은 음성 데이터를 지능형 서버(320)로 전송하기 이전, 음성 데이터를 전처리할 수 있다. 사용자 단말(310)은 음성 데이터에 포함된 에코(echo)를 제거하는 동작, 음성 데이터에 포함된 배경 잡음을 제거하는 동작, 음성 데이터에 포함된 음성의 크기를 조절하는 동작 등 다양한 동작을 수행하는 방식으로 음성 데이터에 대한 전처리를 수행하고, 전처리된 음성 데이터를 지능형 서버(320)로 전송할 수 있다.According to various embodiments of the present invention, the user terminal (310) can preprocess the voice data before transmitting the voice data to the intelligent server (320). The user terminal (310) can perform preprocessing on the voice data by performing various operations, such as an operation of removing echo included in the voice data, an operation of removing background noise included in the voice data, and an operation of adjusting the volume of the voice included in the voice data, and transmit the preprocessed voice data to the intelligent server (320).
본 발명의 다양한 실시예에 따르면, 지능형 서버(320)는 통신망을 통해 외부장치(예: 사용자 단말(310) 등)로부터 사용자 발화에 대응하는 음성 데이터를 수신하고, 음성 데이터를 텍스트 데이터로 변환할 수 있다.According to various embodiments of the present invention, an intelligent server (320) can receive voice data corresponding to a user's speech from an external device (e.g., a user terminal (310), etc.) through a communication network, and convert the voice data into text data.
본 발명의 다양한 실시예에 다르면, 지능형 서버(320)는 변환된 텍스트 데이터를 사용자 단말(310)에 전송할 수 있다. 사용자 단말(310)은 수신한 텍스트 데이터를 디스플레이 또는 스피커를 이용하여 출력할 수 있다.According to various embodiments of the present invention, the intelligent server (320) can transmit converted text data to the user terminal (310). The user terminal (310) can output the received text data using a display or speaker.
본 발명의 다양한 실시예에 따르면, 지능형 서버(320)가 텍스트 데이터를 변환하는 동작은 지능형 서버(320)의 메모리에 저장된 음향 모델(acoustic model) 및 언어 모델(language model)을 이용하여 수행될 수 있다. 음향 모델은 음성 데이터에 대한 처리를 수행하여 획득한 특징 벡터와 특징 벡터에 대응하는 음소들이 포함된 음소 후보군들이 매핑되어 저장된 데이터 베이스를 의미할 수 있다. 언어 모델은 음향 모델에서 추출한 음성 데이터에 대응하는 음소들을 이용하여 단어나 음절 등의 언어적인 순서 관계를 모델링하는데 이용되는 정보가 저장된 데이터 베이스를 의미할 수 있다.According to various embodiments of the present invention, the operation of converting text data by the intelligent server (320) may be performed using an acoustic model and a language model stored in the memory of the intelligent server (320). The acoustic model may refer to a database in which feature vectors obtained by performing processing on speech data and candidate phonemes including phonemes corresponding to the feature vectors are mapped and stored. The language model may refer to a database in which information used to model the linguistic order relationship of words or syllables, etc., is stored using phonemes corresponding to speech data extracted from the acoustic model.
본 발명의 다양한 실시예에 따르면, 지능형 서버(320)는 음향 모델을 이용해서 음성 데이터(예를 들면, 나는 간다)에 대응하는 음소들(ㄴ/ㅏ/ㄴ/ㅡ/(ㄴ 또는 ㅇ)/ㄱ/ㅏ/ㄴ/ㄷ/ㅏ 혹은 n/a/n/(un 또는 ung)/ g/an/d/a)을 추출할 수 있다. 음향 모델에는 "는"에 해당하는 음성 데이터에서 아래의 "ㄴ"에 해당하는 음소 후보군("ㄴ" 또는 "ㅇ"혹은 "un" 또는 "ung")이 저장될 수 있다(음성 데이터 중 "는"과 "능"은 발음이 유사하여 "ㄴ"과 "ㅇ"이 음소 후보군으로 저장될 수 있다).According to various embodiments of the present invention, the intelligent server (320) can extract phonemes (ㄴ/ㅏ/ㄴ/ㅡ/(ㄴ or ㅇ)/ㄱ/ㅏ/ㄴ/ㄷ/ㅏ or n/a/n/(un or ung)/g/an/d/a) corresponding to speech data (e.g., I go) using an acoustic model. In the acoustic model, a phoneme candidate group ("ㄴ" or "ㅇ" or "un" or "ung") corresponding to "ㄴ" in the speech data corresponding to "는" can be stored (in the speech data, "는" and "능" have similar pronunciations, so "ㄴ" and "ㅇ" can be stored as phoneme candidates).
본 발명의 다양한 실시예에 따르면, 언어 모델은 음향 모델에서 추출한 음성 데이터에 대응하는 음소들을 이용하여 단어나 음절 등의 언어적인 순서 관계를 모델링하는데 이용되는 정보가 저장된 데이터 베이스를 의미할 수 있다. 언어 모델에는 음성 데이터와 음소 후보군에 포함된 음소들을 포함하는 단어들이 각각 매핑되어 저장될 수 있다. 더 나아가, 언어 모델에는 음소 후보군에 포함된 음소들을 포함하는 단어들이 음성 데이터랑 일치할 확률이 각각 매핑되어 저장될 수 있다. 지능형 서버(320)는 음소 후보군에 포함된 음소들을 포함하는 단어들 각각과 음성 데이터와 일치할 확률에 기반하여 음성 데이터에 대응하는 단어를 선택할 수 있다.According to various embodiments of the present invention, a language model may mean a database in which information used to model a linguistic order relationship such as words or syllables is stored using phonemes corresponding to speech data extracted from an acoustic model. In the language model, speech data and words including phonemes included in a phoneme candidate group may be respectively mapped and stored. Furthermore, in the language model, the probability that words including phonemes included in a phoneme candidate group will match speech data may be respectively mapped and stored. The intelligent server (320) may select a word corresponding to speech data based on the probability that each of the words including phonemes included in the phoneme candidate group will match speech data.
본 발명의 다양한 실시예에 따르면, 지능형 서버(320)는 음성 데이터를 변환하여 생성된 텍스트 데이터를 클라우드 서버(330)에 전송할 수 있다. According to various embodiments of the present invention, the intelligent server (320) can convert voice data and transmit the generated text data to the cloud server (330).
본 발명의 다양한 실시에에 따르면, 클라우드 서버(330)는 지능형 서버(320)로부터 수신한 텍스트 데이터를 이용하여 자연어 이해(natural language understanding, NLU) 처리를 수행할 수 있다. 자연어 이해 처리는 변환된 텍스트 데이터를 이용하여 사용자의 음성의 발화 의도를 판단하는 동작을 의미할 수 있다. 클라우드 서버(330)는 텍스트 데이터에 대한 문법적 분석(syntactic analyze) 또는 의미적 분석(semantic analyze)을 수행하여 사용자 의도를 판단할 수 있다. 상기 문법적 분석은 사용자 입력을 문법적 단위(예: 단어, 구, 또는 형태소 등)로 나누고, 상기 나누어진 단위가 어떤 문법적인 요소를 갖는지 파악할 수 있다. 상기 의미적 분석은 의미(semantic) 매칭, 룰(rule) 매칭, 포뮬러(formula) 매칭 등을 이용하여 수행할 수 있다. 클라우드 서버(330)는 사용자 입력에 대응하는 의도와 매칭되는 서비스를 구분하기 위한 도메인(domain), 의도(intend) 및 상기 의도를 파악하는데 필요한 파라미터(parameter)(또는, 슬롯(slot))로 나누어진 매칭 규칙을 이용하여 사용자의 의도 및 파라미터를 결정할 수 있다. 예를 들어, 상기 하나의 도메인(예: 알람)은 복수의 의도(예: 알람 설정, 또는 알람 해제 등)를 포함할 수 있고, 하나의 의도는 복수의 파라미터(예: 시간, 반복 횟수, 또는 알람음 등)을 포함할 수 있다.According to various embodiments of the present invention, the cloud server (330) may perform natural language understanding (NLU) processing using text data received from the intelligent server (320). Natural language understanding processing may mean an operation of determining the user's speech intention using converted text data. The cloud server (330) may determine the user's intention by performing syntactic analysis or semantic analysis on the text data. The grammatical analysis may divide the user input into grammatical units (e.g., words, phrases, or morphemes, etc.) and determine which grammatical elements the divided units have. The semantic analysis may be performed using semantic matching, rule matching, formula matching, etc. The cloud server (330) can determine the user's intent and parameters by using matching rules divided into a domain, an intent, and a parameter (or slot) required to identify the intent for distinguishing a service matching the intent corresponding to the user input. For example, one domain (e.g., alarm) can include multiple intents (e.g., setting an alarm, releasing an alarm, etc.), and one intent can include multiple parameters (e.g., time, number of repetitions, alarm sound, etc.).
본 발명의 다양한 실시예에 따르면, 클라우드 서버(330)는 형태소, 구 등의 언어적 특징(예: 문법적 요소)을 이용하여 사용자 입력으로부터 추출된 단어의 의미를 파악하고, 상기 파악된 단어의 의미를 도메인 및 의도에 매칭시켜 사용자의 의도를 결정할 수 있다. 예를 들어, 클라우드 서버(330)는 각각의 도메인 및 의도에 사용자 입력에서 추출된 단어가 얼마나 포함되어 있는 지를 계산하여 사용자 의도를 결정할 수 있다. 일 실시 예에 따르면, 클라우드 서버(330)는 상기 의도를 파악하는데 기초가 된 단어를 이용하여 사용자 입력의 파라미터를 결정할 수 있다. 일 실시 예에 따르면, 클라우드 서버(330)는 사용자 입력의 의도를 파악하기 위한 언어적 특징이 저장된 자연어 인식 데이터베이스(미도시)를 이용하여 사용자의 의도를 결정할 수 있다. 다른 실시 예에 따르면, 클라우드 서버(330)는 개인화 언어 모델(personal language model)(PLM)을 이용하여 사용자의 의도를 결정할 수 있다. 예를 들어, 클라우드 서버(330)는 개인화된 정보(예: 연락처 리스트, 음악 리스트)를 이용하여 사용자의 의도를 결정할 수 있다.According to various embodiments of the present invention, the cloud server (330) may determine the meaning of words extracted from user input using linguistic features (e.g., grammatical elements) such as morphemes and phrases, and may determine the user's intention by matching the meaning of the identified words to domains and intentions. For example, the cloud server (330) may determine the user's intention by calculating how many words extracted from the user input are included in each domain and intention. According to one embodiment, the cloud server (330) may determine the parameter of the user input using the words that are the basis for determining the intention. According to one embodiment, the cloud server (330) may determine the user's intention using a natural language recognition database (not shown) in which linguistic features for determining the intention of the user input are stored. According to another embodiment, the cloud server (330) may determine the user's intention using a personal language model (PLM). For example, the cloud server (330) can determine the user's intention using personalized information (e.g., contact list, music list).
본 발명의 다양한 실시예에 따르면, 클라우드 서버(330)에서 수행할 수 있는 다양한 동작은 지능형 서버(320)에서도 수행될 수도 있다.According to various embodiments of the present invention, various operations that can be performed in the cloud server (330) may also be performed in the intelligent server (320).
본 발명의 다양한 실시예에 따르면, 클라우드 서버(330)는 자연어 이해 동작을 통해 판단한 사용자의 의도 및 사용자의 의도에 알맞은 동작을 확인하고, 사용자의 의도에 대응하는 동작을 실행하는데 필요한 파라미터에 대한 정보를 확인할 수 있다. 클라우드 서버(330)는 사용자의 의도에 대응하는 동작을 실행하는데 필요한 파라미터가 부족한 경우, 파라미터를 사용자 단말(310)에 요청할 수 있다. 클라우드 서버(330)는 사용자의 의도에 대응하는 동작을 실행하는데 필요한 파라미터가 존재하는 경우, 사용자의 의도에 대응하는 동작을 실행하고, 실행 결과를 사용자 단말(310)에 전송할 수 있다.According to various embodiments of the present invention, the cloud server (330) can confirm the user's intention and the action appropriate for the user's intention determined through the natural language understanding action, and can confirm information on the parameters required to execute the action corresponding to the user's intention. If the cloud server (330) lacks the parameters required to execute the action corresponding to the user's intention, the cloud server (330) can request the parameters from the user terminal (310). If the parameters required to execute the action corresponding to the user's intention exist, the cloud server (330) can execute the action corresponding to the user's intention and transmit the execution result to the user terminal (310).
본 발명의 다양한 실시예에 따르면, 클라우드 서버(330)는 사용자의 의도에 대응하는 동작을 실행할 것을 요청하는 신호를 서드파티 서버(340)에 전송할 수 있다. 서드파티 서버(340)는 지능형 서버(320) 및 클라우드 서버(330)를 운영하는 주체와 다른 주체가 운영하는 서버를 의미할 수 있다. 서드 파티 서버(340)는 사용자의 의도(예를 들면, 피자 주문)에 대응하는 동작을 실행하고, 실행 결과를 사용자 단말(310)에 전송할 수 있다.According to various embodiments of the present invention, the cloud server (330) may transmit a signal requesting execution of an operation corresponding to a user's intention to a third-party server (340). The third-party server (340) may mean a server operated by a different entity from the entity operating the intelligent server (320) and the cloud server (330). The third-party server (340) may execute an operation corresponding to the user's intention (e.g., ordering a pizza) and transmit the execution result to the user terminal (310).
본 발명의 다양한 실시예에 따르면, 지능형 서버(320)는 사용자의 발화에 대응하는 음성 데이터에 대한 변환을 통해 생성된 텍스트 데이터에 기반하여 추가적인 음성 인식에 이용될 언어 모델(또는, 랭귀지 모델(language model)을 선택할 수 있다. 지능형 서버(320)는 음성 인식을 수행하는데 있어 기본적으로 사용하도록 지정된 기본 언어 모델(또는, 제너릭 랭귀지 모델(generic language model))과 음성 인식에 기반하여 제공되는 서비스들 각각에 의해 구별된 도메인들에 대응하는 복수의 도메인 기반 언어 모델(또는, 도메인 기반 랭귀지 모델(domain-based language model) 을 포함할 수 있다. 지능형 서버(320)는 기본 언어 모델을 이용하여 변환된 텍스트 데이터에 기반하여 복수의 도메인 기반 언어 모델들 중 하나의 도메인 기반 언어 모델을 선택할 수 있다. 지능형 서버(320)는 기본 언어 모델 및 선택된 도메인 기반 언어 모델을 이용하여 음성 인식을 수행할 수 있다. 상기 내용에 대해서는 아래의 도 4 내지 도 6c에서 설명한다.According to various embodiments of the present invention, the intelligent server (320) may select a language model (or language model) to be used for additional speech recognition based on text data generated through conversion of speech data corresponding to a user's speech. The intelligent server (320) may include a basic language model (or generic language model) designated to be used basically in performing speech recognition and a plurality of domain-based language models (or domain-based language models) corresponding to domains distinguished by each of the services provided based on speech recognition. The intelligent server (320) may select one domain-based language model among the plurality of domain-based language models based on text data converted using the basic language model. The intelligent server (320) may perform speech recognition using the basic language model and the selected domain-based language model. The above contents are described in FIGS. 4 to 6c below.
도 4는 본 발명의 다양한 실시예에 따른 음성 인식을 수행하는 지능형 서버(320)를 도시한 블록도이다.FIG. 4 is a block diagram illustrating an intelligent server (320) that performs voice recognition according to various embodiments of the present invention.
도 4를 참조하면, 본 발명의 다양한 실시예에 따른 음성 인식을 수행하는 지능형 서버(예: 도 3의 지능형 서버(320))는 통신 모듈(410), 프로세서(420) 및 메모리(430)를 포함할 수 있다.Referring to FIG. 4, an intelligent server (e.g., intelligent server (320) of FIG. 3) that performs voice recognition according to various embodiments of the present invention may include a communication module (410), a processor (420), and a memory (430).
본 발명의 다양한 실시예에 따르면, 통신 모듈(410)은, 외부 전자 장치(예: 도 3의 사용자 단말(310))로부터, 사용자의 발화에 대응하는 제 1 음성 데이터를 수신할 수 있다. 제 1 음성 데이터는 사용자 단말(310)의 마이크로폰(예: 도 1의 입력 장치(150))을 이용하여 수신한 사용자의 발화에 대응하는 음성 데이터를 전처리한 데이터를 의미할 수 있다.According to various embodiments of the present invention, the communication module (410) may receive first voice data corresponding to the user's speech from an external electronic device (e.g., the user terminal (310) of FIG. 3). The first voice data may mean data obtained by preprocessing voice data corresponding to the user's speech received using a microphone of the user terminal (310) (e.g., the input device (150) of FIG. 1).
본 발명의 다양한 실시예에 따르면, 통신 모듈(410)은 음성 데이터에 대한 텍스트 변환 동작을 수행한 텍스트 데이터 또는 음성 인식 처리 결과를 외부 전자 장치(예: 도 3의 사용자 단말(310) 또는 도 3의 클라우드 서버(340))에 전송할 수 있다.According to various embodiments of the present invention, the communication module (410) can transmit text data or a voice recognition processing result obtained by performing a text conversion operation on voice data to an external electronic device (e.g., the user terminal (310) of FIG. 3 or the cloud server (340) of FIG. 3).
본 발명의 다양한 실시예에 따르면, 메모리(430)는, 음향 모델, 음성 인식을 수행하는데 있어 기본적으로 사용하도록 지정된 기본 언어 모델 및 음성 인식에 기반하여 제공되는 서비스들에 의해 구별되는 도메인들에 대응하는 도메인 기반 언어 모델을 저장할 수 있다. 음향 모델은 음성 데이터에 대한 처리를 수행하여 획득한 특징 벡터와 특징 벡터에 대응하는 음소들이 포함된 음소 후보군들이 매핑되어 저장된 데이터 베이스를 의미할 수 있다. 언어 모델은 음향 모델에서 추출한 음성 데이터에 대응하는 음소들을 이용하여 단어나 음절 등의 언어적인 순서 관계를 모델링하는데 이용되는 정보가 저장된 데이터 베이스를 의미할 수 있다.According to various embodiments of the present invention, the memory (430) may store an acoustic model, a basic language model designated to be used basically in performing speech recognition, and a domain-based language model corresponding to domains distinguished by services provided based on speech recognition. The acoustic model may mean a database in which feature vectors obtained by performing processing on speech data and phoneme candidate groups including phonemes corresponding to the feature vectors are mapped and stored. The language model may mean a database in which information used to model linguistic order relationships such as words or syllables is stored by using phonemes corresponding to speech data extracted from the acoustic model.
본 발명의 다양한 실시예에 따르면, 기본 언어 모델은 음성 인식을 수행하는 동안 기본적으로 이용될 수 있는 언어 모델을 의미할 수 있다. According to various embodiments of the present invention, the basic language model may mean a language model that can be basically used while performing speech recognition.
본 발명의 다양한 실시예에 따르면, 도메인 기반 언어 모델은 도메인들 각각에 대응하는 언어 모델을 의미할 수 있다. 도메인은 음성 인식에 기반하여 제공되는 서비스에 의해 구별될 수 있다. 예를 들면, 음성 인식에 기반하여 제공되는 다양한 서비스(예를 들어, 피자 주문, 숙소 예약, 교통 정보 제공)들 각각은 고유한 도메인을 가질 수 있다. 예를 들면, 도메인 기반 언어 모델들은 피자 주문과 관련된 언어 모델, 숙소 예약과 관련된 언어 모델, 교통 정보 제공과 관련된 언어 모델 등을 포함할 수 있다. 본 발명의 다양한 실시예에 따르면, 도메인 기반 언어 모델은 기본 언어 모델과 다르게 서드 파티 서버(예: 도 3의 서드 파티 서버(340))의 운영 측에 의해 구현될 수 있다. 도메인 기반 언어 모델에 포함된 데이터 중 사용 빈도가 설정된 값 이상(또는, 초과)인 경우, 도메인 기반 언어 모델에 포함된 데이터는 기본 언어 모델에 포함되도록 업데이트될 수 있다.According to various embodiments of the present invention, a domain-based language model may mean a language model corresponding to each of the domains. A domain may be distinguished by a service provided based on speech recognition. For example, each of various services provided based on speech recognition (e.g., pizza ordering, accommodation reservation, traffic information provision) may have its own domain. For example, domain-based language models may include a language model related to pizza ordering, a language model related to accommodation reservation, a language model related to traffic information provision, etc. According to various embodiments of the present invention, a domain-based language model may be implemented by an operating side of a third-party server (e.g., the third-party server (340) of FIG. 3) differently from a basic language model. If the frequency of use of data included in a domain-based language model is equal to or greater than a set value (or exceeds), the data included in the domain-based language model may be updated to be included in the basic language model.
본 발명의 다양한 실시예에 따르면, 프로세서(420)는 세션(session)을 관리하는 세션 관리를 수행할 수 있다. 세션은 음성 인식을 이용하여 다양한 서비스를 제공하기 위해 지능형 서버(320) 및 사용자 단말(예: 도 3의 사용자 단말(310))간의 데이터(음성 데이터, 텍스트 데이터, 서비스에 필요한 파라미터 정보 등) 교환 등의 동작을 의미할 수 있다. 세션은 음성 인식에 기반하여 제공될 수 있는 다양한 서비스를 수행하기 위한 일련의 동작들을 포함할 수 있다. 예를 들면, 세션은 결정된 도메인과 연관된 도메인 기반 언어 모델이 선택되고, 선택된 도메인 기반 언어 모델이 ASR(예: 도 5의 ASR(510))과 연결될 때부터, 음성 인식을 이용하여 제공되는 서비스가 종료될 때까지의 동작으로 정의될 수 있다.According to various embodiments of the present invention, the processor (420) may perform session management to manage a session. A session may mean an operation such as exchanging data (voice data, text data, parameter information required for a service, etc.) between an intelligent server (320) and a user terminal (e.g., the user terminal (310) of FIG. 3) to provide various services using voice recognition. A session may include a series of operations for performing various services that may be provided based on voice recognition. For example, a session may be defined as an operation from when a domain-based language model associated with a determined domain is selected and the selected domain-based language model is connected to an ASR (e.g., an ASR (510) of FIG. 5) until a service provided using voice recognition is terminated.
본 발명의 다양한 실시예에 따르면, 프로세서(420)는 통신 모듈(410)을 통해 수신한 사용자의 발화에 대응하는 제 1 음성 데이터를 제 1 텍스트 데이터로 변환할 수 있다. 프로세서(420)는 기본 언어 모델을 이용하여 제 1 텍스트 데이터를 생성할 수 있다. 프로세서(420)는 생성된 텍스트 데이터에 기반하여 텍스트 데이터에 대응하는 도메인을 결정할 수 있다.According to various embodiments of the present invention, the processor (420) can convert first voice data corresponding to a user's speech received through the communication module (410) into first text data. The processor (420) can generate the first text data using a basic language model. The processor (420) can determine a domain corresponding to the text data based on the generated text data.
본 발명의 다양한 실시예에 따르면, 도메인은 음성 인식에 기반하여 제공되는 서비스에 따라 구별될 수 있는 식별자일 수 있다. 예를 들면, 음성 인식에 기반하여 제공되는 다양한 서비스(예를 들어, 피자 주문, 숙소 예약, 교통 정보 제공)들 각각은 고유한 도메인을 가질 수 있다.According to various embodiments of the present invention, a domain may be an identifier that can be distinguished according to a service provided based on voice recognition. For example, each of various services provided based on voice recognition (e.g., pizza ordering, accommodation reservation, and transportation information provision) may have a unique domain.
본 발명의 다양한 실시예에 따르면, 도메인은 서드 파티 서버(340)의 개발자(또는, 운영자)에 의해 생성될 수 있다. 서드 파티 서버(340)의 개발자는 음성 데이터를 변환한 텍스트 데이터에서 추출할 수 있는 파라미터 정보를 의미하는 적어도 하나 이상의 엔티티(entity)를 정의할 수 있다. 예를 들면, “피자 주문”을 의도하는 사용자의 음성 데이터에서 추출 가능한 파라미터인 “피자 메뉴”는 엔티티 이름(entity name), 엔티티에 포함되는 단어는 포테이토 피자, 쉬림프 피자, 또는 페페로니 피자 등이 될 수 있다. 서드 파티 서버(340)의 개발자(또는, 운영자)가 추가한 엔티티에 포함되는 단어는 어휘(vocabulary)로 관리 될 수 있다. 엔티티 이름, 엔티티에 포함되는 단어를 포함하는 엔티티 정보는 어휘로 정의될 수 있다. 서드 파티 서버(340)의 개발자가 어휘(vocabulary)를 기반으로 언어 모델에 대한 학습 요청을 하면, 프로세서(420)는 단어들을 음소로 변환하고 이를 통해 랭귀지 모델을 학습하여 도메인 기반 언어 모델에 추가될 수 있다. 다른 실시예에 따르면, 서드 파티 서버(340)의 개발자가 엔티티를 추가하거나 삭제하면, 프로세서(420)은 엔티티의 변경 내용을 감지하여 별도의 언어 모델에 대한 학습 요청이 없더라도 랭귀지 모델을 변경된 엔티티에 따라 학습할 수 있다.According to various embodiments of the present invention, a domain may be created by a developer (or an operator) of a third-party server (340). The developer of the third-party server (340) may define at least one entity, which means parameter information that can be extracted from text data converted from voice data. For example, “pizza menu,” which is a parameter that can be extracted from voice data of a user who intends to “order pizza,” may be an entity name, and words included in the entity may be potato pizza, shrimp pizza, or pepperoni pizza. Words included in an entity added by the developer (or operator) of the third-party server (340) may be managed as a vocabulary. Entity information including an entity name and words included in the entity may be defined as a vocabulary. When a developer of a third-party server (340) makes a request for learning a language model based on vocabulary, the processor (420) converts words into phonemes and learns a language model through these, so that the language model can be added to a domain-based language model. According to another embodiment, when a developer of a third-party server (340) adds or deletes an entity, the processor (420) detects the change in the entity and learns the language model according to the changed entity even without a separate request for learning a language model.
본 발명의 다양한 실시예에 따르면, 프로세서(420)는 결정된 도메인과 연결되는 세션을 생성할 수 있다. 프로세서(420)는 생성된 세션을 통해 음성 인식에 기반한 서비스를 처리하는 동작을 관리할 수 있다. 프로세서(420)는 도메인 기반 언어 모델들 중 결정된 도메인에 대응하는 도메인 기반 언어 모델을 선택할 수 있다. 예를 들면, 프로세서(420)는 제 1 텍스트 데이터(예: 피자 주문해줘)에 기반하여 사용자의 의도(예: 피자 주문)를 결정하고, 사용자의 의도에 맞는 도메인(예: 피자 주문 서비스)을 결정할 수 있다. 프로세서(420)는 결정된 도메인과 연관된 도메인 기반 언어 모델(예: 피자 주문에 특화된 언어 모델)을 선택할 수 있다.According to various embodiments of the present invention, the processor (420) can create a session connected to the determined domain. The processor (420) can manage an operation of processing a service based on speech recognition through the created session. The processor (420) can select a domain-based language model corresponding to the determined domain among domain-based language models. For example, the processor (420) can determine a user's intention (e.g., order a pizza) based on first text data (e.g., order a pizza) and determine a domain (e.g., a pizza ordering service) that matches the user's intention. The processor (420) can select a domain-based language model (e.g., a language model specialized for ordering a pizza) associated with the determined domain.
본 발명의 다양한 실시예에 따르면, 프로세서(420)는 이용하는 세션에 대한 정보를 외부 전자 장치(예: 도 3의 사용자 단말(310))에 전송할 수 있다. 외부 전자 장치(310)는 세션에 대한 정보를 사용자에게 알리도록 세션에 대한 정보를 디스플레이 또는 스피커를 이용하여 출력할 수 있다.According to various embodiments of the present invention, the processor (420) may transmit information about the session being used to an external electronic device (e.g., the user terminal (310) of FIG. 3). The external electronic device (310) may output information about the session using a display or speaker to inform the user of the information about the session.
본 발명의 다양한 실시예에 따르면, 프로세서(420)는 제 1 텍스트 데이터에 도메인의 식별자가 포함되어 있는지 확인할 수 있다. 예를 들면, 메모리(430)에 지정된 텍스트 포맷(예: (도메인의 식별자)에서, (사용자의 의도)해줘)이 저장되어 있는 경우, 프로세서(420)는 제 1 텍스트 데이터를 지정된 텍스트 포맷과 비교할 수 있다. 프로세서(420)는 비교 결과에 기반하여 도메인의 식별자를 확인할 수 있다. 다른 예를 들면, 프로세서(420)는 제 1 텍스트 데이터를 특정 단위(예: 단어, 구 등)로 구분하고, 구분된 데이터에서 도메인의 식별자가 존재하는지 여부를 확인할 수 있다. 프로세서(420)는 제 1 텍스트 데이터에 도메인의 식별자가 존재하는 경우, 도메인의 식별자 확인 결과에 기반하여 도메인을 결정할 수 있다. According to various embodiments of the present invention, the processor (420) can check whether the first text data includes an identifier of a domain. For example, if a specified text format (e.g., (domain identifier), (user's intention)) is stored in the memory (430), the processor (420) can compare the first text data with the specified text format. The processor (420) can check the identifier of the domain based on the comparison result. As another example, the processor (420) can divide the first text data into specific units (e.g., words, phrases, etc.) and check whether the identifier of the domain exists in the divided data. If the identifier of the domain exists in the first text data, the processor (420) can determine the domain based on the result of the verification of the identifier of the domain.
본 발명의 다양한 실시예에 따르면, 프로세서(420)는 제 1 텍스트 데이터에 도메인의 식별자가 존재하지 않는 경우, 제 1 텍스트 데이터를 이용하여 사용자의 의도를 판단하고, 사용자의 의도에 매칭되는 태스크를 결정할 수 있다. 프로세서(420)는 판단된 태스크에 대응하는 도메인을 결정할 수 있다. 예를 들면, 프로세서(420)는 제 1 텍스트 데이터에 포함된 적어도 일부(예를 들면, 문장, 구, 단어 등)를 메모리(430)에 저장된 비교 정보(예를 들면, 기능에 대응하는 문장, 구, 단어 등)와 비교하고, 제 1 텍스트 데이터의 일부가 비교 정보와 일치하는 경우, 프로세서(420)는 사용자의 의도에 매칭되는 태스크를 결정할 수 있다. 프로세서(420)는 사용자의 의도에 매칭되는 태스크에 대응하는 도메인을 결정할 수 있다. 다른 예를 들면, 프로세서(420)는 제 1 텍스트 데이터를 특정 단위(예: 단어, 구 등)로 구분하고, 구분된 데이터(예를 들면, 목적어 또는 동사)에서 메모리(430)에 저장된 비교 정보가 포함되어있는지 여부를 확인할 수 있다. 프로세서(420)는 비교 정보가 포함되어 있는지 여부에 기반하여 사용자의 의도에 매칭되는 태스크를 결정할 수 있다. 프로세서(420)는 사용자의 의도에 매칭되는 태스크에 대응하는 도메인을 결정할 수 있다.According to various embodiments of the present invention, if a domain identifier does not exist in the first text data, the processor (420) may determine a user's intention using the first text data, and determine a task matching the user's intention. The processor (420) may determine a domain corresponding to the determined task. For example, the processor (420) may compare at least a portion (e.g., sentences, phrases, words, etc.) included in the first text data with comparison information (e.g., sentences, phrases, words, etc. corresponding to functions) stored in the memory (430), and if a portion of the first text data matches the comparison information, the processor (420) may determine a task matching the user's intention. The processor (420) may determine a domain corresponding to the task matching the user's intention. As another example, the processor (420) may divide the first text data into specific units (e.g., words, phrases, etc.) and determine whether the divided data (e.g., objects or verbs) includes comparison information stored in the memory (430). The processor (420) can determine a task matching the user's intention based on whether comparison information is included. The processor (420) can determine a domain corresponding to the task matching the user's intention.
본 발명의 다양한 실시예에 따르면, 프로세서(420)는 사용자의 추가적인 발화를 수신하고, 기본 언어 모델 및 선택된 도메인 기반 언어 모델을 이용하여 사용자의 추가적인 발화에 대응하는 제 2 음성 데이터에 대한 음성 인식을 수행하고 제 2 음성 데이터에 대응하는 제 2 텍스트 데이터를 생성할 수 있다. 예를 들어, 사용자의 추가적인 발화는 사용자 발화에 대응하는 의도와 매칭되는 서비스를 수행하기 위한 파라미터(예: 피자의 종류, 크기, 개수 등)를 입력하기 위해서 수행될 수 있다. 프로세서(420)는 사용자의 추가적인 발화에 대응하는 제 2 음성 데이터에 대한 텍스트 변환을 수행할 때에 있어, 기본 언어 모델 및 선택된 도메인 기반 언어 모델(예: 피자 주문에 특화된 언어 모델)을 이용할 수 있다.According to various embodiments of the present invention, the processor (420) may receive an additional utterance of the user, perform speech recognition on second speech data corresponding to the additional utterance of the user using the base language model and the selected domain-based language model, and generate second text data corresponding to the second speech data. For example, the additional utterance of the user may be performed to input parameters (e.g., type, size, number of pizzas, etc.) for performing a service matching the intention corresponding to the user utterance. When performing text conversion on the second speech data corresponding to the additional utterance of the user, the processor (420) may utilize the base language model and the selected domain-based language model (e.g., a language model specialized for ordering pizza).
본 발명의 다양한 실시예에 따르면, 기본 언어 모델 및 선택된 도메인 기반 언어 모델을 이용하여 텍스트 변환을 수행하는 경우, 기본 언어 모델을 이용했을 때의 텍스트 변환 결과와 선택된 도메인 기반 언어 모델을 이용했을 때의 텍스트 변환 결과가 다를 수 있다. 이 경우, 프로세서(420)는 기본 언어 모델에 적용되는 가중치와 선택된 도메인 기반 언어 모델에 적용되는 가중치에 기반하여 텍스트 변환을 수행할 수도 있다.According to various embodiments of the present invention, when performing text conversion using a basic language model and a selected domain-based language model, the text conversion result when using the basic language model may be different from the text conversion result when using the selected domain-based language model. In this case, the processor (420) may perform text conversion based on the weight applied to the basic language model and the weight applied to the selected domain-based language model.
본 발명의 다양한 실시예에 따르면, 프로세서(420)는 생성된 세션을 이용하여 음성 인식을 수행하는 도중, 추가적인 사용자 발화에 의해 세션을 변경할 수 있다. 예를 들어, 프로세서(420)는 피자 주문과 관련된 세션을 이용하여 음성 인식을 수행하는 도중, 추가적인 사용자 발화(예를 들면, 버스의 노선 정보 요청)에 대응하는 제 3 음성 데이터를 수신할 수 있다. 프로세서(420)는 기본 언어 모델 및 결정된 도메인과 연관된 도메인 기반 언어 모델에 기반해서 제 3 음성 데이터에 대응하는 제 3 텍스트 데이터를 생성할 수 있다. 프로세서(420)는 제 3 텍스트 데이터에 기반하여 제 3 텍스트 데이터에 대응하는 도메인을 결정할 수 있다. 프로세서(420)는, 제 1 텍스트 데이터에 대응하는 도메인(예: 피자 주문)과 제 3 텍스트 데이터에 대응하는 도메인(예: 버스 노선 정보 요청)이 서로 다른 경우, 제 1 텍스트 데이터에 대응하는 도메인과 관련된 세션에서, 제 3 텍스트 데이터에 대응하는 도메인과 관련된 세션으로 변경하고, 제 3 텍스트 데이터에 대응하는 도메인과 관련된 세션을 이용하여 음성 인식을 수행할 수 있다. 본 발명의 다양한 실시에에 따르면, 프로세서(420)는 제 3 텍스트 데이터에 대응하는 도메인과 관련된 도메인 기반 언어 모델을 선택하고, 기본 언어 모델 및 제 3 텍스트 데이터에 대응하는 도메인과 관련된 도메인 기반 언어 모델에 기반하여 음성 인식을 수행할 수 있다.According to various embodiments of the present invention, the processor (420) may change the session by an additional user utterance while performing speech recognition using the generated session. For example, the processor (420) may receive third speech data corresponding to an additional user utterance (e.g., a request for bus route information) while performing speech recognition using a session related to a pizza order. The processor (420) may generate third text data corresponding to the third speech data based on a domain-based language model associated with a basic language model and a determined domain. The processor (420) may determine a domain corresponding to the third text data based on the third text data. If the domain corresponding to the first text data (e.g., a pizza order) and the domain corresponding to the third text data (e.g., a request for bus route information) are different from each other, the processor (420) may change the session related to the domain corresponding to the first text data to the session related to the domain corresponding to the third text data, and perform speech recognition using the session related to the domain corresponding to the third text data. According to various embodiments of the present invention, the processor (420) can select a domain-based language model related to a domain corresponding to third text data, and perform speech recognition based on the base language model and the domain-based language model related to the domain corresponding to the third text data.
본 발명의 다양한 실시예에 따르면, 프로세서(420)는 제 1 텍스트 데이터에 기반하여 도메인을 결정하고, 결정된 도메인과 관련된 도메인 기반 언어 모델 및 기본 언어 모델을 이용하여 제 1 음성 데이터에 대한 텍스트 변환을 다시 수행할 수도 있다. 기본 언어 모델 및 결정된 도메인과 관련된 도메인 기반 언어 모델에 기반하여 변환하는 경우, 좀 더 정확하게 변환될 수 있다. 제 1 텍스트 데이터가 변경되는 경우, 프로세서(420)는 외부 전자 장치(예: 도 3의 사용자 단말(310))에 변경된 텍스트 데이터를 전송할 수 있다.According to various embodiments of the present invention, the processor (420) may determine a domain based on the first text data, and may perform text conversion on the first speech data again using a domain-based language model and a basic language model related to the determined domain. When conversion is performed based on the basic language model and the domain-based language model related to the determined domain, the conversion can be performed more accurately. When the first text data is changed, the processor (420) may transmit the changed text data to an external electronic device (e.g., the user terminal (310) of FIG. 3).
본 발명의 다양한 실시예에 따르면, 프로세서(420)는 텍스트 데이터(예를 들면, 1945 버거)를 오디오 데이터로 변경할 수도 있다. 이 경우, 프로세서(420)는 결정된 도메인과 관련된 도메인 기반 언어 모델 및 기본 언어 모델에 포함된 단어에 대응하는 오디오 데이터를 생성하고, 사용자 단말(310)로 전송할 수 있다. 기본 언어 모델 및 선택된 도메인 기반 언어 모델을 이용하여 오디오 변환을 수행하는 경우, 기본 언어 모델을 이용했을 때의 오디오 변환 결과(예를 들면, 천구백사십오 버거 또는 onethousandninehundredfourtyfive burger)와 선택된 도메인 기반 언어 모델을 이용했을 때의 오디오 변환 결과(예를 들면, 일구사오 버거 또는 oneninefourfive burger)가 다를 수 있다. 이 경우, 프로세서(420)는 기본 언어 모델에 적용되는 가중치와 선택된 도메인 기반 언어 모델에 적용되는 가중치에 기반하여 기본 언어 모델 또는 도메인 기반 언어 모델 중 하나의 언어 모델을 선택하고, 선택된 언어 모델을 이용하여 오디오 변환을 수행할 수도 있다.According to various embodiments of the present invention, the processor (420) may change text data (e.g., 1945 burger) into audio data. In this case, the processor (420) may generate audio data corresponding to words included in the domain-based language model and the basic language model related to the determined domain, and transmit the audio data to the user terminal (310). When performing audio conversion using the basic language model and the selected domain-based language model, the audio conversion result (e.g., one thousand nine hundred and forty-five burger or one thousand and nine hundred and forty-five burger) when using the basic language model may be different from the audio conversion result (e.g., one thousand nine hundred and forty-five burger or one thousand nine hundred and forty-five burger) when using the selected domain-based language model. In this case, the processor (420) may select one of the basic language model or the domain-based language model based on the weight applied to the basic language model and the weight applied to the selected domain-based language model, and perform audio conversion using the selected language model.
도 5a는 본 발명의 다양한 실시예에 따른 지능형 서버에서 프로세서(420)를 도시한 블록도이다.FIG. 5a is a block diagram illustrating a processor (420) in an intelligent server according to various embodiments of the present invention.
도 5a를 참조하면, 지능형 서버(예; 도 3의 지능형 서버(320)의 프로세서(420)는 ASR 모듈(510), 자연어 이해 모듈 모듈(520), 기본 언어 모델(530), 복수의 도메인 기반 언어 모델들(541, 543, 545) 및 세션 매니저(550)를 포함할 수 있다. 본 발명의 다양한 실시예에 따르면, ASR 모듈(510), 자연어 이해 모듈 모듈(520), 기본 언어 모델(530), 복수의 도메인 기반 언어 모델들(541, 543, 545) 및 세션 매니저(550)는 프로세서(420) 상에 소프트웨어 적으로 구현될 수 있다.Referring to FIG. 5A, an intelligent server (e.g., a processor (420) of an intelligent server (320) of FIG. 3) may include an ASR module (510), a natural language understanding module (520), a base language model (530), a plurality of domain-based language models (541, 543, 545), and a session manager (550). According to various embodiments of the present invention, the ASR module (510), the natural language understanding module (520), the base language model (530), the plurality of domain-based language models (541, 543, 545), and the session manager (550) may be implemented in software on the processor (420).
본 발명의 다양한 실시예에 따르면, ASR 모듈(510)은 외부 전자 장치(예: 도 3의 사용자 단말(310))에서 수신한 음성 데이터를 텍스트 데이터로 변환할 수 있다. ASR 모듈(510)은 변환된 텍스트 데이터를 세션 메니저(550)로 전송할 수 있다. According to various embodiments of the present invention, the ASR module (510) can convert voice data received from an external electronic device (e.g., the user terminal (310) of FIG. 3) into text data. The ASR module (510) can transmit the converted text data to the session manager (550).
본 발명의 다양한 실시예에 따르면, 세션 매니저(550)는 변환된 텍스트 데이터를 이용하여 도메인을 결정할 수 있다. 세션 매니저(550)는 도메인 기반 언어 모델들(541, 543, 545) 중 결정된 도메인과 관련된 도메인 기반 언어 모델을 선택할 수 있다. 세션 매니저(550)는 선택된 도메인 기반 언어 모델과 기본 언어 모델(530)을 이용하여 텍스트 변환을 수행하도록 ASR 모듈(510)을 제어할 수 있다.According to various embodiments of the present invention, the session manager (550) can determine a domain using the converted text data. The session manager (550) can select a domain-based language model related to the determined domain among the domain-based language models (541, 543, 545). The session manager (550) can control the ASR module (510) to perform text conversion using the selected domain-based language model and the basic language model (530).
본 발명의 다양한 실시예에 따르면, ASR 모듈(510)은 변환된 텍스트 데이터를 NLU 모듈(520)로 전송할 수 있다. According to various embodiments of the present invention, the ASR module (510) can transmit converted text data to the NLU module (520).
본 발명의 다양한 실시예에 따르면, 자연어 이해 모듈(520)은 텍스트 데이터에 포함된 형태소, 구 등의 언어적 특징(예: 문법적 요소)을 이용하여 텍스트 데이터로부터 추출된 단어의 의미를 파악하고, 사용자의 의도를 판단할 수 있다. 자연어 이해 모듈(520)은 자연어 이해 동작을 통해 판단한 사용자의 의도 및 사용자의 의도에 알맞은 동작을 확인하고, 사용자의 의도에 대응하는 동작을 실행하는데 필요한 파라미터에 대한 정보를 확인할 수 있다. 세션 매니저(550)는 사용자의 의도에 대응하는 동작을 실행하는데 필요한 파라미터가 부족함을 알리는 신호를 자연어 이해 모듈(520)로부터 수신한 경우, 파라미터를 사용자 단말(310)에 요청할 수 있다.According to various embodiments of the present invention, the natural language understanding module (520) can use linguistic features (e.g., grammatical elements) such as morphemes and phrases included in the text data to understand the meaning of words extracted from the text data and determine the user's intention. The natural language understanding module (520) can confirm the user's intention determined through the natural language understanding operation and an operation appropriate to the user's intention, and can confirm information on parameters required to execute the operation corresponding to the user's intention. When the session manager (550) receives a signal from the natural language understanding module (520) notifying that the parameters required to execute the operation corresponding to the user's intention are insufficient, the session manager (550) can request the parameters from the user terminal (310).
본 발명의 다양한 실시예에 따르면, 세션 매니저(550)는 자연어 이해 모듈(520)로부터 사용자의 의도, 사용자의 의도에 알맞은 동작, 파라미터에 대한 정보를 수신하고, 서드 파티 서버(예: 도 3의 서드 파티 서버(340))에 수신한 정보를 전송할 수 있다. 서드 파티 서버(340)는 사용자의 의도, 사용자의 의도에 알맞은 동작, 파라미터에 대한 정보를 수신하고, 수신한 정보를 이용하여 음성 인식에 대한 서비스를 수행할 수 있다. 서드 파티 서버(340)는 서비스 수행 결과를 사용자 단말(310)에 전송할 수 있고, 사용자 단말(310)은 서비스 수행 결과를 디스플레이 또는 스피커를 이용하여 출력할 수 있다.According to various embodiments of the present invention, the session manager (550) may receive information about the user's intention, an action suitable for the user's intention, and parameters from the natural language understanding module (520), and transmit the received information to a third party server (e.g., the third party server (340) of FIG. 3). The third party server (340) may receive information about the user's intention, an action suitable for the user's intention, and parameters, and perform a service for voice recognition using the received information. The third party server (340) may transmit the service execution result to the user terminal (310), and the user terminal (310) may output the service execution result using a display or a speaker.
본 발명의 다양한 실시예에 따르면, 자연어 이해 모듈(520)은 지능형 서버(320)에 구현될 수 있으나, 지능형 서버(320)가 아닌 클라우드 서버(330)에 구현될 수도 있다. 자연어 이해 모듈(520)이 클라우드 서버(330)에 구현된 경우, ASR 모듈(510)이 생성한 텍스트 데이터는 클라우드 서버(330)에 전송될 수 있다.According to various embodiments of the present invention, the natural language understanding module (520) may be implemented in the intelligent server (320), but may also be implemented in a cloud server (330) rather than the intelligent server (320). If the natural language understanding module (520) is implemented in the cloud server (330), text data generated by the ASR module (510) may be transmitted to the cloud server (330).
도 5b는 본 발명의 다른 실시예에 따른 지능형 서버에서 프로세서(420)를 도시한 블록도이다.FIG. 5b is a block diagram illustrating a processor (420) in an intelligent server according to another embodiment of the present invention.
도 5b를 참조하면, 지능형 서버(예; 도 3의 지능형 서버(320)의 프로세서(420)는 ASR 모듈(510), 자연어 이해 모듈 모듈(520), 기본 언어 모델(530), 복수의 도메인 기반 언어 모델들(541, 543, 545), 세션 매니저(550), 언어 모델 생성 모듈(560) 및 통합 언어 모델(570)을 포함할 수 있다. 도 5a와 중복된 구성 요소에 대한 설명은 생략한다. 본 발명의 다양한 실시예에 따르면, ASR 모듈(510), 자연어 이해 모듈 모듈(520), 기본 언어 모델(530), 복수의 도메인 기반 언어 모델들(541, 543, 545), 세션 매니저(550), 언어 모델 생성 모듈(560) 및 통합 언어 모델(570)은 프로세서(420) 상에 소프트웨어 적으로 구현될 수 있다.Referring to FIG. 5b, the processor (420) of the intelligent server (e.g., the intelligent server (320) of FIG. 3) may include an ASR module (510), a natural language understanding module (520), a base language model (530), a plurality of domain-based language models (541, 543, 545), a session manager (550), a language model generation module (560), and an integrated language model (570). Descriptions of components overlapping with those of FIG. 5a are omitted. According to various embodiments of the present invention, the ASR module (510), the natural language understanding module (520), the base language model (530), a plurality of domain-based language models (541, 543, 545), the session manager (550), the language model generation module (560), and the integrated language model (570) may be implemented in software on the processor (420).
본 발명의 다양한 실시예에 따르면, 언어 모델 생성 모듈(560)은 기본 언어 모델(530) 및 복수의 도메인 기반 언어 모델들(541, 543, 545) 중 현재 실행 중인 세션과 연관된 적어도 하나의 언어 모델을 이용하여 통합 언어 모델(570)을 생성할 수 있다.According to various embodiments of the present invention, the language model generation module (560) can generate an integrated language model (570) using a base language model (530) and at least one language model associated with a currently running session among a plurality of domain-based language models (541, 543, 545).
본 발명의 다양한 실시예에 따르면, ASR 모듈(510)은 생성된 통합 언어 모델을 이용하여 외부 전자 장치(예: 도 3의 사용자 단말(310))에서 수신한 음성 데이터를 텍스트 데이터로 변환할 수 있다.According to various embodiments of the present invention, the ASR module (510) can convert voice data received from an external electronic device (e.g., the user terminal (310) of FIG. 3) into text data using the generated integrated language model.
본 발명의 다양한 실시예에 따르면, 도 5a에 도시된 ASR 모듈(510)은 수신한 음성 데이터를 ASR 모듈(510)에 연결된 모든 언어 모델(예를 들면, 기본 언어 모델(530) 및 도메인 기반 언어 모델(541))에 전송할 수 있다. 도 5b에 도시된 ASR 모듈(510)은 수신한 음성 데이터를 ASR 모듈(510)에 연결된 하나의 통합 언어 모델(570)에 전송하고, 통합 언어 모델(570)을 이용하여 음성 데이터를 텍스트 데이터로 변환할 수 있다.According to various embodiments of the present invention, the ASR module (510) illustrated in FIG. 5a can transmit the received voice data to all language models (e.g., the base language model (530) and the domain-based language model (541)) connected to the ASR module (510). The ASR module (510) illustrated in FIG. 5b can transmit the received voice data to one integrated language model (570) connected to the ASR module (510) and convert the voice data into text data using the integrated language model (570).
도 6a 내지 도 6c는 본 발명의 다양한 실시예에 따른 지능형 서버(320)에서, 언어 모델을 선택하고, 선택된 언어 모델을 이용하여 음성 인식을 수행하는 실시예를 도시한 도면이다.FIGS. 6A to 6C are diagrams illustrating an example of selecting a language model and performing speech recognition using the selected language model in an intelligent server (320) according to various embodiments of the present invention.
도 6a 내지 도 6c를 참조하면, 프로세서(420) 내부에서, 소프트웨어 적으로 구현된 ASR 모듈(510), 기본 언어 모델(예: 도 5의 기본 언어 모델(530)), 음성 인식에 기반하여 제공되는 서비스로 구분된 도메인들 각각에 대응하는 도메인 기반 언어 모델들(541, 543, 545)을 포함할 수 있다.Referring to FIGS. 6A to 6C, within the processor (420), an ASR module (510) implemented in software, a basic language model (e.g., the basic language model (530) of FIG. 5), and domain-based language models (541, 543, 545) corresponding to each of the domains divided into services provided based on speech recognition may be included.
도 6a는, ASR 모듈(510)이 기본 언어 모델(530)을 이용하여 음성 데이터를 텍스트 데이터로 변환하는 예시를 도시한 도면이다. 본 발명의 다양한 실시예에 따르면, ASR 모듈(510)은, 세션이 생성되기 이전, 외부 전자 장치(예: 도 3의 사용자 단말(310))이 전송한 제 1 음성 데이터를 기본 언어 모델(530)을 이용하여 제 1 텍스트 데이터로 변환 할 수 있다. FIG. 6A is a diagram illustrating an example of an ASR module (510) converting voice data into text data using a basic language model (530). According to various embodiments of the present invention, the ASR module (510) may convert first voice data transmitted by an external electronic device (e.g., user terminal (310) of FIG. 3) into first text data using a basic language model (530) before a session is created.
도 6b는, ASR 모듈(510)이 기본 언어 모델(530) 및 제 1 도메인 기반 언어 모델(541)을 이용하여 제 2 음성 데이터를 제 2 텍스트 데이터로 변환하는 실시예를 도시한 도면이다. 본 발명의 다양한 실시예에 따르면, 세션 매니저(예: 도 5의 세션 매니저(550))는 제 1 텍스트 데이터를 이용하여 음성 인식에 이용될 도메인을 결정할 수 있다. 세션 매니저(550)는 결정된 도메인과 관련된 도메인 기반 언어 모델(예: 제 1 도메인 기반 언어 모델(541))을 선택할 수 있다. 세션 매니저(550)는 선택된 도메인 기반 언어 모델(541)과 기본 언어 모델(530)을 이용하여 제 2 음서 데이터를 제 2 텍스트 데이터로 변환하도록 ASR 모듈(510)을 제어할 수 있다.FIG. 6b is a diagram illustrating an embodiment in which the ASR module (510) converts second speech data into second text data using the base language model (530) and the first domain-based language model (541). According to various embodiments of the present invention, a session manager (e.g., the session manager (550) of FIG. 5) may determine a domain to be used for speech recognition using the first text data. The session manager (550) may select a domain-based language model (e.g., the first domain-based language model (541)) related to the determined domain. The session manager (550) may control the ASR module (510) to convert the second speech data into second text data using the selected domain-based language model (541) and the base language model (530).
도 6c는, ASR 모듈(510)이 기본 언어 모델(530) 및 제 2 도메인 기반 언어 모델(543)을 이용하여 음성 데이터를 텍스트 데이터로 변환하는 실시예를 도시한 도면이다. 본 발명의 다양한 실시예에 따르면, 세션 매니저(550)는 생성된 세션을 이용하여 음성 인식을 수행하는 도중, 추가적인 사용자 발화에 의해 세션을 변경할 수 있다. 예를 들어, 세션 매니저(550)는 피자 주문과 관련된 세션을 이용하여 음성 인식을 수행하는 도중, 추가적인 사용자 발화(예를 들면, 버스의 노선 정보 요청)에 대응하는 제 3 음성 데이터를 수신할 수 있다. 세션 매니저(550)는 기본 언어 모델 및 이전에 결정된 도메인에 대응하는 도메인 기반 언어 모델(예: 도 6b의 제 1 도메인 기반 언어 모델(541))에 기반해서 제 3 음성 데이터에 대응하는 제 3 텍스트 데이터를 생성할 수 있다. 세션 매니저(550)는 제 3 텍스트 데이터에 기반하여 제 3 텍스트 데이터에 대응하는 도메인을 결정할 수 있다. 세션 매니저(550)는, 제 1 텍스트 데이터에 대응하는 도메인(예: 피자 주문)과 제 3 텍스트 데이터에 대응하는 도메인(예: 버스 노선 정보 요청)이 서로 다른 경우, 제 1 텍스트 데이터에 대응하는 도메인과 관련된 세션에서, 제 3 텍스트 데이터에 대응하는 도메인과 관련된 세션으로 변경하고, 제 3 텍스트 데이터에 대응하는 도메인과 관련된 세션을 이용하여 음성 인식을 수행할 수 있다. 본 발명의 다양한 실시에에 따르면, 세션 매니저(550)는 제 3 텍스트 데이터에 대응하는 도메인과 관련된 도메인 기반 언어 모델을 선택하고, 기본 언어 모델 및 제 3 텍스트 데이터에 대응하는 도메인과 관련된 도메인 기반 언어 모델에 기반하여 음성 인식을 수행할 수 있다.FIG. 6c is a diagram illustrating an embodiment in which the ASR module (510) converts speech data into text data using the basic language model (530) and the second domain-based language model (543). According to various embodiments of the present invention, the session manager (550) may change the session by an additional user utterance while performing speech recognition using the generated session. For example, the session manager (550) may receive third speech data corresponding to an additional user utterance (e.g., a request for bus route information) while performing speech recognition using a session related to a pizza order. The session manager (550) may generate third text data corresponding to the third speech data based on the basic language model and a domain-based language model corresponding to a previously determined domain (e.g., the first domain-based language model (541) of FIG. 6b). The session manager (550) may determine a domain corresponding to the third text data based on the third text data. The session manager (550) may change a session related to the domain corresponding to the first text data (e.g., pizza order) and a domain corresponding to the third text data (e.g., bus route information request) from a session related to the domain corresponding to the first text data to a session related to the domain corresponding to the third text data, and perform speech recognition using the session related to the domain corresponding to the third text data, if the domain corresponding to the first text data and the domain-based language model related to the domain corresponding to the third text data are different from each other. According to various embodiments of the present invention, the session manager (550) may select a domain-based language model related to the domain corresponding to the third text data, and perform speech recognition based on a base language model and the domain-based language model related to the domain corresponding to the third text data.
도 7은 본 발명의 다양한 실시예에 따른 음성 인식을 수행하는 전자 장치(310)를 도시한 블록도이다.FIG. 7 is a block diagram illustrating an electronic device (310) that performs voice recognition according to various embodiments of the present invention.
도 7을 참조하면, 본 발명의 다양한 실시예에 따른 음성 인식을 수행하는 전자 장치(310)은 통신 모듈(710)(예: 도 1의 통신 모듈(190), 디스플레이(720)(예: 도 1의 표시 장치(160), , 프로세서(730)(예: 도 1의 프로세서(120), 및 마이크로폰(740)(예: 도 1의 입력 장치(150)를 포함할 수 있다.Referring to FIG. 7, an electronic device (310) performing voice recognition according to various embodiments of the present invention may include a communication module (710) (e.g., the communication module (190) of FIG. 1), a display (720) (e.g., the display device (160) of FIG. 1), a processor (730) (e.g., the processor (120) of FIG. 1), and a microphone (740) (e.g., the input device (150) of FIG. 1).
본 발명의 다양한 실시예에 따르면, 마이크로폰(740)은 전자 장치(310)의 사용자의 발화를 수신하고, 발화에 대응하는 음성 데이터를 생성할 수 있다. 생성된 음성 데이터는 전처리 과정을 거친 후, 통신 모듈(710)에 의해 지능형 서버(예: 도 3의 지능형 서버(320))로 전송될 수 있다. 프로세서(730)는 음성 데이터에 포함된 에코(echo)를 제거하는 동작, 음성 데이터에 포함된 잡음을 제거하는 동작, 또는 음성 데이터에 포함된 음성의 크기를 조절하는 동작 중 적어도 하나의 동작을 수행하는 방식으로 음성 데이터에 대한 전처리를 수행할 수 있다.According to various embodiments of the present invention, the microphone (740) may receive a user's speech of the electronic device (310) and generate voice data corresponding to the speech. The generated voice data may be transmitted to an intelligent server (e.g., the intelligent server (320) of FIG. 3) by the communication module (710) after undergoing a preprocessing process. The processor (730) may perform preprocessing on the voice data by performing at least one of an operation of removing an echo included in the voice data, an operation of removing a noise included in the voice data, or an operation of adjusting the volume of a voice included in the voice data.
본 발명의 다양한 실시예에 따르면, 프로세서(730)는 전처리가 수행된 음성 데이터를 지능형 서버(320)에 전송할 수 있다. 도 4 내지 도 6c에서 서술한 바와 같이, 지능형 서버(320)는 음성 데이터를 수신하고, 음성 데이터를 이용하여 음성 인식 및 음성 인식에 기반한 서비스와 관련된 일련의 동작들을 실행할 수 있다. 본 발명의 다양한 실시예에 따르면, 지능형 서버(320)는 음성 인식을 수행하기 위한 도메인을 결정하고, 결정된 도메인과 연관된 세션을 생성할 수 있다. 생성된 세션에 대한 정보 및 지능형 서버(320)에 의해 결정된 도메인과 관련된 정보를 전자 장치(310)로 전송할 수 있다.According to various embodiments of the present invention, the processor (730) may transmit preprocessed voice data to the intelligent server (320). As described in FIGS. 4 to 6C, the intelligent server (320) may receive the voice data and execute a series of operations related to voice recognition and a service based on voice recognition using the voice data. According to various embodiments of the present invention, the intelligent server (320) may determine a domain for performing voice recognition and generate a session associated with the determined domain. Information about the generated session and information related to the domain determined by the intelligent server (320) may be transmitted to the electronic device (310).
본 발명의 다양한 실시예에 따르면, 프로세서(730)는 지능형 서버(320) 또는 클라우드 서버(예: 도 3의 클라우드 서버(330))에서 생성된 세션에 대한 정보 및 지능형 서버(320)에 의해 결정된 도메인과 관련된 정보를 수신할 수 있다.According to various embodiments of the present invention, the processor (730) may receive information about a session generated by an intelligent server (320) or a cloud server (e.g., the cloud server (330) of FIG. 3) and information related to a domain determined by the intelligent server (320).
본 발명의 다양한 실시예에 따르면, 프로세서(730)는 생성된 세션에 대한 정보 또는 도메인과 관련된 정보를 디스플레이(720) 상에 디스플레이할 수 있다. 생성된 세션에 대한 정보 또는 도메인과 관련된 정보는 아이콘 등의 시각적인 형태로 구현된 유저 인터페이스로 디스플레이될 수 있다. 예를 들면, 화면의 상단에 생성된 정보 또는 도메인과 관련된 정보는 텍스트 형태로 디스플레이(720) 상단에 디스플레이될 수 있다. 다른 예를 들면, 화면의 상단에 생성된 정보 또는 도메인과 관련된 정보는 아이콘 형태로 디스플레이(720)의 일부분에 디스플레이될 수 있다. 본 발명의 다양한 실시예에 따르면, 생성된 세션이 사용자의 발화 등 다양한 원인에 의해 종료되고, 다른 세션이 실행되는 경우, 생성된 세션에 대한 정보 또는 도메인과 관련된 정보는 디스플레이(720) 상에 디스플레이될 수 있다. 세션에 대한 정보 또는 도메인과 관련된 정보를 출력하는 다양한 실시예에 대해서는 도 10, 도 11a 및 도 11b에서 후술한다.According to various embodiments of the present invention, the processor (730) may display information about the generated session or information related to the domain on the display (720). The information about the generated session or information related to the domain may be displayed as a user interface implemented in a visual form such as an icon. For example, the information about the generated session or information related to the domain may be displayed in text form on the top of the display (720) on the top of the screen. As another example, the information about the generated session or information related to the domain may be displayed in the form of an icon on a part of the display (720). According to various embodiments of the present invention, when the generated session is terminated due to various causes such as a user's speech and another session is executed, the information about the generated session or information related to the domain may be displayed on the display (720). Various embodiments of outputting the information about the session or information related to the domain will be described later with reference to FIGS. 10, 11A, and 11B.
본 발명의 다양한 실시예에 따르면, 프로세서(730)는 결정된 도메인과 관련된 도메인 기반 언어 모델 및 기본 언어 모델을 이용하여 생성된 텍스트 데이터를 지능형 서버(320)로부터 수신할 수 있다. 프로세서(730)는 수신한 텍스트 데이터를 디스플레이(720) 또는 스피커(미도시)를 통하여 출력할 수 있다.According to various embodiments of the present invention, the processor (730) may receive text data generated using a domain-based language model and a basic language model related to a determined domain from the intelligent server (320). The processor (730) may output the received text data through a display (720) or a speaker (not shown).
도 8a 내지 도 8d는 본 발명의 다양한 실시예에 따른 지능형 서버(320) 및 전자 장치(310)에서, 언어 모델을 선택하고, 선택된 언어 모델을 이용하여 음성 인식을 수행하는 실시예를 도시한 도면이다.FIGS. 8A to 8D are diagrams illustrating examples of selecting a language model and performing speech recognition using the selected language model in an intelligent server (320) and an electronic device (310) according to various embodiments of the present invention.
도 8a 내지 도 8d에 도시된 실시예는, 도 6a 내지 도 6c에 도시된 도메인 기반 언어 모델을 선택하고, 선택된 도메인 기반 언어 모델을 이용하는 동작에서 사용자 단말(예: 도 3의 사용자 단말(310))의 디스플레이(예: 도 7의 디스플레이(720)) 상에 디스플레이되는 화면의 실시예이다.The embodiments illustrated in FIGS. 8A to 8D are embodiments of a screen displayed on a display (e.g., a display (720) of FIG. 7) of a user terminal (e.g., a user terminal (310) of FIG. 3) in an operation of selecting a domain-based language model illustrated in FIGS. 6A to 6C and utilizing the selected domain-based language model.
도 8a를 참조하면, 사용자는 특정 의도(피자 주문)가 포함된 발화를 수행하고, 사용자 단말(310)은 사용자의 발화(831) (예를 들어, 도민에서 피자 시켜줘)에 대응하는 제 1 음성 데이터를 생성할 수 있다. 제 1 음성 데이터는 전처리 과정을 거쳐, 지능형 서버(예: 도 3의 지능형 서버(320))에 전송될 수 있다. 지능형 서버(320)의 프로세서(예: 도 4의 프로세서(420))에서 실행되는 ASR 모듈(510) 은 수신한 제 1 음성 데이터를 기본 언어 모델(530)을 이용하여 제 1 텍스트 데이터로 변환할 수 있다. 프로세서(420)에서 실행되는 세션 매니져(예: 도 5의 세션 매니저(550))는 제 1 텍스트 데이터에 기반하여 도메인(예를 들어, 피자 배달)을 결정하고, 결정된 도메인에 대응하는 음성 인식에 기반한 서비스 제공(예: 피자 배달 관련 서비스)을 위한 세션을 생성할 수 있다. 세션 매니저(550)는 생성된 제 1 텍스트 데이터에 기반하여 세션과 관련된 도메인(예를 들어, 피자 배달)을 결정하고, 도메인 기반 언어 모델들(821, 823, 825) 중 결정된 도메인과 관련된 도메인 기반 언어 모델(예를 들어, 도민 피자 언어모델)(821)을 선택할 수 있다.Referring to FIG. 8A, a user may perform an utterance including a specific intention (order pizza), and the user terminal (310) may generate first voice data corresponding to the user's utterance (831) (e.g., "Order pizza from Domin"). The first voice data may undergo a preprocessing process and be transmitted to an intelligent server (e.g., the intelligent server (320) of FIG. 3). An ASR module (510) executed in a processor (e.g., the processor (420) of FIG. 4) of the intelligent server (320) may convert the received first voice data into first text data using a basic language model (530). A session manager (e.g., the session manager (550) of FIG. 5) executed in the processor (420) may determine a domain (e.g., pizza delivery) based on the first text data, and generate a session for providing a service (e.g., a pizza delivery-related service) based on voice recognition corresponding to the determined domain. The session manager (550) can determine a domain (e.g., pizza delivery) related to the session based on the generated first text data, and select a domain-based language model (e.g., a local pizza language model) (821) related to the determined domain among the domain-based language models (821, 823, 825).
본 발명의 다양한 실시예에 따르면, 세션 매니저(550)는 생성된 세션에 대한 정보를 사용자 단말(310)로 전송하고, 사용자 단말(310)은 도메인과 관련된 정보 (833)(예를 들어, 도미노 피자 호출)를 디스플레이(예: 도 7의 디스플레이(720)) 상에 디스플레이할 수 있다.According to various embodiments of the present invention, the session manager (550) transmits information about the created session to the user terminal (310), and the user terminal (310) can display information (833) related to the domain (e.g., calling Domino's Pizza) on a display (e.g., display (720) of FIG. 7).
본 발명의 다양한 실시예에 따르면, 프로세서(예: 도 7의 프로세서(730))는 도메인과 관련된 정보(833)를 디스플레이(720) 상에 출력할 수 있다. 도메인과 관련된 정보(833)는 도메인의 이름, 도메인을 제공하는 써드 파티의 이름을 포함할 수 있다. 도메인과 관련된 정보(833)는 사용자 인터페이스 형태로 출력될 수 있다.According to various embodiments of the present invention, a processor (e.g., processor (730) of FIG. 7) may output domain-related information (833) on a display (720). The domain-related information (833) may include a name of the domain and a name of a third party providing the domain. The domain-related information (833) may be output in the form of a user interface.
도 8b를 참조하면, 사용자 단말(310)은 추가적인 사용자 발화(예: 피자 주문과 관련된 구체적인 발화)에 대응하는 제 2 음성 데이터(841)를 생성할 수 있다. 제 2 음성 데이터(841)는 전처리 과정을 거쳐, 지능형 서버(예: 도 3의 지능형 서버(320))에 전송될 수 있다. 지능형 서버(320)의 프로세서(예: 도 4의 프로세서(420)) 상에 실행되는 ASR 모듈(예: 도 5의 ASR 모듈(510))은 기본 언어 모델(530) 및 결정된 도메인과 관련된 도메인 기반 언어 모델(821)에 기반하여 제 2 음성 데이터(841)에 대한 텍스트 변환을 수행하고, 제 2 텍스트 데이터(843)를 생성할 수 있다. NLU(예; 도 5의 NLU(520))는 제 2 텍스트 데이터(843)를 이용하여 사용자의 의도를 판단하고, 제 2 텍스트 데이터(843)에 기반하여 사용자의 의도에 매칭되는 태스크를 수행하는데 필요한 파라미터를 추출할 수 있다. 추출된 파라미터 및 제 2 텍스트 데이터(843)는 서드파티 서버(예: 도 3의 서드 파티 서버(340))에 전송될 수 있고, 서드파티 서버(340)는 수신한 정보에 기반하여 음성 인식과 관련된 서비스와 관련된 동작들을 수행할 수 있다.Referring to FIG. 8b, the user terminal (310) may generate second voice data (841) corresponding to an additional user utterance (e.g., a specific utterance related to a pizza order). The second voice data (841) may be preprocessed and transmitted to an intelligent server (e.g., the intelligent server (320) of FIG. 3). An ASR module (e.g., the ASR module (510) of FIG. 5) running on a processor (e.g., the processor (420) of FIG. 4) of the intelligent server (320) may perform text conversion on the second voice data (841) based on a basic language model (530) and a domain-based language model (821) related to a determined domain, and generate second text data (843). NLU (e.g., NLU (520) of FIG. 5) can determine the user's intention using the second text data (843) and extract parameters necessary for performing a task matching the user's intention based on the second text data (843). The extracted parameters and second text data (843) can be transmitted to a third-party server (e.g., third-party server (340) of FIG. 3), and the third-party server (340) can perform operations related to a service related to voice recognition based on the received information.
본 발명의 다양한 실시예에 따르면, 세션 매니저(550)는 제 2 텍스트 데이터(843)를 사용자 단말(310)에 전송할 수 있다. 사용자 단말(310)은 제 2 텍스트 데이터(843)를 디스플레이(720) 상에 디스플레이할 수 있다.According to various embodiments of the present invention, the session manager (550) can transmit second text data (843) to the user terminal (310). The user terminal (310) can display the second text data (843) on the display (720).
본 발명의 다양한 실시예에 따르면, 프로세서(730)는 도메인과 관련된 정보(845)를 디스플레이(720) 상에 출력할 수 있다. 도메인과 관련된 정보(845)는 도메인의 이름, 도메인을 제공하는 써드 파티의 이름을 포함할 수 있다. 도메인과 관련된 정보(845)는 사용자 인터페이스 형태로 출력될 수 있다.According to various embodiments of the present invention, the processor (730) can output domain-related information (845) on the display (720). The domain-related information (845) can include the name of the domain and the name of a third party providing the domain. The domain-related information (845) can be output in the form of a user interface.
본 발명의 다양한 실시예에 따르면, 세션 매니저(550)는 사용자 입력에 기반하여 현재 실행 중인 세션을 종료하고 다른 세션으로 변경(또는, 생성)할 수 있다. 도 8c를 참조하면, 사용자 단말(310)은 추가적인 사용자 발화(예: 버스 노선과 관련된 정보 요청)에 대응하는 제 3 음성 데이터(851)를 생성할 수 있다. 제 3 음성 데이터는(851) 전처리 과정을 거쳐, 지능형 서버(예: 도 3의 지능형 서버(320))에 전송될 수 있다. ASR 모듈(510)은 제 3 음성 데이터(851)를 기본 언어 모델(530) 및 이전에 결정된 도메인과 관련된 도메인 기반 언어 모델(821)을 이용하여 제 3 텍스트 데이터로 변환할 수 있다.According to various embodiments of the present invention, the session manager (550) may terminate a currently running session and change to (or create) another session based on a user input. Referring to FIG. 8c, the user terminal (310) may generate third voice data (851) corresponding to an additional user utterance (e.g., a request for information related to a bus route). The third voice data (851) may be preprocessed and transmitted to an intelligent server (e.g., the intelligent server (320) of FIG. 3). The ASR module (510) may convert the third voice data (851) into third text data using the basic language model (530) and the domain-based language model (821) related to the previously determined domain.
본 발명의 다양한 실시예에 따르면, 세션 매니저(550)는 제 3 텍스트 데이터에 기반하여 제 3 텍스트 데이터에 대응하는 도메인을 결정할 수 있다. 세션 매니저(550)는, 제 1 텍스트 데이터에 대응하는 도메인(예: 피자 주문)과 제 3 텍스트 데이터에 대응하는 도메인(예: 버스 노선 정보 요청)이 서로 다른 경우, 제 1 텍스트 데이터에 대응하는 도메인과 관련된 세션에서, 제 3 텍스트 데이터에 대응하는 도메인과 관련된 세션으로 변경(또는, 생성)하고, 제 3 텍스트 데이터에 대응하는 도메인과 관련된 세션을 이용하여 음성 인식을 수행할 수 있다. According to various embodiments of the present invention, the session manager (550) may determine a domain corresponding to the third text data based on the third text data. If the domain corresponding to the first text data (e.g., pizza order) and the domain corresponding to the third text data (e.g., bus route information request) are different from each other, the session manager (550) may change (or create) a session related to the domain corresponding to the first text data to a session related to the domain corresponding to the third text data, and perform speech recognition using the session related to the domain corresponding to the third text data.
본 발명의 다양한 실시예에 따르면, 프로세서(730)는 도메인과 관련된 정보(853)를 디스플레이(720) 상에 출력할 수 있다. 도메인과 관련된 정보(853)는 도메인의 이름, 도메인을 제공하는 써드 파티의 이름을 포함할 수 있다. 도메인과 관련된 정보(853)는 사용자 인터페이스 형태로 출력될 수 있다.According to various embodiments of the present invention, the processor (730) can output domain-related information (853) on the display (720). The domain-related information (853) can include the name of the domain and the name of a third party providing the domain. The domain-related information (853) can be output in the form of a user interface.
본 발명의 다양한 실시예에 따르면, 세션 매니저(550)는 이전에 실행중인 세션을 종료하고, 변경된 도메인과 관련된 세션을 실행할 수 있다. 세션 매니저(550)는 세션의 변경을 알리는 정보를 사용자 단말(310)로 전송할 수 있다. 사용자 단말(310)은 세션의 변경을 알리는 정보를 포함하는 도메인과 관련된 정보(853)를 디스플레이(720) 상에 디스플레이할 수 있다.According to various embodiments of the present invention, the session manager (550) can terminate a previously running session and execute a session related to a changed domain. The session manager (550) can transmit information notifying a change in the session to the user terminal (310). The user terminal (310) can display information (853) related to the domain including the information notifying a change in the session on the display (720).
본 발명의 다양한 실시예에 따르면, 세션 매니저(550)는 도메인 기반 언어 모델들(821, 823, 25) 중 변경된 도메인과 관련된 도메인 기반 언어 모델(825)을 선택하고, 선택된 도메인 기반 언어 모델(예를 들어, 버스노선 언어모델)(825)와 기본 언어 모델(530)을 이용하여 음성 인식을 수행할 수 있다.According to various embodiments of the present invention, the session manager (550) may select a domain-based language model (825) related to a changed domain among domain-based language models (821, 823, 25), and perform speech recognition using the selected domain-based language model (e.g., bus route language model) (825) and the base language model (530).
도 8d를 참조하면, 사용자 단말(310)은 사용자의 추가적인 발화(예를 들어, 버스 노선 관련 정보를 요청하는 발화)와 관련된 제 4 음성 데이터(861)를 수신할 수 있다. 제 4 음성 데이터(861)는 전처리 과정을 거쳐, 지능형 서버(예: 도 3의 지능형 서버(320))에 전송될 수 있다. ASR 모듈(510)은 제 4 음성 데이터(861)를 기본 언어 모델(530) 및 결정된 도메인과 관련된 도메인 기반 언어 모델(825)을 이용하여 제 4 텍스트 데이터로 변환할 수 있다. 세션 매니저(550)는 제 4 텍스트 데이터를 서드 파티 서버(예: 도 3의 서드 파티 서버(340))로 전송하고, 서드 파티 서버(340)는 수신한 데이터를 이용하여 음성 인식과 관련된 프로세스를 처리하고, 처리 결과를 사용자 단말(310)에 전송할 수 있다. 사용자 단말(310)은 처리 결과를 디스플레이(720) 상에 디스플레이할 수 있다.Referring to FIG. 8d, the user terminal (310) may receive fourth voice data (861) related to an additional utterance of the user (e.g., an utterance requesting bus route information). The fourth voice data (861) may be preprocessed and transmitted to an intelligent server (e.g., an intelligent server (320) of FIG. 3). The ASR module (510) may convert the fourth voice data (861) into fourth text data using a basic language model (530) and a domain-based language model (825) related to a determined domain. The session manager (550) may transmit the fourth text data to a third-party server (e.g., a third-party server (340) of FIG. 3), and the third-party server (340) may process a process related to voice recognition using the received data and transmit the processing result to the user terminal (310). The user terminal (310) can display the processing result on the display (720).
본 발명의 다양한 실시예에 따르면, 프로세서(730)는 도메인과 관련된 정보(863)를 디스플레이(720) 상에 출력할 수 있다. 도메인과 관련된 정보(863)는 도메인의 이름, 도메인을 제공하는 써드 파티의 이름을 포함할 수 있다. 도메인과 관련된 정보(863)는 사용자 인터페이스 형태로 출력될 수 있다.According to various embodiments of the present invention, the processor (730) can output domain-related information (863) on the display (720). The domain-related information (863) can include the name of the domain and the name of a third party providing the domain. The domain-related information (863) can be output in the form of a user interface.
도 9는 본 발명의 다양한 실시예에 따른 지능형 서버 및 전자 장치에서, 서비스에 따라 구별된 복수의 언어 모델을 선택하고, 선택된 언어 모델들을 이용하여 음성 인식을 수행하는 실시예를 도시한 도면이다.FIG. 9 is a diagram illustrating an example of selecting multiple language models distinguished according to a service and performing speech recognition using the selected language models in an intelligent server and electronic device according to various embodiments of the present invention.
본 발명의 다양한 실시예에 따르면, 지능형 서버(예: 도 3의 지능형 서버(320))는 음성 인식과 관련된 일련의 동작을 처리하는 하나의 세션에서, 복수의 도메인 기반 언어 모델 및 기본 언어 모델을 이용하여 음성 인식을 수행할 수 있다.According to various embodiments of the present invention, an intelligent server (e.g., intelligent server (320) of FIG. 3) can perform speech recognition using a plurality of domain-based language models and a basic language model in one session that processes a series of operations related to speech recognition.
도 9를 참조하면, 사용자 단말(310)(예: 도 1의 전자 장치(101))은 사용자의 특정 의도(예: 여행 계획)가 포함된 발화(931)에 대응하는 제 1 음성 데이터를 생성할 수 있다. 제 1 음성 데이터는 전처리 과정을 거쳐, 지능형 서버(예: 도 3의 지능형 서버(320))에 전송될 수 있다. 지능형 서버(320)의 프로세서(예: 도 4의 프로세서(420)) 상에 구현된 ASR 모듈(510) 은 수신한 제 1 음성 데이터를 기본 언어 모델(530) 을 이용하여 제 1 텍스트 데이터로 변환할 수 있다. 프로세서(420) 상에 구현된 세션 매니져(예: 도 5의 세션 매니저(550))는 제 1 텍스트 데이터에 기반하여 음성 인식에 기반한 서비스 제공을 위한 세션을 생성할 수 있다. 세션 매니저(550)는 제 1 텍스트 데이터에 기반하여 세션과 관련된 복수의 도메인을 확인할 수 있다. 예를 들면, 세션 매니저(550)는 사용자의 의도(예: 여행 계획)에 매칭되는 복수의 도메인(예: 숙소 예약, 렌터카 예약, 항공권 예약)을 확인할 수 있다. 세션 매니저(550)는 복수의 도메인들 각각에 대응하는 도메인 기반 언어 모델들(921, 923, 925)을 선택하고, 복수의 도메인 기반 언어 모델들(921, 923, 925) 및 기본 언어 모델(530)을 이용하여 음성 인식을 수행할 수도 있다.Referring to FIG. 9, a user terminal (310) (e.g., the electronic device (101) of FIG. 1) may generate first voice data corresponding to an utterance (931) including a specific intention of the user (e.g., travel plan). The first voice data may be transmitted to an intelligent server (e.g., the intelligent server (320) of FIG. 3) after going through a preprocessing process. An ASR module (510) implemented on a processor (e.g., the processor (420) of FIG. 4) of the intelligent server (320) may convert the received first voice data into first text data using a basic language model (530). A session manager (e.g., the session manager (550) of FIG. 5) implemented on the processor (420) may generate a session for providing a service based on voice recognition based on the first text data. The session manager (550) may identify a plurality of domains related to the session based on the first text data. For example, the session manager (550) can identify multiple domains (e.g., accommodation reservation, rental car reservation, airline ticket reservation) that match the user's intention (e.g., travel plan). The session manager (550) can select domain-based language models (921, 923, 925) corresponding to each of the multiple domains, and perform speech recognition using the multiple domain-based language models (921, 923, 925) and the base language model (530).
본 발명의 다양한 실시예에 따르면, 프로세서(예: 도 7의 프로세서(730))는 도메인과 관련된 정보를 디스플레이(720) 상에 출력할 수 있다. 도메인과 관련된 정보는 도메인의 이름, 도메인을 제공하는 써드 파티의 이름을 포함할 수 있다. 도메인과 관련된 정보는 사용자 인터페이스 형태로 출력될 수 있다. 도 9를 참조하면, 프로세서(730)는 결정된 복수의 도메인들 각각을 나타내는 아이콘들(941, 943, 945)를 디스플레이할 수 있다. According to various embodiments of the present invention, a processor (e.g., processor (730) of FIG. 7) may output information related to a domain on a display (720). The information related to the domain may include a name of the domain and a name of a third party providing the domain. The information related to the domain may be output in the form of a user interface. Referring to FIG. 9, the processor (730) may display icons (941, 943, 945) representing each of the determined plurality of domains.
도 10a 내지 10b는 본 발명의 다양한 실시예에 따른 전자 장치(310)에서, 연결된 세션에 대한 정보를 출력하는 실시예를 도시한 도면이다.FIGS. 10A to 10B are diagrams illustrating an example of outputting information about a connected session in an electronic device (310) according to various embodiments of the present invention.
도 10a 내지 도 10b를 참조하면, 본 발명의 다양한 실시예에 따른 음성 인식을 수행하는 전자 장치(310) 는 지능형 서버(320) 또는 클라우드 서버(예: 도 3의 클라우드 서버(330))에서 현재 연결된 세션에 대한 정보를 수신하고, 수신한 정보를 디스플레이(예: 도 7의 디스플레이(720))를 이용하여 출력할 수 있다.Referring to FIGS. 10A and 10B , an electronic device (310) performing voice recognition according to various embodiments of the present invention may receive information about a currently connected session from an intelligent server (320) or a cloud server (e.g., a cloud server (330) of FIG. 3) and output the received information using a display (e.g., a display (720) of FIG. 7).
도 10a를 참조하면, 전자 장치(310)는, 전자 장치(310)의 사용자의 음성 입력을 이용한 서비스 제공(예: 음식점 리스트를 검색 및 디스플레이하는 서비스)화면 상에, 현재 연결된 세션에 대한 정보를 아이콘(1010)의 형태로 디스플레이할 수 있다. 음성 입력을 이용한 서비스 화면은 아이콘의 색과 유사한 색을 배경 색으로 이용하여 구현될 수 있다.Referring to FIG. 10A, the electronic device (310) may display information about the currently connected session in the form of an icon (1010) on a screen for providing a service (e.g., a service for searching and displaying a list of restaurants) using a voice input from a user of the electronic device (310). The service screen using a voice input may be implemented using a color similar to the color of the icon as the background color.
도 10b를 참조하면, 전자 장치(310)는, 전자 장치(310)의 사용자의 음성 입력을 이용한 서비스 제공(예: 피자 주문 서비스)화면을 팝-업 형태로 디스플레이하면서, 현재 연결된 세션에 대한 정보를 아이콘(1020)의 형태로 디스플레이할 수 있다. Referring to FIG. 10b, the electronic device (310) may display a screen for providing a service (e.g., a pizza ordering service) using a voice input of a user of the electronic device (310) in a pop-up form, while displaying information about the currently connected session in the form of an icon (1020).
본 발명의 다양한 실시예에 따르면, 생성된 세션이 사용자의 발화 등 다양한 원인에 의해 종료되고, 다른 세션이 실행되는 경우, 변경된 세션에 대한 정보는 디스플레이(720) 상에 디스플레이될 수 있다.According to various embodiments of the present invention, when a created session is terminated due to various reasons such as a user's speech and another session is executed, information about the changed session can be displayed on the display (720).
도 11a 내지 도 11b는 본 발명의 다양한 실시예에 따른 전자 장치(310)에서, 연결된 세션에 대한 정보를 출력하는 실시예를 도시한 도면이다.FIGS. 11A and 11B are diagrams illustrating an example of outputting information about a connected session in an electronic device (310) according to various embodiments of the present invention.
도 11a 내지 도 11b를 참조하면, 본 발명의 다양한 실시예에 따른 전자 장치(310) 는 사용자의 음성을 입력 받는 마이크를 포함하고, 지능형 서버(320) 또는 클라우드 서버(330)와 연결된 지능형 스피커일 수 있다. 전자 장치(310)는 지능형 서버(320) 또는 클라우드 서버(예: 도 3의 클라우드 서버(330))에서 현재 연결된 세션에 대한 정보를 수신하고, 수신한 정보를 오디오 모듈(예: 도 1의 오디오 모듈(170))을 이용하여 출력할 수 있다.Referring to FIGS. 11A and 11B , an electronic device (310) according to various embodiments of the present invention may include a microphone for receiving a user's voice, and may be an intelligent speaker connected to an intelligent server (320) or a cloud server (330). The electronic device (310) may receive information about a currently connected session from an intelligent server (320) or a cloud server (e.g., the cloud server (330) of FIG. 3), and output the received information using an audio module (e.g., the audio module (170) of FIG. 1).
도 11a 내지 도 11d는 본 발명의 다양한 실시예에 따른 전자 장치(310)가 디스플레이(예: 도 7의 디스플레이(720))를 구비하지 않아서, 연결된 세션에 대한 정보를 디스플레이할 수 없는 경우, 전자 장치(310)가 디스플레이(720)를 구비하고 있는 경우 모두에 적용될 수 있다.FIGS. 11A to 11D can be applied to both cases where the electronic device (310) according to various embodiments of the present invention does not have a display (e.g., the display (720) of FIG. 7) and thus cannot display information about a connected session, and cases where the electronic device (310) has a display (720).
본 발명의 다양한 실시예에 따르면, 음성 인식에 이용되기 위해 연결된 세션에 대한 정보는 전자 장치(310)가 구비한 오디오 모듈(예: 도 1의 오디오 모듈(170))을 이용하여 출력될 수 있다.According to various embodiments of the present invention, information about a connected session to be used for voice recognition may be output using an audio module (e.g., audio module (170) of FIG. 1) provided by an electronic device (310).
본 발명의 다양한 실시예에 따르면, 생성된 세션(예를 들면, 일반적인 음성 인식 세션)이 사용자의 발화 등 다양한 원인에 의해 종료되고, 다른 세션(예를 들면, 피자 주문 세션)이 실행되는 경우, 변경된 세션에 대한 정보는 전자 장치(310)가 구비한 오디오 모듈(예: 도 1의 오디오 모듈(170))을 이용하여 출력될 수 있다. 예를 들면, 변경 이전의 세션에 출력되는 음성과 변경 이후의 세션에서 출력되는 음성은 억양, 속도, 빠르기, 화자의 성별(남성, 여성), 또는 화자의 나이(어린이, 노인)를 포함하는 음성의 특징이 서로 다를 수 있다. According to various embodiments of the present invention, when a generated session (e.g., a general voice recognition session) is terminated due to various causes such as a user's utterance, and another session (e.g., a pizza ordering session) is executed, information about the changed session may be output using an audio module (e.g., an audio module (170) of FIG. 1) provided to the electronic device (310). For example, a voice output in a session before the change and a voice output in a session after the change may have different voice characteristics including intonation, speed, velocity, gender of the speaker (male, female), or age of the speaker (child, elderly).
본 발명의 다양한 실시예에 따르면, 전자 장치(310)는 오디오 모듈(170)을 이용하여 출력되는 음성의 특성을 다르게 설정하여, 전자 장치(310)의 사용자가 세션의 변경을 인지할 수 있도록 할 수 있다.According to various embodiments of the present invention, the electronic device (310) can set the characteristics of the voice output using the audio module (170) differently so that the user of the electronic device (310) can recognize a change in the session.
도 11a를 참조하면, 현재 연결된 세션인 일반적인 음성 세션에 대응하는 화자는 여성일 수 있다. 현재 연결된 세션이 일반적인 음성 세션인 경우, 전자 장치(310)는 여성 화자를 이용하여 음성을 출력할 수 있다. Referring to FIG. 11a, the speaker corresponding to the currently connected session, which is a general voice session, may be a female. If the currently connected session is a general voice session, the electronic device (310) may output voice using a female speaker.
도 11b를 참조하면, 변경된 세션인 피자 주문 세션에 대응하는 화자는 남성일 수 있다. 현재 연결된 세션이 피자 주문 세션인 경우, 전자 장치(310)는 남성 화자를 이용하여 음성을 출력할 수 있다.Referring to FIG. 11b, the speaker corresponding to the changed session, the pizza ordering session, may be male. If the currently connected session is the pizza ordering session, the electronic device (310) may output voice using a male speaker.
도 12a 내지 도 12b는 본 발명의 다양한 실시예에 따른 전자 장치(310)에서, 연결된 세션에 대한 정보를 출력하는 실시예를 도시한 도면이다.FIGS. 12A and 12B are diagrams illustrating an example of outputting information about a connected session in an electronic device (310) according to various embodiments of the present invention.
도 12a 내지 도 12b를 참조하면, 본 발명의 다양한 실시예에 따른 전자 장치(310)는 사용자의 음성을 입력 받는 마이크를 포함하고, 지능형 서버(320) 또는 클라우드 서버(330)와 연결된 지능형 스피커일 수 있다. 전자 장치(310)는 지능형 서버(320) 또는 클라우드 서버(예: 도 3의 클라우드 서버(330))에서 현재 연결된 세션에 대한 정보를 수신하고, 수신한 정보를 전자 장치(310)에 포함된 LED 등(1210)을 이용하여 출력할 수 있다.Referring to FIGS. 12A and 12B , an electronic device (310) according to various embodiments of the present invention may include a microphone for receiving a user's voice, and may be an intelligent speaker connected to an intelligent server (320) or a cloud server (330). The electronic device (310) may receive information about a currently connected session from an intelligent server (320) or a cloud server (e.g., a cloud server (330) of FIG. 3 ), and output the received information using an LED light (1210) included in the electronic device (310).
본 발명의 다양한 실시예에 따르면, 전자 장치(310)는 연결된 세션에 따라서 LED 등(1210)이 출력하는 빛의 특성을 변경하도록 LED 등(1210)을 제어할 수 있다. LED 등(1210)이 출력하는 빛의 특성은 빛의 깜빡임의 정도, 빛의 색, 빛의 세기를 포함할 수 있다.According to various embodiments of the present invention, the electronic device (310) can control the LED light (1210) to change the characteristics of the light output by the LED light (1210) according to the connected session. The characteristics of the light output by the LED light (1210) can include the degree of blinking of the light, the color of the light, and the intensity of the light.
본 발명의 다양한 실시예에 따르면, 전자 장치(310)는 복수의 세션들 마다 빛을 다르게 출력하도록 LED 등(1210)을 제어할 수 있다. 전자 장치(310)는 LED 등(1210)을 이용하여 출력되는 빛의 특성을 다르게 설정하여, 전자 장치(310)의 사용자가 세션의 변경을 인지할 수 있도록 할 수 있다.According to various embodiments of the present invention, the electronic device (310) can control the LED light (1210) to output light differently for each of a plurality of sessions. The electronic device (310) can set the characteristics of the light output using the LED light (1210) differently so that the user of the electronic device (310) can recognize a change in the session.
도 12a를 참조하면, 현재 연결된 세션인 일반적인 음성 세션에 대응하는 빛의 색은 파란색일 수 있다. 현재 연결된 세션이 일반적인 음성 세션인 경우, 전자 장치(310)는 파란색의 빛을 출력하도록 LED 등(1210)을 제어할 수 있다.Referring to FIG. 12a, the color of the light corresponding to the currently connected session, which is a general voice session, may be blue. If the currently connected session is a general voice session, the electronic device (310) may control the LED light (1210) to output blue light.
도 12b를 참조하면, 현재 연결된 세션인 피자 주문 세션에 대응하는 빛의 색은 빨간색일 수 있다. 현재 연결된 세션이 피자 주문 세션인 경우, 전자 장치(310)는 빨간색의 빛을 출력하도록 LED 등(1210)을 제어할 수 있다.Referring to FIG. 12b, the color of the light corresponding to the currently connected session, which is a pizza ordering session, may be red. If the currently connected session is a pizza ordering session, the electronic device (310) may control the LED light (1210) to output red light.
본 발명의 다양한 실시예에 따른 시스템은 네트워크 인터페이스, 상기 네트워크 인터페이스와 작동적으로 연결된 적어도 하나의 프로세서, 및 상기 프로세서와 작동적으로 연결된 적어도 하나의 메모리를 포함하고, 상기 적어도 하나의 메모리는 자동 음성 인식 (ASR, automatic speech recognition)을 위한 제너릭 랭귀지 모델(a generic language model) 및 복수의 도메인 기반 랭귀지 모델들(a plurality of domain-based language models)을 저장하도록 구성되고, 상기 적어도 하나의 메모리는, 실행 시에, 상기 프로세서가 상기 네트워크 인터페이스를 통해 마이크로폰(microphone)을 포함하는 외부 장치로부터 제 1 음성 데이터를 수신하고, 상기 제너릭 랭귀지 모델을 이용하되, 상기 도메인 기반 랭귀지 모델들은 이용하지 않고, 상기 ASR로, 상기 제 1 음성데이터를 처리하여, 상기 시스템에 의해 수행될 적어도 하나의 태스크와 연관된 제 1 텍스트 데이터를 생성하고, 상기 제 1 텍스트 데이터에 적어도 일부 기반하여, 상기 태스크와 연관된 도메인을 결정하고, 상기 도메인 기반 랭귀지 모델들 중에, 상기 결정된 도메인과 연관된 하나의 도메인 기반 랭귀지 모델을 선택하고, 상기 제 1 음성데이터 수신 후 및 상기 태스크 수행 전에 상기 네트워크 인터페이스를 통해 상기 외부 장치로부터 제 2 음성 데이터를 수신하고, 상기 ASR로, 상기 제너릭 랭귀지 모델 및 상기 선택된 하나의 도메인 기반 랭귀지 모델을 이용하여, 상기 ARS로, 상기 제 2 음성데이터를 처리하여 제 2 텍스트 데이터를 생성하도록 하는 인스트럭션들(instructions)을 저장할 수 있다.A system according to various embodiments of the present invention comprises a network interface, at least one processor operatively connected to the network interface, and at least one memory operatively connected to the processor, wherein the at least one memory is configured to store a generic language model and a plurality of domain-based language models for automatic speech recognition (ASR), and wherein the at least one memory is configured to, when executed, cause the processor to receive first speech data from an external device including a microphone through the network interface, use the generic language model but not the domain-based language models, process the first speech data with the ASR to generate first text data associated with at least one task to be performed by the system, determine a domain associated with the task based at least in part on the first text data, select one domain-based language model associated with the determined domain from among the domain-based language models, and, after receiving the first speech data and performing the task, Before the execution, instructions can be stored for receiving second voice data from the external device through the network interface, and processing the second voice data with the ARS using the generic language model and the selected domain-based language model with the ASR to generate second text data.
본 발명의 다양한 실시예에 따른 시스템에서, 상기 인스트럭션들은, 상기 프로세서가, 상기 외부 장치가 상기 결정된 도메인을 나타내는 유저 인터페이스를 제공하도록 하게 할 수 있다.In a system according to various embodiments of the present invention, the instructions may cause the processor to cause the external device to provide a user interface representing the determined domain.
본 발명의 다양한 실시예에 따른 시스템에서, 상기 유저 인터페이스는 적어도 하나의 시각적 사용자 인터페이스 또는 음성 기반 사용자 인터페이스를 포함할 수 있다.In a system according to various embodiments of the present invention, the user interface may include at least one visual user interface or a voice-based user interface.
본 발명의 다양한 실시예에 따른 시스템에서, 상기 인스트럭션들은, 상기 프로세서가, 상기 시각적 사용자 인터페이스를 상기 디스플레이 상에 제공하도록 할 수 있다.In a system according to various embodiments of the present invention, the instructions may cause the processor to provide the visual user interface on the display.
본 발명의 다양한 실시예에 따른 시스템에서, 상기 외부 장치는 적어도 하나의 LED(light emitting diode)를 포함하고, 상기 인스트럭션들은, 상기 프로세서가, 상기 시각적 사용자 인터페이스를 상기 LED를 이용하여 제공하도록 할 수 있다.In a system according to various embodiments of the present invention, the external device includes at least one light emitting diode (LED), and the instructions may cause the processor to provide the visual user interface using the LED.
본 발명의 다양한 실시예에 따른 시스템에서, 상기 외부 장치는 스피커를 포함하고, 상기 인스트럭션들은, 상기 프로세서가, 상기 음성 기반 사용자 인터페이스를 상기 스피커를 통해 제공하도록 할 수 있다.In a system according to various embodiments of the present invention, the external device includes a speaker, and the instructions may cause the processor to provide the voice-based user interface through the speaker.
본 발명의 다양한 실시예에 따른 시스템에서, 상기 인스트럭션들은, 상기 프로세서가, 상기 외부 장치를 통해 음성을 제공하기 위해, 상기 도메인 결정 전에 제 1 TTS 모델(text to speech model)을 사용하고 상기 도메인 결정 후에 제 2 TTS 모델을 사용하도록 할 수 있다.In a system according to various embodiments of the present invention, the instructions may cause the processor to use a first text to speech model before the domain determination and to use a second TTS model after the domain determination to provide voice through the external device.
본 발명의 다양한 실시예에 따른 시스템에서, 상기 인스트럭션들은, 상기 프로세서가, 상기 태스크를 수행될 때 까지, 상기 제너릭 랭귀지 모델과 상기 선택된 도메인 기반 랭귀지 모델의 조합을 유지하도록 할 수 있다.In a system according to various embodiments of the present invention, the instructions may cause the processor to maintain a combination of the generic language model and the selected domain-based language model until the task is performed.
본 발명의 다양한 실시예에 따른 시스템에서, 상기 도메인 기반 랭귀지 모델들은 상기 서비스의 종류 또는 상기 컨텐츠 제공자에 따라서 구분되어 생성될 수 있다.In a system according to various embodiments of the present invention, the domain-based language models can be generated and classified according to the type of the service or the content provider.
본 발명의 다양한 실시예에 따른 시스템에서, 상기 인스트럭션들은, 상기 프로세서가 상기 제 1 텍스트 데이터에 상기 도메인의 식별자가 포함되어 있는지 확인하고, 상기 도메인의 식별자가 상기 제 1 텍스트 데이터에 포함된 경우, 포함된 식별자에 대응하는 상기 제너릭 랭귀지 모델을 선택할 수 있다.In a system according to various embodiments of the present invention, the instructions may cause the processor to determine whether the first text data includes an identifier of the domain, and if the identifier of the domain is included in the first text data, select the generic language model corresponding to the included identifier.
본 발명의 다양한 실시예에 따른 시스템에서, 상기 인스트럭션이, 상기 프로세서가 상기 도메인의 식별자가 상기 제 1 텍스트 데이터에 포함되지 않은 경우, 상기 제 1 텍스트 데이터에 기반하여 상기 사용자의 의도(intention)를 결정하고, 상기 의도에 대응하는 적어도 하나 이상의 도메인을 결정하도록 할 수 있다.In a system according to various embodiments of the present invention, the instructions may cause the processor to determine an intention of the user based on the first text data, if an identifier of the domain is not included in the first text data, and to determine at least one domain corresponding to the intention.
본 발명의 다양한 실시예에 따른 시스템에서, 상기 인스트럭션이, 상기 프로세서가, 상기 통신 모듈을 통해 사용자의 발화에 대응하는 제 3 음성 데이터를 수신하고, 상기 제 3 음성 데이터에 대응하는 텍스트 데이터를 생성하고, 상기 제 3 음성 데이터에 대응하는 텍스트 데이터에 기반하여 상기 도메인을 변경하도록 할 수 있다.In a system according to various embodiments of the present invention, the instructions may cause the processor to receive third voice data corresponding to a user's speech through the communication module, generate text data corresponding to the third voice data, and change the domain based on the text data corresponding to the third voice data.
본 발명의 다양한 실시예에 따른 시스템에서, 상기 인스트럭션이, 상기 프로세서가 상기 도메인이 변경된 경우, 변경된 도메인에 대응하는 도메인 기반 랭귀지 모델 및 상기 제너릭 랭귀지 모델을 이용하여 음성 인식을 수행할 수 있다.In a system according to various embodiments of the present invention, the instructions enable the processor to perform speech recognition using a domain-based language model and the generic language model corresponding to the changed domain when the domain is changed.
본 발명의 다양한 실시예에 따른 시스템에서, 상기 인스트럭션이, 상기 프로세서가 상기 선택된 도메인 기반 랭귀지 모델 및 상기 제너릭 랭귀지 모델을 이용하여 상기 제 1 텍스트 데이터를 변경할 수 있다.In a system according to various embodiments of the present invention, the instructions enable the processor to modify the first text data using the selected domain-based language model and the generic language model.
본 발명의 다양한 실시예에 따른 시스템에서, 상기 인스트럭션이, 상기 프로세서가 상기 제 1 텍스트 데이터가 변경되는 경우, 상기 외부 장치로 상기 제 1 텍스트 데이터의 변경을 알리는(notifying) 데이터를 전송할 수 있다.In a system according to various embodiments of the present invention, the instructions may cause the processor to transmit data notifying a change in the first text data to the external device when the first text data is changed.
본 발명의 다양한 실시예에 따른 전자 장치는 통신 모듈; 적어도 하나의 프로세서; 및 음성 인식을 수행하는데 있어 기본적으로 사용하도록 지정된 제너릭 랭귀지 모델, 음성 인식에 기반하여 제공되는 서비스에 의해 구분되는 도메인들에 각각 대응하는 도메인 기반 랭귀지 모델들을 저장한 메모리를 포함하고, 상기 프로세서는 상기 통신 모듈을 통해 사용자의 발화에 대응하는 제 1 음성 데이터를 수신하고, 상기 제너릭 랭귀지 모델을 이용하여 상기 제 1 음성 데이터에 대응하는 텍스트 데이터를 생성하고, 상기 생성된 텍스트 데이터에 기반하여 상기 음성 인식에 이용될 도메인을 결정하고, 상기 결정된 도메인과 연결되는 세션(session)을 설정하고, 상기 결정된 도메인에 대응하는 도메인 기반 랭귀지 모델을 선택하고, 상기 제너릭 랭귀지 모델 및 상기 선택된 도메인 기반 랭귀지 모델을 이용하여 상기 사용자의 추가 발화에 대응하는 제 2 음성 데이터에 대한 음성 인식을 수행하도록 설정될 수 있다.According to various embodiments of the present invention, an electronic device includes: a communication module; at least one processor; and a memory storing a generic language model that is basically designated to be used in performing speech recognition, and domain-based language models that respectively correspond to domains distinguished by a service provided based on speech recognition, wherein the processor is configured to receive first speech data corresponding to a user's speech through the communication module, generate text data corresponding to the first speech data using the generic language model, determine a domain to be used for the speech recognition based on the generated text data, establish a session connected to the determined domain, select a domain-based language model corresponding to the determined domain, and perform speech recognition on second speech data corresponding to an additional speech of the user using the generic language model and the selected domain-based language model.
본 발명의 다양한 실시예에 따른 전자 장치에서, 도메인 기반 랭귀지 모델들은 컨텐츠 제공자에 따라서 구분되어 생성될 수 있다.In an electronic device according to various embodiments of the present invention, domain-based language models can be generated separately according to content providers.
본 발명의 다양한 실시예에 따른 전자 장치에서, 상기 프로세서는 상기 사용자에 대응하는 외부 전자 장치로 상기 설정된 세션을 알리는 데이터를 전송할 수 있다.In an electronic device according to various embodiments of the present invention, the processor may transmit data notifying the established session to an external electronic device corresponding to the user.
본 발명의 다양한 실시예에 따른 시스템은 네트워크 인터페이스, 상기 네트워크 인터페이스와 작동적으로 연결된 적어도 하나의 프로세서, 및 상기 프로세서와 작동적으로 연결된 적어도 하나의 메모리;를 포함하고, 상기 적어도 하나의 메모리는 자동 음성 인식 (ASR, automatic speech recognition)을 위한 제너릭 랭귀지 모델(a generic language model) 및 복수의 도메인 기반 랭귀지 모델들(a plurality of domain-based language models)을 저장하도록 구성되고, 상기 적어도 하나의 메모리는, 실행 시에, 상기 프로세서가, 상기 네트워크 인터페이스를 통해 마이크로폰(microphone)을 포함하는 외부 장치로부터 제 1 음성 데이터를 수신하고, 상기 제너릭 랭귀지 모델을 이용하되, 상기 도메인 기반 랭귀지 모델들은 이용하지 않고, 상기 ASR로, 상기 제 1 음성데이터를 처리하여, 상기 시스템에 의해 수행될 적어도 하나의 태스크와 연관된 제 1 텍스트 데이터를 생성하고, 상기 제 1 텍스트 데이터에 적어도 일부 기반하여, 상기 태스크와 연관된 도메인을 결정하고, 상기 도메인 기반 랭귀지 모델들 중에, 상기 결정된 도메인과 연관된 하나의 도메인 기반 랭귀지 모델을 선택하고, 상기 제 1 음성데이터 수신 후 및 상기 태스크 수행 전에 상기 네트워크 인터페이스를 통해 상기 외부 장치로부터 제 2 음성 데이터를 수신하고, 상기 ASR로, 상기 선택된 하나의 도메인 기반 랭귀지 모델을 이용하여, 상기 ARS로, 상기 제 2 음성데이터를 처리하여 제 2 텍스트 데이터를 생성하도록 하는 인스트럭션들(instructions)을 저장할 수 있다.A system according to various embodiments of the present invention comprises a network interface, at least one processor operatively connected to the network interface, and at least one memory operatively connected to the processor; wherein the at least one memory is configured to store a generic language model and a plurality of domain-based language models for automatic speech recognition (ASR), and wherein the at least one memory is configured to cause, when executed, the processor to receive first speech data from an external device including a microphone through the network interface, to process the first speech data using the generic language model but not using the domain-based language models, to generate first text data associated with at least one task to be performed by the system, to determine a domain associated with the task based at least in part on the first text data, to select one domain-based language model associated with the determined domain from among the domain-based language models, and after receiving the first speech data, Before performing the above task, instructions can be stored for receiving second voice data from the external device through the network interface, and processing the second voice data with the ARS using the selected domain-based language model with the ASR to generate second text data.
도 13은 본 발명의 다양한 실시예에 따른 전자 장치(320)의 동작 방법을 도시한 동작 흐름도이다.FIG. 13 is a flowchart illustrating an operation method of an electronic device (320) according to various embodiments of the present invention.
도 13을 참조하면, 동작 1310에서, 본 발명의 다양한 실시예에 따른 전자 장치(예: 도 3의 지능형 서버(320))는 사용자 발화에 의해 생성된 제 1 음성 데이터를 수신할 수 있다. 예를 들어, 전자 장치(320)의 통신 모듈(410)은 외부 전자 장치(예: 도 3의 사용자 단말(310))로부터, 사용자의 발화에 대응하는 제 1 음성 데이터를 수신할 수 있다. 제 1 음성 데이터는 사용자 단말(310)의 마이크로폰(예: 도 1의 입력 장치(150))을 이용하여 수신한 사용자의 발화에 대응하는 음성 데이터를 전처리한 데이터를 의미할 수 있다.Referring to FIG. 13, in
본 발명의 다양한 실시예에 따르면, 동작 1320에서, 전자 장치(320)는 기본 언어 모델(예: 도 5의 기본 언어 모델(530))을 이용하여 제 1 음성 데이터를 변환해서, 제 1 텍스트 데이터를 생성할 수 있다. 예를 들어, 기본 언어 모델은 음성 인식을 수행하는 동안 기본적으로 이용될 수 있는 언어 모델을 의미할 수 있다. According to various embodiments of the present invention, in
본 발명의 다양한 실시예에 따르면, 도메인 기반 언어 모델은 도메인들 각각에 대응하는 언어 모델을 의미할 수 있다. 도메인은 음성 인식에 기반하여 제공되는 서비스에 의해 구별될 수 있다. 예를 들면, 음성 인식에 기반하여 제공되는 다양한 서비스(피자 주문, 숙소 예약, 교통 정보 제공)들 각각은 고유한 도메인을 가질 수 있다. 예를 들면, 도메인 기반 언어 모델들은 피자 주문과 관련된 언어 모델, 숙소 예약과 관련된 언어 모델, 교통 정보 제공과 관련된 언어 모델 등을 포함할 수 있다. 본 발명의 다양한 실시예에 따르면, 도메인 기반 언어 모델은 기본 언어 모델과 다르게 서드 파티 서버(예: 도 3의 서드 파티 서버(340))의 운영 측에 의해 구현될 수 있다. 도메인 기반 언어 모델에 포함된 데이터 중 사용 빈도가 설정된 값 이상(또는, 초과)인 경우, 도메인 기반 언어 모델에 포함된 데이터는 기본 언어 모델에 포함되도록 업데이트될 수 있다.According to various embodiments of the present invention, a domain-based language model may mean a language model corresponding to each of the domains. A domain may be distinguished by a service provided based on speech recognition. For example, each of various services provided based on speech recognition (pizza ordering, accommodation reservation, traffic information provision) may have its own domain. For example, domain-based language models may include a language model related to pizza ordering, a language model related to accommodation reservation, a language model related to traffic information provision, etc. According to various embodiments of the present invention, a domain-based language model may be implemented by an operating side of a third-party server (e.g., the third-party server (340) of FIG. 3) differently from a basic language model. If the frequency of use of data included in a domain-based language model is equal to or greater than a set value (or exceeds), the data included in the domain-based language model may be updated to be included in the basic language model.
본 발명의 다양한 실시예에 따르면, 동작 1330에서, 전자 장치(320)는 제 1 텍스트 데이터에 기반해서 음성 인식에 이용될 도메인을 결정할 수 있다. 예를 들어, 도메인은 음성 인식에 기반하여 제공되는 서비스에 의해 구별될 수 있는 식별자일 수 있다. 예를 들면, 음성 인식에 기반하여 제공되는 다양한 서비스(피자 주문, 숙소 예약, 교통 정보 제공)들 각각은 고유한 도메인을 가질 수 있다.According to various embodiments of the present invention, in
본 발명의 다양한 실시예에 따르면, 전자 장치(320)의 프로세서(예: 도 4의 프로세서(420))는 결정된 도메인과 연결되는 세션을 생성할 수 있다. 생성된 세션은 음성 인식에 기반한 서비스를 처리하는 동작을 관리할 수 있다. 프로세서(420)는 도메인 기반 언어 모델들 중 결정된 도메인에 대응하는 도메인 기반 언어 모델을 선택할 수 있다. 예를 들면, 프로세서(420)는 제 1 텍스트 데이터(예: 피자 주문해줘)에 기반하여 사용자의 의도(예: 피자 주문)를 결정하고, 사용자의 의도에 맞는 도메인(피자 주문 서비스)을 결정할 수 있다. 프로세서(420)는 결정된 도메인에 대응하는 도메인 기반 언어 모델(예: 피자 주문에 특화된 언어 모델)을 선택할 수 있다.According to various embodiments of the present invention, a processor (e.g., processor (420) of FIG. 4) of an electronic device (320) may create a session connected to a determined domain. The created session may manage an operation for processing a service based on voice recognition. The processor (420) may select a domain-based language model corresponding to the determined domain among domain-based language models. For example, the processor (420) may determine a user's intention (e.g., pizza order) based on first text data (e.g., order pizza) and determine a domain (pizza order service) that matches the user's intention. The processor (420) may select a domain-based language model (e.g., a language model specialized for pizza ordering) corresponding to the determined domain.
동작 1340에서, 전자 장치(320)는 결정된 도메인에 대응하는 도메인 기반 언어 모델(예: 도 5의 도메인 기반 언어 모델(541, 543, 545))을 선택할 수 있다.In
동작 1350에서, 전자 장치(320)는 기본 언어 모델(530) 및 선택된 도메인 기반 언어 모델(예; 제 1 도메인 기반 언어 모델(541))을 이용해서, 음성 인식을 수행할 수 있다.예를 들어, 프로세서(420)는 사용자의 추가적인 발화를 수신하고, 기본 언어 모델 및 선택된 도메인 기반 언어 모델을 이용하여 사용자의 추가적인 발화에 대응하는 제 2 음성 데이터에 대한 음성 인식을 수행할 수 있다. 예를 들어, 사용자의 추가적인 발화는 사용자 발화에 대응하는 의도와 매칭되는 서비스를 수행하기 위한 파라미터(예: 피자의 종류, 크기, 개수 등)를 입력하기 위해서 수행될 수 있다. 프로세서(420)는 사용자의 추가적인 발화에 대응하는 제 2 음성 데이터에 대한 텍스트 변환을 수행할 때에 있어, 기본 언어 모델 및 선택된 도메인 기반 언어 모델(예: 피자 주문에 특화된 언어 모델)을 이용할 수 있다.In
본 발명의 다양한 실시예에 따르면, 기본 언어 모델 및 선택된 도메인 기반 언어 모델을 이용하여 텍스트 변환을 수행하는 경우, 기본 언어 모델을 이용했을 때의 텍스트 변환 결과와 선택된 도메인 기반 언어 모델을 이용했을 때의 텍스트 변환 결과가 다를 수 있다. 이 경우, 프로세서(420)는 기본 언어 모델에 적용되는 가중치와 선택된 도메인 기반 언어 모델에 적용되는 가중치에 기반하여 텍스트 변환을 수행할 수도 있다.According to various embodiments of the present invention, when performing text conversion using a basic language model and a selected domain-based language model, the text conversion result when using the basic language model may be different from the text conversion result when using the selected domain-based language model. In this case, the processor (420) may perform text conversion based on the weight applied to the basic language model and the weight applied to the selected domain-based language model.
본 발명의 다양한 실시예에 따른 음성 인식을 수행하는 전자 장치의 동작 방법은 네트워크 인터페이스를 통해 마이크로폰(microphone)을 포함하는 외부 장치로부터 제 1 음성 데이터를 수신하는 동작, 자동 음성 인식(ASR, automatic speech recognition)을 위한 제너릭 랭귀지 모델(generic language model)을 이용하되, 복수의 도메인 기반 랭귀지 모델들(a plurality of domain-based language model)들은 이용하지 않고, 상기 ASR을 이용하여, 상기 제 1 음성 데이터를 처리하여, 상기 전자 장치에 의해 수행될 적어도 하나의 태스크와 연관된 제 1 텍스트 데이터를 생성하는 동작, 상기 제 1 텍스트 데이터에 적어도 일부 기반하여, 상기 태스크와 연관된 도메인을 결정하는 동작, 상기 도메인 기반 랭귀지 모델들 중, 상기 결정된 도메인과 연관된 하나의 도메인 기반 랭귀지 모델을 선택하는 동작, 상기 제 1 음성 데이터 수신 후 및 상기 태스크 수행 전에 상기 네트워크 인터페이스를 통해 상기 외부 장치로부터 제 2 음성 데이터를 수신하는 동작, 상기 제너릭 랭귀지 모델 및 상기 선택된 하나의 도메인 기반 랭귀지 모델을 이용하여, 상기 ASR로, 상기 제 2 음성 데이터를 처리하여 제 2 텍스트 데이터를 생성하는 동작을 포함할 수 있다.An operating method of an electronic device performing speech recognition according to various embodiments of the present invention comprises: receiving first speech data from an external device including a microphone through a network interface; using a generic language model for automatic speech recognition (ASR), but not using a plurality of domain-based language models, processing the first speech data using the ASR to generate first text data associated with at least one task to be performed by the electronic device; determining a domain associated with the task based at least in part on the first text data; selecting one domain-based language model associated with the determined domain among the domain-based language models; receiving second speech data from the external device through the network interface after receiving the first speech data and before performing the task; processing the second speech data with the ASR using the generic language model and the selected one domain-based language model to generate second text data. May include generating actions.
본 발명의 다양한 실시예에 따른 전자 장치의 동작 방법은 상기 외부 장치가 상기 결정된 도메인을 나타내는 유저 인터페이스를 제공하도록 상기 외부 장치를 제어하는 동작을 더 포함할 수 있다.The operating method of an electronic device according to various embodiments of the present invention may further include an operation of controlling the external device so that the external device provides a user interface indicating the determined domain.
본 발명의 다양한 실시예에 따른 전자 장치의 동작 방법에서, 상기 유저 인터페이스는 적어도 하나의 시각적 사용자 인터페이스 또는 음성 기반 사용자 인터페이스를 포함할 수 있다.In a method of operating an electronic device according to various embodiments of the present invention, the user interface may include at least one visual user interface or a voice-based user interface.
본 발명의 다양한 실시예에 따른 전자 장치의 동작 방법은 상기 외부 장치를 통해 음성을 제공하기 위해, 상기 도메인 결정 전에 제 1 TTS 모델(text to speech model)을 사용하고 상기 도메인 결정 후에 제 2 TTS 모델을 사용하도록 상기 외부 장치를 제어하는 동작을 더 포함할 수 있다.An operating method of an electronic device according to various embodiments of the present invention may further include an operation of controlling the external device to use a first text to speech model (TTS model) before determining the domain and to use a second TTS model after determining the domain, in order to provide voice through the external device.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.The electronic devices according to various embodiments disclosed in this document may be devices of various forms. The electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliance devices. The electronic devices according to embodiments of this document are not limited to the above-described devices.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나,""A, B 또는 C," "A, B 및 C 중 적어도 하나,"및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.The various embodiments of this document and the terminology used herein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to encompass various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly indicates otherwise. In this document, each of the phrases "A or B," "at least one of A and B," "at least one of A or B," "A, B, or C," "at least one of A, B, and C," and "at least one of A, B, or C" can encompass all possible combinations of the items listed together in the corresponding phrase. Terms such as "first," "second," or "first" or "second" may be used merely to distinguish the corresponding component from other corresponding components, and do not limit the corresponding components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as being “coupled” or “connected” to another component (e.g., a second component), with or without the terms “functionally” or “communicatively,” it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다. The term "module" as used in this document may include a unit implemented in hardware, software or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integrally configured component or a minimum unit of the component or a part thereof that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체 는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.Various embodiments of the present document may be implemented as software (e.g., a program (140)) including one or more instructions stored in a storage medium (e.g., an internal memory (136) or an external memory (138)) readable by a machine (e.g., an electronic device (101)). For example, a processor (e.g., a processor (120)) of the machine (e.g., an electronic device (101)) may call at least one instruction among the one or more instructions stored from the storage medium and execute it. This enables the machine to operate to perform at least one function according to the called at least one instruction. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, ‘non-transitory’ simply means that the storage medium is a tangible device and does not contain signals (e.g. electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently or temporarily on the storage medium.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, the method according to various embodiments disclosed in the present document may be provided as included in a computer program product. The computer program product may be traded between a seller and a buyer as a commodity. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., a compact disc read only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) via an application store (e.g., Play Store TM ) or directly between two user devices (e.g., smartphones). In the case of online distribution, at least a part of the computer program product may be at least temporarily stored or temporarily generated in a machine-readable storage medium, such as a memory of a manufacturer's server, a server of an application store, or an intermediary server.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.According to various embodiments, each component (e.g., a module or a program) of the above-described components may include a single or multiple entities. According to various embodiments, one or more of the components or operations of the above-described components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., a module or a program) may be integrated into a single component. In such a case, the integrated component may perform one or more functions of each of the components of the plurality of components identically or similarly to those performed by the corresponding component of the plurality of components prior to the integration. According to various embodiments, the operations performed by the module, program or other component may be executed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.
Claims (20)
네트워크 인터페이스;
상기 네트워크 인터페이스와 작동적으로 연결된 적어도 하나의 프로세서; 및
상기 프로세서와 작동적으로 연결된 적어도 하나의 메모리;를 포함하고,
상기 적어도 하나의 메모리는 자동 음성 인식 (ASR, automatic speech recognition)을 위한 제너릭 랭귀지 모델(a generic language model) 및 복수의 도메인 기반 랭귀지 모델들(a plurality of domain-based language models)을 저장하도록 구성되고,
상기 적어도 하나의 메모리는, 실행 시에, 상기 프로세서가:
상기 네트워크 인터페이스를 통해 마이크로폰(microphone)을 포함하는 외부 장치로부터 제 1 음성 데이터를 수신하고,
상기 제너릭 랭귀지 모델을 이용하되, 상기 도메인 기반 랭귀지 모델들은 이용하지 않고, 상기 ASR로, 상기 제 1 음성데이터를 처리하여, 상기 시스템에 의해 수행될 적어도 하나의 태스크와 연관된 제 1 텍스트 데이터를 생성하고,
상기 제 1 텍스트 데이터에 적어도 일부 기반하여, 상기 태스크와 연관된 도메인을 결정하고,
상기 도메인 기반 랭귀지 모델들 중에, 상기 결정된 도메인과 연관된 하나의 도메인 기반 랭귀지 모델을 선택하고,
상기 제 1 음성데이터 수신 후 및 상기 태스크 수행 전에 상기 네트워크 인터페이스를 통해 상기 외부 장치로부터 제 2 음성 데이터를 수신하고,
상기 ASR로, 상기 제너릭 랭귀지 모델 및 상기 선택된 하나의 도메인 기반 랭귀지 모델을 이용하여, 상기 ASR로, 상기 제 2 음성데이터를 처리하여 제 2 텍스트 데이터를 생성하도록 하는 인스트럭션들(instructions)을 저장하고,
상기 메모리는,
상기 복수의 도메인 기반 랭귀지 모델들에 포함된 데이터 중 사용 빈도가 설정된 값 이상인 데이터가, 상기 제너릭 랭귀지 모델에 포함되도록, 상기 제너릭 랭귀지 모델을 업데이트하는 인스트럭션을 더 저장하는 시스템.
In the system,
network interface;
At least one processor operatively connected to said network interface; and
At least one memory operatively connected to said processor;
wherein at least one memory is configured to store a generic language model for automatic speech recognition (ASR) and a plurality of domain-based language models,
The at least one memory, when executed, causes the processor to:
Receive first voice data from an external device including a microphone through the above network interface,
Using the above generic language model, but not using the domain-based language models, processing the first speech data with the ASR to generate first text data associated with at least one task to be performed by the system,
determining a domain associated with the task, based at least in part on the first text data;
Among the above domain-based language models, select one domain-based language model associated with the determined domain,
After receiving the first voice data and before performing the task, the second voice data is received from the external device through the network interface,
Store instructions for processing the second speech data using the ASR, the generic language model and the selected domain-based language model, to generate second text data;
The above memory is,
A system further storing an instruction for updating the generic language model so that data included in the plurality of domain-based language models, the usage frequency of which is greater than a set value, is included in the generic language model.
상기 인스트럭션들은, 상기 프로세서가, 상기 외부 장치가 상기 결정된 도메인을 나타내는 유저 인터페이스를 제공하도록 하게 하는 시스템.
In paragraph 1,
The above instructions cause the processor to provide a user interface representing the determined domain to the external device.
상기 유저 인터페이스는 적어도 하나의 시각적 사용자 인터페이스 또는 음성 기반 사용자 인터페이스를 포함하는 시스템.
In the second paragraph,
A system wherein the user interface comprises at least one visual user interface or a voice-based user interface.
상기 외부 장치는 디스플레이를 포함하고,
상기 인스트럭션들은, 상기 프로세서가, 상기 시각적 사용자 인터페이스를 상기 디스플레이 상에 제공하도록 하는 시스템.
In the third paragraph,
The above external device comprises a display,
The above instructions cause the system to cause the processor to provide the visual user interface on the display.
상기 인스트럭션들은, 상기 프로세서가,
상기 태스크를 수행될 때까지, 상기 제너릭 랭귀지 모델과 상기 선택된 도메인 기반 랭귀지 모델의 조합을 유지하도록 하는 시스템.
In paragraph 1,
The above instructions cause the processor to:
A system that maintains a combination of the generic language model and the selected domain-based language model until the above task is performed.
상기 도메인 기반 랭귀지 모델들은
서비스의 종류 또는 컨텐츠 제공자에 따라서 구분되어 생성되는 시스템.
In paragraph 1,
The above domain-based language models
A system that is created by differentiating it according to the type of service or content provider.
상기 인스트럭션들은, 상기 프로세서가
상기 제 1 텍스트 데이터에 상기 도메인의 식별자가 포함되어 있는지 확인하고,
상기 도메인의 식별자가 상기 제 1 텍스트 데이터에 포함된 경우, 포함된 식별자에 대응하는 도메인 기반 랭귀지 모델을 선택하도록 하는 시스템.
In paragraph 1,
The above instructions cause the processor to
Verify that the above first text data contains the identifier of the above domain,
A system for selecting a domain-based language model corresponding to an identifier included in the first text data when the identifier of the domain is included in the first text data.
상기 인스트럭션이, 상기 프로세서가
상기 도메인의 식별자가 상기 제 1 텍스트 데이터에 포함되지 않은 경우, 상기 제 1 텍스트 데이터에 기반하여 사용자의 의도(intention)를 결정하고,
상기 의도에 대응하는 적어도 하나 이상의 도메인을 결정하도록 하는 시스템.
In Article 10,
The above instructions cause the processor to
If the identifier of the above domain is not included in the first text data, the user's intention is determined based on the first text data,
A system for determining at least one domain corresponding to the above intent.
상기 인스트럭션이, 상기 프로세서가,
상기 네트워크 인터페이스를 통해 사용자의 발화에 대응하는 제 3 음성 데이터를 수신하고,
상기 제 3 음성 데이터에 대응하는 텍스트 데이터를 생성하고, 상기 제 3 음성 데이터에 대응하는 텍스트 데이터에 기반하여 상기 도메인을 변경하도록 하는 시스템.
In paragraph 1,
The above instructions, the processor,
Receive third voice data corresponding to the user's speech through the above network interface,
A system for generating text data corresponding to the third voice data and changing the domain based on the text data corresponding to the third voice data.
상기 인스트럭션이, 상기 프로세서가
상기 도메인이 변경된 경우, 변경된 도메인에 대응하는 도메인 기반 랭귀지 모델 및 상기 제너릭 랭귀지 모델을 이용하여 음성 인식을 수행하는 시스템.
In Article 12,
The above instructions cause the processor to
A system that performs speech recognition using a domain-based language model corresponding to the changed domain and the generic language model when the above domain is changed.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180046268A KR102701423B1 (en) | 2018-04-20 | 2018-04-20 | Electronic device for performing speech recognition and the method for the same |
PCT/KR2018/016057 WO2019203418A1 (en) | 2018-04-20 | 2018-12-17 | Electronic device performing speech recognition and method of operating electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180046268A KR102701423B1 (en) | 2018-04-20 | 2018-04-20 | Electronic device for performing speech recognition and the method for the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190122457A KR20190122457A (en) | 2019-10-30 |
KR102701423B1 true KR102701423B1 (en) | 2024-09-02 |
Family
ID=68239656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180046268A KR102701423B1 (en) | 2018-04-20 | 2018-04-20 | Electronic device for performing speech recognition and the method for the same |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102701423B1 (en) |
WO (1) | WO2019203418A1 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210100446A (en) * | 2020-02-06 | 2021-08-17 | 삼성전자주식회사 | Electronic device for providing utterance corresponding to context of dialogue and operating method thereof |
CN111933135A (en) * | 2020-07-31 | 2020-11-13 | 深圳Tcl新技术有限公司 | Terminal control method and device, intelligent terminal and computer readable storage medium |
CN112053692B (en) * | 2020-09-24 | 2024-01-12 | 上海明略人工智能(集团)有限公司 | Speech recognition processing method, device and storage medium |
CN113093596A (en) * | 2021-03-29 | 2021-07-09 | 北京金山云网络技术有限公司 | Control instruction processing method and device |
KR102601932B1 (en) * | 2021-11-08 | 2023-11-14 | (주)사람인 | System and method for extracting data from document for each company using fingerprints and machine learning |
WO2024029850A1 (en) * | 2022-08-05 | 2024-02-08 | 삼성전자주식회사 | Method and electronic device for processing user utterance on basis of language model |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101928060B1 (en) * | 2017-12-01 | 2018-12-11 | 사회복지법인 삼성생명공익재단 | Method and System for Expanding Ideas and Computer Readable Recording Medium Thereof |
KR102262035B1 (en) | 2020-12-03 | 2021-06-09 | 주식회사 인조이웍스 | System for providing conversational artificial intelligence chatbot service optimized by non face-to-face civil affair administration |
KR102281161B1 (en) * | 2021-05-25 | 2021-07-23 | 주식회사 무하유 | Server and Method for Generating Interview Questions based on Letter of Self-Introduction |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100612839B1 (en) * | 2004-02-18 | 2006-08-18 | 삼성전자주식회사 | Method and apparatus for domain-based dialog speech recognition |
KR102056461B1 (en) * | 2012-06-15 | 2019-12-16 | 삼성전자주식회사 | Display apparatus and method for controlling the display apparatus |
KR101609422B1 (en) * | 2013-09-13 | 2016-04-20 | 포항공과대학교 산학협력단 | Method for extracting an user intent and apparatus for performing the method |
KR101572451B1 (en) * | 2013-09-16 | 2015-11-27 | 신정호 | Method for executing of triz solution application |
KR20170032114A (en) * | 2015-09-14 | 2017-03-22 | 삼성전자주식회사 | Voice recognition apparatus and controlling method thereof |
KR101838584B1 (en) * | 2016-09-29 | 2018-03-14 | 코오롱인더스트리 주식회사 | Multifunctional LED array |
KR20210057308A (en) * | 2019-11-12 | 2021-05-21 | 주식회사 테서 | Method and system for providing chatbot service based on machine learning |
KR20210098135A (en) * | 2020-01-31 | 2021-08-10 | 주식회사 케이티 | Apparatus, method and computer program for analyzing query data |
-
2018
- 2018-04-20 KR KR1020180046268A patent/KR102701423B1/en active IP Right Grant
- 2018-12-17 WO PCT/KR2018/016057 patent/WO2019203418A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101928060B1 (en) * | 2017-12-01 | 2018-12-11 | 사회복지법인 삼성생명공익재단 | Method and System for Expanding Ideas and Computer Readable Recording Medium Thereof |
KR102262035B1 (en) | 2020-12-03 | 2021-06-09 | 주식회사 인조이웍스 | System for providing conversational artificial intelligence chatbot service optimized by non face-to-face civil affair administration |
KR102281161B1 (en) * | 2021-05-25 | 2021-07-23 | 주식회사 무하유 | Server and Method for Generating Interview Questions based on Letter of Self-Introduction |
Also Published As
Publication number | Publication date |
---|---|
KR20190122457A (en) | 2019-10-30 |
WO2019203418A1 (en) | 2019-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102701423B1 (en) | Electronic device for performing speech recognition and the method for the same | |
CN110288987B (en) | System for processing sound data and method of controlling the same | |
EP3608906B1 (en) | System for processing user voice utterance and method for operating same | |
US11861318B2 (en) | Method for providing sentences on basis of persona, and electronic device supporting same | |
US11151995B2 (en) | Electronic device for mapping an invoke word to a sequence of inputs for generating a personalized command | |
US11495223B2 (en) | Electronic device for executing application by using phoneme information included in audio data and operation method therefor | |
US11474780B2 (en) | Method of providing speech recognition service and electronic device for same | |
US20220020358A1 (en) | Electronic device for processing user utterance and operation method therefor | |
US12112751B2 (en) | Electronic device for processing user utterance and method for operating same | |
US20220164071A1 (en) | Method and device for providing user-selection-based information | |
US20230081558A1 (en) | Electronic device and operation method thereof | |
US20220013135A1 (en) | Electronic device for displaying voice recognition-based image | |
CN113678119A (en) | Electronic device for generating natural language response and method thereof | |
US20220051661A1 (en) | Electronic device providing modified utterance text and operation method therefor | |
US20200118563A1 (en) | System for processing user utterance and operating method thereof | |
US11720324B2 (en) | Method for displaying electronic document for processing voice command, and electronic device therefor | |
US20200051555A1 (en) | Electronic apparatus for processing user utterance and controlling method thereof | |
US20220270604A1 (en) | Electronic device and operation method thereof | |
KR20190134107A (en) | Electronic device which is processing user's voice and method for providing voice recognition control thereof | |
US12118983B2 (en) | Electronic device and operation method thereof | |
US20230186031A1 (en) | Electronic device for providing voice recognition service using user data and operating method thereof | |
US20230094274A1 (en) | Electronic device and operation method thereof | |
KR102725783B1 (en) | Method for processing plans having multiple end points and electronic device applying the same method | |
US20220413988A1 (en) | Electronic device and method for processing user input | |
KR20240160987A (en) | Method for analysising user intention of voice input and electronic device thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |