KR20210019930A - Server supporting speech recognition of device and operating method thereof - Google Patents
Server supporting speech recognition of device and operating method thereof Download PDFInfo
- Publication number
- KR20210019930A KR20210019930A KR1020200018574A KR20200018574A KR20210019930A KR 20210019930 A KR20210019930 A KR 20210019930A KR 1020200018574 A KR1020200018574 A KR 1020200018574A KR 20200018574 A KR20200018574 A KR 20200018574A KR 20210019930 A KR20210019930 A KR 20210019930A
- Authority
- KR
- South Korea
- Prior art keywords
- character string
- character
- server
- string
- likelihood
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/16—Speech classification or search using artificial neural networks
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/02—Feature extraction for speech recognition; Selection of recognition unit
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/14—Speech classification or search using statistical models, e.g. Hidden Markov Models [HMMs]
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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 OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
- G10L15/30—Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
Abstract
Description
본 개시는 디바이스의 음성 인식을 지원하는 서버 및 그의 동작 방법에 관한 것이다. 구체적으로는, 서버 단에서의 후처리(post-processing)를 이용하여 음성 인식 결과를 강화하는 방법에 관한 것이다. The present disclosure relates to a server supporting voice recognition of a device and a method of operating the same. Specifically, it relates to a method of enhancing a speech recognition result by using post-processing at the server side.
다양한 기능을 복합적으로 수행하는 전자 장치들이 개발됨에 따라, 조작성을 향상시키기 위하여 음성 인식 기능이 탑재된 전자 장치들이 출시되고 있다. 음성 인식 기능은, 별도의 버튼 조작 또는 터치 모듈의 접촉에 의하지 않고 사용자의 음성을 인식함으로써 장치를 손쉽게 제어할 수 있는 장점을 가진다.As electronic devices that perform various functions in combination are developed, electronic devices equipped with a voice recognition function are being released to improve operability. The voice recognition function has the advantage of being able to easily control a device by recognizing a user's voice without using a separate button operation or touching a touch module.
이러한 음성 인식 기능에 의하면, 예를 들어 스마트 폰과 같은 휴대용 단말기 및 TV, 냉장고 등과 같은 가전 제품에서 별도의 버튼을 누르는 조작 없이 통화 기능을 수행하거나 문자 메시지를 작성할 수 있으며, 길 찾기, 인터넷 검색, 알람 설정 등 다양한 기능을 손쉽게 설정할 수 있다.According to such a voice recognition function, for example, it is possible to perform a call function or write a text message without pressing a separate button on a portable terminal such as a smart phone and a home appliance such as a TV and a refrigerator. Various functions such as alarm setting can be easily set.
최근에는, 인공 지능(Artificial Intelligence, AI) 기술이 발전함에 따라 음성 인식 기능에도 인공 지능 기술이 접목됨으로써, 다양한 발화들에 대해서 빠르고 정확한 음성 인식이 가능해졌다. 인공 지능 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이며, 기존 룰(rule) 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공지능 시스템은 사용할 수록 인식률이 향상되고 사용자의 취향을 보다 정확하게 이해할 수 있게 되어, 기존의 룰 기반 스마트 시스템은 점차 딥러닝 기반 인공지능 시스템으로 대체되고 있다.In recent years, as artificial intelligence (AI) technology develops, artificial intelligence technology is also applied to the speech recognition function, enabling fast and accurate speech recognition for various utterances. The artificial intelligence system is a computer system that implements human-level intelligence, and unlike the existing rule-based smart system, the machine learns, judges, and becomes smarter. As artificial intelligence systems are used, the recognition rate improves and users' tastes can be more accurately understood, and the existing rule-based smart systems are gradually being replaced by deep learning-based artificial intelligence systems.
디바이스 측에서 음성 인식(Automatic Speech Recognition, ASR)이 수행되는 온-디바이스 음성 인식은 대기 시간(latency)이 짧고 네트워크가 연결이 되지 않는 경우에도 이용 가능하다는 장점이 있다. 반면에 서버-기반 음성 인식은, 서버에 저장된 많은 수의 개체명(Named entity)에 기초하여 음성 인식이 수행된다는 장점이 있다. On-device speech recognition, in which automatic speech recognition (ASR) is performed on the device side, has an advantage that latency is short and can be used even when the network is not connected. On the other hand, server-based speech recognition has an advantage that speech recognition is performed based on a large number of named entities stored in the server.
온-디바이스 음성 인식과 서버-기반 음성 인식의 장점을 모두 활용할 수 있도록, 디바이스가 두 방식을 선택적으로 이용하는 방법이 요구된다.In order to take advantage of both on-device voice recognition and server-based voice recognition, there is a need for a device to selectively use both methods.
본 개시의 일 실시 예에 따르면, 서버는, 하나 이상의 인스트럭션들을 저장하는 메모리; 상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서; 및 제1 문자열을 디바이스로부터 수신하는 통신부를 포함하고, 상기 프로세서는, 상기 제1 문자열로부터 복수의 추정 문자열들을 식별하고, 상기 복수의 추정 문자열에 기초하여 제2 문자열을 획득하고, 상기 제2 문자열을 상기 디바이스에게 전송하도록 상기 통신부를 제어하며, 상기 제1 문자열은, 상기 디바이스에 입력된 음성 신호로부터 음성 인식 처리를 거쳐 출력되는 것을 특징으로 할 수 있다.According to an embodiment of the present disclosure, a server includes: a memory for storing one or more instructions; A processor that executes the one or more instructions stored in the memory; And a communication unit receiving a first character string from a device, wherein the processor identifies a plurality of estimated character strings from the first character string, obtains a second character string based on the plurality of estimated character strings, and the second character string The communication unit may be controlled to transmit a signal to the device, and the first character string may be output through a speech recognition process from a voice signal input to the device.
본 개시의 일 실시 예에 따르면 서버의 동작 방법은, 제 1 문자열을 디바이스로부터 수신하는 단계; 상기 제1 문자열로부터 복수의 추정 문자열들을 식별하는 단계; 상기 복수의 추정 문자열에 기초하여 제2 문자열을 획득하는 단계; 및 상기 제2 문자열을 상기 디바이스에게 전송하는 단계를 포함하고, 상기 제1 문자열은, 상기 디바이스에 입력된 음성 신호로부터 음성 인식 처리를 거쳐 출력되는 것을 특징으로 할 수 있다.According to an embodiment of the present disclosure, a method of operating a server may include: receiving a first character string from a device; Identifying a plurality of estimated character strings from the first character string; Obtaining a second character string based on the plurality of estimated character strings; And transmitting the second character string to the device, wherein the first character string is output through a speech recognition process from a voice signal input to the device.
본 개시의 일 실시 예에 따르면 디바이스는, 하나 이상의 인스트럭션들을 저장하는 메모리; 상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서; 및 서버와 통신하는 통신부를 포함하고, 상기 프로세서는, 음성 신호에 대해서 음성 인식을 수행하여 제1 문자열을 획득하고, 상기 제1 문자열을 다른 문자열로 대체할 지 여부를 결정하고, 상기 결정에 기초하여 상기 제1 문자열을 상기 서버로 전송하도록 상기 통신부를 제어하고, 상기 서버에 의해 상기 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 대체됨으로써 획득된 제2 문자열을 상기 서버로부터 수신하도록 상기 통신부를 제어하는 것을 특징으로 할 수 있다.According to an embodiment of the present disclosure, a device includes: a memory that stores one or more instructions; A processor that executes the one or more instructions stored in the memory; And a communication unit communicating with a server, wherein the processor performs speech recognition on a voice signal to obtain a first character string, determines whether to replace the first character string with another character string, and based on the determination The communication unit to control the communication unit to transmit the first character string to the server, and to receive a second character string obtained by replacing at least one character in the first character string with another character by the server from the server. It can be characterized by controlling.
본 개시의 일 실시 예에 따르면 디바이스의 동작 방법은, 음성 신호에 대해서 음성 인식을 수행하여 제1 문자열을 획득하는 단계; 상기 제1 문자열을 다른 문자열로 대체할 지 여부를 결정하는 단계; 상기 결정에 기초하여 상기 제1 문자열을 서버로 전송하는 단계; 및 제2 문자열을 상기 서버로부터 수신하는 단계를 포함하고, 상기 제2 문자열은, 상기 서버에 의해 상기 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 대체됨으로써 획득된 것을 특징으로 할 수 있다.According to an embodiment of the present disclosure, a method of operating a device may include: acquiring a first character string by performing voice recognition on a voice signal; Determining whether to replace the first character string with another character string; Transmitting the first character string to a server based on the determination; And receiving a second character string from the server, wherein the second character string is obtained by replacing at least one character in the first character string with another character by the server.
도 1은 온-디바이스 음성 인식과 서버-기반 음성 인식을 비교하여 설명하기 위한 도면이다.
도 2a는 일 실시 예에 따른 음성 인식 시스템을 도시한다.
도 2b는 일 실시 예에 따른 음성 인식 시스템을 도시한다.
도 2c는 일 실시 예에 따른 음성 인식 시스템을 도시한다.
도 3은 일 실시 예에 따른 디바이스의 블록도를 도시한다.
도 4a는 일 실시 예에 따른 디바이스의 구체적인 블록도를 도시한다.
도 4b는 일 실시 예에 따른 디바이스의 구체적인 블록도를 도시한다.
도 5a는 일 실시 예에 따라 디바이스가 온-디바이스 음성 인식을 수행할 것을 판단하는 방법을 설명하기 위한 도면이다.
도 5b는 일 실시 예에 따라 디바이스가 서버 기반 음성 인식을 수행할 것을 판단하는 방법을 설명하기 위한 도면이다.
도 6은 일 실시 예에 따른 프레임 동기화된 문자열을 설명하기 위한 도면이다.
도 7은 일 실시 예에 따른 서버의 블록도를 도시한다.
도 8a는 일 실시 예에 따른 서버가 디바이스의 음성 인식을 지원하는 방법을 설명하기 위한 도면이다.
도 8b는 일 실시 예에 따른 서버가 음성 신호 프레임 각각에 대응하는 문자 별로 가능도를 획득하여 대체 문자열을 결정하는 방법을 설명하기 위한 도면이다.
도 9는 일 실시 예에 따른 서버의 구체적인 블록도를 도시한다.
도 10a는 일 실시 예에 따라 사후 확률을 계산하기 위해 이용되는 인공 지능 회귀 신경망 (recurrent neural network, RNN)의 구조를 도시한다.
도 10b는 일 실시 예에 따라 가능도(likelihood)를 계산하기 위해 이용되는오차 행렬(confusion matrix)의 예를 도시한다.
도 11a는 일 실시 예에 따른 서버가 디바이스로부터 수신하는 제1 문자열내의 각 문자에 대하여 각 문자가 대체될 대체 문자들에 관한 가능도 행렬을 산출하는 과정을 설명하기 위한 도면이다.
도 11b는 일 실시 예에 따른 서버가 디바이스로부터 수신하는 제1 문자열내의 각 문자에 대하여 각 문자가 대체될 대체 문자들에 관한 가능도 행렬을 산출하는 과정을 설명하기 위한 도면이다.
도 12는 일 실시 예에 따라 두 개의 음성 인식 모듈들을 선택적으로 이용하는 디바이스의 블록도를 도시한다.
도 13은 일 실시 예에 따라 디바이스가 음성 인식을 수행하는 방법의 흐름도를 도시한다.
도 14는 일 실시 예에 따라 디바이스가 음성 인식을 수행하는 구체적인 방법의 흐름도를 도시한다.
도 15는 일 실시 예에 따라 서버의 동작 방법의 흐름도를 도시한다.
도 16은 일 실시 예에 따라 서버의 구체적인 동작 방법의 흐름도를 도시한다.
도 17은 일 실시 예에 따라 서버에서 수행되는 WFST(weighted Finite State Transducer) 디코딩을 설명하기 위한 도면이다.
도 18은 일 실시 예에 따라 디바이스 상에 음성 인식 결과가 디스플레이 되는 화면의 예를 도시한다.
도 19는 일 실시 예에 따른 디바이스의 구체적인 블록도를 도시한다.1 is a diagram for describing a comparison between on-device voice recognition and server-based voice recognition.
2A is a diagram of a speech recognition system according to an embodiment.
2B is a diagram illustrating a speech recognition system according to an embodiment.
2C is a diagram illustrating a speech recognition system according to an embodiment.
3 is a block diagram of a device according to an embodiment.
4A is a detailed block diagram of a device according to an embodiment.
4B is a detailed block diagram of a device according to an embodiment.
5A is a diagram for describing a method of determining that a device performs on-device voice recognition, according to an exemplary embodiment.
5B is a diagram illustrating a method of determining that a device performs server-based voice recognition, according to an exemplary embodiment.
6 is a diagram for describing a frame-synchronized character string according to an exemplary embodiment.
7 is a block diagram of a server according to an embodiment.
8A is a diagram illustrating a method for a server to support voice recognition of a device according to an exemplary embodiment.
8B is a diagram illustrating a method of determining a replacement character string by obtaining a likelihood for each character corresponding to each voice signal frame by a server according to an exemplary embodiment.
9 is a detailed block diagram of a server according to an embodiment.
10A is a diagram illustrating a structure of an artificial intelligence recurrent neural network (RNN) used to calculate a posterior probability according to an embodiment.
10B illustrates an example of a confusion matrix used to calculate a likelihood according to an embodiment.
FIG. 11A is a diagram illustrating a process of calculating a likelihood matrix for replacement characters to be replaced by each character for each character in a first character string received from a device, according to an exemplary embodiment.
11B is a diagram illustrating a process of calculating a likelihood matrix for replacement characters to be replaced by each character for each character in a first character string received from a device according to an exemplary embodiment.
12 is a block diagram of a device that selectively uses two voice recognition modules according to an embodiment.
13 is a flowchart illustrating a method of performing voice recognition by a device according to an exemplary embodiment.
14 is a flowchart of a specific method of performing voice recognition by a device according to an embodiment.
15 is a flowchart illustrating a method of operating a server according to an exemplary embodiment.
16 is a flowchart of a detailed operation method of a server according to an embodiment.
FIG. 17 is a diagram for explaining weighted finite state transducer (WFST) decoding performed in a server according to an embodiment.
18 illustrates an example of a screen on which a voice recognition result is displayed on a device according to an embodiment.
19 is a detailed block diagram of a device according to an embodiment.
본 개시의 실시 예들에서 사용되는 용어는 본 개시의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 실시 예의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.Terms used in the embodiments of the present disclosure have selected general terms that are currently widely used as possible while taking the functions of the present disclosure into consideration, but this may vary according to the intention or precedent of a technician working in the field, the emergence of new technologies, and the like. In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in this case, the meaning of the terms will be described in detail in the description of the corresponding embodiment. Therefore, the terms used in the present disclosure should be defined based on the meaning of the term and the contents of the present disclosure, not the name of a simple term.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "...모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.When a part of the specification is said to "include" a certain component, it means that other components may be further included rather than excluding other components unless otherwise stated. In addition, terms such as "... unit" and "... module" described in the specification mean a unit that processes at least one function or operation, which is implemented as hardware or software, or as a combination of hardware and software. Can be.
본 개시에서 "문자"란, 인간의 언어를 눈에 볼 수 있는 형태로 나타내어 적는데 사용하는 기호를 의미한다. 예를 들어, 문자에는, 한글, 알파벳, 한자, 숫자, 발음 부호, 문장 부호 및 기타 기호가 포함될 수 있다.In the present disclosure, "text" refers to a symbol used to express and write human language in a visible form. For example, characters may include Korean characters, alphabets, Chinese characters, numbers, pronunciation marks, punctuation marks, and other symbols.
본 개시에서 "문자열"이란, 문자들의 배열(sequence)을 의미한다. In the present disclosure, the term "string" refers to a sequence of characters.
본 개시에서 “문자소(grapheme)”란, 적어도 하나의 문자로 구성되는, 소리를 나타내는 가장 작은 단위이다. 예를 들어, 알파벳 표기 체계의 경우, 하나의 문자가 문자소가 될 수 있다. 따라서, 본 개시에서 문자는 문자소를 지칭할 수 있으며, 본 개시에서 문자열은, 문자소들의 배열을 의미할 수 있다. 또한, 본 개시에서 문자열은 텍스트라고 지칭될 수도 있다.In the present disclosure, “grapheme” is the smallest unit representing a sound, composed of at least one character. For example, in the case of an alphabetic notation system, one character may be a character element. Accordingly, in the present disclosure, a character may refer to a character place, and in the present disclosure, a character string may refer to an arrangement of character elements. Also, in the present disclosure, a character string may be referred to as text.
"형태소(morpheme)"란, 적어도 하나의 문자소로 구성되는, 의미를 가지는 가장 작은 단위이다. "단어(word)"란, 적어도 하나의 형태소로 구성되는, 자립적으로 쓰일 수 있거나 문법적 기능을 나타내는 언어의 최소 기본 단위이다. "음소"란 인간의 언어에서 하나의 단어를 다른 단어와 구별하는 소리의 단위이다.A "morpheme" is the smallest unit that has a meaning, consisting of at least one letter. A "word" is the smallest basic unit of a language that can be used independently or represents a grammatical function, composed of at least one morpheme. A "phoneme" is a unit of sound that distinguishes one word from another in human language.
본 개시의 일 실시 예에 따른 음성 인식 모델은, 음성 신호를 문자열로 변환하여 출력할 수 있다. 본 개시의 일 실시 예에 따른 음성 인식 모델이 출력하는 문자열은 "프레임 동기화된 문자열"일 수 있다. "프레임"이란 음성 신호의 처리를 위하여 음성 신호가 일정한 시간 간격으로 분할되는 단위, 또는 분할된 음성 신호 그 자체를 의미할 수 있다. 본 개시에서 "프레임 동기화된 문자열"이란, 음성 신호가 음성 인식 모델에 의해 문자열로 변환되어 출력됨에 있어서, 음성 신호의 프레임들 각각에 개별적으로 대응하는 문자들을 포함하는 문자열을 의미한다.The speech recognition model according to an embodiment of the present disclosure may convert a speech signal into a character string and output it. A character string output by the speech recognition model according to an embodiment of the present disclosure may be a “frame synchronized character string”. The term "frame" may mean a unit in which an audio signal is divided at regular time intervals for processing an audio signal, or a divided audio signal itself. In the present disclosure, the term "frame-synchronized character string" refers to a character string including characters individually corresponding to each of the frames of the speech signal when the speech signal is converted into a character string by the speech recognition model and output.
예를 들어, 음성 인식 모델은, 사용자가 "baseball"이라고 발음하는 음성 신호를 수신하고, 프레임 동기화된 문자열인 [b, b, a, , a, a, s, s, e, , b, b, a, a, l]을 출력할 수 있다.For example, the speech recognition model receives a speech signal that the user pronounces "baseball", and is frame-synchronized string [b, b, a,, a, a, s, s, e,, b, b , a, a, l] can be printed.
본 개시에서 음성 인식 모델이 음성 신호로부터 소정 문자열을 출력함에 있어서, "소정 문자열의 신뢰도"란, 소정 문자열을 출력한 음성 인식 모델이 얼마나 정확하게 음성 인식을 수행하고 있는 가의 정도를 나타낸다. 예를 들어, 소정 문자열의 신뢰도는, 소정 문자열로부터 획득되는 가능도, 소정 문자열을 추정하는 과정에서 출력되는 부분 가능도 또는 사후 확률 값 등에 기초하여 미리 결정된 수학식에 따라 산출될 수 있다. 소정 문자열의 신뢰도가 높을수록, 소정 문자열이 음성 인식 모델로부터 정확하게 추정되었다고 판단될 수 있다.In the present disclosure, when the speech recognition model outputs a predetermined character string from a speech signal, "the reliability of the predetermined character string" indicates how accurately the speech recognition model outputting the predetermined character string performs speech recognition. For example, the reliability of a predetermined character string may be calculated according to a predetermined equation based on a likelihood obtained from a predetermined character string, a partial likelihood output in the process of estimating the predetermined character string, or a posterior probability value. As the reliability of the predetermined character string is higher, it may be determined that the predetermined character string is accurately estimated from the speech recognition model.
본 개시에서 "소정 문자열에 대한 평가 정보"는, 일 실시 예에 따른 서버가 소정 문자열보다 높은 신뢰도를 가지는 다른 문자열을 추천하여 출력하기 위하여 이용하는 소정 문자열에 대한 정보를 의미할 수 있다. 예를 들어, 소정 문자열에 대한 평가 정보는, 소정 문자열로부터 획득되는 복수의 추정 문자열들의 가능도를 포함할 수 있다. 예를 들어, 일 실시 예에 따른 서버는, 복수의 추정 문자열들 중에서 가능도를 최대로 하는 다른 문자열을 선택하여 출력할 수 있다.In the present disclosure, "evaluation information for a predetermined character string" may mean information on a predetermined character string used by the server to recommend and output another character string having a higher reliability than the predetermined character string according to an embodiment. For example, the evaluation information for a predetermined character string may include the likelihood of a plurality of estimated character strings obtained from the predetermined character string. For example, the server according to an embodiment may select and output another character string that maximizes likelihood from among a plurality of estimated character strings.
한편, 본 개시에서 "가능도(likelihood)"란, 가능한 정도를 뜻하는 것으로서, "사건 A에 대한 사건 B의 가능도"는, 사건 A가 발생하였을 때 사건 B가 일어날 가능성을 나타내는 조건부 확률 P(B|A)을 의미할 수 있다.On the other hand, in the present disclosure, "likelihood" means a possible degree, and "the likelihood of event B with respect to event A" is a conditional probability P indicating the likelihood that event B will occur when event A occurs. It can mean (B|A).
본 개시에서 음성 인식 모델이 음성 신호로부터 소정 문자열을 출력함에 있어서, "소정 문자열로부터 획득되는 가능도(likelihood)"란, 소정 문자열로부터 추정되는 복수의 추정 문자열들의 가능도를 의미한다. 소정 문자열로부터 추정되는 복수의 추정 문자열들은, 소정 문자열 내의 적어도 하나의 문자가 다른 문자로 대체됨으로써 획득되는 복수의 문자열들을 의미할 수 있다. In the present disclosure, when the speech recognition model outputs a predetermined character string from a speech signal, "likelihood obtained from the predetermined character string" means the likelihood of a plurality of estimated character strings estimated from the predetermined character string. The plurality of estimated character strings estimated from the predetermined character string may mean a plurality of character strings obtained by replacing at least one character in the predetermined character string with another character.
보다 구체적으로는, 음성 인식이 정확하게 수행되었을 때에 출력되는 문자열을 참값(ground truth) 문자열이라고 하면, "소정 문자열로부터 획득되는 가능도"는, 복수의 추정 문자열들 각각이 참값 문자열이라고 가정하였을 때 음성 인식 결과로서 소정 문자열이 추정될 가능성을 의미할 수 있다. 본 개시의 일 실시 예에 따르면, "소정 문자열로부터 획득되는 가능도"는 소정 문자열 내의 각 문자에 대하여 각 문자가 대체될 대체 문자들에 관한 가능도 행렬들을 포함할 수 있다. More specifically, if the character string that is output when speech recognition is correctly performed is referred to as a ground truth character string, the "likelihood obtained from a predetermined character string" is a speech when it is assumed that each of the plurality of estimated character strings is a true value character string. As a result of recognition, it may mean a possibility that a predetermined character string is estimated. According to an embodiment of the present disclosure, the "likelihood obtained from a predetermined character string" may include likelihood matrices regarding replacement characters to which each character is replaced with respect to each character in a predetermined character string.
본 개시의 일 실시예에 따르면, "소정 문자열로부터 획득되는 가능도"는, 소정 문자열 내의 각 문자와 발음이 유사한 대체 문자들을 식별하고, 식별된 대체 문자들에 기초하여 소정 문자열 내의 적어도 하나의 문자가 다른 문자로 교정된 추정 문자열들을 결정하기 위하여 이용될 수 있다. 더 나아가서는, 결정된 추정 문자열들 중에서, 언어 모델 및 사전 정보 등 미리 저장된 정보에 기초하여 가장 적합한 추정 문자열이 선택되어 소정 문자열 대신에 추천될 수 있다.According to an embodiment of the present disclosure, "the likelihood obtained from a predetermined character string" is to identify replacement characters having a similar pronunciation to each character in a predetermined character string, and at least one character in a predetermined character string based on the identified replacement characters. Can be used to determine estimated strings corrected to other characters. Furthermore, among the determined estimated character strings, the most suitable estimated character string may be selected based on pre-stored information such as language model and dictionary information and recommended instead of a predetermined character string.
음성 인식 모델이 음성 인식을 수행함에 있어서 앞에서 수행된 음성 인식 결과가 이 후에 수행되는 음성 인식 결과에 영향을 미칠 수 있다. 소정 문자가 발음이 유사한 다른 문자로 잘못 인식 되는 경우, 잘못 인식됨으로 인해 언어적인 정보가 틀어지면서 소정 문자의 뒤에 나오는 문자들 역시 잘못 인식 될 확률이 높아질 수 있다. 즉, 소정 문자가 다른 문자로 오인식 되는 경우, 소정 문자와 뒤에 나오는 문자들을 조합하여 결정되는 단어들과 오인식된 다른 문자와 뒤에 나오는 문자들을 조합하여 결정되는 단어들이 상이해질 수 있다.When the speech recognition model performs speech recognition, the result of speech recognition performed previously may affect the result of speech recognition performed later. When a predetermined character is misrecognized as another character having a similar pronunciation, as the linguistic information is misrecognized due to the misrecognition, the probability that the characters following the predetermined character are also misrecognized may increase. That is, when a predetermined character is misrecognized as another character, words determined by combining the predetermined character and subsequent characters, and words determined by combining other misrecognized characters and subsequent characters may be different.
따라서, 본 개시의 일 실시예에 따른 디바이스 또는 서버는, 소정 문자열에 대한 발음 정보와 언어 정보를 함께 고려하여 디코딩함으로써 대체 문자열을 획득하기 위해서, 소정 문자열로부터 획득되는 가능도를 이용할 수 있다.Accordingly, the device or server according to an embodiment of the present disclosure may use the likelihood obtained from the predetermined character string in order to obtain a replacement character string by considering and decoding pronunciation information and language information for a predetermined character string.
본 개시에서 "소정 문자에 대해서 획득되는 가능도 행렬"이란, 소정 문자가 대체될 대체 문자들에 대한 가능도 값들을 포함하는 행렬을 의미할 수 있다. "소정 문자가 대체될 대체 문자에 대한 가능도 값"이란, 대체 문자가 참값(ground truth) 문자라고 가정하였을 때 음성 인식 결과로서 소정 문자가 추정될 확률을 의미할 수 있다. 예를 들어, 음성 인식 결과 획득되는 문자열 내에 포함되는 문자 "a"에 대해서, 참값(ground truth) 문자가 "a"일 확률 값, "b"일 확률 값, "c"일 확률 값, ..., 및 "z"일 확률 값을 포함하는 가능도 행렬 [0.4 0.01 0.01 0.01 0.2 ... 0.01]이 획득될 수 있다. 문자열 내에 포함되는 각 문자에 대응하는 대체 문자들에 대한 가능도 값들을 포함하는 가능도 행렬을 획득함에 있어서, 각 문자와 발음이 유사한 대체 문자들에 대해서 높은 가능도 값이 부여될 수 있다.In the present disclosure, "a likelihood matrix obtained for a predetermined character" may mean a matrix including likelihood values for replacement characters to which a predetermined character is to be replaced. "The likelihood value for a replacement character to be replaced with a predetermined character" may mean a probability that a predetermined character is estimated as a result of speech recognition when the replacement character is assumed to be a ground truth character. For example, for a character "a" included in a character string obtained as a result of speech recognition, a probability value of "a" as a ground truth character, a probability value of "b", a probability value of "c", .. ., and a likelihood matrix [0.4 0.01 0.01 0.01 0.2 ... 0.01] including a probability value of "z" may be obtained. In obtaining a likelihood matrix including likelihood values for replacement characters corresponding to each character included in a character string, a high likelihood value may be assigned to replacement characters having a similar pronunciation to each character.
본 개시에서, "소정 문자열로부터 획득되는 가능도"는 소정 문자열 내의 각 문자에 대응하는 대체 문자들에 관한 가능도 값들로부터 획득될 수 있다. 이 때, 소정 문자열 내의 각 문자에 대응하는 대체 문자들에 관한 가능도 값들은, 각 문자의 이전에 누적된 문자들을 고려하여 계산될 수 있다. 그러나 본 개시는 이에 제한되지 않으며, 소정 문자열 내의 각 문자에 대응하는 대체 문자들에 관한 가능도 값들은, 각 문자의 이전에 누적된 문자들을 고려하지 않고, 각 문자 자체만을 고려하여 계산될 수 있다.In the present disclosure, "the likelihood obtained from a predetermined character string" may be obtained from likelihood values for replacement characters corresponding to each character in the predetermined character string. At this time, likelihood values for replacement characters corresponding to each character in a predetermined character string may be calculated in consideration of previously accumulated characters of each character. However, the present disclosure is not limited thereto, and the likelihood values for replacement characters corresponding to each character in a predetermined character string may be calculated by considering only each character itself, without considering the previously accumulated characters of each character. .
본 개시의 일 실시 예에 따르면, 소정 문자열 내의 각 문자의 이전에 누적된 문자들을 고려하여 "소정 문자열로부터 획득되는 가능도"는 "소정 문자열에 포함되는 각 문자의 사후 확률들(posterior probabilities)" 및 소정 문자열의 "문자 배열 확률(sequence probability)"로부터 계산될 수 있다. According to an embodiment of the present disclosure, in consideration of the previously accumulated characters of each character in a predetermined character string, "the likelihood obtained from the predetermined character string" is "posterior probabilities of each character included in the predetermined character string" And a "sequence probability" of a predetermined character string.
사건 A의 "사후 확률"이란, 사건 A와 관련된 사건, 관측 사실 또는 배경 지식을 고려하였을 때 사건 A가 기대되는 조건부 확률을 의미한다. The "post-probability" of event A means the conditional probability that event A is expected given the event, observational facts, or background knowledge associated with event A.
본 개시에서 음성 인식 모델이 음성 신호로부터 문자열을 출력함에 있어서, "문자열 내의 소정 문자의 사후 확률들"은, 문자열 내의 소정 문자의 이전 문자들을 고려하였을 때, 음성 인식 모델이 소정 문자를 정확하게 예측했을 확률 및 다른 문자를 소정 문자로 잘못 예측했을 확률을 포함할 수 있다. In the present disclosure, when the speech recognition model outputs a character string from a speech signal, "the posterior probabilities of a predetermined character in the character string" are, when considering the previous characters of the predetermined character in the character string, the speech recognition model should accurately predict the predetermined character Probability and probability of incorrectly predicting another character as a given character may be included.
본 개시에서 음성 인식 모델이 음성 신호로부터 문자열을 출력함에 있어서, "문자열의 문자 배열 확률"이란, 해당 문자열에 따라 문자들이 배열될 확률을 의미할 수 있다.In the present disclosure, when the speech recognition model outputs a character string from a speech signal, the "character arrangement probability of a character string" may mean a probability that characters are arranged according to the corresponding character string.
본 개시의 일 실시 예에 따르면, 소정 문자열 내의 각 문자 자체만을 고려하여 "소정 문자열로부터 획득되는 가능도"는, 각 문자들이 잘못 예측됐을 확률 값들을 포함하는 "오차 행렬(confusion matrix)"로부터 계산될 수 있다. 본 개시에서 "오차 행렬"이란, 에러 행렬(error matrix)이라고도 지칭되며, 음성 인식 모델이 음성 신호를 소정 문자열로 변환하여 출력함에 있어서, 음성 인식 모델이 소정 문자열에 포함되는 소정 문자를 정확하게 예측했을 확률 및 다른 문자를 소정 문자로 잘못 예측했을 확률을 포함한다. 예를 들어, 소정 문자와 발음이 유사한 문자들에 대해서는, 음성 인식 모델에 의해 발음이 유사한 문자들이 소정 문자로 잘못 예측했을 확률이 높게 부여될 수 있다.According to an embodiment of the present disclosure, considering only each character in a predetermined character string, "the likelihood obtained from a predetermined character string" is calculated from a "confusion matrix" including probability values that each character is incorrectly predicted. Can be. In the present disclosure, the term "error matrix" is also referred to as an error matrix, and when the speech recognition model converts and outputs a speech signal into a predetermined character string, the speech recognition model accurately predicts a predetermined character included in the predetermined character string. It includes the probability and the probability of incorrectly predicting another character as a given character. For example, for characters having similar pronunciation to a predetermined character, a high probability that characters having similar pronunciation are erroneously predicted as a predetermined character by a speech recognition model may be given.
본 개시에서 "음향 모델"이란, 음성 신호가 어떠한 문자 또는 발음 기호에 매칭되는지 문자소 단위로 판단할 수 있는 정보를 포함하는 모델을 의미할 수 있다. 예를 들어, 본 개시의 일 실시 예에 따른 디바이스는, 음향 모델에 기초하여 음성 신호와 문자들 각각이 매칭될 확률을 계산할 수 있다. In the present disclosure, the term “sound model” may mean a model including information capable of determining which character or pronunciation symbol is matched with a speech signal in units of letters. For example, the device according to an embodiment of the present disclosure may calculate a probability that each of a voice signal and characters are matched based on an acoustic model.
본 개시에서 "사전 정보(dictionary information)"란, 복수의 단어들과 복수의 단어들 각각에 포함되는 문자들의 매핑 정보를 포함할 수 있다. "언어 모델"은, 특정 단어열이 주어졌을 때 다음에 나올 단어들의 확률을 추정할 수 있도록 단어들 간의 관계를 학습한 인공 지능 모델일 수 있다.In the present disclosure, "dictionary information" may include mapping information of a plurality of words and characters included in each of the plurality of words. The "language model" may be an artificial intelligence model in which a relationship between words is learned so that a probability of the next word appearing can be estimated when a specific word sequence is given.
본 개시에서 "인공 신경망"이란, 사람 또는 동물 두뇌의 신경망에 착안하여 구현된 컴퓨팅 시스템의 총칭한다. 인공 신경망은, 기계 학습(machine learning)의 세부 방법론 중 하나로, 신경 세포인 뉴런(neuron)이 여러 개 연결된 망의 형태이다. 인공 신경망은 하드웨어로 구현될 수도 있으나, 주로 컴퓨터 소프트웨어로 구현된다. 인공 신경망은 기초 컴퓨팅 단위인 뉴런 여러 개가 가중된 링크(weighted link)로 연결된 형태이다. 가중된 링크(weighted link)는 주어진 환경에 적응할 수 있도록 가중치를 조정할 수 있다.In the present disclosure, the term "artificial neural network" is a generic term for a computing system implemented with the focus on a neural network of a human or animal brain. Artificial neural networks are one of the detailed methodologies of machine learning, and are in the form of a network in which multiple neurons, which are neurons, are connected. Artificial neural networks may be implemented in hardware, but are mainly implemented in computer software. An artificial neural network is a form in which several neurons, which are basic computing units, are connected by weighted links. A weighted link can adjust its weight to adapt to a given environment.
인공 신경망은 자기 조직화 지도(SOM: Self-Organizing Map), 순환 신경망(RNN: Recurrent Neural Network), 콘볼루션 신경망(CNN: Convolutional Neural Network)과 같은 다양한 모델에 대한 총칭으로, 그 종류는 수십 가지에 이른다.Artificial neural network is a generic term for various models such as Self-Organizing Map (SOM), Recurrent Neural Network (RNN), and Convolutional Neural Network (CNN). To come.
본 개시에서 "도메인"이란, 어떠한 속성과 관련된 단어들의 집합을 해당 속성의 도메인이라 한다.In the present disclosure, a "domain" refers to a set of words related to a certain attribute as a domain of the attribute.
본 개시에서 "제1 문자열을 교정하는 동작"은, 제1 문자열에 포함되는 적어도 하나의 문자를 다른 문자로 대체함으로써, 제1 문자열 보다 높은 신뢰도를 가지는 제2 문자열을 추천하여 출력하는 동작을 의미할 수 있다. 따라서, 본 개시에서 '문자열의 교정', '문자의 교정', '소정 문자를 다른 문자로 대체', '소정 문자 대신에 다른 문자를 추천', '소정 문자열을 다른 문자열로 대체', 및 '소정 문자열 대신에 다른 문자열을 추천' 하는 표현은 대체되어 이용될 수 있다.In the present disclosure, "an operation of correcting a first character string" means an operation of recommending and outputting a second character string having a higher reliability than the first character string by replacing at least one character included in the first character string with another character. can do. Accordingly, in the present disclosure,'correction of a character string','correction of a character','replace a predetermined character with another character','recommend another character instead of a predetermined character','replace a predetermined character string with another character string', and ' The expression'recommending another character string instead of a predetermined character string' may be substituted and used.
본 개시의 일 실시 예에 따른 음성 인식 시스템에 포함되는 디바이스 또는 서버는, 사용자에게 "음성 비서 서비스"를 제공할 수 있다. 음성 비서 서비스는, 사용자와의 대화를 제공하는 서비스일 수 있다. 음성 비서 서비스는 사용자의 상황, 디바이스의 상황 등을 고려하여 사람이 사용자와 직접 대화하는 것처럼 사용자에게 응답 메시지를 제공할 수 있다. 또한, 음성 비서 서비스는, 사용자의 개인 비서처럼 사용자가 필요한 정보를 적절하게 생성하여 사용자에게 제공할 수 있다. 음성 비서 서비스는, 예를 들어, 방송 서비스, 콘텐트 공유 서비스, 콘텐트 제공 서비스, 전력 관리 서비스, 게임 제공 서비스, 채팅 서비스, 문서 작성 서비스, 검색 서비스, 통화 서비스, 사진 촬영 서비스, 교통 수단 추천 서비스 및 동영상 재생 서비스 등 다양한 서비스와 연계되어 사용자가 필요한 정보 또는 기능을 사용자에게 제공할 수 있다.A device or server included in the voice recognition system according to an embodiment of the present disclosure may provide a "voice assistant service" to a user. The voice assistant service may be a service that provides a conversation with a user. The voice assistant service may provide a response message to a user as if a person had a direct conversation with the user in consideration of the user's situation and the device's situation. In addition, the voice assistant service can appropriately generate and provide information required by the user, like the user's personal assistant. The voice assistant service includes, for example, a broadcasting service, a content sharing service, a content providing service, a power management service, a game providing service, a chat service, a document writing service, a search service, a call service, a photo shooting service, a transportation method recommendation service, and In connection with various services such as a video playback service, information or functions required by the user can be provided to the user.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.Hereinafter, exemplary embodiments of the present disclosure will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art may easily implement the exemplary embodiments. However, the present disclosure may be implemented in various different forms and is not limited to the exemplary embodiments described herein.
이하에서는 도면을 참조하여 본 개시의 실시 예들을 상세하게 설명한다.Hereinafter, exemplary embodiments of the present disclosure will be described in detail with reference to the drawings.
도 1은 온-디바이스 음성 인식과 서버-기반 음성 인식을 비교하여 설명하기 위한 도면이다.1 is a diagram for describing a comparison between on-device voice recognition and server-based voice recognition.
온-디바이스 음성 인식은, 사용자(10)의 발화에 대한 음성 인식이 디바이스(100) 측에서 수행되는 것을 의미하고, 서버-기반 음성 인식은, 디바이스(100)에서 수신된 사용자(10)의 발화에 대한 음성 인식이 서버(200) 측에서 수행되는 것을 의미한다.On-device voice recognition means that voice recognition for the user's 10 utterance is performed on the
엔드-투-엔드(End-to-end) 음성 인식과 압축 기술의 발전으로 온-디바이스 음성 인식 기술이 점점 발전함에 따라 서버-기반 음성 인식과의 성능 차이가 점점 줄어들고 있다. 특히, 특정 분야에 제한되지 않는 오픈 도메인(Open Domain)의 발화에 대한 음성 인식이나 일반적인 받아쓰기에 있어서 디바이스와 서버 간의 성능 차이가 거의 없어 졌다. 일반적인 받아쓰기란, 개체명(Named Entity) 위주의 도메인에 해당하지 않는 발화에 대한 받아쓰기를 의미한다. 개체명은, 특정 지명, 인명, 기기명, 상표명 등을 포함할 수 있다. 도메인이란, 어떠한 속성과 관련된 단어들의 집합을 해당 속성의 도메인이라 한다. With the development of end-to-end speech recognition and compression technology, on-device speech recognition technology is gradually developing, and the performance difference from server-based speech recognition is gradually decreasing. In particular, there is almost no difference in performance between the device and the server in speech recognition or general dictation for open domain utterances that are not limited to a specific field. General dictation refers to dictation for utterances that do not correspond to a domain based on a named entity. The entity name may include a specific place name, a person name, a device name, a brand name, and the like. With a domain, a set of words related to a certain attribute is called a domain of the attribute.
온-디바이스 음성 인식은 지연 시간(latency)이 약 50ms 미만으로, 수백 ms인 서버-기반 음성 인식의 지연 시간 보다 짧고, 네트워크 연결이 되지 않는 교외, 비행기 내부, 또는 전파 음영 지역 등에서도 이용 가능하다는 장점이 있다. 또한, 온-디바이스 음성 인식은, 보안 및 사생활 침해 이슈에서 보다 유리하고, 서버를 관리하는 비용을 줄일 수 있다는 장점이 있다.On-device speech recognition has a latency of less than about 50ms, less than that of server-based speech recognition, which is hundreds of ms, and can be used in suburbs, inside airplanes, or in areas where there is no network connection. There is an advantage. In addition, on-device voice recognition is more advantageous in security and privacy invasion issues, and has the advantage of reducing the cost of managing the server.
한편, 서버-기반 음성 인식은, 지명, 인명, 상표명등과 같은 개체명들을 디바이스보다 많이 저장할 수 있는 서버에서 구현된다는 장점이 있다. On the other hand, server-based speech recognition has the advantage of being implemented in a server capable of storing more entity names such as geographical names, human names, and brand names than devices.
따라서, 서버-기반 음성 인식에 의하면, 새로운 유행어나 새로운 신곡 제목 등과 관련된 단어들에 보다 높은 가중치를 부여할 수 있고, 음성 인식이 안 되는 경우 사전에 해당 단어를 추가함으로써 음성 인식의 결함을 복구하는 핫-픽스(hot-fix)가 가능하다는 장점이 있다. 또한, 서버에서 동작하는 써드 파티(third-party) 애플리케이션에 최적화된 언어 모델 및 사전 정보 등을 이용하여 음성 인식 결과에 대한 리스코어링(rescoring)이 가능하다는 장점이 있다.Therefore, according to server-based speech recognition, a higher weight can be given to words related to a new buzzword or a new song title, and when speech recognition is not possible, the defect in speech recognition is repaired by adding the word to the dictionary. The advantage is that hot-fix is possible. In addition, there is an advantage in that rescoring of the speech recognition result is possible by using a language model and dictionary information optimized for a third-party application operating in a server.
그러므로, 받아쓰기, 일반적인 명령, 자막 생성 등과 같은 일반적인 목적의 음성 인식은 디바이스에서 수행하되, 특정 도메인에 해당하는 언어 모델 및 사전 정보 등을 이용하여 음성 인식이 수행되어야 하는 경우 서버에서 수행하도록 하는 하이브리드(hybrid) 방식의 음성 인식이 요구된다.Therefore, speech recognition for general purposes such as dictation, general commands, subtitle generation, etc., is performed by the device, but when speech recognition is to be performed using a language model and dictionary information corresponding to a specific domain, a hybrid ( hybrid) method of speech recognition is required.
이 때, 전체 음성 인식 과정을 디바이스와 서버가 나누어서 수행할 경우, 디바이스와 서버 사이에 의존성(dependency)이 생길 수 있다. In this case, when the device and the server separately perform the entire speech recognition process, a dependency may occur between the device and the server.
일 예로서, 발화에 대해 음향 모델을 적용하는 계산이 디바이스에서 수행되고, 음향 모델로부터 추출된 중간값에 대해 언어 모델과 사전 정보를 적용한 디코딩 계산이 서버에서 수행되는 방법이 이용될 수 있다. 이러한 방법에 따르면 디바이스와 서버 사이에는 의존성이 생기게 되므로, 서로 호환되지 않은 디바이스와 서버 간에는 사용할 수 없다는 문제점이 있다.As an example, a method in which a calculation for applying an acoustic model to speech is performed in a device, and a decoding calculation in which a language model and dictionary information are applied to an intermediate value extracted from the acoustic model is performed in a server may be used. According to this method, since there is a dependency between the device and the server, there is a problem that it cannot be used between a device and a server that are not compatible with each other.
다른 예로서, 인코딩 계산 및 디코딩 계산 과정을 포함하는 엔드-투-엔드(end-to-end) 음성 인식 방식에 있어서 인코딩 계산만 디바이스에서 수행되고 인코딩 된 데이터에 대한 디코딩 계산이 서버에서 수행되는 방법이 이용될 수 있다. 디코딩 계산이 수행되기 위해서는 인코딩 방식에 대한 사전 정보가 필요하므로 인코딩을 수행하는 디바이스와 디코딩을 수행하는 서버 사이에는 의존성이 생기게 된다. 따라서, 이러한 방법도 서로 호환되지 않은 디바이스와 기기 간에는 사용할 수 없다는 문제점이 있다.As another example, in an end-to-end speech recognition method including an encoding calculation and a decoding calculation process, only the encoding calculation is performed in the device and the decoding calculation for the encoded data is performed in the server. Can be used. In order to perform the decoding calculation, prior information on the encoding method is required, so there is a dependency between the device performing the encoding and the server performing the decoding. Accordingly, there is a problem that such a method cannot be used between devices and devices that are not compatible with each other.
상술한 문제점을 해결하기 위하여, 도 2a에 도시된 본 개시의 일 실시 예에 따른 음성 인식 시스템이 제안된다.In order to solve the above-described problem, a speech recognition system according to an embodiment of the present disclosure illustrated in FIG. 2A is proposed.
본 개시의 일 실시 예에 따른 디바이스(100)는, 음성 신호를 제1 문자열로 변환하는 온-디바이스 음성 인식을 수행할 수 있다. 디바이스(100)는, 제1 문자열의 신뢰도에 기초하여, 온-디바이스 음성 인식이 실패하였는 지 여부를 판단할 수 있다. 디바이스(100)는, 온-디바이스 음성 인식이 실패하는 경우, 음성 인식의 결과인 제1 문자열을 서버(200)에게 전송할 수 있다. The
본 개시의 일 실시 예에 따르면, 디바이스(100)가 음성 신호에 대한 정보를 문자열의 형태로 서버(200)에게 전송함으로써, 디바이스(100)가 어떤 종류의 온-디바이스 음성 인식을 사용하는지에 관계없이 서버(200)가 문자열을 처리할 수 있다는 장점이 있다.According to an embodiment of the present disclosure, the
본 개시의 일 실시 예에 따라 디바이스(100)로부터 서버(200)에게 전송되는 제1 문자열은, 프레임 동기화된 문자열일 수 있다. According to an embodiment of the present disclosure, the first character string transmitted from the
‘프레임’이란 음성 신호의 처리를 위하여 음성 신호가 일정한 시간 간격으로 분할되는 단위, 또는 분할된 음성 신호 그 자체를 의미할 수 있다. “프레임 동기화된 문자열”이란, 음성 신호가 음성 인식 모델에 의해 문자열로 변환되어 출력됨에 있어서, 음성 신호의 프레임들 각각에 개별적으로 대응하는 문자들을 포함하는 문자열을 의미한다.A'frame' may mean a unit in which a voice signal is divided at regular time intervals for processing a voice signal, or a divided voice signal itself. "Frame-synchronized character string" means a character string including characters individually corresponding to each of the frames of the speech signal when the speech signal is converted into a character string by the speech recognition model and output.
일 실시 예에 따른 디바이스(100)는, RNN-T나 CTC등의 알고리즘을 이용하여 프레임 동기화된 문자열을 음성 인식 결과로서 생성할 수 있다.The
그러나 본 개시는 이에 제한되지 않으며, 일 실시 예에 따른 디바이스(100)는, 디바이스(100)의 음성 인식 결과가 프레임 동기화되지 않은 경우에도, 강제 정렬(forced alignment)을 수행함으로써, 프레임 동기화된 문자열을 생성할 수 있다. 프레임 동기화된 문자열 및 강제 정렬에 의해 프레임 동기화된 문자열을 생성하는 구체적인 방법과 관련하여서는, 후에 도 6을 참조하여 구체적으로 설명한다.However, the present disclosure is not limited thereto, and the
본 개시의 일 실시 예에 따른 디바이스(100)는, 온-디바이스 음성 인식을 이용한 음성 인식 수행 결과에 대한 신뢰도(confidence score)가 충분히 높은 경우, 음성 인식 수행 결과를 그대로 이용할 수 있다. The
반면에, 본 개시의 일 실시 예에 따른 디바이스(100)는, 온-디바이스 음성 인식을 이용하여 음성 인식을 수행한 결과의 신뢰도가 충분히 높지 않다고 판단하는 경우, 음성 인식 결과인 문자열을 서버(200)에게 전송할 수 있다. On the other hand, if the
따라서, 본 개시의 일 실시 예에 따른 디바이스(100)는, 온-디바이스 음성 인식을 이용하여 음성 인식을 수행한 결과의 신뢰도가 충분히 높지 않다고 판단하는 경우, 서버(200)에게 음성 신호를 전송하여 음성 인식 과정을 처음부터 서버(200)에서 다시 시작하도록 하는 것이 아니므로 처리 시간을 감소시킬 수 있다는 장점이 있다.Therefore, when it is determined that the reliability of the result of performing speech recognition using on-device speech recognition is not sufficiently high, the
본 개시의 일 실시 예에 따른 디바이스(100)는, 온-디바이스 음성 인식을 이용하여 음성 인식을 수행한 결과의 신뢰도가 충분히 높지 않다고 판단하는 경우, 문장 단위, 단어 단위, 구 단위 또는 프레임 단위로 음성 인식 결과인 문자열을 서버(200)에게 전송할 수 있다. When it is determined that the reliability of a result of performing speech recognition using on-device speech recognition is not sufficiently high, the
일 실시 예에 따른 디바이스(100)는, 음성 인식을 수행하여 문장 또는 구(句, phrase)를 구성하는 문자열을 획득한 경우, 문장 또는 구에 포함되는 문자들을 모두 서버(200)에게 전송하거나, 문장 또는 구에 포함되는 문자들 중 일부를 서버(200)에게 전송할 수 있다. 디바이스(100)는, 문자열의 신뢰도에 기초하여, 신뢰도가 낮은 일부의 문자들을 서버(200)에게 전송할 수 있다.The
일 실시 예에 따른 디바이스(100)는, 서버(200)에서 교정된 문자열을 수신하고, 교정이 필요 없다고 판단되어 서버(200)에게 전송되지 않았던 문자열을 교정된 문자열과 조합할 수 있다. 일 실시 예에 따른 디바이스(100)는, 조합된 문자열을 출력하거나, 조합된 문자열을 해석한 결과에 기초하여 음성 비서 서비스를 제공할 수 있다.The
본 개시의 일 실시 예에 따른 서버(200)는, 문장 단위, 단어 단위, 구 단위 또는 프레임 단위로 음성 인식 결과인 문자열을 디바이스(100)로부터 수신할 수 있다.The
본 개시의 일 실시 예에 따른 서버(200)는, 서버(200) 내에 저장된 언어 모델 및 사전 정보를 이용하여, 수신된 제1 문자열의 오류를 교정할 수 있다. 서버(200)는, 디바이스(100)에 저장되는 언어 모델 보다 많은 양의 정보를 포함하는 서버(200) 내의 언어 모델을 이용하여, 제1 문자열로부터 제2 문자열을 획득할 수 있다. 서버(200)는, 제1 문자열에 포함되는 적어도 하나의 문자를 다른 문자로 대체함으로써 제2 문자열을 획득할 수 있다. 제2 문자열은 제1 문자열에 포함되어 있던 오류가 교정된 문자열일 수 있다.The
본 개시에서 일 실시 예에 따른 서버(200)는, 디바이스(100)로부터 수신된 제1 문자열에 포함되는 적어도 하나의 문자를 다른 문자로 대체함으로써, 제1 문자열을 교정하고, 교정된 제1 문자열을 디바이스(100)에게 전송할 수 있다. In the present disclosure, the
“제1 문자열을 교정하는 동작”은, 제1 문자열 보다 높은 신뢰도를 가지는 제2 문자열을 추천하여 출력하는 동작을 의미할 수 있다. 따라서, 본 개시에서 ‘문자열의 교정’, ‘문자의 교정’, ‘소정 문자를 다른 문자로 대체’, ‘소정 문자 대신에 다른 문자를 추천’, ‘소정 문자열을 다른 문자열로 대체’, 및 ‘소정 문자열 대신에 다른 문자열을 추천’하는 표현은 서로 대체되어 사용될 수 있다.The “operation of correcting the first character string” may refer to an operation of recommending and outputting a second character string having a higher reliability than the first character string. Accordingly, in the present disclosure,'correction of a character string','correction of a character','replace a predetermined character with another character','recommend another character instead of a predetermined character','replace a predetermined character string with another character string', and ' The expression'recommending another string instead of a predetermined string' may be used interchangeably.
일 실시 예에 따른 서버(200)는, 문장 또는 구를 구성하는 문자열을 디바이스(100)로부터 획득한 경우, 문장 또는 구에 포함되는 문자들에 대해서 교정을 수행하거나, 문장 또는 구에 포함되는 문자들 중 일부에 대해서 교정을 수행할 수 있다. 서버(200)는, 문자열의 신뢰도에 기초하여, 신뢰도가 낮은 일부의 문자들에 대해서 교정을 수행할 수 있다.The
일 실시 예에 따른 서버(200)는, 교정이 필요 없다고 판단되어 교정 과정을 거치지 않은 문자열과 교정된 문자열을 조합할 수 있다. 일 실시 예에 따른 서버(200)는, 조합된 문자열을 디바이스(100)에게 전송할 수 있다.The
본 개시의 일 실시 예에 따른 서버(200)는, 도메인 별로 서로 다른 사전 정보 및 언어 모델을 이용하여, 수신된 문자열에 대한 디코딩을 수행하는 것이 가능하다. 본 개시의 일 실시 예에 따르면, 사전 정보가 서버(200) 내에 저장되기 때문에, 신조어나 새로운 개체명을 쉽게 핫픽스 할 수 있다는 장점이 있다.The
일 실시 예에 따른 서버(200)는, 디바이스(100)로부터 문자열을 수신하고, 수신된 문자열에 관련된 도메인을 선택할 수 있다. 일 예로서, 서버(200)는, 디바이스(100)로부터 문자열과 함께 문자열에 관련된 도메인 정보를 수신하고, 수신된 정보에 기초하여 문자열에 대한 디코딩을 수행할 도메인을 결정할 수 있다. 다른 예로서, 서버(200)는 디바이스(100)로부터 수신된 문자열에 기초하여, 수신된 문자열에 관련된 도메인을 결정할 수 있다.일 실시예에 따른 서버(200)는, 결정된 도메인에 대응되는 사전 정보 및 언어 모델을 이용하여, 수신된 문자열에 대한 디코딩을 수행할 수 있다. The
따라서, 본 개시의 일 실시 예에 따른 서버(200)는, 디바이스(100)로부터 수신된 문자열에 대한 재 디코딩을 통해 음성 인식 정확도가 높아진 음성 인식 결과를 출력할 수 있다. 예를 들어, 서버(200)는, 디바이스(100)로부터 제1 문자열을 수신하고, 서버(200) 내의 언어 모델 및 사전 정보를 이용하여 디코딩을 수행함으로써, 제1 문자열에 포함되는 적어도 하나의 문자가 교정된 제2 문자열을 출력할 수 있다. Accordingly, the
서버(200)는, 제2 문자열을 디바이스(100)에게 전송할 수 있다. 디바이스(100)는, 제1 문자열보다 신뢰도가 높은 제2 문자열을 서버(200)로부터 수신하여 이용함으로써 음성 인식 성능을 높일 수 있다.The
일 실시 예에 따른 서버(200)가 문장을 구성하는 문자들을 포함하는 문자열을 디바이스(100)로부터 획득한 경우, 전체 문장에 대해서 오류를 교정하거나, 문장을 구성하는 문자들 중 일부에 대해서 오류를 교정할 수 있다. 서버(200)는, 문자열의 신뢰도에 기초하여, 신뢰도가 낮은 일부의 문자들에 대해서 오류를 교정할 수 있다. 일 실시 예에 따른 서버(200)는, 교정이 필요 없다고 판단되어 교정되지 않은 문자열을 교정된 문자열과 조합함으로써 제2 문자열을 획득 할 수 있다.When the
도 2a에 도시된 바와 같이 본 개시의 일 실시 예에 따른 서버(200)는, 제2 문자열 자체를 음성 인식 결과로서 디바이스(100)에게 전송할 수 있다. 그러나 실시 예는 도 2a에 도시된 예에 제한되지 않는다.As shown in FIG. 2A, the
도 2b 및 도 2c에 도시된 바와 같이 본 개시의 일 실시 예에 따른 서버(200)는, 제2 문자열에 대한 사용자의 발화 의도를 파악함으로써 제2 문자열에 기초한 음성 비서 서비스에 관련된 정보를 디바이스(100)에게 전송할 수 있다.As shown in FIGS. 2B and 2C, the
본 개시의 일 실시 예에 따른 서버(200)는, 제1 문자열로부터 획득된 제2 문자열을 이용하여, 디바이스(100)에게 다양한 종류의 음성 비서 서비스를 제공할 수 있다. 음성 비서 서비스는, 사용자와의 대화를 제공하는 서비스일 수 있다. 음성 비서 서비스는 사용자의 상황, 디바이스의 상황 등을 고려하여 사람이 사용자와 직접 대화하는 것처럼 사용자에게 응답 메시지를 제공할 수 있다. 또한, 음성 비서 서비스는, 사용자의 개인 비서처럼 사용자가 필요한 정보를 적절하게 생성하여 사용자에게 제공할 수 있다.The
이 경우, 서버(200)는 문자열에 기초하여 음성 비서 서비스를 제공하기 위하여, 서버(200) 내의 NLU (Natural Language Understanding) 모델, DM (Dialog Mananer) 모델 및 NLG (Natural Language Generating) 모델 등을 이용하여, 사용자와의 대화를 수행하기 위한 정보를 디바이스(100)에게 제공할 수 있다. In this case, the
일 예로서, 서버(200)는 제2 문자열을 해석한 결과를 바탕으로, 디바이스(100) 또는 다른 디바이스(예를 들어, 스마트 가전, 웨어러블 디바이스 등)를 제어할 수 있다. As an example, the
도 2b에 도시된 바와 같이, 일 실시예에 따른 서버(200)는 문자열을 해석한 결과를 바탕으로, 디바이스(100)를 제어하기 위한 제어 명령 또는 디바이스(100)가 다른 디바이스를 제어하도록 하기 위한 제어 명령을 생성하고, 생성된 제어 명령을 디바이스(100)에게 제공할 수도 있다.As shown in FIG. 2B, the
또한, 도 2c에 도시된 바와 같이, 본 개시의 일 실시 예에 따른 서버(200)는, 다양한 서비스들과 관련된 음성 비서 서비스를 제공할 수 있다. 예를 들어, 방송 서비스, 콘텐트 공유 서비스, 콘텐트 제공 서비스, 전력 관리 서비스, 게임 제공 서비스, 채팅 서비스, 문서 작성 서비스, 검색 서비스, 통화 서비스, 사진 촬영 서비스, 교통 수단 추천 서비스 또는 동영상 재생 서비스 등의 다양한 서비스와 음성 비서 서비스가 연계되어, 음성 비서 서비스가 사용자가 필요한 정보 또는 기능을 제공할 수 있다.In addition, as shown in FIG. 2C, the
본 개시의 일 실시 예에 따른 서버(200)는, 제2 문자열에 기초하여 음성 비서 서비스에 관련된 정보를 디바이스(100)에게 전송할 수 있다. 음성 비서 서비스에 관련된 정보는, 사용자의 상황, 디바이스의 상황 등을 고려하여 사람이 사용자와 직접 대화하는 것처럼 사용자에게 제공되는 응답 메시지 또는 사용자가 필요한 정보를 포함할 수 있다.The
또한, 서버(200)는, 제2 문자열에 기초하여 사용자의 발화 의도를 파악하고, 서비스 제공 서버(201)에게 사용자가 필요로 하는 서비스의 제공을 요청할 수 있다. 서비스 제공 서버(201)는, 방송 서비스, 콘텐트 공유 서비스, 콘텐트 제공 서비스, 전력 관리 서비스, 게임 제공 서비스, 채팅 서비스, 문서 작성 서비스, 검색 서비스, 통화 서비스, 사진 촬영 서비스, 교통 수단 추천 서비스 또는 동영상 재생 서비스 중 적어도 하나의 서비스를 제공할 수 있다. In addition, the
도 2c에서는 음성 비서 서비스를 제공하는 서버(200)가 하나의 서비스 제공 서버(201)와 연결되는 것으로 도시되었으나, 본 개시는 도 2c에 도시된 바에 제한되지 않는다. 예를 들어, 본 개시의 일 실시예에 따라 서버(200)는, 복수의 서비스 제공 서버들과 연결되며, 사용자의 발화 의도에 따라 사용자가 필요로 하는 서비스를 결정할 수 있다. 서버(200)는, 결정된 서비스에 대응하는 서비스 제공 서버를 선택하고, 선택된 서비스 제공 서버에게 서비스 제공 요청을 전송할 수 있다. In FIG. 2C, it is illustrated that the
일 실시예에 따른 서비스 제공 서버(201)는, 음성 비서 서비스 제공 서버(200)로부터 수신되는 서비스 요청에 기초하여, 요청된 서비스와 관련된 정보를 제공할 수 있다. 예를 들어, 서비스 제공 서버(201)는, 요청된 서비스와 관련된 정보로서, 방송, 콘텐트, 애플리케이션, 교통 수단 추천 정보, 및 검색 결과 등을 제공할 수 있다. 서비스 제공 서버(201)는, 음성 비서 서비스 제공 서버(200) 또는 디바이스(100)에게 요청된 서비스와 관련된 정보를 제공할 수 있다.The
이하에서는, 본 개시의 일 실시 예에 따라 음성 인식 결과인 문자열을 선택적으로 서버(200)에게 전송하여 문자열의 교정을 요청하는 디바이스(100) 및 수신된 문자열에 대한 교정을 수행하는 서버(200) 각각의 구성 및 동작 방법을 구체적으로 설명한다.Hereinafter, according to an embodiment of the present disclosure, the
도 3은 일 실시 예에 따른 디바이스의 블록도를 도시한다.3 is a block diagram of a device according to an embodiment.
본 개시의 일 실시 예에 따른 디바이스(100)는 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 디바이스(100)는, 예를 들어, 스마트 폰(smart phone), 휴대폰, 내비게이션, 컴퓨터, 노트북, 디지털방송용 단말, 인공 지능 스피커, 스피커, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 및 태블릿 PC 중 적어도 하나일 수 있으나, 이에 한정되지 않는다. 디바이스(100)는, 무선 또는 유선 통신 방식을 이용하여 네트워크를 통해 다른 디바이스 및/또는 서버와 통신할 수 있다. The
도 3을 참조하면, 디바이스(100)는, 수신부(110), 프로세서(120), 통신부(130), 메모리(140), 및 출력부(150)를 포함할 수 있다. 도 3에 도시된 구성 요소 모두가 디바이스(100)의 필수 구성 요소인 것은 아니다. 도 3에 도시된 구성 요소보다 많은 구성 요소에 의해 디바이스(100)가 구현될 수도 있고, 도 3에 도시된 구성 요소보다 적은 구성 요소에 의해 디바이스(100)가 구현될 수도 있다. 예를 들어, 도 19에 도시된 바와 같이, 일부 실시 예에 따른 디바이스(100)는, 사용자 입력부(2100), 센싱부(2400), 및 A/V 입력부(2600)를 더 포함할 수도 있다.Referring to FIG. 3, the
본 개시의 일 실시 예에 따른 수신부(110)는 사용자로부터 음성 신호를 입력 받을 수 있다. 예를 들어, 수신부(110)는, 마이크로폰(Microphone)에 의해 외부의 소리를 전기적인 음향 데이터로 변환함으로써 음성 신호를 수신할 수 있다. 도 3에는, 수신부(110)가, 디바이스(100)의 내부에 포함되는 것으로 도시되었으나, 다른 일 실시 예에 따른 수신부(110)는 별도의 디바이스 내에 포함되고 디바이스(100)와는 유, 무선으로 연결되는 형태로 구현될 수 있다.The
본 개시의 일 실시 예에 따른 메모리(140)는, 음성 인식을 수행하기 위한 인스트럭션들, 음성 인식에 이용되는 각종 모델, 신경망, 사전 정보 등을 저장할 수 있다.The
본 개시의 일 실시 예에 따른 프로세서(120)는, 메모리(140)에 저장된 하나 이상의 인스터럭션들을 실행함으로써, 음성 인식을 수행할 수 있다. The
본 개시의 일 실시 예에 따른 프로세서(120)는, 음성 신호에 대한 음성 인식의 결과로서 제1 문자열을 획득할 수 있다.The
예를 들어, 제1 문자열은, 음성 신호가 소정 시간 간격으로 분할된 음성 신호 프레임들 각각에 대응하는 문자들을 포함하는 프레임 동기화된 문자열일 수 있다. 또는, 제1 문자열은, 음성 신호에 의해 발음되는 각 문자를 하나씩 포함하도록 라벨 동기화 방식으로 획득된 문자열일 수 있다.For example, the first character string may be a frame-synchronized character string including characters corresponding to each of the audio signal frames in which the audio signal is divided at predetermined time intervals. Alternatively, the first character string may be a character string obtained through a label synchronization method so as to include one character for each character pronounced by a voice signal.
다음으로 본 개시의 일 실시 예에 따른 프로세서(120)는, 제1 문자열을 다른 문자열로 대체할 지 여부를 결정하고, 결정에 기초하여 통신부(130)를 통해 제1 문자열을 서버(200)에게 전송할 수 있다. 일 실시예에 따른 프로세서(120)는, 문장 단위, 단어 단위, 구 단위 또는 프레임 단위로 제1 문자열을 서버(200)에게 전송할 수 있다. 일 실시 예에 따른 프로세서(120)는, 음성 인식을 수행하여 문장 또는 구를 구성하는 문자열을 획득한 경우, 문장 또는 구에 포함되는 문자들을 모두 서버(200)에게 전송하거나, 문장 또는 구에 포함되는 문자들 중 일부를 서버(200)에게 전송할 수 있다. 프로세서(120)는, 문자열의 신뢰도에 기초하여, 신뢰도가 낮은 일부의 문자들을 서버(200)에게 전송할 수 있다.Next, the
제1 문자열을 다른 문자열로 대체할 지 여부를 결정한다는 것은, 음성 인식이 실패하였다고 판단하고 제1 문자열을 다른 문자열로 대체하여 이용할 것을 결정하는 것을 의미할 수 있다. 또는, 제1 문자열을 다른 문자열로 대체할 지 여부를 결정한다는 것은, 서버에서 추가적으로 음성 인식을 수행함으로써 획득된 다른 문자열로 제1 문자열을 대체할 지 여부를 결정한다는 것을 의미할 수 있다. Determining whether to replace the first character string with another character string may mean determining that speech recognition has failed and determining that the first character string is replaced with another character string. Alternatively, determining whether to replace the first character string with another character string may mean that the server determines whether to replace the first character string with another character string obtained by additionally performing voice recognition.
일 예로서, 프로세서(120)는 제1 문자열의 신뢰도를 결정하고, 신뢰도에 기초하여 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. As an example, the
제1 문자열의 신뢰도는, 제1 문자열로부터 획득되는 복수의 추정 문자열들의 가능도, 및 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 대체될 사후 확률들 중 적어도 하나에 기초하여 계산될 수 있다.The reliability of the first character string may be calculated based on at least one of a likelihood of a plurality of estimated character strings obtained from the first character string and posterior probabilities in which at least one character in the first character string is replaced with another character.
예를 들어, 프로세서(120)는, 비터비(Viterbi) 디코딩 결과 출력되는 가능도에 기초하여 신뢰도를 계산할 수 있다. 또는, 프로세서(120)는, 엔드-투-엔드 방식 음성 인식 모델에서 소프트맥스 레이어로부터 출력되는 사후 확률들에 기초하여 신뢰도를 계산할 수 있다.For example, the
또는, 일 실시 예에 따른 프로세서(120)는, 음성 신호에 대한 음성 인식 과정에서 추정되는 복수의 추정 문자열들을 결정하고, 복수의 추정 문자열들의 상관도에 기초하여, 제1 문자열의 신뢰도를 계산할 수 있다. 제1 문자열을 포함하는 복수의 추정 문자열들의 상관도가 높을 수록, 제1 문자열의 신뢰도가 높을 수 있다.Alternatively, the
다른 예로서, 프로세서(120)는, 디바이스(100)에 미리 저장된 키워드들과 제1 문자열을 비교한 결과에 기초하여, 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. 예를 들어, 프로세서(120)는, 제1 문자열에 미리 저장된 키워드들이 포함되지 않는 경우, 제1 문자열을 다른 문자열로 대체할 것을 결정할 수 있다.As another example, the
또 다른 예로서, 프로세서(120)는, 제1 문자열이 관련된 도메인 또는 제1 문자열 내에 개체명이 포함되는지 여부에 기초하여, 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. 예를 들어, 프로세서(120)는, 제1 문자열이 개체명 위주의 도메인과 관련이 있다고 판단되거나 또는 오픈 도메인과 관련이 없다고 판단되는 경우, 제1 문자열을 다른 문자열로 대체할 것을 결정할 수 있다.As another example, the
본 개시의 일 실시 예에 따른 프로세서(120)는, 제1 문자열을 다른 문자열로 대체하여야 한다고 결정되는 경우, 이러한 결정에 기초하여 제1 문자열을 서버(200)로 전송하도록 통신부(130)를 제어할 수 있다. When it is determined that the first character string should be replaced with another character string, the
한편, 본 개시의 일 실시 예에 따른 통신부(130)는 유선 통신 또는 무선 통신을 통해 외부 디바이스, 장치 또는 서버와 통신할 수 있다. 통신부(130)는, 근거리 통신 모듈, 유선 통신 모듈, 이동 통신 모듈, 방송 수신 모듈 등을 포함할 수 있다.Meanwhile, the
일 실시 예에 따른 프로세서(120)는, 음성 신호에 대한 음성 인식 결과가 프레임 동기화된 문자열이 아닌 경우, 제1 문자열에 대한 강제 정렬을 수행함으로써 프레임 동기화된 문자열을 생성하여 서버(200)에게 전송할 수 있다. The
일 실시 예에 따른 프로세서(120)는, 제1 문자열에 포함되는 각 문자가 발음되는 음성 신호 구간을 식별하고, 식별된 음성 신호 구간에 포함되는 복수의 음성 프레임들을 식별할 수 있다. 프로세서(120)는, 식별된 음성 프레임들에 따라 해당 문자를 복수 회 연속하여 배치함으로써, 프레임 동기화된 문자열을 획득할 수 있다. The
예를 들어, 프로세서(120)는, 제1 문자열에 포함되는 소정 문자의 발음 시간이 n 프레임(n은 자연수)인 경우, n개의 소정 문자를 연속하여 나열함으로써 프레임 동기화된 문자열을 획득할 수 있다.For example, when the pronunciation time of a predetermined character included in the first character string is n frames (n is a natural number), the
통신부(130)는, 서버(200)로부터 제2 문자열을 수신할 수 있다. 제2 문자열은, 서버(200)에 의해 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 대체됨으로써 획득된 문자열이다. 또한, 통신부(130)는, 서버(200)에 의해 제2 문자열에 대한 해석에 기초하여 생성된 응답 메시지를 서버(200)로부터 수신할 수도 있다.The
본 개시의 일 실시 예에 따른 프로세서(120)는, 제1 문자열의 교정이 필요하지 않다고 판단되는 경우, 제1 문자열을 다른 문자열로 대체하지 않을 것을 결정 할 수 있다. 본 개시의 일 실시 예에 따른 프로세서(120)는, 제1 문자열을 다른 문자열로 대체하지 않을 경우, 제1 문자열을 출력부(150)를 통해 출력할 수 있다. When it is determined that the correction of the first character string is not required, the
반면에, 프로세서(120)는, 제1 문자열의 교정이 필요하다고 판단되는 경우, 제1 문자열을 다른 문자열로 대체할 것을 결정 할 수 있다. 제1 문자열을 다른 문자열로 대체하여야 한다고 판단되는 경우, 출력부(150)는, 제1 문자열 대신에, 서버(200)로부터 수신된 제2 문자열을 출력할 수 있다.On the other hand, when it is determined that the correction of the first character string is necessary, the
본 개시의 일 실시 예에 따라 디바이스(100)에서 획득되는 제1 문자열은, 제1 사전 정보 및 제1 언어 모델에 기초하여 획득된 문자열일 수 있다. 본 개시의 일 실시 예에 따라 서버(200)에서 획득되는 제2 문자열은, 서버(200) 내에 저장되는 제2 사전 정보 및 제2 언어 모델에 기초하여 획득된 문자열일 수 있다.According to an embodiment of the present disclosure, the first character string acquired by the
서버(200) 내에 저장되는 제2 사전 정보 및 제2 언어 모델은, 제1 사전 정보 및 제1 언어 모델보다 많은 양의 정보를 포함할 수 있다. 따라서, 서버(200)로부터 수신된 제2 문자열은 제1 문자열보다 높은 신뢰도를 가질 수 있다. 디바이스(100)는, 제1 문자열보다 신뢰도가 높은 제2 문자열을 서버(200)로부터 수신하여 이용함으로써 음성 인식 성능을 높일 수 있다.The second dictionary information and the second language model stored in the
본 개시의 일 실시 예에 따른 출력부(150)는, 제1 문자열 또는 제2 문자열을 그대로 출력하거나, 제1 문자열 또는 제2 문자열로부터 획득되는 단어열을 출력할 수 있다. 예를 들어, 제1 문자열이 프레임 동기화된 문자열인 경우, 출력부(150)는, 제1 문자열로부터 획득된 단어열을 출력할 수 있다.The
본 개시의 일 실시 예에 따른 출력부(150)는, 제1 문자열 또는 제2 문자열에 기초하여 음성 인식이 수행된 결과를 출력 할 수 있다. 출력부(150)는, 음성 인식이 수행된 결과를 사용자에게 알리거나, 외부 디바이스(예를 들어, 스마트 폰, 가전 제품, 웨어러블 디바이스, 서버 등)에게 전송할 수 있다. 예를 들어, 출력부(150)는, 오디오 신호를 출력할 수 있는 스피커 또는 비디오 신호를 출력 할 수 있는 디스플레이를 포함할 수 있다.The
또는, 출력부(150)는, 음성 인식이 수행된 결과에 대응하는 동작을 수행할 수 있다. 예를 들어, 디바이스(100)는, 제1 문자열 또는 제2 문자열을 해석하고, 해석 결과에 대응하는 디바이스(100)의 기능을 결정할 수 있다. 디바이스(100)는, 해당 기능을 수행하는 화면을 출력부(150)를 통해 출력할 수 있다. 또는, 디바이스(100)는, 해석 결과에 대응하는 키워드를 외부 서버로 전송하고, 전송된 키워드에 관련된 정보를 서버로부터 수신하여 출력부(150)를 통해 화면 상에 출력할 수 있다. 또는, 디바이스(100)는, 해석 결과에 기초하여, 음성 신호에 대한 응답 메시지를 생성하고, 응답 메시지를 출력부(150)를 통해 출력할 수 있다.Alternatively, the
일 실시예에 따른 디바이스(100)는, 제1 문자열 또는 제2 문자열에 대한 자연어 처리를 통해 사용자의 발화 의도를 파악함으로써, 음성 비서 서비스에 관련된 정보를 출력부(150)를 통해 출력 할 수 있다. 디바이스(100)는 제1 문자열 또는 제2 문자열에 기초하여 음성 비서 서비스를 제공하기 위하여, 디바이스(100) 내의 NLU (Natural Language Understanding) 모델, DM (Dialog Mananer) 모델 및 NLG (Natural Language Generating) 모델 등을 이용할 수 있다.The
또는, 출력부(150)는, 서버(200)로부터 제2 문자열에 기초한 음성 비서 서비스에 관련된 정보를 수신하고, 수신된 정보를 출력할 수 있다. 예를 들어, 제2 문자열에 기초한 음성 비서 서비스에 관련된 정보는, 제2 문자열에 대한 자연어 처리를 통해 사용자의 발화 의도를 해석한 결과를 바탕으로 생성되는 디바이스(100) 또는 다른 디바이스를 제어하기 위한 제어 명령을 포함할 수 있다. 또는, 예를 들어, 제2 문자열에 기초한 음성 비서 서비스에 관련된 정보는, 제2 문자열에 대한 자연어 처리를 통해 사용자의 발화 의도를 해석한 결과를 바탕으로 제공되는 사용자가 필요로 하는 서비스, 또는 사용자가 필요로 하는 정보를 포함할 수 있다.Alternatively, the
한편, 일 실시예에 따른 프로세서(120)가, 문장 또는 구에 포함되는 문자들 중 일부만을 서버(200)에게 전송한 경우, 프로세서(120)는, 서버(200)로부터 수신된 교정된 문자열과 교정이 필요 없다고 판단되어 서버(200)에게 전송되지 않았던 문자열을 조합할 수 있다. 프로세서(120)는 조합된 문자열을 출력하거나, 조합된 문자열에 기초하여 음성 인식이 수행된 결과를 출력하거나, 조합된 문자열을 해석한 결과에 기초하여 음성 비서 서비스를 제공할 수 있다. On the other hand, when the
이하에서는, 도 4a 및 도 4b를 참조하여 디바이스(100)의 동작 방법을 구체적으로 설명한다.Hereinafter, a method of operating the
도 4a는 일 실시 예에 따른 디바이스의 구체적인 블록도를 도시한다.4A is a detailed block diagram of a device according to an embodiment.
도 4a에 도시된 바와 같이, 프로세서(120)의 ASR 모듈(121)은 수신부(110)에서 획득된 음성 신호를 수신하고, 음성 신호에 대한 음성 인식을 수행할 수 있다.As shown in FIG. 4A, the
도 4a의 ASR 모듈(121)은 엔드-투-엔드 방식으로 음성 신호에 대한 음성 인식을 수행할 수 있다. 엔드-투-엔드 방식이란, 음성 신호를 문자열 또는 단어 열로 직접 매핑할 수 있도록 훈련된 심층 신경망을 이용한 음성 인식 방식이다. 음향모델 및 언어모델 등의 다수의 모델들을 이용하는 다른 음성 인식 방식과 비교하면, 엔드-투-엔드 방식은 하나의 훈련된 심층 신경망을 이용함으로써 음성 인식 과정을 단순화할 수 있다. 엔드-투-엔드 음성 인식 모델의 하위 실시 예로는, RNN-T 모델, 및 CTC 모델 등이 존재한다.The
ASR 모듈(121)은, 음성 신호로부터 특징 벡터를 추출할 수 있다. ASR 모듈(121)은, 메모리(140)에 저장된 심층 신경망(DNN)(144)을 이용하여, 특징 벡터로부터 제1 문자열을 출력할 수 있다.The
본 개시의 일 실시 예에 따른 프로세서(120)의 결정부(125)는, ASR 모듈(121)에서 출력된 제1 문자열의 신뢰도에 기초하여, 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. 결정부(125)는, ASR 모듈(121)로부터 제1 문자열에 관한 신뢰도 정보를 수신할 수 있다.The
일 실시 예에 따른 결정부(125)는, 제1 문자열에 관한 신뢰도 정보로서 ASR 모듈(121) 내의 소프트맥스 레이어로부터 출력되는 사후 확률 값을 수신할 수 있다. 결정부(125)는, 제1 문자열과 관련된 사후 확률 값에 기초하여 신뢰도를 계산할 수 있다.The
예를 들어, 결정부(125)는, 신뢰도가 임계값 보다 높거나 같으면, 제1 문자열의 교정이 필요하지 않은 것으로 판단하고 제1 문자열을 출력부(150)를 통해 출력할 수 있다. 반면에, 결정부(125)는, 신뢰도가 임계값 보다 작으면, 제1 문자열의 교정이 필요하다고 판단하고 제1 문자열을 통신부(130)를 통해 서버(200)에게 전송할 수 있다.For example, if the reliability is higher than or equal to the threshold value, the
도 4a에서는 설명의 편의를 위하여, 제1 문자열이 출력부(150)를 통해 출력되는 경우를 예로 들어 도시하였지만 본 개시는 이에 제한되지 않는다. 일 실시예에 따른 디바이스(100)는, 제1 문자열에 대한 자연어 처리를 통해 사용자의 발화 의도를 파악함으로써, 음성 비서 서비스에 관련된 정보를 출력부(150)를 통해 출력 할 수 있다. In FIG. 4A, for convenience of explanation, a case in which the first character string is output through the
디바이스(100)는 제1 문자열에 기초하여 음성 비서 서비스를 제공하기 위하여, 디바이스(100) 내의 NLU (Natural Language Understanding) 모델, DM (Dialog Mananer) 모델 및 NLG (Natural Language Generating) 모델 등을 이용할 수 있다.The
예를 들어, 디바이스(100)의 프로세서(120)는, 사용자의 상황, 디바이스의 상황 등을 고려하여 사람이 사용자와 직접 대화하는 것처럼, 사용자에게 제1 문자열에 대한 응답 메시지를 생성하고 출력부(150)를 통해 출력할 수 있다. 또는, 예를 들어, 프로세서(120)는, 제1 문자열에 기초하여 사용자가 필요한 정보를 생성하여 출력부(150)를 통해 사용자에게 제공할 수 있다. 또는, 예를 들어, 프로세서(120)는, 제1 문자열에 기초하여 사용자의 발화 의도를 파악하고, 서비스 제공 서버에게 사용자가 필요로 하는 서비스의 제공을 요청할 수 있다. 출력부(150)는, 서비스 제공 서버로부터 수신된 정보를 출력할 수 있다.For example, the
또한, 일 실시예에 따른 디바이스(100)의 출력부(150)는, 서버(200)로부터 음성 비서 서비스에 관련된 정보를 수신하고, 수신된 정보를 출력할 수 있다. 음성 비서 서비스에 관련된 정보는, 제1 문자열 또는 제1 문자열이 교정된 제2 문자열에 기초하여 서버(200)에 의해 생성되는 정보일 수 있다. 예를 들어, 음성 비서 서비스에 관련된 정보는, 사용자의 음성 신호에 대한 응답 메시지, 사용자가 필요로 하는 서비스, 또는 사용자가 필요한 정보를 포함할 수 있다.In addition, the
한편, 도 4b는 다른 일 실시 예에 따른 디바이스의 구체적인 블록도를 도시한다.Meanwhile, FIG. 4B is a detailed block diagram of a device according to another exemplary embodiment.
도 4b에 도시된 바와 같이, 프로세서(120)의 ASR 모듈(121)은 수신부(110)에서 획득된 음성 신호를 수신하고, 음성 신호에 대한 음성 인식을 수행할 수 있다. 음소열 획득부(122)는, 메모리(140)에 저장된 음향 모델(141)을 이용하여, 음성 신호로부터 음소열을 획득할 수 있다. 음향 모델(141)은, 음성 신호의 파형을 분할하고, 은닉 마르코프 모델, 가우스 혼합 모델, 베이즈 추론, 또는 다층 신경망 등을 이용하여 음소들을 포함하는 음소열을 추정할 수 있다.As shown in FIG. 4B, the
프로세서(120)의 문자열 획득부(123)는, 메모리(140)에 저장된 사전 정보(142) 및 언어 모델(143)에 기초하여, 음소열로부터 단어들을 추정하고 추정된 단어들을 포함하는 문자열을 출력할 수 있다.The character
본 개시의 일 실시 예에 따른 프로세서(120)의 결정부(125)는, ASR 모듈(121)에서 출력된 제1 문자열의 신뢰도를 계산하고, 계산된 신뢰도에 기초하여 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. 결정부(125)는, ASR 모듈(121)로부터 제1 문자열에 관한 신뢰도 정보를 수신할 수 있다.The
일 실시 예에 따른 결정부(125)는, 제1 문자열에 관한 신뢰도 정보로서 ASR 모듈(121) 내의 비터비 디코더로부터 출력되는 제1 문자열의 부분 가능도 값(partial likelihood)에 기초하여 신뢰도를 계산할 수 있다. The
일 실시 예에 따른 결정부(125)는, 신뢰도가 임계값 보다 높거나 같으면, 제1 문자열의 교정이 필요하지 않은 것으로 판단하고 제1 문자열을 출력부(150)를 통해 출력할 수 있다. 반면에, 결정부(125)는, 신뢰도가 임계값 보다 작으면, 제1 문자열의 교정이 필요하다고 판단하고 제1 문자열을 통신부(130)를 통해 서버(200)에게 전송할 수 있다.도 4b에서는 설명의 편의를 위하여, 제1 문자열이 출력부(150)를 통해 출력되는 경우를 예로 들어 도시하였지만 본 개시는 이에 제한되지 않는다. 일 실시예에 따른 디바이스(100)는, 제1 문자열에 대한 자연어 처리를 통해 사용자의 발화 의도를 파악함으로써, 음성 비서 서비스에 관련된 정보를 출력부(150)를 통해 출력 할 수 있다. If the reliability is higher than or equal to the threshold value, the
디바이스(100)는 제1 문자열에 기초하여 음성 비서 서비스를 제공하기 위하여, 디바이스(100) 내의 NLU (Natural Language Understanding) 모델, DM (Dialog Mananer) 모델 및 NLG (Natural Language Generating) 모델 등을 이용할 수 있다.The
예를 들어, 디바이스(100)의 프로세서(120)는, 사용자의 상황, 디바이스의 상황 등을 고려하여 사람이 사용자와 직접 대화하는 것처럼, 사용자에게 제1 문자열에 대한 응답 메시지를 생성하고 출력부(150)를 통해 출력할 수 있다. 또는, 예를 들어, 프로세서(120)는, 제1 문자열에 기초하여 사용자가 필요한 정보를 생성하여 출력부(150)를 통해 사용자에게 제공할 수 있다. 또는, 예를 들어, 프로세서(120)는, 제1 문자열에 기초하여 사용자의 발화 의도를 파악하고, 서비스 제공 서버에게 사용자가 필요로 하는 서비스의 제공을 요청할 수 있다. 출력부(150)는, 서비스 제공 서버로부터 수신된 정보를 출력할 수 있다.For example, the
또한, 일 실시예에 따른 디바이스(100)의 출력부(150)는, 서버(200)로부터 음성 비서 서비스에 관련된 정보를 수신하고, 수신된 정보를 출력할 수 있다. 음성 비서 서비스에 관련된 정보는, 제1 문자열 또는 제1 문자열이 교정된 제2 문자열에 기초하여 서버(200)에 의해 생성되는 정보일 수 있다. 예를 들어, 음성 비서 서비스에 관련된 정보는, 사용자의 음성 신호에 대한 응답 메시지, 사용자가 필요로 하는 서비스, 또는 사용자가 필요한 정보를 포함할 수 있다.In addition, the
상술한 바와 같이, 본 개시의 일 실시 예에 따른 디바이스(100)는, 음성 신호에 대한 음성 인식 결과의 신뢰도에 기초하여, 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. 그러나 본 개시는 이러한 실시 예에 제한되지 않으며, 다른 일 실시 예에 따르면, 디바이스(100)는, 디바이스(100)에 미리 저장된 키워드들과 문자열을 비교한 결과에 기초하여, 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. 또는, 다른 일 실시 예에 따른 디바이스(100)는, 제1 문자열이 관련된 도메인에 기초하여, 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. 또는, 다른 일 실시 예에 따른 디바이스(100)는, 자연어 이해 처리를 통해 제1 문자열의 의미를 해석하고, 해석한 결과에 기초하여 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다.As described above, the
도 5a는 일 실시 예에 따라 디바이스가 온-디바이스 음성 인식을 수행할 것을 판단하는 방법을 설명하기 위한 도면이다.5A is a diagram for describing a method of determining that a device performs on-device voice recognition, according to an exemplary embodiment.
일 예로서, 본 개시의 일 실시 예에 따른 디바이스(100)의 프로세서(120)의 결정부(125)는, 디바이스(100)에 미리 저장된 키워드들과 제1 문자열을 비교한 결과에 기초하여, 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. As an example, the
일 실시 예에 따른 결정부(125)는, 제1 문자열에 미리 저장된 키워드들 중 적어도 하나가 포함된 경우, 제1 문자열을 다른 문자열로 대체하지 않을 것을 결정할 수 있다. 따라서, 디바이스(100)는, 서버(200)의 개입 없이, 디바이스(100)의 ASR 모듈(121)에서 수행된 음성 인식 수행 결과를 그대로 이용할 수 있다.The
예를 들어, ASR 모듈(121)로부터 출력된 제1 문자열이 “Read me my text”인 경우, 결정부(125)는, 제1 문자열이 미리 저장된 키워드인 "text"를 포함하는 것으로 판단하고, 제1 문자열을 다른 문자열로 대체하지 않을 것을 결정할 수 있다.For example, if the first character string output from the
다른 예로서, 본 개시의 일 실시 예에 따른 디바이스(100)의 프로세서(120)의 결정부(125)는, 제1 문자열이 관련된 도메인 또는 제1 문자열 내에 개체명이 포함되는지 여부에 기초하여, 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. As another example, the
일 실시 예에 따른 결정부(125)는, 제1 문자열이 개체명 위주의 도메인과 관련이 없고, 오픈 도메인과 관련이 있다고 판단되는 경우, 제1 문자열을 다른 문자열로 대체하지 않을 것을 결정할 수 있다. 따라서, 디바이스(100)는, 서버(200)의 개입 없이, 디바이스(100)의 ASR 모듈(121)에서 수행된 음성 인식 수행 결과를 그대로 이용할 수 있다.The
예를 들어, ASR 모듈(121)로부터 출력된 제1 문자열이 “Take a picture”인 경우, 결정부(125)는, 제1 문자열이 오픈 도메인과 관련이 있다고 판단하고, 제1 문자열을 다른 문자열로 대체하지 않을 것을 결정할 수 있다.For example, when the first character string output from the
일 실시 예에 따른 결정부(125)는, 제1 문자열에 개체명이 포함된다고 판단되는 경우, 제1 문자열을 다른 문자열로 대체할 것을 결정할 수 있다. When it is determined that the object name is included in the first string, the
본 개시의 일 실시 예에 따른 결정부(125)는, 메모리(140)에 저장되어 있는 개체명들 중 적어도 하나가 제1 문자열 내에 포함되는지 여부를 판단할 수 있다. 또는, 개체명에 대한 사전 정보 없이도, 일 실시 예에 따른 결정부(125)는, 제1 문자열 내에 개체명이 포함되는지 여부를 판단할 수 있다. 예를 들어, 결정부(125)는, 제1 문자열로부터 식별되는 단어들의 품사 태깅(POS Tagging, Part-Of-Speech Tagging)을 함으로써, 제1 문자열 내에 포함되어 있는 개체명을 식별할 수 있다.The
예를 들어, ASR 모듈(121)로부터 출력된 제1 문자열이 “Take a picture”인 경우, 결정부(125)는, 제1 문자열이 개체명을 포함하지 않는다고 판단하고, 제1 문자열을 다른 문자열로 대체하지 않을 것을 결정할 수 있다.For example, when the first character string output from the
또 다른 예로서, 본 개시의 일 실시 예에 따른 디바이스(100)의 프로세서(120)의 결정부(125)는, 자연어 이해 처리를 통해 제1 문자열의 의미를 해석하고, 해석한 결과에 기초하여 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. As another example, the
일 실시 예에 따른 결정부(125)는, 제1 문자열을 해석한 결과, 음성 신호가 디바이스(100)의 동작과 관련된 일반적인 명령이라고 판단되는 경우, 제1 문자열을 다른 문자열로 대체하지 않을 것을 결정할 수 있다. 따라서, 디바이스(100)는, 서버(200)의 개입 없이, 디바이스(100)의 ASR 모듈(121)에서 수행된 음성 인식 수행 결과를 그대로 이용할 수 있다.When determining that the voice signal is a general command related to the operation of the
예를 들어, ASR 모듈(121)로부터 출력된 제1 문자열이 “Do I have any new voice mail?”인 경우, 결정부(125)는, 제1 문자열이 텍스트 메시지의 확인과 관련된 일반적인 명령이라고 판단하고, 제1 문자열을 다른 문자열로 대체하지 않을 것을 결정할 수 있다.For example, when the first string output from the
한편, 도 5b는 일 실시 예에 따라 디바이스가 서버 기반 음성 인식을 수행할 것을 판단하는 방법을 설명하기 위한 도면이다.Meanwhile, FIG. 5B is a diagram illustrating a method of determining that a device performs server-based voice recognition, according to an exemplary embodiment.
도 5b에 도시된 바와 같이, 일 실시 예에 따른 디바이스(100)의 프로세서(120)의 결정부(125)는, 제1 문자열을 다른 문자열로 대체하여야 한다고 결정하고, 이러한 결정에 기초하여 제1 문자열을 서버(200)로 전송할 수 있다.As shown in FIG. 5B, the
도 5b는, 디바이스(100)의 ASR 모듈(121)이, 사용자가 “The Cardinals baseball team"을 발음한 음성 신호를 수신하고, 제1 문자열 [the cat and deers baseball team]을 획득한 경우를 예로서 도시한다. 5B is an example of a case where the
일 예로서, 본 개시의 일 실시 예에 따른 디바이스(100)의 프로세서(120)의 결정부(125)는, 제1 문자열이 미리 저장된 키워드들을 포함하지 않으므로, 제1 문자열을 다른 문자열로 대체할 것을 결정할 수 있다.As an example, the determining
다른 예로서, 본 개시의 일 실시 예에 따른 디바이스(100)의 프로세서(120)의 결정부(125)는, 제1 문자열이 스포츠 도메인과 관련이 있다고 판단되거나 개체명이 포함된다고 판단되는 경우, 제1 문자열을 다른 문자열로 대체할 것을 결정할 수 있다. As another example, when the
본 개시의 일 실시 예에 따른 결정부(125)는, 메모리(140)에 저장되어 있는 개체명들 중 적어도 하나가 제1 문자열 내에 포함되는지 여부를 판단할 수 있다. 또는, 개체명에 대한 사전 정보 없이도, 일 실시 예에 따른 결정부(125)는, 제1 문자열 내에 개체명이 포함되는지 여부를 판단할 수 있다. 예를 들어, 결정부(125)는, 제1 문자열로부터 식별되는 단어들의 품사 태깅(POS Tagging, Part-Of-Speech Tagging)을 함으로써, 제1 문자열 내에 포함되어 있는 개체명을 식별할 수 있다. 그러나 실시 예는 이에 제한되지 않으며, 다양한 방식의 개체명 인식(Named Entity Recognition, NER) 방법이 이용될 수 있다.The
또 다른 예로서, 본 개시의 일 실시 예에 따른 디바이스(100)의 프로세서(120)의 결정부(125)는, 제1 문자열을 해석한 결과, 음성 신호가 일반적인 명령이 아니라고 판단하고, 제1 문자열을 다른 문자열로 대체할 것을 결정할 수 있다.As another example, the
도 5b에 도시된 바와 같이, 일 실시 예에 따른 디바이스(100)의 결정부(125)는, 제1 문자열을 다른 문자열로 대체하여야 한다고 결정하고, 이러한 결정에 기초하여 제1 문자열을 서버(200)로 전송할 수 있다. 서버(200)는, 디바이스(100)로부터 제1 문자열을 수신하고, 서버(200) 내의 언어 모델 및 사전 정보(예를 들어, 스포츠 도메인의 사전 정보)을 이용하여 디코딩을 수행할 수 있다. 서버(200)는, 디코딩 결과, 제1 문자열에 포함되는 적어도 하나의 문자가 수정된 제2 문자열을 획득할 수 있다. 디바이스(100)는, 서버(200)로부터 제2 문자열을 수신하여 이용함으로써, 음성 인식의 정확도를 높일 수 있다.As shown in FIG. 5B, the
한편, 본 개시의 일 실시 예에 따른 디바이스(100)는, 음성 인식을 수행하여 문장 또는 구를 구성하는 문자열을 획득한 경우, 문장 또는 구에 포함되는 문자들을 모두 서버(200)에게 전송하거나, 문장 또는 구에 포함되는 문자들 중 일부를 서버(200)에게 전송할 수 있다. 디바이스(100)의 프로세서(120)의 결정부(125)는, 문자열의 신뢰도에 기초하여, 신뢰도가 낮은 일부의 문자들을 서버(200)에게 전송할 것을 결정할 수 있다.Meanwhile, when the
일 실시 예에 따른 디바이스(100)는, 서버(200)에서 교정된 문자열을 수신하고, 교정이 필요 없다고 판단되어 서버(200)에게 전송되지 않았던 문자열을 교정된 문자열과 조합할 수 있다. 일 실시 예에 따른 디바이스(100)는, 조합된 문자열을 출력하거나, 조합된 문자열에 기초하여 음성 인식이 수행된 결과를 출력하거나, 조합된 문자열을 해석한 결과에 기초하여 음성 비서 서비스를 제공할 수 있다.The
또한, 일 실시 예에 따른 디바이스(100)는 서버(200)에게 제1 문자열에 대한 교정을 요청하면서, 디바이스(100)의 제1 문자열에 관련된 도메인 정보를 서버(200)에게 제공할 수 있다. 도메인 정보는 도메인을 식별하기 위한 정보로서, 예를 들어, 도메인의 명칭, 도메인의 식별자를 포함할 수 있으나, 이에 제한되지 않는다. 디바이스(100)는 디바이스(100)의 ASR 모델로부터 출력된 제1 문자열의 도메인 신뢰도에 기초하여, 제1 문자열에 관련된 도메인을 식별할 수 있다. 도메인 신뢰도는, 제1 문자열의 적어도 일부가 특정 도메인에 어느 정도 관련되었는지를 나타내는 수치일 수 있다. 예를 들어, 디바이스(100)는 ASR 모델로부터 출력된 제1 문자열이 디바이스(100)에 미리 등록된 도메인에 어느 정도 관련성이 있는 지를 나타내는 컨피던스 스코어를 산출할 수 있다. 또한, 디바이스(100)는 산출된 도메인 신뢰도에 기초하여, 제1 문자열에 관련된 도메인을 식별할 수 있다. 디바이스(100)는 룰 기반으로 제1 문자열에 관련된 도메인을 식별하거나 도메인 식별을 위해 훈련된 인공 지능 모델을 이용하여 제1 문자열에 관련된 도메인 신뢰도를 획득할 수 있다. In addition, the
도 6은 일 실시 예에 따른 프레임 동기화된 문자열을 설명하기 위한 도면이다.6 is a diagram for describing a frame-synchronized character string according to an exemplary embodiment.
도 6에 도시된 바와 같이, 본 개시의 일 실시 예에 따른 디바이스(100)의 ASR 모듈(121)은, 음성 신호(601)가 소정 시간 간격으로 분할된 음성 신호 프레임(F)들 각각에 대응하는 문자들을 포함하는, 프레임 동기화된 문자열(603)을 출력할 수 있다.As shown in FIG. 6, the
예를 들어, ASR 모듈(121)은, 사용자가 "baseball"이라고 발음하는 음성 신호를 수신하고, 프레임 동기화된 문자열인 [b, b, a, , a, a, s, s, e, , b, b, a, a, l]을 출력할 수 있다.For example, the
그러나 본 개시는 이에 제한되지 않으며, 일 실시 예에 따른 ASR 모듈(121)은, 음성 인식 결과로서 프레임 동기화되지 않은 문자열(즉, 라벨 동기화 문자열)을 출력할 수 있다. 이 경우에도, 디바이스(100)는, 음성 신호로부터 획득된 문자열에 대한 강제 정렬을 수행함으로써, 프레임 동기화된 문자열을 생성할 수 있다.However, the present disclosure is not limited thereto, and the
일 실시 예에 따른 디바이스(100)의 프로세서(120)는, 제1 문자열에 포함되는 각 문자가 발음되는 음성 신호 구간을 식별하고, 식별된 음성 신호 구간에 포함되는 복수의 음성 프레임들을 식별할 수 있다. 프로세서(120)는, 식별된 음성 프레임들에 따라 해당 문자를 복수 회 연속하여 배치함으로써, 프레임 동기화된 문자열을 획득할 수 있다.The
예를 들어, ASR 모듈(121)은 프레임 동기화 되지 않은 문자열인 제1 문자열 [b, a, s, e, b, a, l, l]을 출력할 수 있다. 이 경우, 프로세서(120)는, 제1 문자열에 포함되는 각 문자가 발음되는 시간에 기초하여, 각 문자를 복수 회 연속하여 배치할 수 있다. 그 결과, 프로세서(120)는, 프레임 동기화된 문자열인 [b, b, a, , a, a, s, s, e, , b, b, a, a, l]을 획득할 수 있다.For example, the
본 개시의 일 실시 예에 따른 디바이스(100)는, 프레임 동기화된 문자열(603)을 서버(200)로 출력할 수 있다. 서버(200)는, 디바이스(100)로부터 수신된 프레임 동기화된 문자열(603)에 대한 디코딩을 수행하고, 디코딩 수행 결과에 기초하여 획득된 제2 문자열을 디바이스(100)에게 전송할 수 있다.The
도 7은 일 실시 예에 따른 서버의 블록도를 도시한다.7 is a block diagram of a server according to an embodiment.
본 개시의 일 실시 예에 따른 서버(200)는, 디바이스(100)와 유선 또는 무선으로 연결될 수 있다.The
도 7을 참조하면, 서버(200)는, 통신부(210), 프로세서(220), 및 메모리(230)를 포함할 수 있다. 도 7에 도시된 구성 요소 모두가 서버(200)의 필수 구성 요소인 것은 아니다. 도 7에 도시된 구성 요소보다 많은 구성 요소에 의해 서버(200)가 구현될 수도 있고, 도 7에 도시된 구성 요소보다 적은 구성 요소에 의해 서버(200)가 구현될 수도 있다.Referring to FIG. 7, the
본 개시의 일 실시 예에 따른 서버(200)의 메모리(230)는, 음성 인식을 수행하기 위한 인스트럭션들, 음성 인식에 이용되는 각종 모델, 신경망, 사전 정보 등을 저장할 수 있다. The
본 개시의 일 실시 예에 따른 프로세서(220)는, 메모리(230)에 저장된 하나 이상의 인스터럭션들을 실행함으로써, 음성 인식을 수행할 수 있다. The
한편, 본 개시의 일 실시 예에 따른 통신부(210)는 유선 통신 또는 무선 통신을 통해 외부 디바이스, 또는 장치와 통신할 수 있다. 통신부(210)는, 근거리 통신 모듈, 유선 통신 모듈, 이동 통신 모듈, 방송 수신 모듈 등을 포함할 수 있다.Meanwhile, the
먼저, 본 개시의 일 실시 예에 따른 서버(200)의 통신부(210)는, 디바이스(100)로부터 제1 문자열을 수신할 수 있다. 제1 문자열은, 디바이스(100)에 입력된 음성 신호로부터 디바이스(100)에 의해 음성 인식 처리를 거쳐 출력될 수 있다.First, the
일 예로서, 서버(200)에서 수신되는 제1 문자열은, 음성 신호가 소정 시간 간격으로 분할된 음성 신호 프레임들 각각에 대응하는 문자들을 포함하는 프레임 동기화 문자열일 수 있다. 다른 예로서, 서버(200)에서 수신되는 제1 문자열은, 프레임 동기화되지 않은 문자열일 수 있다. As an example, the first character string received from the
본 개시의 일 실시 예에 따른 프로세서(220)는, 디바이스(100)로부터 수신되는 제1 문자열이 프레임 동기화되지 않은 문자열인 경우, 제1 문자열로부터 프레임 동기화된 문자열을 획득할 수 있다. 프로세서(220)는, 제1 문자열에 포함되는 적어도 하나의 문자를 소정 시간 간격의 프레임 단위로 연속하여 배치함으로써, 프레임 동기화된 문자열을 획득할 수 있다. The
본 개시의 일 실시 예에 따른 서버(200)의 프로세서(220)는, 제1 문자열 내의 적어도 하나의 문자를 다른 문자로 대체함으로써 제1 문자열로부터 제2 문자열을 획득할 수 있다.The
본 개시의 일 실시예에 따라 프로세서(220)는, 제1 문자열 내의 각 문자와 발음이 유사한 대체 문자들을 식별하고, 식별된 대체 문자들에 기초하여 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 교정된 추정 문자열들을 결정할 수 있다. 프로세서(220)는, 결정된 추정 문자열들 중에서, 언어 모델 및 사전 정보 등 미리 저장된 정보에 기초하여 가장 적합한 추정 문자열을 선택하여 제2 문자열로서 획득할 수 있다.According to an embodiment of the present disclosure, the
이하에서는, 일 실시예에 따른 프로세서(220)가 제2 문자열을 획득하는 방법을 보다 구체적으로 설명한다.Hereinafter, a method of obtaining a second character string by the
먼저, 프로세서(220)는, 제1 문자열로부터 복수의 추정 문자열들을 식별할 수 있다. 프로세서(220)는, 제1 문자열 내의 각 문자에 대하여 각 문자가 대체될 대체 문자들에 관한 가능도 행렬들을 산출할 수 있다. 프로세서(220)는, 가능도 행렬들 내의 가능도 값들에 기초하여, 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 대체된 복수의 추정 문자열들을 식별할 수 있다.First, the
일 실시 예에 따른 프로세서(220)는, 제1 문자열로부터 복수의 추정 문자열들의 가능도를 계산할 수 있다. 프로세서(220)는, 제1 문자열 내의 각 문자에 대하여 각 문자가 대체될 대체 문자들에 관한 가능도 행렬들 내의 가능도 값들에 기초하여, 복수의 추정 문자열들의 가능도를 계산할 수 있다. The
제1 문자열로부터 획득되는 가능도는, 복수의 추정 문자열들 각각이 참값 문자열이라고 가정하였을 때, 음성 인식 결과로서 제1 문자열이 추정될 가능성을 의미할 수 있다. 본 개시의 일 실시예에 따르면, 프로세서(220)는, 제1 문자열 내의 각 문자와 발음이 유사한 대체 문자들을 식별하고, 식별된 대체 문자들에 기초하여 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 교정된 추정 문자열들을 결정하기 위하여, 제1 문자열로부터 획득되는 가능도를 이용할 수 있다.The likelihood obtained from the first character string may mean a probability that the first character string is estimated as a result of speech recognition, assuming that each of the plurality of estimated character strings is a true value character string. According to an embodiment of the present disclosure, the
프로세서(220)는, 가능도, 사전 정보, 및 언어 모델에 기초하여, 복수의 추정 문자열들 중 하나인 제2 문자열을 획득할 수 있다. 프로세서(220)는, 계산된 가능도에 기초하여, 제1 문자열을 제2 문자열로 대체할 지를 결정할 수 있다. 프로세서(220)는, 결정에 기초하여, 제1 문자열 내의 적어도 하나의 문자를 다른 문자로 대체함으로써 제1 문자열로부터 제2 문자열을 획득할 수 있다.The
일 실시 예에 따른 프로세서(220)는, 후술하는 과정을 거쳐 제1 문자열로부터 가능도를 획득할 수 있다.The
일 예로서, 프로세서(220)는, 제1 문자열 내의 각 문자의 이전 문자들에 기초하여, 각 문자의 사후 확률들을 계산할 수 있다. 제1 문자열 내의 소정 문자의 사후 확률들은, 이전 문자들을 고려하였을 때, 소정 문자가 복수의 다른 문자들로 대체될 확률들을 포함할 수 있다. 즉, 소정 문자의 사후 확률들은, 문자열 내에서 소정 문자의 이전 문자들을 고려하였을 때, 디바이스(100)의 프로세서(120)의 ASR 모듈이 소정 문자를 정확하게 예측했을 확률 및 다른 문자를 소정 문자로 잘못 예측했을 확률을 포함할 수 있다.As an example, the
다음으로, 프로세서(220)는, 제1 문자열의 문자 배열 확률을 계산할 수 있다. 문자열의 문자 배열 확률이란, 해당 문자열에 따라 문자들이 배열될 확률을 의미할 수 있다. 문자 배열 확률은, 문자열의 각 문자의 이 전에 누적된 문자들에 기초하여 산출될 수 있다. 프로세서(220)는, 각 문자의 사후 확률들 및 문자 배열 확률에 기초하여, 제1 문자열로부터 획득되는 복수의 추정 문자열들의 가능도를 계산할 수 있다.Next, the
사후 확률들을 계산함에 있어서, 일 실시 예에 따른 프로세서(220)는, 복수의 LSTM(long-short term memory) 레이어들 및 소프트맥스(softmax) 레이어를 포함하는 회귀 신경망(recurrent neural network, RNN)을 이용할 수 있다. 사후 확률들을 계산하기 위하여 이용되는 회귀 신경망과 관련하여서는, 후에 도 10a를 참조하여 보다 구체적으로 설명한다. In calculating the posterior probabilities, the
다른 예로서, 프로세서(220)는, 미리 결정된 오차 행렬(confusion matrix)에 기초하여, 제1 문자열 내의 각 문자의 사후 확률들을 계산할 수 있다. 프로세서(220)는, 각 문자의 사후 확률들에 기초하여, 제1 문자열로부터 획득되는 복수의 추정 문자열들의 가능도를 계산할 수 있다. 사후 확률들을 계산하기 위하여 이용되는 오차 행렬과 관련하여서는, 후에 도 10b를 참조하여 보다 구체적으로 설명한다.As another example, the
또 다른 예로서, 프로세서(220)는, 미리 결정된 확률 값들에 기초하여, 제1 문자열 내의 각 문자의 사후 확률들을 계산할 수 있다. 프로세서(220)는, 제1 문자열에 포함되는 제1 문자가 실제로도 제1 문자일 확률을 P로 결정할 수 있다. P는 미리 결정된 값일 수 있다. P는 0 이상 1 이하의 값일 수 있다. 그리고, 프로세서(220)는, 제1 문자열에 포함되는 제1 문자가 실제로는 제1 문자 이외의 다른 문자일 확률을 (1-P)/(N-1)로 결정할 수 있다. N은 문자들의 개수를 의미하고, 자연수일 수 있다. 즉, 프로세서(220)는, 디바이스(100)의 프로세서(120)의 ASR 모듈이 제1 문자열 내의 제1 문자를 정확하게 예측했을 확률을 P라고 결정하고, 다른 문자를 제1 문자로 잘못 예측했을 확률을 (1-P)/(N-1)로 결정할 수 있다.As another example, the
예를 들어, 프로세서(220)는, 제1 문자열에 포함되는 제1 문자가 실제로도 제1 문자일 확률을 0.9로 결정하고, 제1 문자가 실제로는 다른 문자일 확률을 0.1/(N-1)로 결정할 수 있다.For example, the
일 실시 예에 따른 프로세서(220)는, 제1 문자열로부터 획득되는 복수의 추정 문자열들의 가능도를 계산하는 가능도 계산부를 포함할 수 있다. 또한, 프로세서(220)는, 사전 정보, 및 언어 모델을 이용하여, 가능도로부터 제2 문자열을 획득하는 디코더를 포함할 수 있다. 프로세서(220)는, 사전 정보 및 언어 모델을 이용하여, 제1 문자열로부터 획득되는 가능도에 대한 재 디코딩을 수행함으로써 제2 문자열을 획득할 수 있다.The
일 예로서, 프로세서(220)의 디코더는, 서버(200) 내에 저장되는 사전 정보 및 언어 모델을 기반으로 제2 문자열을 획득할 수 있다. 디코더는, 제1 문자열로부터 획득되는 복수의 추정 문자열들의 가능도가 입력됨에 따라, 제2 문자열을 출력할 수 있다. 예를 들어, 프로세서(220)의 디코더는 WFST(weighted Finite State Transducer) 디코더를 포함할 수 있다.As an example, the decoder of the
프로세서(220)가 WFST 디코딩을 수행하는 경우, 일 실시 예에 따른 서버(200)는, 문자들 간의 관계(T), 단어와 문자들의 매핑 정보를 포함하는 사전 정보(L), 및 특정 단어열이 주어졌을 때 다음에 나올 단어들의 확률을 추정하는 언어 모델(G)에 기초하여, WFST로 탐색 공간을 구성하여 디코딩할 수 있다.When the
다른 예로서, 프로세서(220)의 디코더는, 사전 정보 및 언어 모델에 기초하여, 제1 문자열로부터 획득되는 복수의 추정 문자열들의 가능도를 재연산할 수 있다. 디코더는, 재 연산된 가능도를 최대로 하는 제2 문자열을 복수의 추정 문자열들 중에서 결정할 수 있다. 예를 들어, 프로세서(220)의 디코더는, 비터비 디코더를 포함할 수 있다. 비터비 디코더는, 사전 정보 및 언어 모델을 고려하여, 제1 문자열들에 대한 가장 가능성 높은 문자열을 제2 문자열로서 찾아낼 수 있다.As another example, the decoder of the
본 개시의 일 실시 예에 따른 통신부(210)는, 제2 문자열을 디바이스(100)에게 전송할 수 있다. 또는, 통신부(210)는, 프로세서(220)에서 생성된 음성 신호에 대한 응답 메시지를 디바이스(100)에게 전송할 수 있다. 프로세서(220)는, 자연어 이해(Natural Language Understanding) 모델을 이용하여 제2 문자열을 해석하고, 해석한 결과에 기초하여 음성 신호에 대한 응답 메시지를 생성할 수 있다.The
프로세서(220)는, 제2 문자열을 해석한 결과에 대해 DM(Dialog Manager) 모델을 적용하여, 응답 메시지의 유형을 결정할 수 있다. 프로세서(220)는, NLG(Natural Language Generation) 모델을 이용하여, 결정된 유형의 응답 메시지를 생성하고 디바이스(100)에게 전송할 수 있다.The
또는, 통신부(210)는, 제2 문자열에 기초하여 생성된 음성 비서 서비스에 관련된 정보를 디바이스(100)에게 전송할 수 있다. 프로세서(220)는 제2 문자열에 기초하여 음성 비서 서비스를 제공하기 위하여, 서버(200) 내의 NLU 모델, DM 모델 및 NLG 모델 등을 이용하여, 사용자와의 대화를 수행하기 위한 정보를 디바이스(100)에게 제공할 수 있다. 또한, 프로세서(220)는 제2 문자열을 해석한 결과를 바탕으로, 디바이스(100) 또는 다른 디바이스를 제어하기 위한 제어 명령을 생성하고, 생성된 제어 명령을 디바이스(100)에게 제공할 수도 있다.Alternatively, the
이하에서는 도 8a를 참조하여, 일 실시 예에 따른 서버(200)의 각 구성이 디바이스(100)의 음성 인식을 지원하는 방법을 설명한다. 도 8a는 디바이스(100)의 사용자가 “The Cardinals baseball team”을 발화한 경우를 예로 들어 설명한다. Hereinafter, with reference to FIG. 8A, a method of supporting voice recognition of the
먼저, 디바이스(100)는, 사용자의 음성 신호에 대한 음성 인식을 수행하여 [The cat and deers baseball team]이라는 제1 문자열을 추정할 수 있다. First, the
디바이스(100)는, 제1 문자열의 신뢰도, 제1 문자열이 관련된 도메인, 제1 문자열의 의미를 해석한 결과, 또는 제1 문자열에 개체명이 포함되는 지 여부에 기초하여, 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. 디바이스(100)가 제1 문자열을 대체하기 위하여 서버-기반 음성 인식을 수행할 지 여부를 판단하는 구체적인 방법에 관해서는, 도 4a 내지 도 5b를 참조하여 상술하였으므로 중복되는 설명은 생략한다. The
도 8a에서 디바이스(100)는, 제1 문자열을 다른 문자열로 대체하는 것이 필요하다고 판단하고, 제1 문자열 [The cat and deers baseball team]을 서버(200)에게 전송할 수 있다.In FIG. 8A, the
제1 문자열을 서버(200)에게 전송함에 있어서, 일 실시예에 따른 디바이스(100)는 음성 신호와 관련된 정보를 제1 문자열과 함께 전송할 수 있다. 일 실시예에 따른 디바이스(100)는, 제1 문자열 내의 각 문자가 나타내는 음성 신호 프레임의 길이와 관련된 정보를 제1 문자열과 함께 전송할 수 있다. 예를 들어, 디바이스(100)는, 음성 신호 프레임에 동기화된 제1 문자열을 서버(200)에게 전송할 수 있다. 음성 신호 프레임에 동기화된 문자열이란, 음성 신호가 소정 시간 간격으로 분할된 음성 신호 프레임들 각각에 대응하는 문자들을 포함하는 문자열을 의미할 수 있다.In transmitting the first character string to the
그러나 본 개시는 디바이스(100)가 서버(200)에게 프레임 동기화된 문자열을 전송하는 실시예에 제한되지 않는다. 일 실시예에 따른 디바이스(100)는 프레임 동기화되지 않은 제1 문자열을 서버(200)에게 전송할 수 있다. 프레임 동기화되지 않은 제1 문자열은, 음성 신호에 의해 발음되는 각 문자를 하나씩 포함하도록 라벨 동기화 방식으로 획득된 문자열을 의미할 수 있다.However, the present disclosure is not limited to an embodiment in which the
일 실시예에 따른 디바이스(100)는, 프레임 동기화되지 않은 제1 문자열을 서버(200)에게 전송하되, 음성 신호와 관련된 정보를 제1 문자열과 함께 전송할 수 있다. 서버(200)는, 음성 신호와 관련된 정보에 기초하여 제1 문자열을 강제 정렬함으로써 프레임 동기화된 문자열을 생성할 수 있다. 예를 들어, 음성 신호와 관련된 정보는, 디바이스(100)의 음성 인식 모델이 제1 문자열을 획득한 음성 신호 구간에 대한 정보를 포함할 수 있다.The
본 개시의 일 실시 예에 따른 서버(200)는, 통신부(210)를 통해 디바이스(100)로부터 제1 문자열을 수신할 수 있다. 일 실시예에 따른 서버(200)는, 프레임 동기화된 제1 문자열을 수신할 수 있다. 그러나, 상술한 바와 같이, 서버(200)는, 프레임 동기화되지 않은 제1 문자열을 수신할 수도 있다. 이 경우, 서버(200)는, 디바이스(100)에 의해 음성 신호로부터 획득된 제1 문자열과 함께 음성 신호와 관련된 정보를 디바이스(100)로부터 수신할 수 있다. 서버(200)는, 음성 신호와 관련된 정보에 기초하여 제1 문자열을 강제 정렬함으로써 프레임 동기화된 제1 문자열을 생성할 수 있다. The
프로세서(220)는, 제1 문자열로부터 복수의 추정 문자열들을 식별하고, 복수의 추정 문자열들에 기초하여 제2 문자열을 획득할 수 있다. The
일 실시예에 따라 프로세서(220)는, 제1 문자열 내의 각 문자와 발음이 유사한 대체 문자들을 식별하고, 식별된 대체 문자들에 기초하여 소정 문자열 내의 적어도 하나의 문자가 다른 문자로 교정된 추정 문자열들을 결정할 수 있다. 프로세서(220)는, 결정된 추정 문자열들 중에서, 언어 모델 및 사전 정보 등 미리 저장된 정보에 기초하여 가장 적합한 추정 문자열을 선택하여 제2 문자열로서 획득할 수 있다.According to an embodiment, the
이하에서는, 일 실시예에 따른 프로세서(220)가 제2 문자열을 획득하는 방법을 보다 구체적으로 설명한다.Hereinafter, a method of obtaining a second character string by the
먼저, 프로세서(220)는, 제1 문자열로부터 획득되는 복수의 추정 문자열들의 가능도를 계산할 수 있다. First, the
디바이스(100)에 의해 음성 신호로부터 추정된 제1 문자열은, 음성 신호 프레임들이 임의의 문자들 각각에 대응할 확률 분포에 대해서, 디바이스(100)에 저장된 언어 모델 및 사전 정보 등을 고려하여 획득된 것이다. 서버(200)는, 디바이스(100)에 의해 추정된 제1 문자열로부터 디바이스(100)의 언어 모델 및 사전 정보와 관련된 바이어스를 제거하고, 서버(200) 내에 저장된 언어 모델 및 사전 정보를 이용하여 재 디코딩을 수행할 수 있다. The first character string estimated from the speech signal by the
서버(200)는, 제1 문자열로부터 디바이스(100)의 언어 모델 및 사전 정보에 기초한 바이어스를 제거하기 위하여, 제1 문자열로부터 획득되는 복수의 추정 문자열들의 가능도를 계산할 수 있다.The
프로세서(220)는, 제1 문자열로부터 획득되는 가능도에 대해서 메모리(230)에 저장된 사전 정보 및 언어 모델을 적용하여 디코딩을 수행함으로써 제2 문자열을 획득할 수 있다. 프로세서(220)가 서버(200)의 메모리(230)에 저장된 사전 정보 및 언어 모델을 적용하여 디코딩을 수행할 경우, 방대한 양의 개체명을 포함하는 사전 정보 및 언어 모델을 이용할 수 있으므로, 음성 인식의 정확도가 높아질 수 있다. The
예를 들어, 디바이스(100)의 메모리 내의 언어 모델에는 개체명 "Cardinals"가 저장되어 있지 않을 수 있다. 따라서, 디바이스(100)는, 음성 신호“The Cardinals baseball team"로부터 제1 문자열 [The cat and deers baseball team]을 잘못 추정할 수 있다. For example, the entity name "Cardinals" may not be stored in the language model in the memory of the
반면에, 도 8a에 도시된 바와 같이, 서버(200)의 메모리(230) 내에는, 스포츠 도메인의 개체명 "Cardinals"가 저장되어 있을 수 있다. 따라서, 서버(200)의 프로세서(220)는, 디바이스(100)에서 추정된 'cat and deers'가 실제로는 야구 팀 명칭인 'Cardinals'일 확률이 더 높다고 판단할 수 있다. On the other hand, as shown in FIG. 8A, in the
프로세서(220)는, 제1 문자열 내의 각 문자와 발음이 유사한 대체 문자들을 식별하고, 식별된 대체 문자들에 기초하여 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 교정된 제2 문자열을 획득할 수 있다. 따라서, 프로세서(220)는, 제1 문자열 내의 'cat and deers'가 'Cardinals'로 대체된 제2 문자열 [The Cardinals baseball team]을 획득할 수 있다. 예를 들어, WFST 디코딩 방식을 이용하여, 제1 문자열 [The cat and deers baseball team]으로부터 제2 문자열 [The Cardinals baseball team]을 획득하는 구체적인 방법은 후에 도 17을 참조하여 설명한다. The
서버(200)는, 제2 문자열을 디바이스(100)에게 전송할 수 있다. 디바이스(100)는, 디바이스(100)에서 추정된 제1 문자열을 서버(200)로부터 수신된 제2 문자열로 대체하여 출력할 수 있다. 도 8a에 도시된 바와 같이, 예를 들어, 제1 문자열[The cat and deers baseball team]의 신뢰도는 0.1이고 제2 문자열 [The Cardinals baseball team]의 신뢰도는 0.5일 수 있다. 일 실시 예에 따른 디바이스(100)는, 제1 문자열보다 신뢰도가 높은 제2 문자열을 서버(200)로부터 수신하여 이용함으로써 음성 인식 성능을 높일 수 있다.The
상술한 바와 같이, 일 실시 예에 따른 서버(200)는, 디바이스(100)로부터 프레임 동기화된 문자열을 수신하거나, 디바이스(100)로부터 수신된 문자열로부터 프레임 동기화된 문자열을 생성할 수 있다. 서버(200)는, 음성 신호 프레임 각각에 대응하는 문자 별로 가능도를 획득함으로써 대체 문자열을 결정할 수 있다. 서버(200)는, 복수의 문자들을 포함하는 문자열 전체를 동시에 수신할 수도 있고, 문자열에 포함되는 적어도 일부 문자들을 순차적으로 수신할 수도 있다. As described above, the
이하에서는, 도 8b를 참조하여 일 실시 예에 따른 서버(200)가 음성 신호 프레임 각각에 대응하는 문자 별로 가능도를 획득함으로써 대체 문자열을 결정하는 방법을 보다 구체적으로 설명한다.Hereinafter, a method of determining a replacement character string by obtaining a likelihood for each character corresponding to each voice signal frame by the
일 실시 예에 따른 서버(200)는, 디바이스(100)로부터 프레임 동기화된 제1 문자열을 수신하거나, 디바이스(100)로부터 수신된 문자열로부터 프레임 동기화된 제1 문자열을 생성할 수 있다. The
예를 들어, 서버(200)의 통신부(210)는, 디바이스(100)에 의해 음성 신호로부터 획득된 문자열과 함께 음성 신호와 관련된 정보를 디바이스(100)로부터 수신할 수 있다. 서버(200)는, 음성 신호와 관련된 정보에 기초하여 문자열을 강제 정렬함으로써 프레임 동기화된 제1 문자열을 생성할 수 있다 For example, the
서버(200)의 문자열 평가부(221)는, 프레임 동기화된 제1 문자열 내의 각 문자에 대하여 각 문자가 대체될 대체 문자들에 관한 가능도 행렬(813)들을 산출할 수 있다. The character
일 실시예에 따라 문자열 평가부(221)에서 산출하는 소정 문자에 대한 가능도 행렬이란, 소정 문자가 대체될 대체 문자들에 대한 가능도 값들을 포함하는 행렬을 의미할 수 있다. 소정 문자가 대체될 대체 문자에 대한 가능도 값이란, 대체 문자가 참값(ground truth) 문자라고 가정하였을 때 음성 인식 결과로서 소정 문자가 추정될 확률을 의미할 수 있다. According to an embodiment, the likelihood matrix for a predetermined character calculated by the character
예를 들어, 음성 인식 결과 획득되는 문자열 내에 포함되는 문자 “a”에 대해서, 참값(ground truth) 문자가 “a”일 확률 값, “b”일 확률 값, “c”일 확률 값, …, 및 “z”일 확률 값을 포함하는 가능도 행렬 [0.4 0.01 0.01 0.01 0.2 … 0.01]이 획득될 수 있다. 문자열 내에 포함되는 각 문자에 대응하는 대체 문자들에 대한 가능도 값들을 포함하는 가능도 행렬을 획득함에 있어서, 각 문자와 발음이 유사한 대체 문자들에 대해서 높은 가능도 값이 부여될 수 있다.For example, for a character “a” included in a character string obtained as a result of speech recognition, a probability value of “a” as a ground truth character, a probability value of “b”, a probability value of “c”,… , And likelihood matrix containing probability values of “z” [0.4 0.01 0.01 0.01 0.2. 0.01] can be obtained. In obtaining a likelihood matrix including likelihood values for replacement characters corresponding to each character included in a character string, a high likelihood value may be assigned to replacement characters having a similar pronunciation to each character.
서버(200)의 디코더(223)는, 가능도 행렬(813)들에 기초하여, 프레임 동기화된 제1 문자열 내의 적어도 하나의 문자가 대체된 복수의 추정 문자열들 중에서 하나의 추정 문자열을 선택하고, 선택된 추정 문자열을 제2 문자열로서 획득할 수 있다.The
예를 들어, 디코더(223)는, 사전 정보 및 언어 모델에 기초하여, 가능도 행렬(813)들을 재연산할 수 있다. 디코더(223)는, 재 연산된 가능도를 최대로 하는 제2 문자열을 복수의 추정 문자열들 중에서 결정할 수 있다. 예를 들어, 디코더(223)는, 비터비 디코더를 포함할 수 있다. 비터비 디코더는, 사전 정보 및 언어 모델을 고려하여, 제1 문자열에 대한 가장 가능성 높은 문자열을 제2 문자열로서 찾아낼 수 있다.For example, the
서버(200)의 디코더(223)는, 복수의 추정 문자열들의 가능도, 사전 정보, 및 언어 모델에 기초하여, 복수의 추정 문자열들(815) 중에서 신뢰도가 가장 높은 문자열(817)을 제2 문자열로서 획득할 수 있다. 서버(200)는, 제2 문자열을 디바이스(100)에게 전송할 수 있다. 디바이스(100)는, 제1 문자열보다 신뢰도가 높은 제2 문자열을 서버(200)로부터 수신하여 이용함으로써 음성 인식 성능을 높일 수 있다.The
이하에서는, 도 9 내지 도 11b를 참조하여 서버(200)에서 가능도를 계산하는 방법의 다양한 실시 예들을 구체적으로 설명한다. Hereinafter, various embodiments of a method for calculating the likelihood in the
도 9는 일 실시 예에 따른 서버의 구체적인 블록도를 도시한다.9 is a detailed block diagram of a server according to an embodiment.
도 9에 도시된 바와 같이, 서버(200)의 통신부(210)는, 디바이스(100)로부터 제1 문자열을 수신할 수 있다.As illustrated in FIG. 9, the
프로세서(220)의 문자열 평가부(221)는, 디코더(223)가 제1 문자열 보다 높은 신뢰도를 가지는 제2 문자열을 추천하여 출력할 수 있도록 하는 제1 문자열에 대한 평가 정보를 출력할 수 있다. 예를 들어, 제1 문자열에 대한 평가 정보는, 제1 문자열로부터 산출되는 가능도를 포함할 수 있다. The character
문자열 평가부(221)는, 제1 문자열로부터 획득되는 복수의 추정 문자열들의 가능도를 계산할 수 있다. 문자열 평가부(221)는, 제1 문자열 내의 각 문자를 다른 문자로 대체함으로써, 복수의 추정 문자열들을 획득할 수 있다. 복수의 추정 문자열들의 가능도란, 제1 문자열로부터 획득되는 복수의 추정 문자열들 각각이 참값 문자열이라고 가정하였을 때, 음성 인식 모듈로부터 제1 문자열이 추정될 확률을 의미할 수 있다. The character
문자열 평가부(221)에서 출력되는 제1 문자열로부터 획득되는 가능도는, 제1 문자열 내의 각 문자와 발음이 유사한 대체 문자들을 식별하고, 식별된 대체 문자들에 기초하여 소정 문자열 내의 적어도 하나의 문자가 다른 문자로 교정된 추정 문자열들을 결정하기 위하여 이용될 수 있다.The likelihood obtained from the first character string output from the character
문자열 평가부(221)는, 제1 문자열 내의 각 문자에 대하여 각 문자가 대체될 대체 문자들에 관한 가능도 행렬들을 산출하고, 가능도 행렬들 내의 가능도 값들에 기초하여 복수의 추정 문자열들을 식별할 수 있다. 문자열 평가부(221)는, 복수의 추정 문자열들의 가능도로서, 각 문자로부터 획득되는 가능도 행렬들을 출력할 수 있다.The character
문자열 평가부(221)는, 메모리(230)에 저장된 가능도 계산용 데이터(231)를 이용하여, 제1 문자열로부터 가능도를 계산할 수 있다. 예를 들어, 가능도 계산용 데이터(231)는, 가능도 계산을 위해 훈련된 신경망 또는 오차 행렬을 포함할 수 있다.The character
일 예로서, 문자열 평가부(221)는, 제1 문자열 내의 각 문자의 이전 문자들에 기초하여 각 문자의 사후 확률들을 계산할 수 있다. 문자열 평가부(221)는, 제1 문자열로부터 문자 배열 확률을 계산할 수 있다. 문자열 평가부(221)는, 각 문자의 사후 확률들 및 문자 배열 확률에 기초하여, 제1 문자열로부터 획득되는 복수의 추정 문자열들의 가능도를 계산할 수 있다.As an example, the character
다른 예로서, 문자열 평가부(221)는, 미리 결정된 오차 행렬에 기초하여, 제1 문자열 내의 각 문자의 사후 확률들을 계산할 수 있다. 문자열 평가부(221)는, 제1 문자열 내의 각 문자의 사후 확률들에 기초하여, 제1 문자열로부터 획득되는 복수의 추정 문자열들의 가능도를 계산할 수 있다.As another example, the character
문자열 평가부(221)에서 가능도를 계산한 후, 디코더(223)는 사전 정보, 및 언어 모델을 이용하여, 계산된 가능도에 기초하여 제2 문자열을 획득할 수 있다. 디코더(223)는, 제1 문자열 내의 적어도 하나를 다른 문자로 대체함으로써 획득되는 복수의 추정 문자열들 중에서, 가능도를 최대로 하는 제2 문자열을 획득할 수 있다.After calculating the likelihood in the character
디코더(223)는, 사전 정보(232) 및 언어 모델(233)을 이용하여, 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 대체된 제2 문자열을 획득할 수 있다. 예를 들어, 디코더(223)는, 가능도를 입력으로 하는 WFST 디코더 또는 전통적인 토큰 패싱(token passing) 을 이용하는 비터비 디코더를 포함할 수 있다.The
본 개시의 일 실시 예에 따라 서버(200)에 저장된 사전 정보는, 음소열과 단어 간의 관계를 저장하는 일반적인 사전 정보가 아닌, 단어와 문자열 간의 관계를 저장한 사전 정보일 수 있다. 또한, 언어 모델은, 특정 단어열이 주어졌을 때 다음에 나올 단어들의 확률을 추정할 수 있도록 단어들 간의 관계를 학습한 인공 지능 모델일 수 있다. 예를 들어, 언어 모델은, RNN 등의 신경망이거나, 통계적 n-gram일 수 있다.According to an embodiment of the present disclosure, the dictionary information stored in the
통신부(210)는 제2 문자열을 디바이스(100)에게 전송할 수 있다. 그러나 본 개시의 실시예는 제2 문자열을 디바이스(100)에게 전송하는 실시예에 제한되지 않는다. 본 개시의 일 실시 예에 따른 서버(200)는, 제2 문자열에 대한 자연어 처리를 통해 사용자의 발화 의도를 파악함으로써 제2 문자열에 기초한 음성 비서 서비스에 관련된 정보를 통신부(210)를 통해 디바이스(100)에게 전송할 수 있다.The
본 개시의 다양한 실시예들에 따라 서버(200)로부터 디바이스(100)에게 전송되는 제2 문자열과 관련된 정보에 대해서는, 도 2b 및 도 2c를 참조하여 상술하였으므로 구체적인 설명은 생략한다.Information related to the second character string transmitted from the
한편, 본 개시의 일 실시 예에 따른 서버(200)의 디코더(223)는, 도메인 별로 서로 다른 사전 정보 및 언어 모델을 이용하여, 제1 문자열에 대한 디코딩을 수행할 수 있다. 따라서, 본 개시의 일 실시 예에 따른 서버(200)는, 디바이스(100)로부터 제1 문자열에 대한 재 디코딩을 통해 음성 인식 정확도가 높아진 음성 인식 결과를 출력할 수 있다.Meanwhile, the
일 실시 예에 따른 서버(200)의 프로세서(220)는, 디바이스(100)로부터 제1 문자열을 수신하고, 제1 문자열에 관련된 도메인을 결정할 수 있다. 서버(200)의 디코더(223)는, 결정된 도메인에 대응되는 사전 정보 및 언어 모델을 이용하여, 제1 문자열에 대한 디코딩을 수행할 수 있다.The
일 예로서, 서버(200)의 프로세서(220)는, 디바이스(100)로부터 제1 문자열과 함께 제1 문자열에 관련된 도메인 정보를 수신하고, 수신된 정보에 기초하여 제1 문자열에 대한 디코딩을 수행할 도메인을 결정할 수 있다. 예를 들어, 프로세서(220)는, 디바이스(100)로부터 수신된 정보로부터 식별된 도메인과 동일하거나 유사한 도메인을 디코딩을 수행할 도메인으로서 결정할 수 있다.As an example, the
다른 예로서, 서버(200)의 프로세서(220)는 디바이스(100)로부터 수신된 제1 문자열에 기초하여, 수신된 제1 문자열에 관련된 도메인을 결정할 수 있다. 도 9에는 도시되지 않았지만, 서버(200)는 도메인 식별을 위해 훈련된 인공 지능 모델인 도메인 식별 모델을 메모리(230)에 저장할 수 있다. 프로세서(220)는, 도메인 식별 모델을 이용하여, 제1 문자열을 입력 값으로 하여 도메인 신뢰도를 출력할 수 있다. 프로세서(220)는, 도메인 신뢰도에 기초하여, 제1 문자열에 관련된 도메인을 결정할 수 있다. 일 실시예에 따르면, 서버(200)의 문자열 평가부(221) 또는 디코더(223)가 디바이스(100)로부터 수신된 제1 문자열에 기초하여 수신된 제1 문자열에 관련된 도메인을 결정할 수 있다. As another example, the
예를 들어, 서버(200)의 디코더(223)는 디바이스(100)로부터 수신된 제1 문자열에 기초하여, 제1 문자열에 관련된 도메인을 결정할 수 있다. 일 실시예에 따른 디코더(223)는, 수신된 제1 문자열에 대해 결정된 도메인에 특화된 사전 및 언어 모델을 이용한 디코딩을 수행할 수 있다.For example, the
일 실시예에 따른 디코더(223)는 투패스 디코더(2 Pass Decoder)일 수 있다. 투패스 디코더는, 문자열 평가부(221)로부터 수신되는 제1 문자열에 대한 평가 정보에 대한 1차 디코딩을 수행한 후, 1차 디코딩 결과를 이용하여 2차 디코딩을 수행할 수 있다. The
이 때, 본 개시의 일 실시예에 따른 디코더(223)는, 제1 패스 디코더(1st pass decoder)에 의해, 일반적인(general) 사전 및 언어 모델을 이용한 디코딩을 수행할 수 있다. 그리고 디코더(223)는, 제2 패스 디코더(2nd pass decoder)에 의해, 수신된 제1 문자열에 대해 결정된 도메인에 특화된 사전 및 언어 모델을 이용한 디코딩을 수행할 수 있다.In this case, the
또 다른 예로서, 일 실시예에 따른 서버(200)의 통신부(210)는, 디바이스(100)로부터 제1 문자열과 함께 제1 문자열에 관련된 도메인을 판단하기 위한 정보를 수신할 수 있다. 예를 들어, 디바이스(100)로부터 수신된 도메인을 판단하기 위한 정보는 컨텍스트 정보를 포함할 수 있다. 예를 들어, 컨텍스트 정보는, 사용자가 현재 디바이스(100) 또는 서버(200) 상에서 이용하고 있는 애플리케이션에 대한 정보, 대화 이력 정보, 디바이스(100) 주변의 상황 정보 또는 트렌드 정보 중 적어도 하나를 포함할 수 있다. 서버(200)의 프로세서(220)는, 컨텍스트 정보를 기반으로 제1 문자열에 대한 디코딩을 수행할 도메인을 결정할 수 있다. 이하에서는, 컨텍스트 정보 기반으로 도메인을 결정하는 구체적인 방법을 설명한다.As another example, the
예를 들어, 프로세서(220)는, 사용자가 현재 이용하고 있는 애플리케이션에 기초하여 도메인을 결정할 수 있다. 프로세서(220)는, 사용자가 디바이스(100) 또는 서버(200) 상에서 지도 애플리케이션을 이용하고 있는 경우, 사용자의 발화로부터 획득된 문자열에 대한 도메인을 결정함에 있어서 지도와 관련된 도메인을 디코딩을 수행할 도메인으로서 결정할 수 있다. 예를 들어, 프로세서(220)는, 지도 도메인에 더 높은 가중치를 부여하여 디코딩을 수행할 도메인을 결정하거나, 지도 도메인을 디코딩을 수행할 도메인으로서 결정할 수 있다.For example, the
또는, 예를 들어, 프로세서(220)는, 대화 이력 정보에 기초하여 도메인을 결정할 수 있다. 프로세서(220)는, 사용자의 대화 이력이 '음악'과 관련된다고 판단되는 경우, 사용자의 발화로부터 획득된 문자열에 대한 도메인을 결정함에 있어서 음악과 관련된 도메인을 디코딩을 수행할 도메인으로서 결정할 수 있다. 예를 들어, 프로세서(220)는, 음악 도메인에 더 높은 가중치를 부여하여 디코딩을 수행할 도메인을 결정하거나, 음악 도메인을 디코딩을 수행할 도메인으로서 결정할 수 있다.Alternatively, for example, the
또는, 예를 들어, 프로세서(220)는, 디바이스(100)에 탑재된 센서에 의해 감지되는 디바이스(100) 주변의 상황 정보에 기초하여 도메인을 결정할 수 있다. 프로세서(220)는, 디바이스(100)의 GPS 정보를 이용하여 식별되는 디바이스(100)의 위치에 기초하여 도메인을 결정할 수 있다. 프로세서(220)는, 사용자가 음식점을 검색하고자 하는 경우, 디바이스(100)의 위치와 관련된 도메인을 디코딩을 수행할 도메인으로서 결정할 수 있다. 프로세서(220)는, 디바이스(100)의 위치가 영화관 근처인 경우, 영화와 관련된 도메인을 디코딩을 수행할 도메인으로서 결정할 수 있다.Alternatively, for example, the
또는, 예를 들어, 프로세서(220)는, 트렌드 정보에 기초하여 도메인을 결정할 수 있다. 프로세서(220)는, 주요 뉴스 또는 포털 사이트를 통한 실시간 검색어와 관련된 도메인을 디코딩을 수행할 도메인으로서 결정할 수 있다.Alternatively, for example, the
이하에서는, 일 실시 예에 따른 서버(200)의 문자열 평가부(221)가 제1 문자열 내의 각 문자의 이전에 누적된 문자들에 기초하여 가능도를 획득하는 경우를 구체적으로 설명한다. Hereinafter, a case in which the character
일 실시 예에 따른 서버(200)의 통신부(210)는, 프레임 동기화된 제1 문자열 yo[0:l+1]을 디바이스(100)로부터 수신할 수 있다. 프레임 동기화된 문자열과 관련하여서는, 도 6을 참조하여 상술하였으므로, 중복되는 설명은 생략한다.The
이하의 설명에서, yo[L]은, 온-디바이스 음성 인식 모듈에 의해 음성 신호로부터 추정되는, 프레임 동기화된 문자일 수 있다. 프레임 동기화된 문자란, 음성 신호에 포함되는 하나의 음성 프레임으로부터 추정된 문자를 의미할 수 있다. yo[L]은, 전체 문자들의 집합인 V에 포함된다.In the following description, y o [L] may be a frame-synchronized character estimated from a speech signal by the on-device speech recognition module. The frame-synchronized text may mean a text estimated from one voice frame included in the voice signal. y o [L] is included in V, the set of all characters.
yo[0:L+1]은, 0≤L'≤L일 때 yo[L']의 배열(sequence)를 의미한다. L 및 L'는 문자열의 인덱스이다.y o [0:L+1] means the sequence of y o [L'] when 0≤L'≤L. L and L'are indexes of the character string.
통신부(210)는 복수의 문자들을 포함하는 문자열 전체를 동시에 수신할 수도 있고, 문자열에 포함되는 적어도 일부 문자들을 순차적으로 수신할 수도 있다. The
yp[L]은, 디바이스에 의해 획득된 문자열을 서버에서 후처리하기 위해서 추정되는 프레임 동기화된 문자를 의미한다. yp[L]은, 문자들의 집합인 V에 포함된다. Wi는 단어열이다. Wi는, 단어들의 집합인 D에 포함되는 단어이다.y p [L] refers to a frame-synchronized character estimated to post-process the character string acquired by the device in the server. y p [L] is included in V, which is a set of characters. W i is a string of words. W i is a word included in D, which is a set of words.
일 실시 예에 따른 서버(200)의 문자열 평가부(221)는, 제1 문자열 yo[0:L+1]에 따라 문자들이 나열될 문자 배열 확률 P(yo[0:L+1])을 계산할 수 있다. 문자 배열 확률 P(yo[0:L+1])는, 문자-레벨 언어 모델로부터 계산될 수 있다.The character
일 실시 예에 따른 문자열 평가부(221)는, 제1 문자열 yo[0:L+1]이 디바이스(100)에 의해 추정되었을 때, 실제로는 L번째 문자가 yp[L]일 사후 확률들 P(yp[L]|yo[0:L+1])을 계산할 수 있다. 문자열 평가부(221)는, 제1 문자열 yo[0:L+1]에 기초하여, 문자 yo[L]의 사후 확률들 P(yp[L]|yo[0:L+1])을 계산할 수 있다. 즉, 사후 확률 계산부(225)는, 제1 문자열 yo[0:L+1]에 기초하여, 디바이스(100)에 의해 문자 yo[L]가 정확하게 추정되었을 확률 및 문자 yo[L]가 잘못 추정되었을 확률들을 계산할 수 있다. When the first character string y o [0:L+1] is estimated by the
일 실시 예에 따른 문자열 평가부(221)는, 신경망을 이용해서, 제1 문자열로부터 제1 문자열의 각 문자의 사후 확률들을 계산할 수 있다.The
일 실시 예에 따른 문자열 평가부(221)는, 도 10a에 도시된 LSTM 레이어(1010) 및 소프트맥스 레이어(1030)를 포함하는 회귀 신경망을 이용하여 제1 문자열 내의 각 문자의 사후 확률들을 계산할 수 있다. The
도 10a에 도시된 LSTM 레이어(1010)는 복수의 적층된 LSTM 레이어들을 포함할 수 있다. 도 10a에서, 제1 문자열이 LSTM 레이어(1010)에 입력되고, LSTM 레이어(1010)로부터 출력되는 데이터가 소프트맥스 레이어(1030)에 입력되며, 소프트맥스 레이어(1030)는 제1 문자열의 각 문자의 사후 확률들을 출력할 수 있다.The
일 실시 예에 따라 문자열 내의 각 문자의 사후 확률들을 계산하는 신경망은, 참값 문자열 및 음성 인식 모듈로부터 출력되는 오류 문자열을 학습함으로써 훈련될 수 있다. 구체적으로, 신경망은, 음성 인식 모듈로부터 출력되는 오류 문자열을 입력을 수신하였을 때, 출력되는 출력값이 참값 문자열에 가까워지도록 훈련될 수 있다.According to an embodiment, a neural network that calculates posterior probabilities of each character in a character string may be trained by learning a true value character string and an error character string output from a speech recognition module. Specifically, when the neural network receives an input of an error string output from a speech recognition module, the neural network may be trained so that the output value approaches the true value string.
일 실시 예에 따른 문자열 평가부(221) 가 사후 확률들을 획득하기 위해 이용하는 인공 지능 모델은, 특정 음성 인식 모듈의 음성 인식 결과에 과적합(overfitting)되는 것을 막기 위해서, 복수 개의 음성 인식 모듈들의 음성 인식 결과에 기초하여 훈련될 수 있다.The artificial intelligence model used by the character
프로세서(220)의 문자열 평가부(221)는, 사후 확률들 P(yp[L]|yo[0:L+1]) 및 문자 배열 확률 P(yo[0:L+1])에 기초하여, 가능도 P(yo[0:L+1]|yp[L])를 계산할 수 있다.The character
가능도 P(yo[0:L+1]|yp[L])는, 사후 확률 및 문자 배열 확률에 기초하여 다음의 수학식 1에 의해 계산될 수 있다.The likelihood P(y o [0:L+1]|y p [L]) may be calculated by
[수학식 1][Equation 1]
상기 [수학식 1]에서 P(yp[L])은 yp[L]의 사전 확률을 의미한다. 소정 문자 yp[L]의 사전 확률은, 소정 문자가 이용되는 빈도에 기초하여 통계적으로 미리 계산된 값일 수 있다. In [Equation 1], P(y p [L]) means a prior probability of y p [L]. The prior probability of the predetermined character y p [L] may be a statistically pre-calculated value based on the frequency at which the predetermined character is used.
일 실시 예에 따른 서버(200)의 디코더(223)는, 사전 정보(232) 및 언어 모델(233)을 이용하여, 가능도 P(yo[0:L+1]|yp[L])로부터 제2 문자열 Wi을 추정할 수 있다. 제2 문자열은, 제1 문자열의 적어도 하나의 문자가 다른 문자로 대체된 문자열일 수 있다. 통신부(210)는 제2 문자열 Wi를 디바이스(100)에게 전송할 수 있다. 서버(200)는, 디바이스(100)로부터 프레임 동기화된 문자열 yo[0:L+1]을 수신하였지만, 단어열의 형태를 가지는 제2 문자열 Wi를 디바이스(100)에게 전송할 수 있다.The
한편, 다른 일 실시 예에 따른 서버(200)의 문자열 평가부(221)는, 각 문자의 이전에 누적된 문자들을 고려하지 않고, 각 문자 자체만을 고려하여 가능도를 계산할 수 있다. 다른 일 실시예에 따른 문자열 평가부(221)는, 문자열 yo[0:L+1] 대신에 문자 yo[L]만을 고려하여 가능도를 계산할 수 있다. 문자열 yo[0:L+1] 대신에 문자 yo[L] 만을 고려하는 경우, 서버(200)의 구조가 매우 간단해지고, 신경망 대신에 문자 레벨의 오차 행렬만 저장하여 이용하므로 계산 과정이 단순해질 수 있다.Meanwhile, the
서버(200)의 통신부(210)는, 프레임 동기화된 제1 문자열 yo[0:L+1]을 디바이스(100)로부터 수신할 수 있다. 프레임 동기화된 문자열과 관련하여서는, 도 6을 참조하여 상술하였으므로, 중복되는 설명은 생략한다. 통신부(210)는 복수의 문자들을 포함하는 문자열 전체를 동시에 수신할 수도 있고, 문자열에 포함되는 적어도 일부 문자들을 순차적으로 수신할 수도 있다.The
다른 일 실시 예에 따른 서버(200)의 문자열 평가부(221)는, 제1 문자열 내의 제1 문자 yo[L]이 디바이스(100)에 의해 추정되었을 때, 실제로는 L번째 문자가 yp[L]일 사후 확률들 P(yp[L]|yo[L])을 획득할 수 있다. 문자열 평가부(221)는, 제1 문자 yo[L]에 기초하여, 문자 yo[L]의 사후 확률들 P(yp[L]|yo[L])을 획득할 수 있다. 즉, 문자열 평가부(221)는, 제1 문자 yo[L]에 기초하여, 디바이스(100)에 의해 문자 yo[L]가 정확하게 추정되었을 확률 및 문자 yo[L]가 잘못 추정되었을 확률들을 획득할 수 있다. According to another embodiment, when the first character y o [L] in the first character string is estimated by the
일 실시 예에 따른 문자열 평가부(221)는, 오차 행렬을 이용해서 제1 문자열로부터 각 문자의 사후 확률들을 획득할 수 있다. The character
도 10b는 일 실시 예에 따라 사후 확률들을 계산하기 위해 이용되는 오차 행렬(1001)의 예를 도시한다. 10B shows an example of an
오차 행렬(1001)은, 디바이스(100)의 음성 인식 모듈이 문자열에 포함되는 소정 문자를 정확하게 예측했을 확률 및 다른 문자를 소정 문자로 잘못 예측했을 확률을 포함한다.The
예를 들어, 문자 "a"와 문자 "e"는 발음이 유사하기 때문에 음성 인식 모듈이 실제 문자 "a"를 "e"로 잘못 추정할 확률이 상대적으로 높을 수 있다. 반면에, 문자 "a"와 문자 "b"는 발음이 매우 상이하기 때문에 음성 인식 모듈이 실제 문자 "a"를 "b"로 잘못 추정할 확률이 상대적으로 낮을 수 있다.For example, since the pronunciation of the letter “a” and the letter “e” are similar, the probability that the speech recognition module incorrectly estimates the actual letter “a” as “e” may be relatively high. On the other hand, since the pronunciation of the letter "a" and the letter "b" are very different, the probability that the speech recognition module incorrectly estimates the actual letter "a" as "b" may be relatively low.
따라서, 도 10b에 예시된 바와 같이, 디바이스(100)의 음성 인식 모듈이 실제 문자 "a"를 문자 "e"로 잘못 추정할 확률은 0.23이고, 실제 문자 "a"를 문자 "b"로 잘못 추정할 확률은 0.01일 수 있다.Therefore, as illustrated in FIG. 10B, the probability that the speech recognition module of the
일 실시 예에 따른 문자열 평가부(221)는, 디바이스(100)에 의해 추정되는 문자가 제1 문자 yo[L]일 때, 실제 문자가 yp[L]일 사후 확률들 P(yp[L]|yo[L])을 도 10b에 오차 행렬(1001)로부터 검색하여 획득할 수 있다. When the character estimated by the
문자열 평가부(221)는, 획득된 사후 확률들 P(yp[L]|yo[L])에 기초하여, 가능도 P(yo[L]|yp[L])를 계산할 수 있다.The character
가능도 P(yo[L]|yp[L])는, 사후 확률들에 기초하여 다음의 [수학식 2]에 의해 계산될 수 있다.The likelihood P(y o [L]|y p [L]) can be calculated by the following [Equation 2] based on posterior probabilities.
[수학식 2][Equation 2]
상기 [수학식 2]에서 P(yp[L])은 yp[L]의 사전 확률을 의미한다. 소정 문자 yp[L]의 사전 확률은, 소정 문자가 이용되는 빈도에 기초하여 통계적으로 미리 계산된 값일 수 있다. In [Equation 2], P(y p [L]) denotes a prior probability of y p [L]. The prior probability of the predetermined character y p [L] may be a statistically pre-calculated value based on the frequency at which the predetermined character is used.
다른 일 실시 예에 따른 서버(200)의 디코더(223)는, 사전 정보(232) 및 언어 모델(233)을 이용하여, 가능도P(yo[L]|yp[L])로부터 제2 문자열 Wi을 추정할 수 있다. 제2 문자열은, 제1 문자열의 적어도 하나의 문자가 다른 문자로 대체된 문자열일 수 있다. 통신부(210)는 제2 문자열 Wi를 디바이스(100)에게 전송할 수 있다. 서버(200)는, 디바이스(100)로부터 프레임 동기화 문자열 yo[0:l+1]을 수신하였지만, 단어열의 형태를 가지는 제2 문자열 Wi를 출력할 수 있다.The
상술한 바와 같이 일 실시 예에 따른 서버(200)의 문자열 평가부(221)는, 디바이스(100)로부터 프레임 동기화된 문자열을 수신하고, 음성 신호 프레임 각각에 대응하는 문자 별로 가능도를 획득할 수 있다. 예를 들어, 문자열 평가부(221)는, 음성 신호 프레임에 대응하는 인덱스 L의 문자 yo[L]에 대해서 가능도 P(yo[0:L+1]|yp[L]) 또는 P(yo[L]|yp[L])를 산출할 수 있다.As described above, the character
이하에서는, 도 11a 및 도 11b를 참조하여 일 실시 예에 따른 문자열 평가부(221)가, 디바이스(100)로부터 수신된 문자열로부터, 음성 신호 프레임 각각에 대응하는 문자 별로 가능도를 획득하는 방법을 구체적으로 설명한다.Hereinafter, referring to FIGS. 11A and 11B, a method of obtaining a likelihood for each character corresponding to each voice signal frame from a character string received from the
도 11a에 도시된 바와 같이 일 실시 예에 따른 문자열 평가부(221)는 프레임 동기화된 문자열(1101)을 수신할 수 있다. 문자열 평가부(221)는, 각 문자에 대하여 각 문자가 대체될 대체 문자들에 관한 가능도 행렬을 산출할 수 있다.As shown in FIG. 11A, the character
도 11b에 도시된 바와 같이, 일 실시 예에 따른 문자열 평가부(221)에서 산출되는 대체 문자들에 관한 가능도 행렬은, 소정 문자가 임의의 문자들 각각일 가능도 값들을 포함하는 행렬로써 표현될 수 있다. 도 11b의 표(1105)에 도시된 바와 같이 임의의 문자들 각각은 가능도 행렬의 인덱스 각각에 매핑될 수 있다. As shown in FIG. 11B, the likelihood matrix for replacement characters calculated by the
예를 들어, 가능도 행렬(1103)에서 인덱스 a1의 값은, 소정 문자가 인덱스 a1에 대응하는 문자 "a"로 대체될 가능도 값을 나타낼 수 있다. 가능도 행렬(1103)에서 인덱스 a2의 값은, 소정 문자가 인덱스 a2에 대응하는 문자 "b"로 대체될 가능도 값을 나타낼 수 있다. 가능도 행렬(1103)에서 인덱스 a3의 값은, 소정 문자가 인덱스 a3에 대응하는 문자 "c"로 대체될 가능도 값을 나타낼 수 있다.For example, the value of the index a 1 in the
일 실시 예에 따른 문자열 평가부(221)는, 문자열 내의 각 문자에 대하여 각 문자가 대체될 대체 문자들에 관한 가능도 행렬들(1107)을 산출할 수 있다. 문자열 평가부(221)는 제1 문자열 내의 적어도 하나의 문자가 대체된 복수의 추정 문자열들의 가능도로서 산출된 가능도 행렬들(1107)을 디코더(223)에게 출력할 수 있다.The character
일 실시 예에 따른 디코더(222)는, 문자열 평가부(221)로부터 수신한 가능도에 기초하여, 사전 정보, 및 언어 모델을 이용하여, 복수의 추정 문자열들 중에서 신뢰도가 가장 높은 문자열을 제2 문자열로서 획득할 수 있다.Based on the likelihood received from the character
상술한 바와 같이 본 개시의 다양한 실시 예들에 따른 음성 인식 시스템은 온-디바이스 음성 인식이 수행되는 경우와 서버-기반 음성 인식이 수행되는 경우를 나누어 선택적으로 수행할 수 있다. 그러나 본 개시는 이에 제한되지 않으며, 본 개시의 일 실시 예에 따른 디바이스(300)는, 복수의 음성 인식 모듈을 포함하고 상술한 바와 유사한 방식으로 제1 음성 인식 모듈에서 음성 인식이 수행되는 경우와 제2 음성 인식 모듈에서 음성 인식이 수행되는 경우를 나누어 선택적으로 수행할 수 있다.As described above, the speech recognition system according to various embodiments of the present disclosure may selectively perform on-device speech recognition and server-based speech recognition. However, the present disclosure is not limited thereto, and the
도 12는 일 실시 예에 따라 두 개의 음성 인식 모듈들을 선택적으로 이용하는 디바이스의 블록도를 도시한다. 12 is a block diagram of a device that selectively uses two voice recognition modules according to an embodiment.
도 12를 참조하면, 디바이스(300)는, 수신부(310), 프로세서(320), 메모리(340) 및 출력부(350)를 포함할 수 있다. 도 12에 도시된 구성 요소 모두가 디바이스(300)의 필수 구성 요소인 것은 아니다. 도 12에 도시된 구성 요소보다 많은 구성 요소에 의해 디바이스(300)가 구현될 수도 있고, 도 12에 도시된 구성 요소보다 적은 구성 요소에 의해 디바이스(300)가 구현될 수도 있다. 예를 들어, 도 19에 도시된 바와 같이, 일부 실시 예에 따른 디바이스(300)는, 사용자 입력부(2100), 센싱부(2400), 및 A/V 입력부(2600)를 더 포함할 수도 있다.Referring to FIG. 12, the
본 개시의 일 실시 예에 따른 수신부(310)는 사용자로부터 음성 신호를 입력 받을 수 있다. 예를 들어, 수신부(310)는, 마이크로폰에 의해 외부의 소리를 전기적인 음향 데이터로 변환함으로써 음성 신호를 수신할 수 있다. 도 12에는, 수신부(310)가, 디바이스(300)의 내부에 포함되는 것으로 도시되었으나, 다른 일 실시 예에 따른 수신부(310)는 별도의 디바이스 내에 포함되고 디바이스(300)와는 유, 무선으로 연결되는 형태로 구현될 수 있다.The receiving
본 개시의 일 실시 예에 따른 메모리(340)는, 음성 인식을 수행하기 위한 인스트럭션들, 음성 인식에 이용되는 각종 모델, 신경망, 사전 정보 등을 저장할 수 있다.The
메모리(340)는, 음성 인식에 이용되는 각종 모델, 신경망, 사전 정보 등을 저장할 수 있다. 메모리(340)에 저장되는 제1 데이터(341)는, 제1 ASR 모듈(321)이 음성 인식을 수행하는 데 이용되는 모델, 신경망, 및 사전 정보 중 적어도 하나를 포함할 수 있다. 메모리(340)에 저장되는 제2 데이터(342)는, 제2 ASR 모듈(322)이 음성 인식을 수행하는 데 이용되는 모델, 신경망, 및 사전 정보 중 적어도 하나를 포함할 수 있다.The
본 개시의 일 실시 예에 따른 프로세서(320)는, 메모리(340)에 저장된 하나 이상의 인스터럭션들을 실행함으로써, 음성 인식을 수행할 수 있다. 본 개시의 일 실시 예에 따른 프로세서(320)는 제1 ASR 모듈(321) 및 제2 ASR 모듈(322)을 포함할 수 있다. The
본 개시의 일 실시 예에 따른 프로세서(320)의 제1 ASR 모듈(321)은 수신부(310)에서 획득된 음성 신호를 수신하고, 제1 데이터(341)(예를 들어, 음향 모델, 신경망, 언어 모델, 또는 사전 정보 등)에 기초하여 음성 신호에 대한 음성 인식을 수행할 수 있다. 제1 ASR 모듈(321)은 음성 신호로부터 제1 문자열을 획득할 수 있다. 제1 문자열은 프레임 동기화된 문자열일 수 있다. The
도 12의 제1 ASR 모듈(321)은, 도 4a의 ASR 모듈(121) 또는 도 4b의 ASR 모듈(121)에 대응될 수 있으므로 중복되는 설명은 생략한다.Since the
본 개시의 일 실시 예에 따른 프로세서(320)의 결정부(323)는, 제1 ASR 모듈(321)로부터 출력된 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. The
일 예로서, 프로세서(320)의 결정부(323)는 제1 문자열의 신뢰도를 결정하고, 신뢰도에 기초하여 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. As an example, the
예를 들어, 일 실시 예에 따른 프로세서(320)의 결정부(323)는, 제1 문자열의 신뢰도가 임계값 보다 높거나 같으면, 제1 문자열의 교정이 필요하지 않은 것으로 판단하고 제1 문자열을 출력부(350)를 통해 출력할 수 있다. 반면에, 프로세서(320)의 결정부(323)는, 신뢰도가 임계값 보다 작으면, 제1 문자열의 교정이 필요하다고 판단하고 제1 문자열을 제2 ASR 모듈(322)에게 전송할 수 있다.For example, if the reliability of the first character string is higher than or equal to the threshold value, the
다른 예로서, 프로세서(320)의 결정부(323)는, 디바이스(100)에 미리 저장된 키워드들과 제1 문자열을 비교한 결과에 기초하여, 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. 또 다른 예로서, 프로세서(320)의 결정부(323)는, 제1 문자열이 관련된 도메인 또는 제1 문자열 내에 개체명이 포함되는지 여부에 기초하여, 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다.As another example, the
일 실시 예에 따른 프로세서(320)의 결정부(323)가 제1 문자열을 다른 문자열로 대체할 지 여부를 결정하는 구체적인 방법과 관련하여서는, 도 3 내지 도 5b와 관련하여 일 실시 예에 따른 디바이스(100)의 프로세서(120)가 제1 문자열을 다른 문자열로 대체할 지 여부를 결정하는 방법이 이용될 수 있다. 중복되는 설명은 생략한다.Regarding a specific method of determining whether the
본 개시의 일 실시 예에 따른 프로세서(320)의 결정부(323)는, 제1 문자열의 교정이 필요하지 않다고 판단되는 경우, 제1 문자열을 다른 문자열로 대체하지 않을 것을 결정 할 수 있다. 본 개시의 일 실시 예에 따른 프로세서(320)의 결정부(323)는, 제1 문자열을 다른 문자열로 대체하지 않을 경우, 제1 문자열을 출력부(350)를 통해 출력할 수 있다. The
본 개시의 일 실시 예에 따른 프로세서(320)의 결정부(323)는, 제1 문자열을 다른 문자열로 대체하여야 한다고 결정되는 경우, 이러한 결정에 기초하여 제1 문자열을 제2 ASR 모듈(322)로 전송할 수 있다. When it is determined that the first character string should be replaced with another character string, the
일 실시예에 따른 프로세서(320)의 결정부(323)는, 문장 단위, 단어 단위, 구 단위 또는 프레임 단위로 제1 문자열을 제2 ASR 모듈(322)로 전송할 수 있다. 일 실시 예에 따른 프로세서(320)의 제1 ASR 모듈(321)에서 음성 인식을 수행하여 문장 또는 구를 구성하는 문자열을 획득한 경우, 결정부(323)는, 문장 또는 구에 포함되는 문자들을 모두 제2 ASR 모듈(322)에게 전송하거나 문장 또는 구에 포함되는 문자들 중 일부를 제2 ASR 모듈(322)에게 전송할 수 있다. 결정부(323), 문자열의 신뢰도에 기초하여, 신뢰도가 낮은 일부의 문자들을 제2 ASR 모듈(322) 에게 전송할 수 있다.The
본 개시의 일 실시 예에 따른 프로세서(320)의 제2 ASR 모듈(322)은 제1 문자열을 수신하고, 제1 문자열을 처리할 수 있다. 제2 ASR 모듈(322)은 제2 데이터(342)에 포함되는 언어 모델 및 사전 정보에 기초하여 제1 문자열에 대한 재 디코딩을 수행함으로써, 제1 문자열 내의 적어도 하나의 문자가 대체된 제2 문자열을 획득할 수 있다. The
제2 ASR 모듈(322)은, 제1 문자열로부터 복수의 추정 문자열들의 가능도를 계산할 수 있다. 제2 ASR 모듈(322)는, 계산된 가능도에 기초하여, 제1 문자열을 제2 문자열로 대체할 지를 결정할 수 있다. 제2 ASR 모듈(322)는, 결정에 기초하여, 제1 문자열 내의 적어도 하나의 문자를 다른 문자로 대체함으로써 제1 문자열로부터 제2 문자열을 획득할 수 있다. 제2 ASR 모듈(322)는, 가능도, 사전 정보, 및 언어 모델에 기초하여, 복수의 추정 문자열들 중 하나인 제2 문자열을 획득할 수 있다.The
도 12의 제2 ASR 모듈(322)은, 도 7 및 도 9의 프로세서(220)에 대응될 수 있으므로 중복되는 설명은 생략한다.Since the
제2 ASR 모듈(322)은, 제2 문자열을 출력부(350)를 통해 출력할 수 있다.The
본 개시의 일 실시 예에 따른 출력부(350)는, 제1 문자열 또는 제2 문자열에 대응하는 음성 인식 결과를 출력 할 수 있다. 출력부(350)는, 음성 인식이 수행된 결과를 사용자에게 알리거나, 외부 디바이스(예를 들어, 스마트 폰, 가전 제품, 웨어러블 디바이스, 서버 등)에게 전송할 수 있다. 예를 들어, 출력부(350)는, 오디오 신호를 출력 할 수 있는 스피커 또는 비디오 신호를 출력 할 수 있는 디스플레이를 포함할 수 있다.The
또는, 일 실시예에 따른 디바이스(300)는, 제1 문자열 또는 제2 문자열을 해석한 결과에 대응하는 동작을 수행할 수 있다. 예를 들어, 디바이스(300)는, 음성 인식이 수행된 결과에 대응하는 디바이스(300)의 기능을 결정하고, 해당 기능을 수행하는 화면을 출력부(350)를 통해 출력할 수 있다. 또는, 디바이스(300)는, 음성 인식이 수행된 결과에 대응하는 키워드를 외부 서버로 전송하고, 전송된 키워드에 관련된 정보를 서버로부터 수신하여 출력부(350)를 통해 화면 상에 출력할 수 있다.Alternatively, the
또는, 일 실시예에 따른 디바이스(300)는, 제1 문자열 또는 제2 문자열에 대한 자연어 처리를 통해 사용자의 발화 의도를 파악함으로써, 음성 비서 서비스에 관련된 정보를 출력부(350)를 통해 출력 할 수 있다. 디바이스(300)는 음성 비서 서비스를 제공하기 위하여, 디바이스(300) 내의 NLU (Natural Language Understanding) 모델, DM (Dialog Mananer) 모델 및 NLG (Natural Language Generating) 모델 등을 이용할 수 있다.Alternatively, the
일 예로서, 디바이스(300)는, 사용자의 상황, 디바이스의 상황 등을 고려하여 사람이 사용자와 직접 대화하는 것처럼, 제1 문자열 또는 제2 문자열에 기초하여 응답 메시지를 생성하고 출력할 수 있다. 다른 예로서, 디바이스(300)는, 제1 문자열 또는 제2 문자열에 기초하여 사용자가 필요한 정보를 생성하여 출력할 수 있다. 다른 예로서, 디바이스(300)는, 제1 문자열 또는 제2 문자열에 기초하여 사용자의 발화 의도를 파악하고, 서비스 제공 서버에게 사용자가 필요로 하는 서비스의 제공을 요청할 수 있다. 디바이스(300)는, 서비스 제공 서버로부터 수신된 정보를 출력부(350)를 통해 전송할 수 있다.As an example, the
본 개시의 일 실시 예에 따른 제2 ASR 모듈(322)은, 제1 ASR 모듈(321)이 이용하는 제1 데이터(341)에 비하여 많은 양의 언어 모델 및 사전 정보를 포함하는 제2 데이터(342)를 이용할 수 있다. 또한, 제2 데이터(342)는, 제1 데이터(341)에 비하여 지명, 인명, 상표명등과 같은 개체명들을 많이 포함할 수 있다. 따라서, 제2 ASR 모듈(322)에 의한 음성 인식에 의하면, 방대한 양의 개체명을 포함하는 사전 정보 및 언어 모델을 이용할 수 있으므로 높은 정확도의 음성 인식을 수행할 수 있다.The
그러므로, 도 12의 디바이스(300)는, 지연 시간을 최소화 하기 위하여, 받아쓰기, 일반적인 명령, 자막 생성등과 같은 일반적인 목적의 음성 인식은 제1 ASR 모듈(321)에서 수행할 수 있다. 반면에, 디바이스(300)는, 제1 ASR 모듈(321)로부터 출력된 제1 문자열의 신뢰도가 충분하지 않다고 판단되는 경우, 제2 ASR 모듈(322)에서 제1 문자열에 대한 추가적인 처리를 수행할 수 있다. 제2 ASR 모듈(322)은, 제1 데이터(341) 보다 많은 양의 정보를 포함하는 제2 데이터(342)를 이용함으로써 음성 인식의 정확도를 높일 수 있다.Therefore, the
한편, 일 실시 예에 따른 디바이스(300)의 프로세서(320)는, 제2 ASR 모듈(322)에서 교정된 문자열을 획득하고, 교정이 필요 없다고 판단되어 제2 ASR 모듈(322)에게 전송되지 않았던 문자열을 교정된 문자열과 조합할 수 있다. 일 실시 예에 따른 디바이스(300)는, 조합된 문자열을 출력하거나, 조합된 문자열에 기초하여 음성 인식이 수행된 결과를 출력하거나, 조합된 문자열을 해석한 결과에 기초하여 음성 비서 서비스를 제공할 수 있다.On the other hand, the
또한, 일 실시 예에 따른 프로세서(320)의 결정부(323)는 제2 ASR 모듈(322)에게 제1 문자열에 대한 교정을 요청하면서, 제1 문자열에 관련된 도메인 정보를 함께 제공할 수 있다. 도메인 정보는 도메인을 식별하기 위한 정보로서, 예를 들어, 도메인의 명칭, 도메인의 식별자를 포함할 수 있으나, 이에 제한되지 않는다. In addition, the
디바이스(300)의 결정부(323)는, 제1 ASR 모듈(321)로부터 출력된 제1 문자열의 도메인 신뢰도에 기초하여, 제1 문자열에 관련된 도메인을 식별할 수 있다. 도메인 신뢰도는, 제1 문자열의 적어도 일부가 특정 도메인에 어느 정도 관련되었는지를 나타내는 수치일 수 있다. 예를 들어, 결정부(323)는, 제1 ASR 모듈(321)로부터 출력된 제1 문자열이 제1 데이터(341)에 미리 등록된 도메인에 어느 정도 관련성이 있는 지를 나타내는 컨피던스 스코어를 산출할 수 있다. 또한, 디바이스(300)는 산출된 도메인 신뢰도에 기초하여, 제1 문자열에 관련된 도메인을 식별할 수 있다. 디바이스(300)는 룰 기반으로 제1 문자열에 관련된 도메인을 식별하거나 도메인 식별을 위해 훈련된 인공 지능 모델을 이용하여 제1 문자열에 관련된 도메인 신뢰도를 획득할 수 있다.The
한편, 본 개시의 일 실시 예에 따른 제2 ASR 모듈(322)은, 제2 데이터(342)에 포함되는 도메인 별로 서로 다른 사전 정보 및 언어 모델을 이용하여, 제1 문자열에 대한 디코딩을 수행할 수 있다. 따라서, 본 개시의 일 실시 예에 따른 제2 ASR 모듈(322)은, 제1 문자열에 대한 재 디코딩을 통해 음성 인식 정확도가 높아진 음성 인식 결과를 출력할 수 있다.Meanwhile, the
일 실시 예에 따른 제2 ASR 모듈(322)은, 결정부(323)로부터 제1 문자열을 수신하고, 제1 문자열에 관련된 도메인을 결정할 수 있다. 제2 ASR 모듈(322)은, 결정된 도메인에 대응되는 사전 정보 및 언어 모델을 이용하여, 제1 문자열에 대한 디코딩을 수행할 수 있다.The
일 예로서, 제2 ASR 모듈(322)은, 결정부(323)로부터 제1 문자열과 함께 제1 문자열에 관련된 도메인 정보를 수신하고, 수신된 정보에 기초하여 제1 문자열에 대한 디코딩을 수행할 도메인을 결정할 수 있다. 예를 들어, 제2 ASR 모듈(322)은, 결정부(323)로부터 수신된 정보로부터 식별된 도메인과 동일하거나 유사한 도메인을 디코딩을 수행할 도메인으로서 결정할 수 있다.As an example, the
다른 예로서, 제2 ASR 모듈(322)은 결정부(323)로부터 수신된 제1 문자열에 기초하여, 수신된 제1 문자열에 관련된 도메인을 결정할 수 있다. 디바이스(300)는 도메인 식별을 위해 훈련된 인공 지능 모델인 도메인 식별 모델을 메모리(340)에 저장할 수 있다. 제2 ASR 모듈(322)은, 도메인 식별 모델을 이용하여, 제1 문자열을 입력 값으로 하여 도메인 신뢰도를 출력할 수 있다. 제2 ASR 모듈(322)은, 도메인 신뢰도에 기초하여, 제1 문자열에 관련된 도메인을 결정할 수 있다..As another example, the
또 다른 예로서, 일 실시예에 따른 제2 ASR 모듈(322)은, 결정부(323)로부터 제1 문자열과 함께 제1 문자열에 관련된 도메인을 판단하기 위한 정보를 수신할 수 있다. 결정부(323)로부터 수신된 도메인을 판단하기 위한 정보는 컨텍스트 정보를 포함할 수 있다. 예를 들어, 컨텍스트 정보는, 사용자가 현재 디바이스(300) 상에서 이용하고 있는 애플리케이션에 대한 정보, 대화 이력 정보, 디바이스(300) 주변의 상황 정보 또는 트렌드 정보 중 적어도 하나를 포함할 수 있다. 제2 ASR 모듈(322)은, 컨텍스트 정보를 기반으로 제1 문자열에 대한 디코딩을 수행할 도메인을 결정할 수 있다. 컨텍스트 정보 기반으로 도메인을 결정하는 구체적인 방법에 대해서는 도 9의 프로세서(220)의 동작 방법이 적용될 수 있으므로, 중복되는 설명은 생략한다. As another example, the
이하에서는, 일 실시 예에 따른 디바이스(100)의 동작 방법을 설명한다. 이하에서 서술하는 디바이스(100)의 동작 방법의 각 단계는, 도 3, 도 4a, 및 도 4b에 도시된 구성들에 의해 수행될 수 있다. 중복되는 설명은 생략한다.Hereinafter, a method of operating the
도 13은 일 실시 예에 따라 디바이스가 음성 인식을 수행하는 방법의 흐름도를 도시한다.13 is a flowchart illustrating a method of performing voice recognition by a device according to an exemplary embodiment.
단계 S1310에서 본 개시의 일 실시 예에 따른 디바이스(100)는, 음성 신호에 대한 음성 인식을 수행하여 제1 문자열을 획득할 수 있다. In step S1310, the
본 개시의 일 실시 예에 따른 디바이스(100)는, 다양한 음성 인식 방식을 이용하여 음성 인식을 수행하여 제1 문자열을 추정할 수 있다.The
일 예로서, 디바이스(100)는, 음향 모델, 사전 정보 및 언어 모델을 이용하여, 음성 신호로부터 문자열을 획득할 수 있다. 먼저, 디바이스(100)는, 음향 모델을 이용하여, 음성 신호에 포함되는 음소열을 획득할 수 있다. 예를 들어, 디바이스(100)는, 은닉 마르코프 모델, 가우스 혼합 모델, 베이즈 추론, 및 다층 신경망 등을 이용하여 음소들을 포함하는 음소열을 추정할 수 있다. 디바이스(100)는, 사전 정보 및 언어 모델에 기초하여, 음소열로부터 단어들을 추정하고 추정된 단어들을 포함하는 제1 문자열을 획득할 수 있다.As an example, the
다른 예로서, 디바이스(100)는, 음성 신호로부터 특징 벡터를 추출하고, 심층 신경망(DNN)을 이용하여, 특징 벡터로부터 제1 문자열을 획득할 수 있다.As another example, the
예를 들어, 제1 문자열은, 음성 신호가 소정 시간 간격으로 분할된 음성 신호 프레임들 각각에 대응하는 문자들을 포함하는 프레임 동기화된 문자열일 수 있다. 또는, 예를 들어, 제1 문자열은, 음성 신호에 의해 발음되는 각 문자를 하나씩 포함하도록 라벨 동기화 방식으로 획득된 문자열일 수 있다.For example, the first character string may be a frame-synchronized character string including characters corresponding to each of the audio signal frames in which the audio signal is divided at predetermined time intervals. Alternatively, for example, the first character string may be a character string obtained through a label synchronization method so as to include one character for each character pronounced by a voice signal.
일 실시 예에 따른 디바이스(100)는, 제1 문자열이 프레임 동기화되지 않은 경우, 강제 정렬을 수행함으로써 프레임 동기화된 문자열을 획득할 수 있다. 프레임 동기화된 문자열 및 강제 정렬에 의해 프레임 동기화된 문자열을 생성하는 구체적인 방법과 관련하여서는, 도 6을 참조하여 상술한 내용이 적용될 수 있다. 중복되는 설명은 생략한다. The
단계 S1330에서 본 개시의 일 실시 예에 따른 디바이스(100)는, 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다.In step S1330, the
일 예로서, 일 실시 예에 따른 디바이스(100)는, 제1 문자열의 신뢰도를 결정하고, 신뢰도에 기초하여 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. 예를 들어, 디바이스(100)는, 신뢰도가 임계값 보다 높거나 같으면, 제1 문자열을 다른 문자열로 대체하지 않아도 된다고 결정할 수 있다. 반면에, 디바이스(100)는, 신뢰도가 임계값보다 작으면, 제1 문자열을 다른 문자열로 대체할 것을 결정할 수 있다.As an example, the
제1 문자열의 신뢰도는, 제1 문자열로부터 획득되는 복수의 추정 문자열들의 가능도, 및 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 대체될 사후 확률들 중 적어도 하나에 기초하여 계산될 수 있다.The reliability of the first character string may be calculated based on at least one of a likelihood of a plurality of estimated character strings obtained from the first character string and posterior probabilities in which at least one character in the first character string is replaced with another character.
예를 들어, 디바이스(100)는, 비터비(Viterbi) 디코딩 결과 출력되는 가능도에 기초하여 신뢰도를 계산할 수 있다. 또는, 프로세서(120)는, 엔드-투-엔드 방식 음성 인식 모델에서 소프트맥스 레이어로부터 출력되는 사후 확률들에 기초하여 신뢰도를 계산할 수 있다.For example, the
또는, 일 실시 예에 따른 디바이스(100)는, 음성 신호에 대한 음성 인식 과정에서 추정되는 복수의 추정 문자열들을 결정하고, 복수의 추정 문자열들의 상관도에 기초하여, 제1 문자열의 신뢰도를 계산할 수 있다. 제1 문자열을 포함하는 복수의 추정 문자열들의 상관도가 높을 수록, 제1 문자열의 신뢰도가 높을 수 있다.Alternatively, the
다른 예로서, 디바이스(100)는, 미리 저장된 키워드들과 제1 문자열을 비교한 결과에 기초하여, 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. 예를 들어, 디바이스(100)는, 제1 문자열에 미리 저장된 키워드들이 포함되지 않는 경우, 제1 문자열을 다른 문자열로 대체할 것을 결정할 수 있다.As another example, the
또 다른 예로서, 디바이스(100)는, 제1 문자열이 관련된 도메인 또는 제1 문자열 내에 개체명이 포함되는지 여부에 기초하여, 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. 예를 들어, 디바이스(100)는, 제1 문자열이 개체명 위주의 도메인과 관련이 있다고 판단되는 경우, 제1 문자열을 다른 문자열로 대체할 것을 결정할 수 있다.As another example, the
제1 문자열을 다른 문자열로 대체할 것을 결정한 경우, 단계 S1340에서 본 개시의 일 실시 예에 따른 디바이스(100)는 제1 문자열을 서버(200)로 전송할 수 있다. 일 실시 예에 따른 디바이스(100)는, 프레임 동기화된 제1 문자열을 서버(200)로 전송할 수 있다. 디바이스(100)는, 복수의 문자들을 포함하는 문자열 전체를 동시에 전송할 수도 있고, 문자열에 포함되는 적어도 일부 문자들을 순차적으로 전송할 수도 있다. 또한, 일 실시 예에 따른 디바이스(100)는, 단어 단위로 또는 문장 단위로 제1 문자열을 전송할 수 있다.When it is determined to replace the first string with another string, the
한편, 제1 문자열을 다른 문자열로 대체하지 않을 것을 결정한 경우, 단계 S1370에서 본 개시의 일 실시 예에 따른 디바이스(100)는 제1 문자열을 출력할 수 있다. 일 실시 예에 따른 디바이스(100)는, 제1 문자열을 그대로 출력하거나, 제1 문자열로부터 획득되는 단어열을 출력할 수 있다. Meanwhile, when it is determined not to replace the first character string with another character string, the
단계 S1350에서 본 개시의 일 실시 예에 따른 디바이스(100)는, 제2 문자열을 서버(200)로부터 수신할 수 있다. 제2 문자열은, 서버(200)에 의해 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 대체됨으로써 획득된 문자열일 수 있다.In step S1350, the
단계 S1360에서 본 개시의 일 실시 예에 따른 디바이스(100)는, 제2 문자열을 출력할 수 있다. 일 실시 예에 따른 디바이스(100)는, 제2 문자열을 그대로 출력하거나, 제2 문자열로부터 획득되는 단어열을 출력할 수 있다.In step S1360, the
본 개시는 도 13에 도시된 바와 같이 디바이스(100)가 제1 문자열 또는 제2 문자열을 그대로 출력하는 실시예에 제한되지 않는다. 일 실시예에 따른 디바이스(100)는, 제1 문자열 또는 제2 문자열에 대한 자연어 처리를 통해 사용자의 발화 의도를 파악함으로써, 음성 비서 서비스에 관련된 정보를 출력 할 수 있다.The present disclosure is not limited to an embodiment in which the
디바이스(100)는 제1 문자열 또는 제2 문자열에 기초하여 음성 비서 서비스를 제공하기 위하여, 디바이스(100) 내의 NLU 모델, DM 모델 및 NLG 모델 등을 이용할 수 있다.The
예를 들어, 디바이스(100)는, 사용자의 상황, 디바이스의 상황 등을 고려하여 사람이 사용자와 직접 대화하는 것처럼, 제1 문자열 또는 제2 문자열에 기초하여 응답 메시지를 생성하고 출력할 수 있다. 또는, 예를 들어, 디바이스(100)는, 제1 문자열 또는 제2 문자열에 기초하여 사용자가 필요한 정보를 생성하여 출력할 수 있다. 또는, 예를 들어, 디바이스(100)는, 제1 문자열 또는 제2 문자열에 기초하여 사용자의 발화 의도를 파악하고, 서비스 제공 서버에게 사용자가 필요로 하는 서비스의 제공을 요청할 수 있다. 디바이스(100)는, 서비스 제공 서버로부터 수신된 정보를 출력할 수 있다.For example, the
한편, 일 실시예에 따른 디바이스(100)는, 서버(200)로부터 제2 문자열을 수신하는 대신에, 제2 문자열에 기초하여 생성된 음성 비서 서비스에 관련된 정보를 수신하고, 수신된 정보를 출력할 수 있다. 음성 비서 서비스에 관련된 정보는, 제1 문자열이 교정된 제2 문자열에 기초하여 서버(200)에 의해 생성되는 정보일 수 있다. 예를 들어, 음성 비서 서비스에 관련된 정보는, 사용자의 음성 신호에 대한 응답 메시지, 사용자가 필요로 하는 서비스, 또는 사용자가 필요한 정보를 포함할 수 있다.Meanwhile, instead of receiving the second character string from the
도 13에 도시된 바와 같이, 일 실시 예에 따른 디바이스(100)는, 온-디바이스 음성 인식 모듈로부터 출력된 제1 문자열을 다른 문자열로 대체할 지 여부를 판단하고, 판단 결과에 기초하여 서버-기반 후처리를 선택적으로 이용할 수 있다.As shown in FIG. 13, the
일 실시 예에 따른 디바이스(100)는, 사용자에 의해 발화되는 단어 단위(또는, 문장 단위)로 음성 인식 모듈로부터 출력된 제1 문자열의 신뢰도를 계산하고, 신뢰도에 기초하여 제1 문자열을 대체할 지 여부를 결정할 수 있다. The
도 14는 일 실시 예에 따라 디바이스가 음성 인식을 수행하는 구체적인 방법에 있어서, 도 13의 단계 S1310을 구체화한 흐름도를 도시한다.14 is a flowchart illustrating step S1310 of FIG. 13 in a specific method of performing voice recognition by a device according to an embodiment.
단계 S1411에서 일 실시 예에 따른 디바이스(100)는 음성 신호를 수신하고, 단계 S1413에서 단어의 경계가 검출되었는지 여부를 판단할 수 있다. 일 실시 예에 따른 디바이스(100)는 단어의 경계가 검출될 때까지 계속적으로 음성 프레임들을 포함하는 음성 신호를 수신할 수 있다. In step S1411, the
예를 들어, 디바이스(100)는, 음성 신호로부터 검출되는 퍼즈(pause), 또는 억양 및 강세를 포함하는 운율적(prosodic) 정보에 기초하여 단어의 경계를 검출할 수 있다.For example, the
단어의 경계가 검출되면, 단계 S1415에서 일 실시 예에 따른 디바이스(100)는 음성 신호로부터 제1 문자열을 획득할 수 있다.When the boundary of the word is detected, in step S1415, the
단계 S1431에서 본 개시의 일 실시 예에 따른 디바이스(100)는, 제1 문자열의 신뢰도를 계산할 수 있다. 제1 문자열의 신뢰도는, 제1 문자열로부터 획득되는 복수의 추정 문자열들의 가능도, 및 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 대체될 사후 확률들 중 적어도 하나에 기초하여 계산될 수 있다.In step S1431, the
예를 들어, 디바이스(100)는, 비터비 디코딩 결과 출력되는 가능도에 기초하여 신뢰도를 계산할 수 있다. 또는, 디바이스(100)는, 엔드-투-엔드 방식 음성 인식 모델에서 소프트맥스 레이어로부터 출력되는 사후 확률들에 기초하여 신뢰도를 계산할 수 있다.For example, the
또는, 일 실시 예에 따른 디바이스(100)는, 음성 신호에 대한 음성 인식 과정에서 추정되는 복수의 추정 문자열들을 결정하고, 복수의 추정 문자열들의 상관도에 기초하여, 제1 문자열의 신뢰도를 계산할 수 있다. 제1 문자열을 포함하는 복수의 추정 문자열들의 상관도가 높을 수록, 제1 문자열의 신뢰도가 높을 수 있다.Alternatively, the
단계 S1433에서 본 개시의 일 실시 예에 따른 디바이스(100)는, 신뢰도가 임계값보다 작은지 여부를 판단할 수 있다. In step S1433, the
제1 문자열의 신뢰도가 임계값보다 작은 경우, 단계 S1340에서 본 개시의 일 실시 예에 따른 디바이스(100)는 제1 문자열을 서버(200)로 전송할 수 있다. 디바이스(100)는, 전송된 제1 문자열에 응답하여, 서버(200)에 의해 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 대체된 제2 문자열을 수신할 수 있다. 디바이스(100)는, 수신된 제2 문자열을 출력할 수 있다. When the reliability of the first character string is less than the threshold value, in operation S1340, the
반면에, 제1 문자열의 신뢰도가 임계값보다 크거나 같은 경우, 단계 S1370에서 본 개시의 일 실시 예에 따른 디바이스(100)는 제1 문자열을 출력할 수 있다.On the other hand, when the reliability of the first character string is greater than or equal to the threshold value, in step S1370, the
한편, 일 실시예에 따른 디바이스(100)는, 제1 문자열 또는 제2 문자열을 그대로 출력하는 대신에, 제1 문자열 또는 제2 문자열에 대한 자연어 처리를 통해 사용자의 발화 의도를 파악함으로써, 음성 비서 서비스에 관련된 정보를 출력 할 수 있다.Meanwhile, the
디바이스(100)는 제1 문자열 또는 제2 문자열에 기초하여 음성 비서 서비스를 제공하기 위하여, 디바이스(100) 내의 NLU 모델, DM 모델 및 NLG 모델 등을 이용할 수 있다.The
예를 들어, 디바이스(100)는, 사용자의 상황, 디바이스의 상황 등을 고려하여 사람이 사용자와 직접 대화하는 것처럼, 제1 문자열 또는 제2 문자열에 기초하여 응답 메시지를 생성하고 출력할 수 있다. 또는, 예를 들어, 디바이스(100)는, 제1 문자열 또는 제2 문자열에 기초하여 사용자가 필요한 정보를 생성하여 출력할 수 있다. 또는, 예를 들어, 디바이스(100)는, 제1 문자열 또는 제2 문자열에 기초하여 사용자의 발화 의도를 파악하고, 서비스 제공 서버에게 사용자가 필요로 하는 서비스의 제공을 요청할 수 있다. 디바이스(100)는, 서비스 제공 서버로부터 수신된 정보를 출력할 수 있다.For example, the
한편, 일 실시예에 따른 디바이스(100)는, 전송된 제1 문자열에 응답하여 서버(200)로부터 제2 문자열을 수신하는 대신에, 제2 문자열에 기초하여 생성된 음성 비서 서비스에 관련된 정보를 수신할 수 있다. 디바이스(100)는, 서버(200)로부터 수신된 정보를 출력할 수 있다. 음성 비서 서비스에 관련된 정보는, 제1 문자열이 교정된 제2 문자열에 기초하여 서버(200)에 의해 생성되는 정보일 수 있다. On the other hand, the
예를 들어, 음성 비서 서비스에 관련된 정보는, 사용자의 음성 신호에 대한 응답 메시지, 사용자가 필요로 하는 서비스, 또는 사용자가 필요한 정보를 포함할 수 있다.For example, information related to the voice assistant service may include a response message to a user's voice signal, a service required by the user, or information required by the user.
도 14에 도시된 바와 같이, 본 개시의 일 실시 예에 따른 디바이스(100)는 제1 문자열의 신뢰도에 기초하여, 제1 문자열을 다른 문자열로 대체할 지 여부를 결정할 수 있다. 디바이스(100)는, 제1 문자열의 신뢰도가 임계값 미만인 경우, 제1 문자열을 서버(200)로 전송할 수 있다. 디바이스(100)는, 서버(200) 내의 사전 정보 및 언어 모델에 기초하여 제1 문자열의 적어도 하나의 문자가 다른 문자로 대체됨으로써 획득된 제2 문자열을 서버(200)로부터 획득할 수 있다. 따라서, 일 실시 예에 따른 디바이스(100)는, 제1 문자열보다 높은 신뢰도를 갖는 제2 문자열을 서버(200)로부터 수신하여 이용함으로써 음성 인식 정확도를 높일 수 있다.As shown in FIG. 14, the
도 14에는 사용자에 의해 발화되는 단어 단위로 음성 인식 결과의 신뢰도를 계산하고, 제1 문자열을 대체할 지 여부를 결정하는 실시 예가 도시된다. 그러나, 본 개시는 도 14에 도시된 예에 제한되지 않으며, 일 실시 예에 따른 디바이스(100)는, 사용자에 의해 발화되는 문장 단위로 음성 인식 결과의 신뢰도를 계산하고, 제1 문자열을 대체할 지 여부를 결정할 수 있다. 사용자에 의해 발화되는 문장의 종료를 검출하는 방법은 종래의 다양한 방법이 이용될 수 있으며, 본 개시에서는 구체적인 설명은 생략한다.14 illustrates an embodiment in which the reliability of the speech recognition result is calculated in units of words spoken by the user and whether to replace the first character string is determined. However, the present disclosure is not limited to the example shown in FIG. 14, and the
도 15는 일 실시 예에 따라 서버(200)의 동작 방법의 흐름도를 도시한다. 이하에서 서술하는 서버(200)의 동작 방법의 각 단계는, 도 7 및 도 9에 도시된 구성들에 의해 수행될 수 있다. 중복되는 설명은 생략한다.15 is a flowchart of a method of operating the
단계 S1510에서 본 개시의 일 실시 예에 따른 서버(200)는, 디바이스(100)로부터 제1 문자열을 수신할 수 있다. 제1 문자열은, 디바이스(100)에 의해 음성 신호로부터 음성 인식 처리를 거쳐 출력될 수 있다.In operation S1510, the
일 예로서, 서버(200)에서 수신되는 제1 문자열은, 음성 신호가 소정 시간 간격으로 분할된 음성 신호 프레임들 각각에 대응하는 문자들을 포함하는 프레임 동기화 문자열일 수 있다. 다른 예로서, 서버(200)에서 수신되는 제1 문자열은, 프레임 동기화되지 않은 문자열일 수 있다. As an example, the first character string received from the
본 개시의 일 실시 예에 따른 프로세서(220)는, 디바이스(100)로부터 수신되는 제1 문자열이 프레임 동기화되지 않은 문자열인 경우, 제1 문자열로부터 프레임 동기화된 문자열을 획득할 수 있다. 프로세서(220)는, 제1 문자열에 포함되는 적어도 하나의 문자를 소정 시간 간격의 프레임 단위로 연속하여 배치함으로써, 프레임 동기화된 문자열을 획득할 수 있다.The
단계 S1520에서 본 개시의 일 실시 예에 따른 서버(200)는, 제1 문자열로부터 복수의 추정 문자열들에 대한 가능도를 산출할 수 있다. 일 실시예에 따른 서버(200)는, 제1 문자열 내의 각 문자를 다른 문자로 대체함으로써, 복수의 추정 문자열들을 획득할 수 있다. 복수의 추정 문자열들의 가능도란, 제1 문자열로부터 획득되는 복수의 추정 문자열들 각각이 참값 문자열이라고 가정하였을 때, 음성 인식 모듈로부터 제1 문자열이 추정될 확률을 의미할 수 있다.In step S1520, the
본 개시의 일 실시예에 따르면, 서버(200)는, 제1 문자열 내의 각 문자와 발음이 유사한 대체 문자들을 식별하고, 식별된 대체 문자들에 기초하여 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 교정된 추정 문자열들을 결정하기 위하여, 제1 문자열로부터 획득되는 가능도를 획득할 수 있다.According to an embodiment of the present disclosure, the
일 실시예에 따른 서버(200)는, 제1 문자열 내의 각 문자에 대하여 각 문자가 대체될 대체 문자들에 관한 가능도 행렬들을 산출하고, 가능도 행렬들 내의 가능도 값들에 기초하여 복수의 추정 문자열들을 식별할 수 있다. 서버(200)는, 복수의 추정 문자열들에 대한 가능도로서, 각 문자로부터 획득되는 가능도 행렬들을 획득할 수 있다. The
일 예로서, 서버(200)는, 제1 문자열 내의 각 문자의 이전에 누적된 문자들에 기초하여, 제1 문자열로부터 가능도를 산출 할 수 있다. 일 실시 예에 따른 서버(200)는, 제1 문자열 내의 각 문자의 이전에 누적된 문자들에 기초하여 각 문자의 사후 확률들을 계산할 수 있다. 서버(200)는, 제1 문자열 내의 각 문자의 이 전에 누적된 문자들에 기초하여 문자 배열 확률을 계산할 수 있다. 서버(200)는, 각 문자의 사후 확률들 및 문자 배열 확률에 기초하여, 제1 문자열로부터 획득되는 복수의 추정 문자열들의 가능도를 계산할 수 있다.As an example, the
다른 예로서, 서버(200)는, 제1 문자열 내의 각 문자의 이전에 누적된 문자들을 고려하지 않고, 각 문자만을 고려하여 제1 문자열로부터 가능도를 산출 할 수 있다. 일 실시예에 따른 서버(200)는, 미리 결정된 오차 행렬에 기초하여, 제1 문자열 내의 각 문자의 사후 확률들을 계산할 수 있다. 서버(200)는, 제1 문자열 내의 각 문자의 사후 확률들에 기초하여, 제1 문자열로부터 획득되는 복수의 추정 문자열들의 가능도를 계산할 수 있다.As another example, the
단계 S1530에서 본 개시의 일 실시 예에 따른 서버(200)는, 단계 S1520에서 산출된 가능도에 기초하여, 제1 문자열 내의 적어도 하나의 문자를 다른 문자로 대체함으로써 제1 문자열로부터 제2 문자열을 획득할 수 있다.In step S1530, the
일 실시 예에 따른 서버(200)는, 계산된 가능도에 기초하여, 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 대체된 복수의 추정 문자열들을 식별할 수 있다. 서버(200)는, 식별된 복수의 추정 문자열에 대한 가능도, 언어 모델, 및 사전 정보에 기초하여, 복수의 추정 문자열들 중에서 제2 문자열을 획득할 수 있다.The
일 실시 예에 따른 서버(200)는, 계산된 가능도에 기초하여, 제1 문자열을 제2 문자열로 대체할 지를 결정할 수 있다. 서버(200)는, 결정에 기초하여, 제1 문자열 내의 적어도 하나의 문자를 다른 문자로 대체함으로써 제1 문자열로부터 제2 문자열을 획득할 수 있다. 서버(200)는, 가능도, 사전 정보, 및 언어 모델에 기초하여, 복수의 추정 문자열들 중에서 가능도를 최대로 하는 추정 문자열을 선택할 수 있다. 서버(200)는, 선택된 추정 문자열에 따라, 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 대체된 제2 문자열을 획득할 수 있다.The
일 예로서, 서버(200)는, 서버(200) 내에 저장되는 사전 정보 및 언어 모델을 기반으로 WFST 디코더를 이용하여 제2 문자열을 획득할 수 있다. 서버(200)가 WFST 디코딩을 수행하는 경우, 일 실시 예에 따른 서버(200)는, 문자들 간의 관계(T), 단어와 문자들의 매핑 정보를 포함하는 사전 정보(L), 및 특정 단어열이 주어졌을 때 다음에 나올 단어들의 확률을 추정하는 언어 모델(G)에 기초하여, WFST로 탐색 공간을 구성하여 디코딩 할 수 있다.As an example, the
다른 예로서, 서버(200)는, 사전 정보 및 언어 모델에 기초하여, 제1 문자열로부터 획득되는 복수의 추정 문자열들의 가능도를 재 연산하는 비터비 디코더를 포함할 수 있다. 비터비 디코더는, 재 연산된 가능도를 최대로 하는 제2 문자열을 복수의 추정 문자열들 중에서 결정할 수 있다. 비터비 디코더는, 사전 정보 및 언어 모델을 고려하여, 제1 문자열들에 대한 가장 가능성 높은 문자열을 제2 문자열로서 찾아낼 수 있다.As another example, the
단계 S1540에서 본 개시의 일 실시 예에 따른 서버(200)는, 제2 문자열을 디바이스(100)에게 전송할 수 있다.In step S1540, the
또한, 일 실시 예에 따른 서버(200)는, 자연어 이해 모델을 이용하여 제2 문자열을 해석하고, 해석한 결과에 기초하여 사용자의 음성 신호에 대한 응답 메시지를 생성할 수 있다. 서버(200)는, 응답 메시지를 생성하고 디바이스(100)에게 추가로 전송할 수 있다.In addition, the
본 개시는 도 15에 도시된 바와 같이 서버(200)가 제2 문자열을 그대로 디바이스(100)에게 전송하는 실시예에 제한되지 않는다. 일 실시예에 따른 서버(200)는, 제2 문자열에 대한 자연어 처리를 통해 사용자의 발화 의도를 파악함으로써, 음성 비서 서비스에 관련된 정보를 전송 할 수 있다.The present disclosure is not limited to an embodiment in which the
서버(200)는 제2 문자열에 기초하여 음성 비서 서비스를 제공하기 위하여, 서버(200) 내의 NLU 모델, DM 모델 및 NLG 모델 등을 이용할 수 있다.The
일 예로서, 서버(200)는, 제2 문자열을 해석한 결과를 바탕으로, 디바이스(100) 또는 다른 디바이스를 제어하기 위한 제어 명령을 생성하고, 생성된 제어 명령을 디바이스(100)에게 전송할 수도 있다. 다른 예로서, 서버(200)는, 사용자의 상황, 디바이스의 상황 등을 고려하여 사람이 사용자와 직접 대화하는 것처럼, 제2 문자열에 기초하여 응답 메시지를 생성하고 전송할 수 있다. 다른 예로서, 서버(200)는, 제2 문자열에 기초하여 사용자가 필요한 정보를 생성하여 전송할 수 있다. 다른 예로서, 서버(200)는, 제2 문자열에 기초하여 사용자의 발화 의도를 파악하고, 서비스 제공 서버에게 사용자가 필요로 하는 서비스의 제공을 요청할 수 있다. 서버(200)는, 서비스 제공 서버로부터 수신된 정보를 전송할 수 있다.As an example, the
도 16은, 일 실시 예에 따른 서버의 동작 방법에 있어서, 각 문자의 이 전에 누적된 문자들을 고려하여 문자열로부터 가능도를 획득하는 방법을 구체적으로 도시한다.16 illustrates in detail a method of obtaining a likelihood from a character string in consideration of characters accumulated before each character in a method of operating a server according to an embodiment.
단계 S1510에서 본 개시의 일 실시 예에 따른 서버(200)는, 디바이스(100)로부터 제1 문자열을 획득할 수 있다.In step S1510, the
단계 S1621에서 일 실시 예에 따른 서버(200)는, 제1 문자열 내의 각 문자의 이전 문자들에 기초하여 각 문자의 사후 확률들을 획득할 수 있다.In step S1621, the
예를 들어, 서버(200)는, 문자열의 사후 확률을 계산하기 위해 미리 훈련된 신경망을 이용해서, 제1 문자열 내의 각 문자의 사후 확률들을 계산할 수 있다.For example, the
단계 S1623에서 일 실시 예에 따른 서버(200)는, 제1 문자열로부터 문자 배열 확률을 계산할 수 있다. In step S1623, the
단계 S1625에서 일 실시 예에 따른 서버(200)는, 단계 S1621에서 계산된 사후 확률들 및 단계 S1623에서 계산된 문자 배열 확률에 기초하여, 제1 문자열로부터 획득되는 복수의 추정 문자열들의 가능도를 계산할 수 있다. 일 실시예에 따른 서버(200)는, 제1 문자열 내의 각 문자에 대하여 각 문자가 대체될 대체 문자들에 관한 가능도 행렬들을 산출하고, 산출된 가능도 행렬들을 포함하는 복수의 추정 문자열들의 가능도를 획득할 수 있다.In step S1625, the
일 실시 예에 따른 서버(200)는, 제1 문자열에 포함되는 모든 문자들에 대해서 가능도 행렬이 계산되었는지 여부를 판단할 수 있다. 일 실시 예에 따른 서버(200)는, 제1 문자열에 포함되는 모든 문자들에 대해서 가능도 행렬들이 계산될 때까지 단계 S1621, S1623, S1625를 반복하여 수행할 수 있다.The
제1 문자열로부터 가능도를 계산하는 구체적인 과정은, 도 9를 참조하여 상술하였으므로, 중복되는 설명은 생략한다.The detailed process of calculating the likelihood from the first character string has been described above with reference to FIG. 9, and therefore, a duplicate description is omitted.
단계 S1627에서 일 실시 예에 따른 서버(200)는, 사전 정보 및 언어 모델을 이용하여, 단계 S1625에서 계산된 가능도로부터 제2 문자열을 획득할 수 있다. 제2 문자열은, 제1 문자열의 적어도 하나의 문자가 다른 문자로 대체된 문자열일 수 있다.In step S1627, the
예를 들어, 서버(200)는, 가능도를 입력으로 하는 WFST 디코더 또는 전통적인 토큰 패싱을 이용하는 비터비 디코더를 이용하여, 사전 정보, 언어 모델, 및 계산된 가능도에 기초하여, 복수의 추정 문자열들 중에서 제2 문자열을 획득할 수 있다.For example, the
단계 S1540에서 일 실시 예에 따른 서버(200)는, 제2 문자열을 디바이스(100)에게 전송할 수 있다. 일 실시예에 따른 서버(200)는, 제2 문자열을 그대로 디바이스(100)에게 전송하는 대신에, 제2 문자열에 대한 자연어 처리를 통해 사용자의 발화 의도를 파악함으로써 음성 비서 서비스에 관련된 정보를 전송 할 수 있다. 중복되는 설명은 생략한다.In operation S1540, the
도 17은 일 실시 예에 따른 WFST(weighted Finite State Transducer) 디코딩을 설명하기 위한 도면이다.17 is a diagram for explaining weighted finite state transducer (WFST) decoding according to an embodiment.
본 개시의 일 실시 예에 따른 서버(200)는, 디바이스(100)로부터 수신된 제1 문자열로부터 가능도를 계산하고, 계산된 가능도를 입력으로 하여 WFST 디코딩을 수행할 수 있다. 본 개시의 일 실시 예에 따른 서버(200)는, 제1 문자열로부터 획득되는 복수의 추정 문자열들의 가능도(T), 단어와 문자들의 매핑 정보를 포함하는 사전 정보(L), 및 특정 단어열이 주어졌을 때 다음에 나올 단어들의 확률을 추정하는 언어 모델(G)을 각각 WFST(weighted finite-state transducer)로 모델링함으로써 WFST 디코딩을 수행할 수 있다. The
이하에서는, 단어들 'the, cat, and, deer, is, cardinals, baseball, team' 간의 관계에 관한 정보를 저장하는 언어 모델을 WFST로 모델링한 예를 설명한다. 도 17은 언어 모델에 기초하여 단어들을 조합함으로써 만들 수 있는 유한한 개수의 문자열들을 도시한다. Hereinafter, an example of modeling a language model for storing information on a relationship between words'the, cat, and, deer, is, cardinals, baseball, team' using WFST will be described. 17 shows a finite number of character strings that can be created by combining words based on a language model.
도 17의 각 원은 상태(state)를 나타내고, 화살표 상에는 언어 모델에 저장되는 단어가 표시된다. WFST 디코더는 복수의 경로들을 따라 조합되는 복수의 문자열들 각각으로부터 문자열에 대한 신뢰도를 계산할 수 있다. 각 문자열에 대한 신뢰도는, 각 문자열에 대한 가능도, 사전 정보, 및 언어 모델에 기초하여 계산될 수 있다. WFST 디코더는, 신뢰도가 가장 높은 문자열을 선택하고 출력할 수 있다.Each circle in FIG. 17 represents a state, and words stored in the language model are displayed on the arrow. The WFST decoder may calculate the reliability of a character string from each of a plurality of character strings combined along a plurality of paths. The reliability of each character string may be calculated based on the likelihood of each character string, dictionary information, and a language model. The WFST decoder can select and output a character string with the highest reliability.
예를 들어, 도 8a에 도시된 바와 같이 본 개시의 일 실시 예에 따른 서버(200)는, 디바이스(100)로부터 제1 문자열 [The cat and deer is baseball team]을 수신할 수 있다. For example, as shown in FIG. 8A, the
서버(200)는, 제1 문자열로부터 복수의 추정 문자열들의 가능도를 계산할 수 있다. 계산된 가능도가 서버(200)의 WFST 디코더에 입력됨에 따라, WFST 디코더는 제2 문자열을 출력할 수 있다. WFST 디코더는, 복수의 추정 문자열들 중에서 신뢰도가 가장 높은 제2 문자열을 결정하고 출력할 수 있다.The
도 8a에 도시된 바와 같이, 서버(200)의 메모리(230) 내에는, 스포츠 도메인의 개체명 "Cardinals"가 저장되어 있을 수 있다. 따라서, 서버(200)의 프로세서(220)는, 디바이스(100)에서 추정된 'cat and deer is'가 실제로는 야구 팀 명칭인 'Cardinals'일 확률이 더 높다고 판단할 수 있다.As illustrated in FIG. 8A, in the
따라서, 도 17을 참조하면, 일 실시 예에 따른 WFST 디코더는, 복수의 추정 문자열들 [The cat and deers baseball team] 및 [The Cardinals baseball team] 중에서 신뢰도가 가장 높은 문자열인 [The Cardinals baseball team]을 제2 문자열로서 결정하고 출력할 수 있다.Therefore, referring to FIG. 17, the WFST decoder according to an embodiment includes [The Cardinals baseball team], which is a string having the highest reliability among a plurality of estimated strings [The cat and deers baseball team] and [The Cardinals baseball team] Can be determined as the second character string and printed.
도 18은 일 실시 예에 따라 디바이스 상에 음성 인식 결과가 디스플레이 되는 화면의 예를 도시한다.18 illustrates an example of a screen on which a voice recognition result is displayed on a device according to an embodiment.
일 실시 예에 따른 디바이스(100)는, 사용자로부터 수신된 음성 신호에 대한 음성 인식을 수행하여 추정된 문자열로부터 획득된 단어열(1811) "Cat and deers baseball team"을 출력할 수 있다. 디바이스(100)는, 온-디바이스 음성 인식이 수행되고 있는 경우, 온-디바이스 음성 인식이 수행되고 있음을 나타내는 영상(1812)을 화면 상에 디스플레이 할 수 있다.The
본 개시의 일 실시 예에 따른 디바이스(100)는, 온-디바이스 음성 인식을 이용한 음성 인식 수행 결과에 대한 신뢰도가 충분히 높은 경우, 음성 인식 수행 결과를 그대로 이용할 수 있다. The
반면에, 본 개시의 일 실시 예에 따른 디바이스(100)는, 온-디바이스 음성 인식을 이용하여 음성 인식을 수행한 결과의 신뢰도가 충분히 높지 않다고 판단하는 경우, 음성 인식 결과인 문자열을 서버(200)에게 전송할 수 있다.On the other hand, if the
일 실시 예에 따른 서버(200)는, 디바이스(100)로부터 문자열을 수신하고, 서버(200) 내의 언어 모델 및 사전 정보를 이용하여 디코딩을 수행함으로써, 수신된 문자열에 포함되는 적어도 하나의 문자가 교정된 문자열 "Caldinals baseball team"을 획득할 수 있다. 서버(200)는, 디바이스(100)에게 "Caldinals baseball team "을 전송할 수 있다. The
일 실시 예에 따른 디바이스(100)는, 서버(200)로부터 수신된 문자열(1821) "Caldinals baseball team"를 출력할 수 있다. 디바이스(100)는, 서버-기반 음성 인식이 수행되고 있는 경우, 서버-기반 음성 인식이 수행되고 있음을 나타내는 영상(1832)을 화면 상에 디스플레이 할 수 있다.The
도 19는 일 실시 예에 따른 디바이스의 구체적인 블록도를 도시한다.19 is a detailed block diagram of a device according to an embodiment.
도 19에 도시된 디바이스(100)는 도 3에서 설명한 디바이스(100)와 동일한 구성 요소를 포함할 수 있다. 예를 들어, 도 19에 도시된 구성 요소 중 제어부(2300)는 도 3에 도시된 프로세서(120)와 동일하고, 출력부(2220)는 도 3에 도시된 출력부(150)과 동일하다. 또한, 도 19에는 도시되지 않았지만, 도 19의 메모리(2700)는, 도 3의 메모리(140)와 같이, 음성 인식을 수행하기 위한 인스트럭션들, 음성 인식에 이용되는 각종 모델, 신경망, 사전 정보 등을 저장할 수 있다. 따라서, 중복되는 설명은 생략하기로 한다. The
도 19에 도시된 디바이스(100)는 도 3 내지 도 18에서 설명한 디바이스(100)의 동작 및 기능들을 모두 수행할 수 있다. 따라서, 이하에서는 지금까지 설명되지 않았던 디바이스(100)의 구성 요소들에 대하여 설명하기로 한다.The
도 19를 참조하면, 디바이스(100)는 사용자 입력부(2100), 출력부(2200), 제어부(2300), 센싱부(2400), 통신부(2500), A/V 입력부(2600), 및 메모리(2700)를 포함할 수 있다. Referring to FIG. 19, the
사용자 입력부(2100)는, 사용자가 디바이스(100)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(2100)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다. 사용자 입력부(2100)는, 사용자에게 제공할 대화 정보를 생성하기 위하여 필요한 사용자 입력을 수신할 수 있다.The
출력부(2200)는 오디오 신호 또는 비디오 신호 또는 진동 신호를 출력할 수 있으며, 출력부(2200)는 디스플레이부(2210), 음향 출력부(2220), 및 진동 모터(2230)를 포함할 수 있다.The
진동 모터(2230)는 진동 신호를 출력할 수 있다. 예를 들어, 진동 모터(2230)는 오디오 데이터 또는 비디오 데이터(예컨대, 호신호 수신음, 메시지 수신음 등)의 출력에 대응하는 진동 신호를 출력할 수 있다. The
센싱부(2400)는, 디바이스(100)의 상태 또는 디바이스(100) 주변의 상태를 감지하고, 감지된 정보를 제어부(2300)로 전달할 수 있다. The
센싱부(2400)는, 지자기 센서(Magnetic sensor)(2410), 가속도 센서(Acceleration sensor)(2420), 온/습도 센서(2430), 적외선 센서(2440), 자이로스코프 센서(2450), 위치 센서(예컨대, GPS)(2460), 기압 센서(2470), 근접 센서(2480), 및 RGB 센서(illuminance sensor)(2490) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 각 센서들의 기능은 그 명칭으로부터 당업자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.The
통신부(2500)는, 다른 디바이스와의 통신을 수행하기 위한 구성 요소를 포함할 수 있다. 예를 들어, 통신부(2500)는, 근거리 통신부(2510), 이동 통신부(2520), 방송 수신부(2530)를 포함할 수 있다. The
근거리 통신부(short-range wireless communication unit)(251)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. The short-range wireless communication unit 251 includes a Bluetooth communication unit, a Bluetooth Low Energy (BLE) communication unit, a near field communication unit, a WLAN (Wi-Fi) communication unit, a Zigbee communication unit, and an infrared ( IrDA, infrared data association) communication unit, WFD (Wi-Fi Direct) communication unit, UWB (ultra wideband) communication unit, Ant+ communication unit, etc. may be included, but is not limited thereto.
이동 통신부(2520)는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.The
방송 수신부(2530)는, 방송 채널을 통하여 외부로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다. 구현 예에 따라서 디바이스(100)가 방송 수신부(2530)를 포함하지 않을 수도 있다.The
또한, 통신부(2500)는, 제1 사용자에게 제공할 대화 정보를 생성하기 위하여 필요한 정보를, 제2 대화형 전자 장치(3000), 다른 디바이스 및 서버와 송수신할 수 있다.Also, the
A/V(Audio/Video) 입력부(2600)는 오디오 신호 또는 비디오 신호 입력을 위한 것으로, 이에는 카메라(2610)와 마이크로폰(2620) 등이 포함될 수 있다. 카메라(2610)은 화상 통화모드 또는 촬영 모드에서 이미지 센서를 통해 정지영상 또는 동영상 등의 화상 프레임을 얻을 수 있다. 이미지 센서를 통해 캡쳐된 이미지는 제어부(2300) 또는 별도의 이미지 처리부(미도시)를 통해 처리될 수 있다. The A/V (Audio/Video)
카메라(2610)에서 처리된 화상 프레임은 메모리(2700)에 저장되거나 통신부(2500)를 통하여 외부로 전송될 수 있다. 카메라(2610)는 단말기의 구성 태양에 따라 2개 이상이 구비될 수도 있다.The image frame processed by the
마이크로폰(2620)은, 외부의 음향 신호를 입력 받아 전기적인 음성 데이터로 처리한다. 예를 들어, 마이크로폰(2620)은 외부 디바이스 또는 화자로부터 음향 신호를 수신할 수 있다. 마이크로폰(2620)는 외부의 음향 신호를 입력 받는 과정에서 발생 되는 잡음(noise)를 제거하기 위한 다양한 잡음 제거 알고리즘을 이용할 수 있다. The
메모리(2700)는, 제어부(2300)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 디바이스(100)로 입력되거나 디바이스(100)로부터 출력되는 데이터를 저장할 수도 있다. The
메모리(2700)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램, SRAM, 롬, EEPROM, PROM, 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. The
메모리(2700)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, UI 모듈(2710), 터치 스크린 모듈(2720), 알림 모듈(2730) 등으로 분류될 수 있다. Programs stored in the
UI 모듈(2710)은, 애플리케이션 별로 디바이스(100)와 연동되는 특화된 UI, GUI 등을 제공할 수 있다. 터치 스크린 모듈(2720)은 사용자의 터치 스크린 상의 터치 제스처를 감지하고, 터치 제스처에 관한 정보를 제어부(2300)로 전달할 수 있다. 일부 실시 예에 따른 터치 스크린 모듈(2720)은 터치 코드를 인식하고 분석할 수 있다. 터치 스크린 모듈(2720)은 컨트롤러를 포함하는 별도의 하드웨어로 구성될 수도 있다.The
알림 모듈(2730)은 디바이스(100)의 이벤트 발생을 알리기 위한 신호를 발생할 수 있다. 디바이스(100)에서 발생되는 이벤트의 예로는 호 신호 수신, 메시지 수신, 키 신호 입력, 일정 알림 등이 있다. 알림 모듈(2730)은 디스플레이부(2210)를 통해 비디오 신호 형태로 알림 신호를 출력할 수도 있고, 음향 출력부(2220)를 통해 오디오 신호 형태로 알림 신호를 출력할 수도 있고, 진동 모터(2230)를 통해 진동 신호 형태로 알림 신호를 출력할 수도 있다.The
개시된 실시 예들은 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어를 포함하는 S/W 프로그램으로 구현될 수 있다. The disclosed embodiments may be implemented as a S/W program including commands stored in a computer-readable storage media.
컴퓨터는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 개시된 실시 예에 따른 동작이 가능한 장치로서, 개시된 실시 예들에 따른 영상 전송 장치 및 영상 수신 장치를 포함할 수 있다.The computer, as a device capable of calling a command stored from a storage medium and performing operations according to the disclosed embodiments according to the called command, may include an image transmission device and an image reception device according to the disclosed embodiments.
컴퓨터로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다. The computer-readable storage medium may be provided in the form of a non-transitory storage medium. Here, "non-transitory" means that the storage medium does not contain signals and is tangible, but does not distinguish between semi-permanent or temporary storage of data in the storage medium.
또한, 개시된 실시 예들에 따른 전자 장치 또는 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.Further, the electronic device or method according to the disclosed embodiments may be provided in a computer program product. Computer program products can be traded between sellers and buyers as commodities.
컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 전자 장치의 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 SW 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.The computer program product may include a S/W program and a computer-readable storage medium storing the S/W program. For example, the computer program product may include a product (e.g., downloadable app) electronically distributed through an electronic device manufacturer or an electronic market (e.g., Google Play Store, App Store). have. For electronic distribution, at least a part of the S/W program may be stored in a storage medium or may be temporarily generated. In this case, the storage medium may be a server of a manufacturer, a server of an electronic market, or a storage medium of a relay server temporarily storing an SW program.
컴퓨터 프로그램 제품은, 서버 및 단말(예로, 영상 전송 장치 또는 영상 수신 장치)로 구성되는 시스템에서, 서버의 저장매체 또는 단말의 저장매체를 포함할 수 있다. 또는, 서버 또는 단말과 통신 연결되는 제3 장치(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 단말 또는 제3 장치로 전송되거나, 제3 장치로부터 단말로 전송되는 S/W 프로그램 자체를 포함할 수 있다.The computer program product may include a storage medium of a server or a storage medium of a terminal in a system consisting of a server and a terminal (eg, an image transmission device or an image reception device). Alternatively, when there is a third device (eg, a smartphone) that is communicatively connected to the server or terminal, the computer program product may include a storage medium of the third device. Alternatively, the computer program product may include a S/W program itself transmitted from a server to a terminal or a third device, or transmitted from a third device to a terminal.
이 경우, 서버, 단말 및 제3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시 예들에 따른 방법을 수행할 수 있다. 또는, 서버, 단말 및 제3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시 예들에 따른 방법을 분산하여 실시할 수 있다.In this case, one of the server, the terminal, and the third device may execute the computer program product to perform the method according to the disclosed embodiments. Alternatively, two or more of a server, a terminal, and a third device may execute a computer program product to distribute and implement the method according to the disclosed embodiments.
예를 들면, 서버(예로, 클라우드 서버 또는 인공 지능 서버 등)가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 단말이 개시된 실시 예들에 따른 방법을 수행하도록 제어할 수 있다. For example, a server (eg, a cloud server or an artificial intelligence server) may execute a computer program product stored in the server, and control a terminal connected to the server to perform the method according to the disclosed embodiments.
또 다른 예로, 제3 장치가 컴퓨터 프로그램 제품을 실행하여, 제3 장치와 통신 연결된 단말이 개시된 실시 예에 따른 방법을 수행하도록 제어할 수 있다. 구체적인 예로, 제3 장치는 영상 전송 장치 또는 영상 수신 장치를 원격 제어하여, 패킹 영상을 전송 하거나 수신하도록 제어할 수 있다. As another example, by executing a computer program product, the third device may control a terminal connected in communication with the third device to perform the method according to the disclosed embodiment. As a specific example, the third device may remotely control an image transmission device or an image reception device to transmit or receive a packed image.
제3 장치가 컴퓨터 프로그램 제품을 실행하는 경우, 제3 장치는 서버로부터 컴퓨터 프로그램 제품을 다운로드하고, 다운로드된 컴퓨터 프로그램 제품을 실행할 수 있다. 또는, 제3 장치는 프리로드된 상태로 제공된 컴퓨터 프로그램 제품을 실행하여 개시된 실시 예들에 따른 방법을 수행할 수도 있다.When the third device executes the computer program product, the third device may download the computer program product from the server and execute the downloaded computer program product. Alternatively, the third device may perform the method according to the disclosed embodiments by executing the computer program product provided in a preloaded state.
Claims (20)
상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서; 및
제1 문자열을 디바이스로부터 수신하는 통신부를 포함하고,
상기 프로세서는,
상기 제1 문자열로부터 복수의 추정 문자열들을 식별하고, 상기 복수의 추정 문자열에 기초하여 제2 문자열을 획득하고,
상기 제2 문자열을 상기 디바이스에게 전송하도록 상기 통신부를 제어하며,
상기 제1 문자열은, 상기 디바이스에 입력된 음성 신호로부터 음성 인식 처리를 거쳐 출력되는 것을 특징으로 하는, 서버.A memory that stores one or more instructions;
A processor that executes the one or more instructions stored in the memory; And
Including a communication unit for receiving the first character string from the device,
The processor,
Identify a plurality of estimated character strings from the first character string, and obtain a second character string based on the plurality of estimated character strings,
Controlling the communication unit to transmit the second character string to the device,
The server, characterized in that the first character string is output through speech recognition processing from a speech signal input to the device.
상기 프로세서는,
상기 제1 문자열 내의 각 문자에 대응하는 대체 문자들을 식별하고, 상기 식별된 대체 문자들에 기초하여 상기 복수의 추정 문자열들을 식별하고,
상기 복수의 추정 문자열들 중에서 하나의 추정 문자열을 상기 제2 문자열로서 획득하며,
상기 대체 문자들은 상기 각 문자와 유사한 발음의 문자들인 것을 특징으로 하는, 서버.The method of claim 1,
The processor,
Identifying replacement characters corresponding to each character in the first character string, identifying the plurality of estimated character strings based on the identified replacement characters,
Obtaining one estimated character string from among the plurality of estimated character strings as the second character string,
The server, characterized in that the replacement characters are characters having a pronunciation similar to each of the characters.
상기 프로세서는,
상기 제1 문자열 내의 각 문자에 대하여 각 문자가 대체될 대체 문자들에 관한 가능도 행렬들을 산출하고, 상기 가능도 행렬들 내의 가능도 값들에 기초하여 상기 복수의 추정 문자열들을 식별하는 것을 특징으로 하는, 서버.The method of claim 1,
The processor,
For each character in the first character string, likelihood matrices for replacement characters to be substituted for each character are calculated, and the plurality of estimated character strings are identified based on likelihood values in the likelihood matrices. , server.
상기 제1 문자열은, 상기 음성 신호가 소정 시간 간격으로 분할된 음성 신호 프레임들 각각에 대응하는 문자들을 포함하는 것을 특징으로 하는, 서버.The method of claim 1,
Wherein the first character string includes characters corresponding to each of the voice signal frames in which the voice signal is divided at predetermined time intervals.
상기 프로세서는,
상기 가능도 행렬들 내의 가능도 값들에 기초하여 상기 복수의 추정 문자열들의 가능도를 계산하고,
상기 가능도, 사전(dictionary) 정보, 및 언어 모델(language model)에 기초하여, 상기 복수의 추정 문자열 중 하나를 선택하고,
상기 선택된 추정 문자열에 따라, 상기 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 대체된 상기 제2 문자열을 획득하는 것을 특징으로 하는, 서버.The method of claim 3,
The processor,
Calculate likelihood of the plurality of estimated character strings based on likelihood values in the likelihood matrices,
Based on the likelihood, dictionary information, and a language model, one of the plurality of estimated character strings is selected,
And obtaining the second character string in which at least one character in the first character string is replaced with another character according to the selected estimated character string.
상기 각 문자에 대해 획득된 가능도 행렬들은,
상기 각 문자의 이전에 누적된 문자들에 기초하여 산출되는 것을 특징으로 하는, 서버.The method of claim 3,
The likelihood matrices obtained for each character are,
The server, characterized in that calculated based on the previously accumulated characters of each character.
상기 각 문자에 대해 획득된 가능도 행렬들은,
상기 각 문자의 이전에 누적된 문자들에 기초하여 산출되는 사후 확률들, 및 상기 각 문자의 이전에 누적된 문자들에 기초하여 산출되는 문자 배열 확률에 기초하여 산출되는 것을 특징으로 하는, 서버.The method of claim 3,
The likelihood matrices obtained for each character are,
The server, characterized in that calculated based on posterior probabilities calculated based on previously accumulated characters of each character, and character arrangement probabilities calculated based on previously accumulated characters of each character.
상기 사후 확률들은, 복수의 LSTM(long-short term memory) 레이어들 및 소프트맥스(softmax) 레이어를 포함하는 인공 지능 회귀 신경망(recurrent neural network, RNN)을 이용하여 산출되는 것을 특징으로 하는, 서버.The method of claim 7,
The posterior probabilities are calculated using an artificial intelligence recurrent neural network (RNN) including a plurality of long-short term memory (LSTM) layers and a softmax layer.
상기 각 문자에 대해 획득된 가능도 행렬들은,
미리 결정된 오차 행렬(confusion matrix)에 기초하여 산출되는 것을 특징으로 하는, 서버.The method of claim 3,
The likelihood matrices obtained for each character are,
The server, characterized in that calculated based on a predetermined confusion matrix.
상기 프로세서는,
상기 획득된 제2 문자열에 기초하여, 상기 디바이스에 입력된 음성 신호에 관련된 서비스를 제공하는 것을 특징으로 하는, 서버.The method of claim 1,
The processor,
The server, characterized in that to provide a service related to the voice signal input to the device based on the obtained second character string.
상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서; 및
서버와 통신하는 통신부를 포함하고,
상기 프로세서는,
음성 신호에 대해서 음성 인식을 수행하여 제1 문자열을 획득하고,
상기 제1 문자열을 다른 문자열로 대체할 지 여부를 결정하고,
상기 결정에 기초하여 상기 제1 문자열을 상기 서버로 전송하도록 상기 통신부를 제어하고,
상기 서버에 의해 상기 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 대체됨으로써 획득된 제2 문자열을 상기 서버로부터 수신하도록 상기 통신부를 제어하는 것을 특징으로 하는, 디바이스.A memory that stores one or more instructions;
A processor that executes the one or more instructions stored in the memory; And
Including a communication unit in communication with the server,
The processor,
Perform speech recognition on the speech signal to obtain a first character string,
Determine whether to replace the first character string with another character string,
Controlling the communication unit to transmit the first character string to the server based on the determination,
And controlling the communication unit to receive from the server a second character string obtained by replacing at least one character in the first character string with another character by the server.
제1 문자열을 디바이스로부터 수신하는 단계;
상기 제1 문자열로부터 복수의 추정 문자열들을 식별하는 단계;
상기 복수의 추정 문자열에 기초하여 제2 문자열을 획득하는 단계; 및
상기 제2 문자열을 상기 디바이스에게 전송하는 단계를 포함하고,
상기 제1 문자열은, 상기 디바이스에 입력된 음성 신호로부터 음성 인식 처리를 거쳐 출력되는 것을 특징으로 하는, 방법.In the server operation method,
Receiving a first character string from a device;
Identifying a plurality of estimated character strings from the first character string;
Obtaining a second character string based on the plurality of estimated character strings; And
Transmitting the second character string to the device,
The method, characterized in that the first character string is output through speech recognition processing from a speech signal input to the device.
상기 제1 문자열로부터 복수의 추정 문자열들을 식별하는 단계는,
상기 제1 문자열 내의 각 문자에 대응하는 대체 문자들을 식별하는 단계; 및
상기 식별된 대체 문자들에 기초하여 상기 복수의 추정 문자열들을 식별하는 단계를 포함하고,
상기 복수의 추정 문자열에 기초하여 제2 문자열을 획득하는 단계는,
상기 복수의 추정 문자열들 중에서 하나의 추정 문자열을 상기 제2 문자열로서 획득하는 단계를 포함하며,
상기 대체 문자들은 상기 각 문자와 유사한 발음의 문자들인 것을 특징으로 하는, 방법.The method of claim 12,
Identifying a plurality of estimated character strings from the first character string,
Identifying replacement characters corresponding to each character in the first character string; And
Identifying the plurality of estimated character strings based on the identified replacement characters,
Obtaining a second character string based on the plurality of estimated character strings,
Obtaining one estimated character string from among the plurality of estimated character strings as the second character string,
The method, characterized in that the replacement characters are characters of a pronunciation similar to each of the characters.
상기 복수의 추정 문자열들을 식별하는 단계는,
상기 제1 문자열 내의 각 문자에 대하여 각 문자가 대체될 대체 문자들에 관한 가능도 행렬들을 산출하는 단계; 및
상기 가능도 행렬들 내의 가능도 값들에 기초하여 상기 복수의 추정 문자열들을 식별하는 단계를 포함하는 것을 특징으로 하는, 방법.The method of claim 12,
Identifying the plurality of estimated character strings,
Calculating likelihood matrices for replacement characters to be replaced with each character for each character in the first character string; And
And identifying the plurality of estimated strings based on likelihood values in the likelihood matrices.
상기 제1 문자열은, 상기 음성 신호가 소정 시간 간격으로 분할된 음성 신호 프레임들 각각에 대응하는 문자들을 포함하는 것을 특징으로 하는, 방법.The method of claim 12,
Wherein the first character string includes characters corresponding to each of the speech signal frames in which the speech signal is divided at predetermined time intervals.
상기 제2 문자열을 획득하는 단계는,
상기 가능도 행렬들 내의 가능도 값들에 기초하여 상기 복수의 추정 문자열들의 가능도를 계산하는 단계;
상기 가능도, 사전(dictionary) 정보, 및 언어 모델(language model)에 기초하여, 상기 복수의 추정 문자열 중 하나를 선택하는 단계; 및
상기 선택된 추정 문자열에 따라, 상기 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 대체된 상기 제2 문자열을 획득하는 단계를 포함하는 것을 특징으로 하는, 방법.The method of claim 14,
Obtaining the second character string,
Calculating a likelihood of the plurality of estimated character strings based on likelihood values in the likelihood matrices;
Selecting one of the plurality of estimated character strings based on the likelihood, dictionary information, and a language model; And
And obtaining the second character string in which at least one character in the first character string has been replaced with another character according to the selected estimated character string.
상기 각 문자에 대해 획득된 가능도 행렬들은,
상기 각 문자의 이전에 누적된 문자들에 기초하여 산출되는 것을 특징으로 하는, 방법.The method of claim 14,
The likelihood matrices obtained for each character are,
Characterized in that it is calculated based on previously accumulated characters of each character.
상기 각 문자에 대해 획득된 가능도 행렬들은,
상기 각 문자의 이전에 누적된 문자들에 기초하여 산출되는 사후 확률들, 및 상기 각 문자의 이전에 누적된 문자들에 기초하여 산출되는 문자 배열 확률에 기초하여 산출되는 것을 특징으로 하는, 방법.The method of claim 14,
The likelihood matrices obtained for each character are,
Characterized in that it is calculated based on posterior probabilities calculated based on previously accumulated characters of each character, and character arrangement probabilities calculated based on previously accumulated characters of each character.
상기 획득된 제2 문자열에 기초하여, 상기 디바이스에 입력된 음성 신호에 관련된 서비스를 제공하는 단계를 더 포함하는 것을 특징으로 하는, 방법.The method of claim 12,
And providing a service related to the voice signal input to the device based on the obtained second character string.
음성 신호에 대해서 음성 인식을 수행하여 제1 문자열을 획득하는 단계;
상기 제1 문자열을 다른 문자열로 대체할 지 여부를 결정하는 단계;
상기 결정에 기초하여 상기 제1 문자열을 서버로 전송하는 단계; 및
상기 서버에 의해 상기 제1 문자열 내의 적어도 하나의 문자가 다른 문자로 대체됨으로써 획득된 제2 문자열을 상기 서버로부터 수신하는 단계를 포함하는 것을 특징으로 하는, 디바이스.In the method of operating the device,
Obtaining a first character string by performing speech recognition on the speech signal;
Determining whether to replace the first character string with another character string;
Transmitting the first character string to a server based on the determination; And
And receiving, from the server, a second character string obtained by replacing at least one character in the first character string with another character by the server.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2020/010494 WO2021029627A1 (en) | 2019-08-13 | 2020-08-07 | Server that supports speech recognition of device, and operation method of the server |
CN202080056919.6A CN114223029A (en) | 2019-08-13 | 2020-08-07 | Server supporting device to perform voice recognition and operation method of server |
EP20851479.4A EP3931826A4 (en) | 2019-08-13 | 2020-08-07 | Server that supports speech recognition of device, and operation method of the server |
US16/992,943 US11514916B2 (en) | 2019-08-13 | 2020-08-13 | Server that supports speech recognition of device, and operation method of the server |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962886027P | 2019-08-13 | 2019-08-13 | |
US62/886,027 | 2019-08-13 | ||
KR20190133259 | 2019-10-24 | ||
KR1020190133259 | 2019-10-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210019930A true KR20210019930A (en) | 2021-02-23 |
Family
ID=74688210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200018574A KR20210019930A (en) | 2019-08-13 | 2020-02-14 | Server supporting speech recognition of device and operating method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20210019930A (en) |
-
2020
- 2020-02-14 KR KR1020200018574A patent/KR20210019930A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10679610B2 (en) | Eyes-off training for automatic speech recognition | |
US10643036B2 (en) | Language translation device and language translation method | |
EP2801091B1 (en) | Method, apparatus and computer program product for joint use of speech and text-based features for sentiment detection | |
CN111164676A (en) | Speech model personalization via environmental context capture | |
US11514916B2 (en) | Server that supports speech recognition of device, and operation method of the server | |
US10650802B2 (en) | Voice recognition method, recording medium, voice recognition device, and robot | |
JP5706384B2 (en) | Speech recognition apparatus, speech recognition system, speech recognition method, and speech recognition program | |
US10832679B2 (en) | Method and system for correcting speech-to-text auto-transcription using local context of talk | |
US11741947B2 (en) | Transformer transducer: one model unifying streaming and non-streaming speech recognition | |
US11393455B2 (en) | Methods for natural language model training in natural language understanding (NLU) systems | |
CN107274903B (en) | Text processing method and device for text processing | |
US11626103B2 (en) | Methods for natural language model training in natural language understanding (NLU) systems | |
US11521619B2 (en) | System and method for modifying speech recognition result | |
US11574127B2 (en) | Methods for natural language model training in natural language understanding (NLU) systems | |
US11392771B2 (en) | Methods for natural language model training in natural language understanding (NLU) systems | |
US11532310B2 (en) | System and method for recognizing user's speech | |
CN112735396A (en) | Speech recognition error correction method, device and storage medium | |
KR102409873B1 (en) | Method and system for training speech recognition models using augmented consistency regularization | |
US11488607B2 (en) | Electronic apparatus and control method thereof for adjusting voice recognition recognition accuracy | |
KR20210019924A (en) | System and method for modifying voice recognition result | |
KR20210019930A (en) | Server supporting speech recognition of device and operating method thereof | |
KR102631143B1 (en) | Voice synthesizer using artificial intelligence, operating method of voice synthesizer and computer redable recording medium | |
CA3144484A1 (en) | Methods for natural language model training in natural language understanding (nlu) systems | |
JP2015143866A (en) | Voice recognition apparatus, voice recognition system, voice recognition method, and voice recognition program | |
US20230267934A1 (en) | Display apparatus and operating method thereof |