KR102414173B1 - 전자 장치와 서버를 활용한 음성 인식 - Google Patents

전자 장치와 서버를 활용한 음성 인식 Download PDF

Info

Publication number
KR102414173B1
KR102414173B1 KR1020150038857A KR20150038857A KR102414173B1 KR 102414173 B1 KR102414173 B1 KR 102414173B1 KR 1020150038857 A KR1020150038857 A KR 1020150038857A KR 20150038857 A KR20150038857 A KR 20150038857A KR 102414173 B1 KR102414173 B1 KR 102414173B1
Authority
KR
South Korea
Prior art keywords
voice
server
reliability
threshold value
voice recognition
Prior art date
Application number
KR1020150038857A
Other languages
English (en)
Other versions
KR20150116389A (ko
Inventor
정석영
김경태
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to CN201910261486.7A priority Critical patent/CN109949815B/zh
Priority to EP15162637.1A priority patent/EP2930716B1/en
Priority to CN201510162292.3A priority patent/CN104978965B/zh
Priority to US14/680,444 priority patent/US9640183B2/en
Publication of KR20150116389A publication Critical patent/KR20150116389A/ko
Priority to US15/581,847 priority patent/US10074372B2/en
Priority to US16/128,107 priority patent/US10643621B2/en
Application granted granted Critical
Publication of KR102414173B1 publication Critical patent/KR102414173B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/14Speech classification or search using statistical models, e.g. Hidden Markov Models [HMMs]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Probability & Statistics with Applications (AREA)
  • Telephonic Communication Services (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract


전자 장치가 개시된다. 상기 전자 장치는 메모리에 저장된 음성 인식 모델을 이용하여 음성 입력에 대한 ASR(automatic speech recognition)을 수행하는 프로세서, 상기 음성 입력을 서버로 제공하고 상기 서버로부터 상기 음성 입력에 대응하는 음성 명령을 수신하는 통신 모듈을 포함하고, ASR의 수행 결과에 대한 신뢰도에 따라 다른 동작을 수행할 수 있다. 이 외에도 명세서를 통해 파악되는 다양한 실시 예가 가능하다.

Description

전자 장치와 서버를 활용한 음성 인식{Speech recognition using Electronic Device and Server}
본 발명의 다양한 실시 예들은 전자 장치에 탑재된 음성 인식 모델과 서버에서 활용 가능한 음성 인식 모델을 이용하여 사용자의 음성 입력을 인식하고 음성 명령을 수행하는 기술과 관련된다.
키보드나 마우스를 이용한 전통적인 입력 방식에 부가하여, 최근의 전자 장치들은 사용자의 음성(speech)을 이용한 입력 방식을 지원할 수 있다. 예를 들어, 스마트폰이나 태블릿과 같은 전자 장치들은 특정 기능(예: S-Voice, 또는 Siri 등)이 실행된 상태에서 입력되는 사용자의 음성을 분석하여 그 음성을 텍스트로 변환하거나, 음성에 대응하는 동작을 수행할 수 있다. 또한 일부 전자 장치들은 음성 인식 기능이 항상 활성화되어 있어(always-on), 언제든지 사용자의 음성에 따라 깨어나거나(awake), 잠금 해제되거나(unlocked), 인터넷 검색이나 통화, SMS/이메일 읽기와 같은 기능을 수행할 수 있다.
음성 인식과 관련된 다양한 연구와 기술이 알려져 있지만, 전자 장치에서 음성 인식을 수행하는 방법은 제한적일 수 밖에 없다. 예를 들어, 전자 장치는 음성 인식에 대한 빠른 응답을 위해 전자 장치에 자체적으로 탑재된 음성 인식 모델을 활용할 수 있다. 그러나 전자 장치의 저장 공간 및 처리 능력은 제한적이고, 그에 따라 인식할 수 있는 음성 입력의 개수나 종류 역시 제한된다.
음성 입력에 대하여 보다 정확하고 확실한 결과를 얻기 위하여 전자 장치는 음성 입력을 서버로 전송하여 음성 인식을 요청하고, 서버로부터 회신된 결과를 제공하거나, 회신된 결과에 기초하여 특정 동작을 수행할 수 있다. 그러나 이 방법은 전자 장치의 통신 사용량을 증가시키고, 상대적으로 늦은 응답 속도를 가져온다.
본 문서에 개시되는 다양한 실시 예들은 둘 이상의 서로 다른 음성 인식 능력 또는 음성 인식 모델을 활용하여 전술한 여러 상황에서 발생할 수 있는 비효율을 개선하고 사용자에게 빠른 응답 속도와 높은 정확성을 제공하는 음성 인식 수행 방법을 제공할 수 있다.
본 발명의 다양한 실시 예에 따른 전자 장치는, 메모리에 저장된 음성 인식 모델을 이용하여 음성 입력에 대한 ASR(automatic speech recognition)을 수행하는 프로세서, 상기 음성 입력을 서버로 제공하고 상기 서버로부터 상기 음성 입력에 대응하는 음성 명령을 수신하는 통신 모듈을 포함할 수 있다. 여기서 상기 프로세서는 (1) 상기 ASR의 수행 결과의 신뢰도가 제1 임계값 이상인 경우 상기 ASR의 수행 결과에 대응하는 동작을 수행하고, (2) 상기 ASR의 수행 결과의 신뢰도가 제2 임계값 미만인 경우 상기 신뢰도에 대한 피드백을 제공할 수 있다.
본 발명의 다양한 실시 예에 따르면, 전자 장치에 자체적으로 탑재된 음성 인식 모델을 이용하여 음성 인식을 수행하고, 이 음성 인식 결과에 기초하여 보충적으로 서버를 통한 음성 인식 결과를 활용하여 빠른 응답 속도와 높은 정확성을 갖는 음성 인식 기능을 제공할 수 있다.
또한 전자 장치와 서버를 이용한 음성 인식의 결과들을 비교하고, 비교 결과에 기초하여 음성 인식 모델 또는 음성 인식 알고리즘에 반영할 수 있다. 그에 따라 음성 인식이 반복하여 수행될수록 정확도와 응답 속도가 지속적으로 개선될 수 있다.
도 1은 본 발명의 일 실시 예에 따른 전자 장치 및 전자 장치와 네트워크를 통해 연결되는 서버를 나타낸다.
도 2는 본 발명의 다른 실시 예에 따른 전자 장치 및 서버를 나타낸다.
도 3은 본 발명의 일 실시 예에 따른 음성 인식 수행 방법의 흐름도를 나타낸다.
도 4는 본 발명의 다른 실시 예에 따른 음성 인식 수행 방법의 흐름도를 나타낸다.
도 5는 본 발명의 일 실시 예에 따른 임계 값을 업데이트하는 방법의 흐름도를 나타낸다.
도 6은 본 발명의 일 실시 예에 따른 음성 인식 모델을 업데이트하는 방법의 흐름도를 나타낸다.
도 7은 본 발명의 일 실시 예에 따른 네트워크 환경 내의 전자 장치를 나타낸다.
도 8은 본 발명의 일 실시 예에 따른 전자 장치의 블록 도를 나타낸다.
이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시 예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 문서에서, "가진다", "가질 수 있다", "포함한다", 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 문서에서, "A 또는 B", "A 또는/및 B 중 적어도 하나", 또는 "A 또는/및 B 중 하나 또는 그 이상" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B", "A 및 B 중 적어도 하나", 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
다양한 실시 예에서 사용된 "제1", "제2", "첫째", 또는 "둘째" 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 해당 구성요소들을 한정하지 않는다. 예를 들면, 제1 사용자 기기와 제2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 바꾸어 명명될 수 있다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 문서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)", "~하는 능력을 가지는(having the capacity to)", "~하도록 설계된(designed to)", "~하도록 변경된(adapted to)", "~하도록 만들어진(made to)", 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성(또는 설정)된"은 하드웨어적으로 "특별히 설계된(specifically designed to)"것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성(또는 설정)된 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 문서에서 사용된 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명의 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 일반적으로 사용되는 사전에 정의된 용어들은 관련 기술의 문맥 상 가지는 의미와 동일 또는 유사한 의미를 가지는 것으로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 발명의 실시 예들을 배제하도록 해석될 수 없다.
이하, 첨부 도면을 참조하여, 다양한 실시 예에 따른 전자 장치가 설명된다. 본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 전자 장치 및 전자 장치와 네트워크를 통해 연결되는 서버를 나타낸다.
도 1을 참조하면, 전자 장치는 사용자 단말 100과 같은 구성을 포함할 수 있다. 예를 들어, 사용자 단말 100은 마이크 110, 컨트롤러 120, ASR 모듈 130, ASR 모델 140, 트랜시버 150, 스피커 170, 및 디스플레이 180을 포함할 수 있다. 도 1에 도시된 사용자 단말 100의 구성은 예시적인 것이며, 본 문서에 개시되는 다양한 실시 예를 구현할 수 있는 다양한 변형이 가능하다. 예를 들어, 전자 장치는 도 2에 도시된 사용자 단말 101, 도 7에 도시된 전자 장치 701, 도 8에 도시된 전자 장치 801과 같은 구성을 포함하거나, 이 구성들을 활용하여 적절하게 변형될 수 있다. 이하에서는 사용자 단말 100을 기준으로 본 발명의 다양한 실시 예들이 설명된다.
사용자 단말 100은 마이크 110을 통하여 사용자로부터 음성 입력을 획득할 수 있다. 예를 들어, 사용자가 음성 인식과 관련된 어플리케이션을 실행하거나, 또는 음성 인식이 항상 활성화 상태인 경우, 사용자의 발화(speech)는 마이크 110을 통해 획득될 수 있다. 마이크 110은 아날로그 신호를 디지털 신호로 변환하는 ADC(Analog-Digital Convertor)를 포함할 수 있다. 그러나 일부 실시 예에서, ADC, DAC(Digital-Analog Convertor) 및 다양한 신호 처리 또는 전처리(pre-processing) 회로가 컨트롤러 120에 포함될 수 있다.
컨트롤러 120은 마이크 110에 의해 획득된 음성 입력, 또는 음성 입력에 기초하여 생성된 오디오 신호(또는 음성 신호)를 ASR 모듈 130과 트랜시버 150으로 제공할 수 있다. 컨트롤러 120에 의해 ASR 모듈 130으로 제공되는 오디오 신호는 음성 인식을 위해 전처리된 신호일 수 있다. 예를 들어, 상기 오디오 신호는 노이즈 필터링(noise filtering) 또는 인간의 음성에 적합한 이퀄라이저(equalizer)가 적용된 신호일 수 있다. 반면에 컨트롤러 120에 의해 트랜시버 150으로 제공되는 신호는 음성 입력 그 자체일 수 있다. 컨트롤러 120은 ASR 모듈 130과 달리 트랜시버 150으로는 원음 데이터를 전송함으로써, 서버 200에 의해 적절한, 또는 더 나은 성능의 오디오 신호 처리가 적용될 수 있다.
컨트롤러 120은, 사용자 단말 100의 일반적인 동작을 제어할 수 있다. 예를 들어, 컨트롤러 120은 사용자로부터의 음성 입력을 제어하고, 음성 인식 동작을 제어하고, 음성 인식에 따른 기능 수행을 제어할 수 있다.
ASR 모듈 130은 컨트롤러 120으로부터 제공되는 오디오 신호에 대하여 음성 인식을 수행할 수 있다. ASR 모듈 130은 음성 입력(오디오 신호)에 대하여 고립 단어 인식(isolated word recognition), 연속어 음성 인식(connected word recognition), 대용량 어휘 인식(large vocabulary recognition) 등을 수행할 수 있다. ASR 모듈 130에 의해 수행되는 ASR은 화자 독립(speaker-independent)적으로 구현되거나, 또는 화자 종속(speaker-dependent)적으로 구현될 수 있다. ASR 모듈 130은 반드시 하나의 음성 인식 엔진일 필요는 없으며, 둘 이상의 음성 인식 엔진으로 구성될 수 있다. 또한, ASR 모듈 130이 복수의 음성 인식 엔진을 포함하는 경우, 각각의 음성 인식 엔진은 인식 목적이 상이할 수 있다. 예를 들어, 하나의 음성 인식 엔진은 ASR 기능을 활성화 하기 위한 발화(wakeup speech), 예를 들어 “Hi, Galaxy”를 인식할 수 있고, 다른 하나의 음성 인식 엔진은 음성 명령 발화(command speech), 예를 들어 “read a recent e-mail”을 인식할 수 있다. ASR 모듈 130은 ASR 모델 140에 기초하여 음성 인식을 수행하고, 따라서 ASR 모델 140에 의해 인식할 수 있는 음성 입력의 범위(예: 종류 또는 개수)가 지정될 수 있다. ASR 모듈 130에 대한 위 설명은, 후술하는 서버의 ASR 모듈 230에도 적용될 수 있다.
ASR 모듈 130은 음성 입력을 텍스트로 변환할 수 있다. ASR 모듈 130은 음성 입력에 대하여 전자 장치에 의해 수행될 동작이나 기능을 결정할 수 있다. 또한 ASR 모듈 130은 ASR의 수행 결과에 대하여 신뢰도(confidence lever, or confidence score)를 함께 결정할 수 있다.
ASR 모델 140은 문법(grammar)을 포함할 수 있다. 여기서 문법은 언어학적인 문법 외에도 (사용자 입력이나 웹 상에서 수집되어) 통계적으로 생성되는 다양한 형태의 문법을 포함할 수 있다. 다양한 실시 예에서, ASR 모델 140은 음향 모델(acoustic model), 언어 모델(language model) 등을 포함할 수 있다. 또는 ASR 모델 140은 고립 단어 인식에 사용되는 음성 인식 모델이 될 수 있다. 다양한 실시 예에서, ASR 모델 140은 사용자 단말 100의 연산 능력과 저장 능력을 고려하여 적절한 수준의 음성 인식을 수행하기 위한 인식 모델을 포함할 수 있다. 예를 들어, 상기 문법은 언어적인 문법과 무관하게, 지정된 명령 구조를 위한 문법을 포함할 수 있다. 예를 들어 “call [user name]”은 [user name]의 사용자에게 호(call)를 발신하기 위한 문법으로서, 상기 ASR 모델 140에 포함될 수 있다.
트랜시버 150은 컨트롤러 120으로부터 제공된 음성 신호를 네트워크 10을 통해 서버 200으로 전송할 수 있다. 또한 전송된 음성 신호에 대응하는 음성 인식의 수행 결과를 서버 200으로부터 수신할 수 있다.
스피커 170과 디스플레이 180은 사용자 입력과 상호작용하기 위하여 사용될 수 있다. 예를 들어, 마이크 110을 통해 사용자로부터 음성 입력이 제공되면, 음성 인식의 수행 결과가 디스플레이 180에 표시되고 스피커 170을 통해 출력될 수 있다. 물론, 스피커 170과 디스플레이 180은 각각 사용자 단말 100의 일반적인 사운드 출력 및 화면 출력 기능을 수행할 수 있다.
서버 200은 사용자 단말 100으로부터 네트워크 10을 통해 제공되는 음성 입력에 대한 음성 인식을 수행하기 위한 구성을 포함할 수 있다. 그에 따라, 서버 200의 일부 구성요소는 사용자 단말 100과 대응될 수 있다. 예를 들어, 서버 200은 트랜시버 210, 컨트롤러 220, ASR 모듈 230, ASR 모델 240 등을 포함할 수 있다. 또한 서버 200은 ASR 모델 컨버터 250이나 NLP (Natural Language Processing) 260과 같은 구성을 더 포함할 수 있다.
컨트롤러 220은 서버 200에서 음성 인식을 수행하기 위한 기능 모듈들을 제어할 수 있다. 예를 들어, 컨트롤러 220은 ASR 모듈 230 및/또는 NLP 260과 연결될 수 있다. 또한 컨트롤러 220은 사용자 단말 100과 연동되어 인식 모델 업데이트와 관련된 기능을 수행할 수 있다. 또한 컨트롤러 220은 네트워크 10을 통해 전송된 음성 신호에 대한 전처리를 수행하여 ASR 모듈 230으로 제공할 수 있다. 여기서의 전처리는 사용자 단말 100에서 수행되는 전처리와 다른 방식 또는 효과를 가질 수 있다. 일부 실시 예에서, 서버 200의 컨트롤러 220은 오케스트레이터(orchestrator)로 참조될 수 있다.
ASR 모듈 230은 컨트롤러 220으로부터 제공되는 음성 신호에 대하여 음성 인식을 수행할 수 있다. ASR 모듈 130에 대한 설명 중 적어도 일부가 ASR 모듈 230에 적용될 수 있다. 다만, 서버용 ASR 모듈 230과 사용자 단말용 ASR 모듈 130은 일부 유사한 기능을 수행하지만, 포함하는 기능적 범위나 알고리즘이 상이할 수 있다. ASR 모듈 230은 ASR 모델 240에 기초하여 음성 인식을 수행하며, 그에 따라 사용자 단말 100의 ASR 모듈 130의 음성 인식 결과와 다른 결과를 생성할 수 있다. 구체적으로, 서버 200에서는 ASR 모듈 230 및 NLP 260에 의해 음성 인식, 자연어 이해(Natural Language Understanding, NLU), 및 대화 관리(Dialog Management, DM) 또는 그 조합에 의해 인식 결과를 생성하고, 사용자 단말 100에서는 ASR 모듈 130에 의해 인식 결과를 생성할 수 있다. 예를 들어, ASR 모듈 130의 ASR 수행 결과 음성 입력에 대하여 제1 동작 정보와 제1 신뢰도가 결정되고 ASR 모듈 230의 음성 인식 수행 결과 제2 동작 정보와 제2 신뢰도가 결정될 수 있다. 일부 실시 예에서, ASR 모듈 130의 수행 결과와 ASR 모듈 230의 수행 결과는 일치하거나, 적어도 일부는 다를 수 있다. 예를 들어, 제1 동작 정보와 제2 동작 정보는 서로 대응되지만 제1 신뢰도보다 제2 신뢰도가 더 높은 점수(score)를 가질 수 있다. 다양한 실시 예에서, 사용자 단말 100의 ASR 모듈 130에 의해 수행되는 음성 인식(ASR)은 제1 음성 인식으로, 서버 200의 ASR 모듈 230에 의해 수행되는 음성 인식(ASR)은 제2 음성 인식으로 참조될 수 있다.
다양한 실시 예에서, ASR 모듈 130에서 수행되는 제1 음성 인식의 알고리즘과 ASR 모듈 230에서 수행되는 제2 음성 인식의 알고리즘이 다르거나 음성 인식에 사용되는 모델이 다른 경우, 상호간의 모델 변환을 위한 ASR 모델 컨버터 250이 서버 200에 포함될 수 있다.
또한 서버 200은 ASR 모듈 230에서 인식된 결과를 기반으로 사용자의 의도를 파악하고 수행될 기능을 결정하기 위한 NLP 260을 포함할 수 있다. NLP 260은 인간이 발화하는 언어 현상을 기계적으로 분석해서 컴퓨터가 이해할 수 있는 형태로 만드는 자연 언어 이해 혹은 그러한 형태를 다시 인간이 이해할 수 있는 언어로 표현하는 자연어 처리를 수행할 수 있다.
도 2는 본 발명의 다른 실시 예에 따른 전자 장치 및 서버를 나타낸다.
도 2에는, 도 1과 다른 방식으로 구현되는 전자 장치의 예시를 나타낸다. 그러나 본 문서에서 개시되는 음성 인식 방법은, 도 1이나 도 2, 또는 후술하는 도 7과 8의 전자 장치/사용자 단말 외에도, 이로부터 변형 가능한 다양한 형태의 장치에 의해 수행될 수 있다.
도 2를 참조하면, 사용자 단말 101은 프로세서 121 및 메모리 141을 포함할 수 있다. 프로세서 121은 음성 인식을 수행하기 위한 ARS 엔진 131을 포함할 수 있다. 메모리 141은 ASR 엔진 131이 음성 인식을 수행하기 위해 사용하는 ASR 모델 143을 저장하고 있을 수 있다. 예를 들어, 각 구성이 수행하는 기능에 있어서, 도 2의 프로세서 121, ASR 엔진 131, 및 ASR 모델 143(또는 메모리 141)은 도 1의 컨트롤러 120, ASR 모듈 130, 및 ASR 모델 140에 각각 대응되는 것으로 이해될 수 있다. 이하에서 대응되거나 중복되는 내용의 설명은 생략한다.
사용자 단말 101은 음성 인식 모듈 111(예: 마이크 110)을 이용하여 사용자로부터 음성 입력을 획득할 수 있다. 프로세서 121은 획득된 음성 입력에 대하여 메모리 141에 저장된 ASR 모델 143을 이용하여 ASR을 수행할 수 있다. 또한, 사용자 단말 101은 통신 모듈 151을 통해 음성 입력을 서버 200으로 제공하고, 서버 200으로부터 음성 입력에 대응하는 음성 명령(예: 제2 동작 정보)을 수신할 수 있다. 사용자 단말 101은 ASR 엔진 131 및 서버 200에 의해 획득 가능한 음성 인식 결과를 디스플레이 181(또는 스피커)을 이용하여 출력할 수 있다.
이하에서는, 도 3 내지 도 6을 참조하여 사용자 단말 100을 기준으로 다양한 음성 인식 방법에 대하여 설명한다.
도 3은 본 발명의 일 실시 예에 따른 음성 인식 수행 방법의 흐름도를 나타낸다.
동작 301에서 사용자 단말 100은 마이크와 같은 음성 획득 모듈을 이용하여 사용자의 음성 입력을 획득할 수 있다. 이 동작은, 사용자에 의해 음성 인식과 연관된 특정 기능이나 어플리케이션이 실행된 상태에서 수행될 수 있다. 그러나 일부 실시 예에서, 사용자 단말 100의 음성 인식은 항상 동작 상태(always-on)(예: 마이크가 항상 활성화 상태)일 수 있고, 이 경우 동작 301은 사용자의 발화에 대하여 항상 수행될 수 있다. 혹은, 전술한 바와 같이 서로 다른 음성 인식 엔진에 의해, 특정 음성 입력(예: Hi, Galaxy)에 의해 ASR이 활성화되고, 후속하여 입력되는 음성 인식에 대한 ASR이 수행될 수 있다.
동작 303에서 사용자 단말 100은 음성 신호(또는 음성 신호의 적어도 일부)를 서버 200으로 전송할 수 있다. 장치 내부적으로는, 음성 신호(또는 음성 입력이 (디지털) 음성 신호로 변환되고, 음성 신호에 대해 전처리 적용된 오디오 신호)가 프로세서(예: 컨트롤러 120)에 의해 ASR 모듈 130으로 제공될 수 있다. 다시 말해서 동작 303에서 사용자 단말 100은 음성 인식을 수행할 수 있는 장치 내부 및 외부에 위치한 ASR 모듈로 인식 대상이 되는 음성 신호를 제공할 수 있다. 사용자 단말 100은 자체적인 음성 인식과 서버 200을 통한 음성 인식을 모두 활용할 수 있다.
동작 305에서, 사용자 단말 100에서 자체적인 음성 인식이 수행될 수 있다. 이 음성 인식은 ASR1으로 참조될 수 있다. 예를 들어, ASR 모듈 130은 ASR 모델 140을 이용하여 음성 입력에 대한 음성 인식을 수행할 수 있다. 예를 들어, ASR 모델 140은 음성 신호 중 적어도 일부에 대하여 ASR1을 수행할 수 있다. ASR1의 수행 결과, 음성 입력에 대한 수행 결과가 획득될 수 있다. 예를 들어, 사용자가 “내일 날씨”와 같이 음성 입력을 제공한 경우, 사용자 단말 100은 음성 입력에 대한 음성 인식 기능을 이용하여 “날씨 어플리케이션 실행, 내일 날씨 출력”과 같은 동작 정보를 결정할 수 있다. 또한 음성 인식의 수행 결과는 상기 동작 정보 외에도, 동작 정보에 대한 신뢰도를 포함할 수 있다. 예를 들어, ASR 모듈 130은 사용자의 발화를 분석한 결과 “내일 날씨”가 명확한 경우 95%의 신뢰도를 결정할 수 있지만, 발화의 분석 결과 “매일 날씨”인지 “내일 날씨”인지 명확하지 않은 경우, 60%의 신뢰도를 결정된 동작 정보에 대하여 부여할 수 있다.
동작 307에서, 프로세서는 신뢰도가 지정된 임계 값(threshold) 이상인지 판단할 수 있다. 예를 들어, ASR 모듈 130에 의해 결정된 동작 정보에 대한 신뢰도가 지정된 수준(예: 80%) 이상인 경우, 동작 309에서 사용자 단말 100은 ASR1, 즉 사용자 단말 100 자체적인 음성 인식 기능에 의해 인식된 음성 명령에 대응되는 동작을 수행할 수 있다. 상기 동작은, 예를 들어 프로세서에 의해 실행 가능한 적어도 하나의 기능, 적어도 하나의 어플리케이션, 또는 ASR의 수행 결과에 기초한 입력 중 적어도 하나를 포함할 수 있다.
동작 309는 서버 200으로부터 음성 인식의 결과가 획득(예: 동작 315)되기 전에 수행될 수 있다. 다시 말해서, 사용자 단말 100에서 자체적으로 음성 인식을 수행한 결과 충분한 신뢰도를 갖는 음성 명령이 인식되는 경우, 사용자 단말은 서버 200으로부터 획득되는 추가적인 음성 인식 결과를 기다리지 않고 바로 해당 동작을 수행함으로써 사용자의 음성 입력에 대한 빠른 응답 시간을 확보할 수 있다.
동작 307에서 신뢰도가 임계 값 미만인 경우, 사용자 단말 100은 동작 315에서 서버 200으로부터 음성 인식 결과를 획득할 때까지 대기할 수 있다. 대기 동작 동안 사용자 단말 100은 적절한 메시지나 아이콘, 이미지 등을 디스플레이 하여 음성 입력에 대한 음성 인식이 수행되고 있음을 나타낼 수 있다.
동작 311에서, 동작 303에서 서버 200으로 전송된 음성 신호에 대하여 서버에 의한 음성 인식이 수행될 수 있다. 이 음성 인식은 ASR2로 참조될 수 있다. 또한 동작 313에서 자연어 처리(NLP)가 수행될 수 있다. 예를 들어, 서버 200의 NLP 260에 의해 음성 입력 또는 ASR2의 인식 결과에 대하여 NLP가 수행될 수 있다. 일부 실시 예에서, 이 과정은 선택적으로 수행될 수도 있다.
이제 동작 315에서 서버 200으로부터 ASR2 또는 ASR2와 NLP가 수행된 음성 인식 결과(예: 제2 동작 정보 및 제2 신뢰도)가 획득되면, 동작 317에서 ASR2에 의해 인식된 음성 명령(예: 제2 동작 정보)에 대응되는 동작이 수행될 수 있다. 동작 317의 경우, 음성 인식의 수행 외에도 동작 303에서 음성 신호를 전송하고 동작 315에서 음성 인식 결과를 획득하기 위한 시간이 추가적으로 필요하기 때문에, 동작 309에 의한 동작 수행보다 긴 응답 시간을 가질 수 있다. 그러나 동작 317에 의해 자체적으로 처리할 수 없거나, 혹은 자체적으로 처리가 가능하지만 낮은 신뢰도를 갖는 음성 인식에 대해서도 상대적으로 높은 신뢰도와 정확성을 갖는 동작이 수행될 수 있다.
도 4는 본 발명의 다른 실시 예에 따른 음성 인식 수행 방법의 흐름도를 나타낸다.
도 4를 참조하면, 음성 획득 동작 401, 음성 신호 전송 동작 403, ASR1 동작 405, ASR2 동작 415, 및 NLP 동작 417은 도 3에서 전술한 동작 301, 303, 305, 311, 및 313에 각각 대응되므로 그 설명을 생략한다.
도 4를 참조하여 설명되는 음성 인식 수행 방법은 두 개의 임계 값을 기준으로 수행된다. 제1 임계 값 및 제1 임계 값보다 낮은 신뢰도에 해당하는 제2 임계 값을 기준으로, 동작 405의 ASR1의 수행 결과의 신뢰도가 (1) 제1 임계값 이상인 경우, (2) 제2 임계값 미만인 경우, 및 (3) 제1 임계 값과 제2 임계 값 사이에 있는 경우, 서로 다른 동작(예: 각각 동작 409, 413, 421)이 수행될 수 있다.
동작 407에서 신뢰도가 제1 임계 값 이상인 경우, 사용자 단말 100은 동작 409에서 ASR1의 수행 결과에 대응되는 동작을 수행할 수 있다. 만약 동작 407에서 신뢰도가 제1 임계 값 미만인 경우, 동작 411에서 신뢰도가 제2 임계 값 보다 낮은지 여부를 판단할 수 있다.
동작 411에서, 신뢰도가 제2 임계 값 미만인 경우, 사용자 단말 100은 상기 신뢰도에 대한 피드백을 제공할 수 있다. 이 피드백은 사용자의 음성 입력이 전자 장치에 의해 정상적으로 인식되지 않았거나, 인식은 되었으나 그 인식 결과를 신뢰할 수 없음을 나타내는 메시지나 오디오 출력을 포함할 수 있다. 예를 들어, 사용자 단말 100은 “음성이 인식되지 않았습니다. 다시 말씀해주세요.”와 같은 안내 메시지를 디스플레이 하거나 스피커를 통해 출력할 수 있다. 또는, 사용자 단말 100은 예를 들어 “XXX라고 말씀하신 것이 맞습니까?”와 같은 피드백을 통해 상대적으로 인식하기 용이한 음성 입력(예: 네, 아니, 아니오, 그럴 리가, 전혀 등)을 유도하여 낮은 신뢰도를 갖는 인식 결과에 대한 정확성을 확인할 수 있다.
동작 413에서 피드백이 제공되면, 이후 시간 경과에 따라 동작 419에서 음성 인식 결과가 획득되더라도 동작 421이 수행되지 않을 수 있다. 피드백에 의해 사용자로부터 새로운 음성 입력이 발생할 수 있고, 이 경우 이전에 발생한 음성 입력에 대한 동작이 수행되는 것은 적절하지 않기 때문이다. 그러나 일부 실시 예에서, 동작 413의 피드백에도 불구하고 사용자로부터 일정 시간 동안 어떠한 추가 입력도 발생하지 않고, 동작 419에서 서버 200으로부터 수신되는 음성 인식 결과(예: 제2 동작 정보 및 제2 신뢰도)가 지정된 조건을 만족시키는 경우(예: 제2 신뢰도가 제1 임계 값 또는 임의의 제3 임계 값 이상인 경우)에 동작 421이 동작 413 이후에 수행될 수 있다.
동작 411에서, 동작 405에서 획득되는 신뢰도가 제2 임계값 이상인 경우(다시 말해서, 신뢰도가 상기 제1 임계 값과 상기 제2 임계 값 사이인 경우), 사용자 단말 100은 동작 419에서 서버 200으로부터 음성 인식 결과를 획득할 수 있다. 동작 421에서 사용자 단말 100은 ASR2에 의해 인식된 음성 명령(제2 동작 정보)에 대응되는 동작을 수행할 수 있다.
도 4의 실시 예에서는, 사용자 단말 100에 의한 음성 인식 결과의 신뢰도를, 사용 가능한 수준과 사용 불가능한 수준, 및 서버 200의 ASR 결과를 참조하여 사용 가능한 수준으로 구분하여 신뢰도에 따라 적절한 동작이 수행되도록 할 수 있다. 특히 신뢰도가 너무 낮은 경우에는 사용자 단말 100은 서버 200으로부터 결과 수신 여부와 관계없이 피드백을 제공하여 사용자에게 재입력을 유도함으로써, 응답 대기 시간이 한참 경과한 후에 사용자에게 “인식하지 못하였습니다”와 같은 메시지가 제공되는 것을 방지할 수 있다.
도 5는 본 발명의 일 실시 예에 따른 임계 값을 업데이트하는 방법의 흐름도를 나타낸다.
도 5를 참조하면, 음성 획득 동작 501, 음성 신호 전송 동작 503, ASR1 동작 505, ASR2 동작 511, 및 NLP 동작 513은 도 3에서 전술한 동작 301, 303, 305, 311, 및 313에 각각 대응되므로 그 설명을 생략한다.
동작 507에서 ASR1의 수행 결과에 대한 신뢰도가 임계 값(예: 제1 임계 값) 이상인 경우 동작 509로 진행하여 ASR1에 의해 인식된 음성 명령(예: 제1 동작 정보)에 대응되는 동작이 수행될 수 있다. 만약 동작 507에서 ASR1의 수행 결과에 대한 신뢰도가 임계 값 이하인 경우, 도 3의 동작 315 이후의 과정, 또는 도 4의 동작 411 이후의 과정이 수행될 수 있다.
도 5의 실시 예에서, 동작 509가 수행된 이후에도 프로세스는 종료되지 않고 동작 515 내지 동작 517이 수행될 수 있다. 동작 515에서, 사용자 단말 100은 서버 200으로부터 음성 인식 결과를 획득할 수 있다. 예를 들어, 사용자 단말 100은 동작 503에서 전송된 음성 신호에 대하여 ASR2의 수행 결과인 제2 동작 정보 및 제2 신뢰도를 획득할 수 있다.
동작 517에서 사용자 단말 100은 ASR1과 ASR2의 인식 결과를 비교할 수 있다. 예를 들어, 사용자 단말은 ASR1과 ASR2의 인식 결과가 서로 동일한지(또는 대응되는지) 혹은 서로 상이한지 여부를 판단할 수 있다. 예를 들어, ASR1의 인식 결과 “내일 날씨”와 같이 음성이 인식되고, ASR2의 인식 결과 “내일 날씨는?”과 같이 음성이 인식된 경우, 두 경우 모두 동작 정보는 “날씨 어플리케이션 실행, 내일 날씨 출력”을 포함할 수 있다. 이와 같은 경우 ASR1과 ASR2의 인식 결과는 서로 대응되는 것으로 이해될 수 있다. 그러나 음성 인식 결과 서로 다른 동작을 수행하게 되는 경우, 둘(또는 그 이상의) 음성 인식 결과는 서로 대응되지 않는 것으로 판단될 수 있다.
동작 519에서 사용자 단말 100은 자체적인 ASR 수행 결과와 서버로부터 수신되는 음성 명령을 비교하여 임계 값을 변경할 수 있다. 예를 들어, 사용자 단말 100은 제1 동작 정보와 제2 동작 정보가 서로 동일하거나 대응되는 음성 명령을 포함하는 경우, 상기 제1 임계 값을 감소시킬 수 있다. 예를 들어, 어떤 음성 입력에 대하여 예전에는 80% 이상의 신뢰도를 보여야 서버 200의 응답을 기다리지 않고 사용자 단말 100의 자체적인 음성 인식의 수행 결과를 활용하였다면, 임계 값 업데이트를 통해 70% 이상의 신뢰도만 획득되더라도 사용자 단말 100의 자체적인 음성 인식 결과를 활용할 수 있다. 임계 값 업데이트는 사용자가 음성 인식 기능을 사용할 때마다 반복되어 수행될 수 있고, 결과적으로 사용자가 자주 사용하는 음성 인식에 대하여 낮은 임계 값이 설정되므로 빠른 응답 시간을 가져올 수 있다.
그러나 ASR1의 수행 결과와 ASR2의 수행 결과가 서로 다른 경우, 상기 임계 값은 증가될 수 있다. 일부 실시 예에서, 임계 값 업데이트 동작은 지정된 조건이 지정된 횟수만큼 누적된 이후에 발생할 수 있다. 예를 들어, 어떤 음성 입력에 대하여 ASR1의 수행 결과와 ASR2의 수행 결과가 일치하는 횟수가 5회 이상 발생하는 경우 임계 값이 업데이트(낮게 조절)될 수 있다.
도 6은 본 발명의 일 실시 예에 따른 음성 인식 모델을 업데이트하는 방법의 흐름도를 나타낸다.
도 6을 참조하면, 음성 획득 동작 601, 음성 신호 전송 동작 603, ASR1 동작 605, ASR2 동작 611, 및 NLP 동작 613은 도 3에서 전술한 동작 301, 303, 305, 311, 및 313에 각각 대응되므로 그 설명을 생략한다.
동작 607에서 ASR1의 수행 결과에 대한 신뢰도가 임계 값(예: 제1 임계 값) 이하인 경우, 도 3의 동작 309, 도 4의 동작 409, 도 5의 동작 509 이후의 동작이 수행될 수 있다.
동작 607에서 ASR1의 수행 결과에 대한 신뢰도가 임계 값보다 낮은 경우, 동작 609에서 사용자 단말 100은 서버 200으로부터 음성 인식 결과를 획득하고, 동작 615에서 ASR2에 의해 인식된 음성 명령에 대응되는 동작을 수행할 수 있다. 동작 609와 동작 615는 도 3의 동작 315와 동작 317, 또는 도 4의 동작 419와 동작 421에 대응될 수 있다.
동작 617에서 사용자 단말 100은 ASR1과 ASR2의 음성 인식 결과를 비교할 수 있다. 동작 617은 도 5의 동작 517에 대응될 수 있다.
동작 619에서, 사용자 단말 100은 동작 517의 비교 결과에 기초하여 사용자 단말 100의 음성 인식 모델(예: ASR 모델 140)을 업데이트할 수 있다. 예를 들어, 사용자 단말 100은 음성 입력에 대한 ASR2의 음성 인식 결과(예: 제2 동작 정보, 또는 제2 동작 정보와 제2 신뢰도)를 음성 인식 모델에 추가할 수 있다. 예를 들어, 사용자 단말 100은 제1 동작 정보와 제2 동작 정보가 서로 대응되지 않는 경우, 제1 신뢰도와 제2 신뢰도에 기초하여(예: 제2 신뢰도가 제1 신뢰도보다 더 높은 경우) 상기 제2 동작 정보(및 상기 제2 신뢰도)를 상기 제1 음성 인식에 이용되는 음성 인식 모델에 추가할 수 있다. 도 5의 실시 예에서와 유사하게, 음성 인식 모델 업데이트 동작은 지정된 조건이 지정된 횟수만큼 누적된 이후에 발생할 수 있다.
도 7은 본 발명의 일 실시 예에 따른 네트워크 환경 내의 전자 장치를 나타낸다.
도 7을 참조하여, 다양한 실시 예에서의 네트워크 환경 700 내의 전자 장치 701이 기재된다. 전자 장치 701은 버스 710, 프로세서 720, 메모리 730, 입출력 인터페이스 750, 디스플레이 760, 및 통신 인터페이스 770을 포함할 수 있다. 어떤 실시 예에서는, 전자 장치 701은, 구성요소들 중 적어도 하나를 생략하거나 다른 구성 요소를 추가적으로 구비할 수 있다.
버스 710은, 예를 들면, 구성요소들 710-170을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 및/또는 데이터)을 전달하는 회로를 포함할 수 있다.
프로세서 720은, 중앙처리장치(CPU), AP(application processor), 또는 CP(communication processor) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서 720은, 예를 들면, 전자 장치 701의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
메모리 730은, 휘발성 및/또는 비 휘발성 메모리를 포함할 수 있다. 메모리 730은, 예를 들면, 전자 장치 701의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시 예에 따르면, 메모리 730은 소프트웨어 및/또는 프로그램 740을 저장할 수 있다. 프로그램 740은, 예를 들면, 커널 741, 미들웨어 743, API(application programming interface) 745, 및/또는 어플리케이션 프로그램(또는 "어플리케이션") 747 등을 포함할 수 있다. 커널 741, 미들웨어 743, 또는 API 745의 적어도 일부는, 운영 시스템(operating system, OS)이라고 불릴 수 있다.
커널 741은, 예를 들면, 다른 프로그램들(예: 미들웨어 743, API 745, 또는 어플리케이션 프로그램 747)에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 버스 710, 프로세서 720, 또는 메모리 730 등)을 제어 또는 관리할 수 있다. 또한, 커널 741은 미들웨어 743, API 745, 또는 어플리케이션 프로그램 747에서 전자 장치 701의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
미들웨어 743은, 예를 들면, API 745 또는 어플리케이션 프로그램 747이 커널 741과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다.
또한, 미들웨어 743은 어플리케이션 프로그램 747로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어 743은 어플리케이션 프로그램 747 중 적어도 하나에 전자 장치 701의 시스템 리소스(예: 버스 710, 프로세서 720, 또는 메모리 730 등)를 사용할 수 있는 우선 순위를 부여할 수 있다. 예컨대, 미들웨어 743은 상기 적어도 하나에 부여된 우선 순위에 따라 상기 하나 이상의 작업 요청들을 처리함으로써, 상기 하나 이상의 작업 요청들에 대한 스케줄링 또는 로드 밸런싱 등을 수행할 수 있다.
API 745는, 예를 들면, 어플리케이션 747이 상기 커널 741 또는 미들웨어 743에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 화상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다.
입출력 인터페이스 750은, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 전자 장치 701의 다른 구성요소(들)에 전달할 수 있는 인터페이스의 역할을 할 수 있다. 또한, 입출력 인터페이스 750은 전자 장치 701의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.
디스플레이 760은, 예를 들면, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템(microelectromechanical systems, MEMS) 디스플레이, 또는 전자 종이(electronic paper) 디스플레이를 포함할 수 있다. 디스플레이 760은, 예를 들면, 사용자에게 각종 컨텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 또는 심볼 등)을 표시할 수 있다. 디스플레이 760은, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스처, 근접, 또는 호버링(hovering) 입력을 수신할 수 있다.
통신 인터페이스 770은, 예를 들면, 전자 장치 701과 외부 장치(예: 제1 외부 전자 장치 702, 제2 외부 전자 장치 704, 또는 서버 706) 간의 통신을 설정할 수 있다. 예를 들면, 통신 인터페이스 770은 무선 통신 또는 유선 통신을 통해서 네트워크 762에 연결되어 상기 외부 장치 (예: 제2 외부 전자 장치 704 또는 서버 706)와 통신할 수 있다.
무선 통신은, 예를 들면 셀룰러 통신 프로토콜로서, 예를 들면 LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro, 또는 GSM 등 중 적어도 하나를 사용할 수 있다. 또한 무선 통신은, 예를 들면, 근거리 통신 764를 포함할 수 있다. 근거리 통신 764는, 예를 들면, Wi-Fi, Bluetooth, NFC(near field communication), 또는 GPS(global positioning system) 등 중 적어도 하나를 포함할 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard 832), 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 네트워크 762는 통신 네트워크(telecommunications network), 예를 들면, 컴퓨터 네트워크(computer network)(예: LAN 또는 WAN), 인터넷, 또는 전화 망(telephone network) 중 적어도 하나를 포함할 수 있다.
제1 및 제2 외부 전자 장치 702, 704 각각은 전자 장치 701과 동일한 또는 다른 종류의 장치일 수 있다. 한 실시 예에 따르면, 서버 706은 하나 또는 그 이상의 서버들의 그룹을 포함할 수 있다. 다양한 실시 예에 따르면, 전자 장치 701에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 전자 장치(예: 전자 장치 702, 704, 또는 서버 706)에서 실행될 수 있다. 한 실시 예에 따르면, 전자 장치 701이 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치 701은 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 다른 장치(예: 전자 장치 702, 704, 또는 서버 706)에게 요청할 수 있다. 다른 전자 장치(예: 전자 장치 702, 704, 또는 서버 706)는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치 701로 전달할 수 있다. 전자 장치 701은 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 8은 본 발명의 일 실시 예에 따른 전자 장치의 블록 도를 나타낸다.
도 8을 참조하면, 전자 장치 801은, 예를 들면, 도 7에 도시된 전자 장치 701의 전체 또는 일부를 포함할 수 있다. 전자 장치 801은 하나 이상의 프로세서(예: 어플리케이션 프로세서(AP)) 810, 통신 모듈 820, 가입자 식별 모듈 824, 메모리 830, 센서 모듈 840, 입력 장치 850, 디스플레이 860, 인터페이스 870, 오디오 모듈 880, 카메라 모듈 891, 전력 관리 모듈 895, 배터리 896, 인디케이터 897, 및 모터 898을 포함할 수 있다.
프로세서 810은, 예를 들면, 운영 체제 또는 응용 프로그램을 구동하여 프로세서 810에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 프로세서 810은, 예를 들면, SoC(system on chip)로 구현될 수 있다. 한 실시 예에 따르면, 프로세서 810은 GPU(graphic processing unit) 및/또는 이미지 신호 프로세서(image signal processor)를 더 포함할 수 있다. 프로세서 810은 도 8에 도시된 구성요소들 중 적어도 일부(예: 셀룰러 모듈 821)를 포함할 수도 있다. 프로세서 810은 다른 구성요소들(예: 비 휘발성 메모리) 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리하고, 다양한 데이터를 비 휘발성 메모리에 저장(store)할 수 있다.
통신 모듈 820은, 도 7의 상기 통신 인터페이스 770과 동일 또는 유사한 구성을 가질 수 있다. 통신 모듈 820은, 예를 들면, 셀룰러 모듈 821, Wi-Fi 모듈 823, 블루투스 모듈 825, GPS 모듈 827, NFC 모듈 828 및 RF(radio frequency) 모듈 829를 포함할 수 있다.
셀룰러 모듈 821은, 예를 들면, 통신망을 통해서 음성 통화, 영상 통화, 문자 서비스, 또는 인터넷 서비스 등을 제공할 수 있다. 한 실시 예에 따르면, 셀룰러 모듈 821은 가입자 식별 모듈(예: SIM 카드) 824을 이용하여 통신 네트워크 내에서 전자 장치 801의 구별 및 인증을 수행할 수 있다. 한 실시 예에 따르면, 셀룰러 모듈 821은 프로세서 810이 제공할 수 있는 기능 중 적어도 일부 기능을 수행할 수 있다. 한 실시 예에 따르면, 셀룰러 모듈 821은 커뮤니케이션 프로세서(CP)를 포함할 수 있다.
Wi-Fi 모듈 823, 블루투스 모듈 825, GPS 모듈 827 또는 NFC 모듈 828 각각은, 예를 들면, 해당하는 모듈을 통해서 송수신되는 데이터를 처리하기 위한 프로세서를 포함할 수 있다. 어떤 실시 예에 따르면, 셀룰러 모듈 821, Wi-Fi 모듈 823, 블루투스 모듈 825, GPS 모듈 827 또는 NFC 모듈 828 중 적어도 일부(예: 두 개 이상)는 하나의 IC(integrated chip) 또는 IC 패키지 내에 포함될 수 있다.
RF 모듈 829는, 예를 들면, 통신 신호(예: RF 신호)를 송수신할 수 있다. RF 모듈 829는, 예를 들면, 트랜시버(transceiver), PAM(power amp module), 주파수 필터(frequency filter), LNA(low noise amplifier), 또는 안테나 등을 포함할 수 있다. 다른 실시 예에 따르면, 셀룰러 모듈 821, Wi-Fi 모듈 823, 블루투스 모듈 825, GPS 모듈 827 또는 NFC 모듈 828 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호를 송수신할 수 있다.
가입자 식별 모듈 824는, 예를 들면, 가입자 식별 모듈을 포함하는 카드 및/또는 내장 SIM(embedded SIM)을 포함할 수 있으며, 고유한 식별 정보(예: ICCID (integrated circuit card identifier)) 또는 가입자 정보(예: IMSI (international mobile subscriber identity))를 포함할 수 있다.
메모리 830(예: 메모리 730)는, 예를 들면, 내장 메모리 832 또는 외장 메모리 834를 포함할 수 있다. 내장 메모리 832는, 예를 들면, 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비-휘발성(non-volatile) 메모리 (예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), 마스크(mask) ROM, 플래시(flash) ROM, 플래시 메모리(예: 낸드플래시(NAND flash) 또는 노아플래시(NOR flash) 등), 하드 드라이브, 또는 SSD(solid state drive) 중 적어도 하나를 포함할 수 있다.
외장 메모리 834는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD, Mini-SD, xD(extreme digital), MMC(MultiMediaCard), 또는 메모리 스틱(memory stick) 등을 더 포함할 수 있다. 외장 메모리 834는 다양한 인터페이스를 통하여 전자 장치 801과 기능적으로 및/또는 물리적으로 연결될 수 있다.
센서 모듈 840은, 예를 들면, 물리량을 계측하거나 전자 장치 801의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 센서 모듈 840은, 예를 들면, 제스처 센서 840A, 자이로 센서 840B, 기압 센서 840C, 마그네틱 센서 840D, 가속도 센서 840E, 그립 센서 840F, 근접 센서 840G, 컬러 센서 840H(예: RGB 센서), 생체 센서 840I, 온/습도 센서 840J, 조도 센서 840K, 또는 UV(ultra violet) 센서 840M 중의 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로, 센서 모듈 840은, 예를 들면, 후각 센서(E-nose sensor), EMG(electromyography) 센서, EEG(electroencephalogram) 센서, ECG(electrocardiogram) 센서, IR(infrared) 센서, 홍채 센서 및/또는 지문 센서를 포함할 수 있다. 센서 모듈 840은 그 안에 속한 적어도 하나 이상의 센서들을 제어하기 위한 제어 회로를 더 포함할 수 있다. 어떤 실시 예에서는, 전자 장치 801은 프로세서 810의 일부로서 또는 별도로, 센서 모듈 840을 제어하도록 구성된 프로세서를 더 포함하여, 프로세서 810이 슬립(sleep) 상태에 있는 동안, 센서 모듈 840을 제어할 수 있다.
입력 장치 850은, 예를 들면, 터치 패널(touch panel) 852, (디지털) 펜 센서(pen sensor) 854, 키(key) 856, 또는 초음파(ultrasonic) 입력 장치 858을 포함할 수 있다. 터치 패널 852는, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. 또한, 터치 패널 852는 제어 회로를 더 포함할 수도 있다. 터치 패널 852는 택타일 레이어(tactile layer)를 더 포함하여, 사용자에게 촉각 반응을 제공할 수 있다.
(디지털) 펜 센서 854는, 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 시트(sheet)를 포함할 수 있다. 키 856은, 예를 들면, 물리적인 버튼, 광학식 키, 또는 키패드를 포함할 수 있다. 초음파 입력 장치 858은 마이크(예: 마이크 888)를 통해, 입력 도구에서 발생된 초음파를 감지하여, 상기 감지된 초음파에 대응하는 데이터를 확인할 수 있다.
디스플레이 860(예: 디스플레이 760)은 패널 862, 홀로그램 장치 864, 또는 프로젝터 866을 포함할 수 있다. 패널 862는, 도 7의 디스플레이 760과 동일 또는 유사한 구성을 포함할 수 있다. 패널 862는, 예를 들면, 유연하게(flexible), 투명하게(transparent), 또는 착용할 수 있게(wearable) 구현될 수 있다. 패널 862는 터치 패널 852와 하나의 모듈로 구성될 수도 있다. 홀로그램 장치 864는 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. 프로젝터 866은 스크린에 빛을 투사하여 영상을 표시할 수 있다. 스크린은, 예를 들면, 전자 장치 801의 내부 또는 외부에 위치할 수 있다. 한 실시 예에 따르면, 디스플레이 860은 상기 패널 862, 상기 홀로그램 장치 864, 또는 프로젝터 866를 제어하기 위한 제어 회로를 더 포함할 수 있다.
인터페이스 870은, 예를 들면, HDMI 872, USB 874, 광 인터페이스(optical interface) 876, 또는 D-sub(D-subminiature) 878을 포함할 수 있다. 인터페이스 870은, 예를 들면, 도 7에 도시된 통신 인터페이스 770에 포함될 수 있다. 추가적으로 또는 대체적으로, 인터페이스 870은, 예를 들면, MHL(mobile high-definition link) 인터페이스, SD 카드/MMC 인터페이스, 또는 IrDA(infrared data association) 규격 인터페이스를 포함할 수 있다.
오디오 모듈 880은, 예를 들면, 소리(sound)와 전기 신호를 쌍방향으로 변환시킬 수 있다. 오디오 모듈 880의 적어도 일부 구성요소는, 예를 들면, 도 7에 도시된 입출력 인터페이스 750에 포함될 수 있다. 오디오 모듈 880은, 예를 들면, 스피커 882, 리시버 884, 이어폰 886, 또는 마이크 888 등을 통해 입력 또는 출력되는 소리 정보를 처리할 수 있다.
카메라 모듈 891은, 예를 들면, 정지 영상 및 동영상을 촬영할 수 있는 장치로서, 한 실시 예에 따르면, 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈, ISP(image signal processor), 또는 플래시(flash)(예: LED 또는 제논 램프(xenon lamp))를 포함할 수 있다.
전력 관리 모듈 895는, 예를 들면, 전자 장치 801의 전력을 관리할 수 있다. 한 실시 예에 따르면, 전력 관리 모듈 895는 PMIC(power management integrated circuit), 충전 IC(charger integrated circuit), 또는 배터리 또는 연료 게이지(battery or fuel gauge)를 포함할 수 있다. PMIC는, 유선 및/또는 무선 충전 방식을 가질 수 있다. 무선 충전 방식은, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등을 포함하며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로, 또는 정류기 등을 더 포함할 수 있다. 배터리 게이지는, 예를 들면, 배터리 896의 잔량, 충전 중 전압, 전류, 또는 온도를 측정할 수 있다. 배터리 896은, 예를 들면, 충전식 전지(rechargeable battery) 및/또는 태양 전지(solar battery)를 포함할 수 있다.
인디케이터 897은 전자 장치 801 혹은 그 일부(예: 프로세서 810)의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태 또는 충전 상태 등을 표시할 수 있다. 모터 898은 전기적 신호를 기계적 진동으로 변환할 수 있고, 진동(vibration), 또는 햅틱(haptic) 효과 등을 발생시킬 수 있다. 도시되지는 않았으나, 전자 장치 801은 모바일 TV 지원을 위한 처리 장치(예: GPU)를 포함할 수 있다. 모바일 TV 지원을 위한 처리 장치는, 예를 들면, DMB(digital multimedia broadcasting), DVB(digital video broadcasting), 또는 미디어플로(MediaFloTM) 등의 규격에 따른 미디어 데이터를 처리할 수 있다.
본 문서에서 기술된 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성 요소의 명칭은 전자 장치의 종류에 따라서 달라질 수 있다. 다양한 실시 예에서, 전자 장치는 본 문서에서 기술된 구성요소 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 또한, 다양한 실시 예에 따른 전자 장치의 구성 요소들 중 일부가 결합되어 하나의 개체(entity)로 구성됨으로써, 결합되기 이전의 해당 구성 요소들의 기능을 동일하게 수행할 수 있다.
본 문서에서 사용된 용어 "모듈"은, 예를 들면, 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘 이상의 조합을 포함하는 단위(unit)를 의미할 수 있다. "모듈"은, 예를 들면, 유닛(unit), 로직(logic), 논리 블록(logical block), 부품(component), 또는 회로(circuit) 등의 용어와 바꾸어 사용(interchangeably use)될 수 있다. "모듈"은, 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들면, "모듈"은, 알려졌거나 앞으로 개발될, 어떤 동작들을 수행하는 ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays) 또는 프로그램 가능 논리 장치(programmable-logic device) 중 적어도 하나를 포함할 수 있다.
다양한 실시 예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는, 예컨대, 프로그램 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 저장된 명령어로 구현될 수 있다.
예를 들어, 상기 저장 매체는, 실행될 때 전자 장치의 프로세서로 하여금 사용자로부터 음성 입력을 획득하여 음성 신호를 생성하는 동작, 상기 음성 신호의 적어도 일부에 대한 제1 음성 인식을 수행하여 제1 동작 정보 및 제1 신뢰도(confidence score)를 획득하는 동작, 제2 음성 인식의 수행을 위해 상기 음성 신호의 적어도 일부를 서버로 전송하는 동작, 상기 서버로부터 상기 전송된 신호에 대한 제2 동작 정보를 수신하는 동작, 및 (1) 상기 제1 신뢰도가 제1 임계 값 이상인 경우 상기 제1 동작 정보에 대응하는 기능을 수행하고, (2) 상기 제1 신뢰도가 제2 임계 값 미만인 경우 상기 제1 신뢰도에 대한 피드백을 제공하고, (3) 상기 제1 신뢰도가 상기 제1 임계 값과 상기 제2 임계 값 사이에 있는 경우 상기 제2 동작 정보에 대응하는 기능을 수행하도록 하는 명령어를 저장하고 있을 수 있다.
다양한 실시 예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 다양한 실시 예에 따른 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
그리고 본 문서에 개시된 실시 예는 개시된 기술 내용의 설명 및 이해를 위해 제시된 것이며 본 발명의 범위를 한정하는 것은 아니다. 따라서, 본 문서의 범위는 본 발명의 기술적 사상에 근거한 모든 변경 또는 다양한 다른 실시 예를 포함하는 것으로 해석되어야 한다.

Claims (20)

  1. 전자 장치에 있어서,
    메모리에 저장된 음성 인식 모델을 이용하여 음성 입력에 대한 ASR(automatic speech recognition)을 수행하는 프로세서,
    상기 음성 입력을 서버로 제공하고 상기 서버로부터 상기 음성 입력에 대응하는 음성 명령을 수신하는 통신 모듈을 포함하고,
    상기 프로세서는 (1) 상기 ASR의 수행 결과의 신뢰도가 제1 임계 값 이상인 경우 상기 ASR의 수행 결과에 대응하는 동작을 수행하고 (2) 상기 신뢰도가 상기 제1 임계 값 및 상기 제1 임계 값보다 낮은 제2 임계 값 사이인 경우 상기 서버로부터 수신되는 상기 음성 명령을 수행하고, 및
    상기 신뢰도가 상기 제1 임계 값 이상인 경우, 상기 ASR의 수행 결과와 상기 서버로부터 수신되는 상기 음성 명령을 비교하고 비교 결과에 기초하여 상기 제1 임계 값을 변경하도록 설정되는, 전자 장치.
  2. 청구항 1에 있어서,
    상기 프로세서는 (3) 상기 신뢰도가 상기 제2 임계 값 미만인 경우 상기 신뢰도에 대한 피드백을 제공하도록 설정되는, 전자 장치.
  3. 청구항 1에 있어서,
    상기 신뢰도가 상기 제1 임계 값 이상인 경우, 상기 동작은 상기 음성 명령의 수신 여부와 관계없이 수행되도록 설정되는, 전자 장치.
  4. 청구항 3에 있어서,
    상기 동작은, 상기 프로세서에 의해 실행 가능한 적어도 하나의 기능, 적어도 하나의 어플리케이션, 또는 상기 ASR의 수행 결과에 기초한 입력 중 적어도 하나를 포함하도록 설정되는, 전자 장치.
  5. 청구항 2에 있어서,
    상기 피드백은 상기 음성 입력이 인식되지 않았거나 상기 수행 결과를 신뢰할 수 없음을 나타내는 메시지 또는 오디오 출력을 포함하도록 설정되는, 전자 장치.
  6. 청구항 1에 있어서,
    상기 서버로부터 수신되는 상기 음성 명령은, 상기 메모리에 저장된 상기 음성 인식 모델과 다른 음성 인식 모델에 기초하여, 상기 서버에서 상기 제공된 음성 입력에 대한 음성 인식의 수행 결과에 해당하는, 전자 장치.
  7. 청구항 6에 있어서,
    상기 서버에서 수행되는 음성 인식은 NLP (Natural Language Processing)을 포함하는, 전자 장치.
  8. 청구항 1에 있어서,
    상기 프로세서는, 상기 음성 입력에 대한 전처리(pre-processing)가 적용된 오디오 신호를 상기 ASR을 수행하는 ASR 엔진으로 제공하고, 상기 음성 입력 자체를 상기 통신 모듈을 통해 상기 서버로 제공하도록 설정되는, 전자 장치.
  9. 삭제
  10. 청구항 1에 있어서,
    상기 프로세서는 상기 ASR의 수행 결과와 상기 서버로부터 수신되는 상기 음성 명령이 대응되는 경우 상기 제1 임계 값을 감소시키고, 서로 대응되지 않는 경우 상기 제1 임계 값을 증가시키도록 설정되는, 전자 장치.
  11. 청구항 1에 있어서,
    상기 프로세서는 상기 신뢰도가 상기 제1 임계 값 미만인 경우, 상기 ASR의 수행 결과와 상기 서버로부터 수신되는 상기 음성 명령을 비교하고, 비교 결과에 기초하여 상기 음성 인식 모델을 업데이트 하도록 설정되는, 전자 장치.
  12. 청구항 11에 있어서,
    상기 통신 모듈은 상기 서버로부터 상기 음성 명령과 함께 상기 음성 명령에 대한 신뢰도를 수신하고,
    상기 프로세서는 상기 음성 입력에 대하여 상기 음성 명령 및 상기 음성 명령에 대한 신뢰도를 상기 음성 인식 모델에 추가하도록 설정되는, 전자 장치.
  13. 전자 장치의 음성 인식 수행 방법에 있어서,
    사용자로부터 음성 입력을 획득하여 음성 신호를 생성하는 동작,
    상기 음성 신호의 적어도 일부에 대한 제1 음성 인식을 수행하여 제1 동작 정보 및 제1 신뢰도(confidence score)를 획득하는 동작,
    제2 음성 인식의 수행을 위해 상기 음성 신호의 적어도 일부를 서버로 전송하는 동작,
    상기 서버로부터 상기 음성 신호에 대응하는 제2 동작 정보를 수신하는 동작, 및
    (1) 상기 제1 신뢰도가 제1 임계 값 이상인 경우 상기 제1 동작 정보에 대응하는 기능을 수행하고 (2) 상기 제1 신뢰도가 상기 제1 임계 값 및 상기 제1 임계 값보다 낮은 제2 임계 값 사이에 있는 경우 상기 서버로부터 수신되는 상기 제2 동작 정보에 대응하는 기능을 수행하는 동작을 포함하고,
    상기 신뢰도가 상기 제1 임계 값 이상인 경우, 상기 제1 음성 인식의 수행 결과와 상기 서버로부터 수신되는 상기 제2 동작 정보에 대응하는 기능을 비교하고 비교 결과에 기초하여 상기 제1 임계 값을 변경하는, 음성 인식 수행 방법.
  14. 청구항 13에 있어서,
    상기 제1 신뢰도가 제1 임계 값 이상인 경우 상기 제1 동작 정보에 대응하는 기능을 수행하는 동작은, 상기 제2 동작 정보를 수신하는 동작 이전에 수행되는, 음성 인식 수행 방법.
  15. 청구항 13에 있어서,
    상기 제1 동작 정보에 대응하는 기능과 상기 제2 동작 정보에 대응하는 기능이 일치하는 경우, 상기 제1 임계 값을 증가시키는 동작을 더 포함하는, 음성 인식 수행 방법.
  16. 청구항 13에 있어서,
    상기 제1 동작 정보에 대응하는 기능과 상기 제2 동작 정보에 대응하는 기능이 일치하지 않는 경우, 상기 제1 임계 값을 감소시키는 동작을 더 포함하는, 음성 인식 수행 방법.
  17. 청구항 13에 있어서,
    상기 제2 동작 정보를 수신하는 동작은, 상기 제2 동작 정보에 대한 제2 신뢰도를 함께 수신하는 동작을 더 포함하는, 음성 인식 수행 방법.
  18. 청구항 17에 있어서,
    상기 제1 신뢰도가 상기 제1 임계 값 미만인 경우, 상기 음성 입력에 대한 상기 제2 동작 정보와 상기 제2 신뢰도를 상기 제1 음성 인식에 이용되는 음성 인식 모델에 추가하는 동작을 더 포함하는, 음성 인식 수행 방법.
  19. 청구항 17에 있어서,
    상기 제1 동작 정보와 상기 제2 동작 정보가 대응되지 않는 경우, 상기 제1 신뢰도와 상기 제2 신뢰도에 기초하여 상기 제2 동작 정보 및 상기 제2 신뢰도를 상기 제1 음성 인식에 이용되는 음성 인식 모델에 추가하는 동작을 더 포함하는, 음성 인식 수행 방법.
  20. 컴퓨터 판독 가능한 명령어를 저장하고 있는 저장 매체에 있어서, 전자 장치의 프로세서에 의해 실행될 때,
    사용자로부터 음성 입력을 획득하여 음성 신호를 생성하는 동작,
    상기 음성 신호의 적어도 일부에 대한 제1 음성 인식을 수행하여 제1 동작 정보 및 제1 신뢰도(confidence score)를 획득하는 동작,
    제2 음성 인식의 수행을 위해 상기 음성 신호의 적어도 일부를 서버로 전송하는 동작,
    상기 서버로부터 상기 음성 신호에 대응하는 제2 동작 정보를 수신하는 동작, 및
    (1) 상기 제1 신뢰도가 제1 임계 값 이상인 경우 상기 제1 동작 정보에 대응하는 기능을 수행하고, (2) 상기 제1 신뢰도가 상기 제1 임계 값 및 상기 제1 임계 값보다 낮은 제2 임계 값 사이에 있는 경우 상기 서버로부터 수신되는 상기 제2 동작 정보에 대응하는 기능을 수행하는 동작을 포함하고,
    상기 신뢰도가 상기 제1 임계 값 이상인 경우, 상기 제1 음성 인식의 수행 결과와 상기 서버로부터 수신되는 상기 제2 동작 정보에 대응하는 기능을 비교하고 비교 결과에 기초하여 상기 제1 임계 값을 변경하는 명령어를 저장하고 있는 저장 매체.
KR1020150038857A 2014-04-07 2015-03-20 전자 장치와 서버를 활용한 음성 인식 KR102414173B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201910261486.7A CN109949815B (zh) 2014-04-07 2015-04-07 电子装置
EP15162637.1A EP2930716B1 (en) 2014-04-07 2015-04-07 Speech recognition using electronic device and server
CN201510162292.3A CN104978965B (zh) 2014-04-07 2015-04-07 电子装置及利用电子装置和服务器的语音识别执行方法
US14/680,444 US9640183B2 (en) 2014-04-07 2015-04-07 Speech recognition using electronic device and server
US15/581,847 US10074372B2 (en) 2014-04-07 2017-04-28 Speech recognition using electronic device and server
US16/128,107 US10643621B2 (en) 2014-04-07 2018-09-11 Speech recognition using electronic device and server

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201461976142P 2014-04-07 2014-04-07
US61/976,142 2014-04-07

Publications (2)

Publication Number Publication Date
KR20150116389A KR20150116389A (ko) 2015-10-15
KR102414173B1 true KR102414173B1 (ko) 2022-06-29

Family

ID=54356973

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150038857A KR102414173B1 (ko) 2014-04-07 2015-03-20 전자 장치와 서버를 활용한 음성 인식

Country Status (1)

Country Link
KR (1) KR102414173B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102398649B1 (ko) * 2017-03-28 2022-05-17 삼성전자주식회사 사용자 발화를 처리하는 전자 장치 및 그 동작 방법
CN108665890B (zh) * 2017-03-28 2023-10-13 三星电子株式会社 操作语音识别服务的方法、电子设备和支持该设备的系统
KR101949363B1 (ko) * 2017-03-30 2019-02-18 엘지전자 주식회사 홈 어플라이언스 및 그 동작 방법
KR102389625B1 (ko) * 2017-04-30 2022-04-25 삼성전자주식회사 사용자 발화를 처리하는 전자 장치 및 이 전자 장치의 제어 방법
KR102356889B1 (ko) * 2017-08-16 2022-01-28 삼성전자 주식회사 음성 인식을 수행하는 방법 및 이를 사용하는 전자 장치
US11367438B2 (en) 2019-05-16 2022-06-21 Lg Electronics Inc. Artificial intelligence apparatus for recognizing speech of user and method for the same
KR20210066651A (ko) 2019-11-28 2021-06-07 삼성전자주식회사 전자 장치 및 이의 제어 방법
CN111862949B (zh) * 2020-07-30 2024-04-02 北京小米松果电子有限公司 自然语言的处理方法及装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013140269A (ja) * 2012-01-05 2013-07-18 Denso Corp 音声認識装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013140269A (ja) * 2012-01-05 2013-07-18 Denso Corp 音声認識装置

Also Published As

Publication number Publication date
KR20150116389A (ko) 2015-10-15

Similar Documents

Publication Publication Date Title
US10643621B2 (en) Speech recognition using electronic device and server
KR102414173B1 (ko) 전자 장치와 서버를 활용한 음성 인식
CN110199350B (zh) 用于感测语音结束的方法和实现该方法的电子设备
CN109243432B (zh) 话音处理方法以及支持该话音处理方法的电子设备
US11314898B2 (en) Operating method of electronic device for function execution based on voice command in locked state and electronic device supporting the same
KR102405793B1 (ko) 음성 신호 인식 방법 및 이를 제공하는 전자 장치
US10217477B2 (en) Electronic device and speech recognition method thereof
EP3593347B1 (en) Method for operating speech recognition service and electronic device supporting the same
CN108023934B (zh) 电子装置及其控制方法
EP3396666B1 (en) Electronic device for providing speech recognition service and method thereof
KR102261552B1 (ko) 음성 명령어 제공 방법 및 이를 지원하는 전자 장치
US20170243578A1 (en) Voice processing method and device
EP3531416A1 (en) System for processing user utterance and controlling method thereof
US11042703B2 (en) Method and device for generating natural language expression by using framework
US11449672B2 (en) Method for operating speech recognition service and electronic device and server for supporting the same
KR20170034154A (ko) 콘텐츠 제공 방법 및 이를 수행하는 전자 장치
US11537360B2 (en) System for processing user utterance and control method of same
US20200075008A1 (en) Voice data processing method and electronic device for supporting same
KR20160027640A (ko) 전자 장치 및 전자 장치에서의 개체명 인식 방법
CN110945455A (zh) 处理用户话语以用于控制外部电子装置的电子装置及其控制方法
KR20180099423A (ko) 잠금 상태에서의 음성 명령을 기반으로 하는 기능 실행 운용 방법 및 이를 지원하는 전자 장치
CN109949815B (zh) 电子装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)