KR20180112813A - 리소스 제한된 디바이스에서 오프라인의 시맨틱 처리의 간이화 - Google Patents

리소스 제한된 디바이스에서 오프라인의 시맨틱 처리의 간이화 Download PDF

Info

Publication number
KR20180112813A
KR20180112813A KR1020187025726A KR20187025726A KR20180112813A KR 20180112813 A KR20180112813 A KR 20180112813A KR 1020187025726 A KR1020187025726 A KR 1020187025726A KR 20187025726 A KR20187025726 A KR 20187025726A KR 20180112813 A KR20180112813 A KR 20180112813A
Authority
KR
South Korea
Prior art keywords
resource
actions
grammar model
voice
query
Prior art date
Application number
KR1020187025726A
Other languages
English (en)
Other versions
KR101938806B1 (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 구글 엘엘씨
Publication of KR20180112813A publication Critical patent/KR20180112813A/ko
Application granted granted Critical
Publication of KR101938806B1 publication Critical patent/KR101938806B1/ko

Links

Images

Classifications

    • G06F17/30654
    • 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
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3343Query execution using phonetics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • G06F17/271
    • G06F17/30684
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • 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
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • 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/26Speech to text systems
    • G10L15/265
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/225Feedback of the input speech

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Probability & Statistics with Applications (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

모바일 디바이스와 같이 리소스-제한 음성 지원 디바이스의 오프라인 시맨틱 처리기는 리소스-제한 음성 지원 디바이스에서 오프라인 시맨틱 처리를 용이하게 하기 위해 감소된 리소스 요구 사항을 갖는 오프라인 문법 모델을 사용한다. 다양한 구현예에서, 리소스-제한 디바이스에서 발행된 쿼리는 리소스-제한 디바이스에 의해 수행 가능한 후보 응답 액션들을 식별하기 위해 의미적으로(semantically) 처리될 수 있다. 후보 반응 형 행동 수행 통계는 하나 이상의 후보 응답 액션으로부터 적격의 응답 액션을 선택하기 위해 분석될 수 있다. 다양한 구현들에서, 후보 응답 액션 수행 통계는 쿼리의 발행 이후에 리소스-제한 디바이스에 의한 하나 이상의 후보 응답 액션들의 수행에 관련될 수 있다. 리소스-제한 디바이스에 저장된 오프라인 문법 모델은 발행된 궈리와 적격 응답 액션 사이의 매핑을 포함하도록 업데이트될 수 있으며, 오프라인 문법 모델은 오프라인 동안 리소스-제한 디바이스에 의해 수행 가능한 액션들로 쿼리들을 매핑한다.

Description

리소스 제한된 디바이스에서 오프라인의 시맨틱 처리의 간이화
음성 기반 사용자 인터페이스는 컴퓨터 및 기타 전자 디바이스의 제어에 점점 더 많이 사용되고 있다. 음성 기반 사용자 인터페이스의 하나의 특히 유용한 애플리케이션은 모바일 전화기, 시계, 태블릿 컴퓨터, 헤드 장착 디바이스, 가상 또는 증강 현실 디바이스 등과 같은 휴대용 전자 디바이스들과 관련된다. 다른 유용한 애플리케이션은 네비게이션 및 오디오 기능을 통합한 자동차 시스템과 같은 차량용 전자 시스템에 있다. 또 다른 유용한 어플리케이션은 "사물 인터넷(Internet of Things (IoT)"의 카테고리와 관련된 조명, 가전 제품, 난방 및 배관, 보안 시스템 등과 같이 전통적으로 컴퓨터와 관련이 없는 가전 제품들 및 다른 디바이스들에 있다. 이러한 애플리케이션들은 일반적으로 사용자가 운전 중이거나 걷고 있을 때와 같이 다른 작업에 집중하는 것이 바람직한 상황에서 보다 전통적인 키보드 또는 터치 스크린 입력 및/또는 상황에서의 사용의 사용을 제한하는 비 전통적인 폼 팩터(form factors)를 특징으로 한다.
음성 기반 사용자 인터페이스는 단순하고 직접적인 명령만을 이해할 수 있는 초기 기본 인터페이스에서부터 자연 언어 요청에 응답하고 문맥을 이해하며 사용자와의 전후 대화(back-and-forth dialogs) 또는 대화(conversations)를 관리할 수 있는 보다 정교한 인터페이스에 이르기까지 계속 발전해 왔다. 많은 음성 기반 사용자 인터페이스는 사람의 음성 레코딩을 텍스트로 변환하는 초기 음성-텍스트 변환과 사용자 요청의 의미를 결정하기 위해 텍스트를 분석하는 시맨틱 분석 (semantic analysis)을 모두 포함한다. 사용자의 레코딩된 음성의 결정된 의미에 기초하여, 검색을 실행하거나 컴퓨터 또는 다른 전자 디바이스를 제어하는 것과 같은 액션이 취해질 수 있다.
예를 들어, 프로세서 및/또는 메모리 리소스와 관련하여, 음성 기반 사용자 인터페이스의 컴퓨팅 리소스 요구 사항은 상당할 수 있으며, 결과적으로 일부 종래의 음성 기반 사용자 인터페이스 접근법은 음성 입력이 비교적 저전력 클라이언트 디바이스에 의해 수신되고 기록되는 클라이언트-서버 아키텍처를 사용하고, 레코딩은 음성-텍스트 변환 및 시맨틱 처리를 위해 인터넷과 같은 네트워크를 통해 온라인 서비스로 전송되고, 적절한 응답이 온라인 서비스에 의해 생성되어 클라이언트 디바이스로 다시 전송된다. 온라인 서비스는 음성 입력 처리에 상당한 컴퓨팅 리소스를 할당할 수 있으므로 클라이언트 디바이스에서 로컬로 구현할 수 있는 것보다 복잡한 음성 인식 및 시맨틱 분석 기능을 구현할 수 있다. 그러나, 클라이언트-서버 접근법은 음성 입력을 처리할 때 반드시 클라이언트가 온라인 상태(즉, 온라인 서비스와 통신하는)여야 한다. 특히 모바일 및 자동차 애플리케이션의 경우 지속적인 온라인 연결이 항상 모든 위치에서 보장되지 않을 수 있으므로, 클라이언트-서버 음성 기반의 사용자 인터페이스는 해당 디바이스가 "오프라인"이어서 온라인 서비스에 연결되지 않을 때마다 클라이언트 디바이스에서 비활성화될 수 있다.
본 발명은 일반적으로 리소스가 제한된 음성 지원(voice-enabled) 디바이스에서 오프라인 시멘틱 처리를 용이하게 하는 다양한 구현들에 관한 것이다. 본 명세서에 설명된 다양한 구현예는, 예를 들어, 디바이스가 네트워크에 액세스하는지의 여부에 관계없이, 음성 기반(voice-based)의 쿼리를 효과적으로 처리할 수 있는 보다 견고한 음성 지원 디바이스의 제공을 가능하게 하거나 기여할 수 있다. 또한, 디바이스가 네트워크에 액세스할 수 있는 상황에서도, 디바이스는 네트워크에 액세스할 필요없이 음성 기반 쿼리를 처리할 수 있으므로 그러한 액세스와 관련된 처리 및 대역폭을 절약할 수 있다. 또한, 일부 경우, 리소스가 제한된 음성 지원 디바이스는 특히 네트워크 연결 속도가 느리고 및/또는 품질이 좋지 않은 경우에만 사용할 수 있을 때 네트워크 액세스가 이용되는 경우보다 더 신속하게 음성 기반 쿼리에 응답하여 액션을 수행할 수 있다.
이러한 디바이스의 오프라인 시맨틱 처리기는 디바이스에 의해 수신된 음성 기반 쿼리들을 파싱하기 위해 감소된 리소스 요구 사항을 갖는 오프라인 문법 모델을 사용한다. 일부 구현예에서, 오프라인 문법 모델은 소위 "롱 테일 (long tail)" 음성 기반 쿼리들과 상기 오프라인 문법 모델을 사용하여 리소스 제한(resource-constrained) 디바이스에 의해 수행 가능한 응답 액션들 간의 매핑을 포함하도록 업데이트될 수 있다. 이러한 방식으로, 사용자는 사용자의 개인 컴퓨팅 디바이스와 관련된 오프라인 시맨틱 프로세서에 의해 사용되는 오프라인 문법에 커스터마이징된(customized) 쿼리-액션 맵핑을 추가할 수 있다.
따라서, 일부 구현예에서, 방법은, 리소스-제한 디바이스에 의해 실행 가능한 하나 이상의 후보 응답 액션을 식별하기 위해 리소스-제한 디바이스에서 발행된 쿼리를 의미적으로 처리하는 단계와; 상기 하나 이상의 후보 응답 액션으로부터, 적격(qualifying) 응답 액션을 선택하기 위해 후보 응답 액션 수행 통계를 분석하는 단계와, 상기 후보 응답 액션 수행 통계는 상기 쿼리 발행 후에 상기 리소스-제한 디바이스에 의한 상기 하나 이상의 후보 응답 액션의 수행에 관련되고; 그리고 상기 발행된 쿼리와 상기 적격 응답 액션 사이의 매핑을 포함하도록 상기 리소스-제한 디바이스에 저장된 오프라인 문법 모델을 업데이트하는 단계를 포함하고, 상기 오프라인 문법 모델은 오프라인 동안 상기 리소스-제한 디바이스에 의해 수행 가능한 액션들에 쿼리들을 맵핑한다. 따라서, 리소스-제한 디바이스의 기능, 성능 및 효율성이 향상될 수 있다.
일부 구현들에서, 상기 방법은 리소스-제한 디바이스를 동작시키는 사용자에게 출력으로서, 각각의 하나 이상의 후보 액션들의 수행을 제안하는 하나 이상의 프롬프트를 제공하는 단계를 더 포함할 수 있다. 일부 구현예에서, 분석은 하나 이상의 프롬프트에 대한 사용자에 의한 응답에 관한 통계를 분석하는 것을 포함할 수 있다. 일부 구현예에서, 하나 이상의 프롬프트는 선택 가능한 그래픽 요소를 포함할 수 있다. 일부 구현예에서, 하나 이상의 프롬프트는 청각 또는 촉각 프롬프트를 포함할 수 있다.
일부 구현예에서, 상기 방법은 상기 리소스-제한 디바이스에 의한 저장을 위해 그리고 오프라인 동안 상기 리소스-제한 디바이스의 시맨틱 프로세서에 의한 사용을 위해 상기 리소스-제한 디바이스에 상기 오프라인 문법 모델을 통신하는 단계를 더 포함할 수 있다. 일부 구현예에서, 오프라인 문법 모델을 리소스-제한 디바이스에 통신하는 단계는 리소스-제한 디바이스에 저장된 오프라인 문법 모델을 동적으로 업데이트한다.
일부 구현예에서, 상기 발행된 쿼리는 음성-기반 쿼리일 수 있고, 상기 오프라인 문법 모델은 음성-기반 쿼리들을 액션들에 매핑한다. 일부 구현예에서, 상기 방법은 리소스-제한 디바이스를 동작시키는 사용자와 관련된 복수의 리소스-제한 디바이스에 의한 상기 하나 이상의 후보 액션의 수행을 나타내는 데이터를 수집하는 단계를 더 포함할 수 있다. 일부 구현예에서, 상기 통계를 분석하는 단계는 수집된 데이터에 기초할 수 있다.
일부 구현예에서, 상기 시맨틱 처리는 오프라인 문법 모델이 온라인 문법 모델에 비해 감소된 자원 요구를 갖는 온라인 문법 모델을 사용하여 수행될 수 있다. 일부 구현예에서, 상기 방법은 리소스-제한 디바이스에 대해 매핑, 발행된 쿼리 및 오프라인 문법 중 하나 이상에 대한 액세스를 제한하는 단계를 더 포함할 수 있다.
또한, 일부 구현예는 메모리 및 상기 메모리에 저장된 명령들을 실행하도록 동작 가능한 하나 이상의 프로세서들을 포함하는 장치를 포함하며, 상기 명령들은 전술한 방법들 중 임의의 방법을 수행하도록 구성된다. 일부 구현예는 전술한 방법 중 임의의 방법을 수행하기 위해 하나 이상의 프로세서에 의해 실행 가능한 컴퓨터 명령들을 저장하는 비-일시적 컴퓨터 판독 가능 저장 매체를 또한 포함한다.
전술한 개념들 및 본 명세서에서 보다 상세하게 기술되는 추가 개념들의 모든 조합은 본 명세서에 개시된 주제의 일부로서 고려될 수 있다. 예를 들어, 본 명세서의 끝 부분에 나타나는 청구된 주제의 모든 조합은 본 명세서에 개시된 주제의 일부로서 고려된다.
도 1은 컴퓨터 시스템의 예시적인 구조를 도시한다.
도 2는 예시적인 분산형 음성 입력 처리 환경의 블록도이다.
도 3은 도 2의 환경을 사용하여 음성 입력을 처리하는 예시적인 방법을 나타내는 흐름도이다.
도 4는 액션 도메인에서 음성 입력들을 처리하는데 사용하기 위한 예시적인 문법 모델을 도시한다.
도 5는 오프라인 문법 모델을 구축 및/또는 업데이트하는 예시적인 방법을 나타내는 흐름도이다.
이하에서 설명되는 구현들에서, 리소스-제한(resource-constrained) 음성 지원 디바이스의 오프라인 시맨틱(semantic) 프로세서는 감소된 리소스 요구 사항을 갖는 오프라인 문법 모델을 이용하여 디바이스에 의해 수신된 음성-기반 쿼리들을 파싱(parse)한다. 일부 구현들에서, 오프라인 문법 모델은 소위 "롱 테일(long tail)" 음성 기반 쿼리들과 상기 오프라인 문법 모델을 사용하여 리소스-제한 디바이스에 의해 수행 가능한 응답 액션들 간의 매핑을 포함하도록 업데이트될 수 있다. 본 명세서에서 사용되는 "롱 테일 쿼리(long tail query)"는 쿼리들의 검색 볼륨에서 고유하거나 자주 발생하지 않는 쿼리이다. 경우에 따라, 롱 테일 쿼리는 글자 그대로 길 수 있지만(예를 들어, 비교적 많은 수의 토큰을 포함), 필수는 아니다. 예를 들어, 음성 기반 쿼리 "재생 <아티스트 이름>(play <artist name>)"은 특정 아티스트의 재생을 개시하기 위해 많은 인구의 많은 사용자에 의해 사용될 수 있으므로 롱 테일 쿼리로 고려되지 않을 것이다. 대조적으로, 하나의 특정 사용자가 "나는 <아티스트 이름>의 분위기에 정말로 빠져 있다(I'm really in the mood for some <artist name>"와 같은 구문을 사용하여 아티스트의 재생을 개시하려고 한다고 가정해 본다. 후자의 쿼리는 (이후에 많은 사용자가 같은 방법으로 그것을 사용하기 시작하지 않는 한) 롱 테일 쿼리로 적합할 가능성이 높다.
선택된 구현들에 관한 더 상세한 설명은 이하에서 설명된다. 그러나, 본 명세서에 개시된 실시예들은 배타적이지 않기 때문에 다른 구현예들이 고려될 수 있음을 이해할 것이다.
예시적인 하드웨어 및 소프트웨어 환경
이제 도면으로 돌아가서, 동일한 도면 부호는 어려 도면 전체에서 동일한 부분을 나타내며, 도 1은 예시적인 컴퓨터 시스템(10)의 전자 구성 요소의 블록도이다. 시스템(10)은 전형적으로 버스 서브 시스템(14)을 통해 다수의 주변 디바이스와 통신하는 적어도 하나의 프로세서(12)를 포함한다. 이러한 주변 디바이스들은 예를 들어, 메모리 서브 시스템(18) 및 파일 저장 서브 시스템(20), 사용자 인터페이스 입력 디바이스들(22), 사용자 인터페이스 출력 디바이스들(24) 및 네트워크 인터페이스 서브 시스템(26)을 포함하는 저장 서브 시스템(16)을 포함할 수 있다. 입력 및 출력 디바이스들은 사용자가 시스템(10)과 상호 작용할 수 있도록 한다. 네트워크 인터페이스 서브 시스템(26)은 외부 네트워크에 인터페이스를 제공하고 다른 컴퓨터 시스템의 대응하는 인터페이스 디바이스들에 연결된다.
일부 구현들에서, 사용자 인터페이스 입력 디바이스(22)는 키보드, 마우스, 트랙볼, 터치 패드 또는 그래픽 태블릿과 같은 포인팅 디바이스, 스캐너, 디스플레이에 통합된 터치 스크린, 음성 인식 시스템과 같은 오디오 입력 디바이스, 마이크로폰 및/또는 다른 유형의 입력 디바이스들을 포함할 수 있다. 일반적으로, 용어 "입력 디바이스"의 사용은 컴퓨터 시스템(10) 또는 통신 네트워크 상에 정보를 입력하는 모든 가능한 유형의 디바이스 및 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스들(24)은 디스플레이 서브 시스템, 프린터, 팩스 기계, 또는 오디오 출력 디바이스들과 같은 비-시각(non-visual) 디스플레이들을 포함할 수 있다. 디스플레이 서브 시스템은 음극선관(CRT), 액정 디스플레이 (LCD)와 같은 평판 디바이스, 프로젝션 디바이스, 또는 가시적 이미지를 생성하기 위한 일부 다른 메커니즘을 포함할 수 있다. 디스플레이 서브 시스템은 또한 오디오 출력 디바이스들을 통한 비 시각적 디스플레이를 제공할 수 있다. 일반적으로, 용어 "출력 디바이스"의 사용은 컴퓨터 시스템(10)으로부터 사용자 또는 다른 기계 또는 컴퓨터 시스템으로 정보를 출력하는 모든 가능한 유형의 디바이스 및 방법을 포함하도록 의도된다.
저장 서브 시스템(16)은 본 명세서에 설명된 일부 또는 모든 모듈의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 저장 서브 시스템(16)은 이하에 개시된 방법의 선택된 양태를 수행하기 위한 로직을 포함할 수 있다.
이들 소프트웨어 모듈은 일반적으로 프로세서(12)에 의해 단독으로 또는 다른 프로세서와 함께 실행된다. 저장 서브 시스템(16)에서 사용되는 메모리 서브 시스템(18)은 프로그램 실행 중에 명령 및 데이터의 저장을 위한 주 랜덤 액세스 메모리(RAM)(28) 및 고정된 명령이 저장되는 판독 전용 메모리(ROM)(30)를 포함하는 다수의 메모리를 포함할 수 있다. 파일 저장 서브 시스템(20)은 프로그램 및 데이터 파일을 위한 영구적 저장을 제공할 수 있으며, 하드 디스크 드라이브, 이동식 매체와 함께 플로피 디스크 드라이브, CD-ROM 드라이브, 광 드라이브 또는 이동식 매체 카트리지를 포함할 수 있다. 소정 구현들의 기능을 구현하는 모듈들은 저장 서브 시스템(16)의 파일 저장 서브 시스템(20) 또는 프로세서(들)(12)에 의해 액세스 가능한 다른 머신에 저장될 수 있다.
버스 서브 시스템(14)은 시스템(10)의 다양한 구성 요소 및 서브 시스템들이 템들이 의도된 바와 같이 서로 통신하게 하는 메커니즘을 제공한다. 버스 서브 시스템(14)은 단일 버스로서 개략적으로 도시되어 있지만, 버스 서브 시스템의 대안적인 구현예들은 다수의 버스를 사용할 수 있다.
시스템(10)은 모바일 디바이스, 휴대용 전자 디바이스, 임베디드 디바이스,데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 웨어러블 디바이스, 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버 , 서버 팜(farm), 또는 임의의 다른 데이터 처리 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형일 수 있다. 또한, 시스템(10)에 의해 구현되는 기능은 하나 이상의 네트워크, 예컨대 클라이언트-서버, 피어-투-피어 또는 다른 네트워킹 장치를 통해 서로 상호 접속된 다수의 시스템에 분산될 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 1에 도시된 시스템(10)의 설명은 단지 일부 구현예를 설명하기 위한 특정 예로서만 의도된다. 도 1에 도시된 컴퓨터 시스템보다 많은 구성 요소 또는 더 적은 구성 요소를 갖는 시스템(10)의 많은 다른 구성이 가능하다.
이하 설명되는 구현예들은 본 명세서에 개시된 기능의 다양한 조합을 구현하는 하나 이상의 방법을 포함할 수 있다. 다른 실시예들은 본 명세서에 설명된 방법들 중 하나 이상과 같은 방법을 수행하기 위해 프로세서에 의해 실행 가능한 명령들을 저장하는 비-일시적 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 또 다른 구현예는 메모리 및 본 명세서에 설명된 하나 이상의 방법과 같은 방법을 수행하기 위해 메모리에 저장된 명령을 실행하도록 동작 가능한 하나 이상의 프로세서를 포함하는 장치를 포함할 수 있다.
후술되는 다양한 프로그램 코드는 그것이 특정 구현예에서 구현되는 애플리케이션에 기초하여 식별될 수 있다. 그러나, 이하의 임의의 특정 프로그램 명칭은 단지 편의상 사용되는 것으로 이해되어야 한다. 더욱이, 컴퓨터 프로그램이 루틴, 절차, 방법, 모듈, 객체 등으로 조직될 수 있는 주어진 많은 수의 방식뿐만 아니라, 프로그램 기능이 일반적인 컴퓨터내에 상주하는 다양한 소프트웨어 계층(예컨대, 운영 체제, 라이브러리, API, 애플리케이션, 애플릿 등)들 사이에 할당될 수 있는 다양한 방식들을 포함할 수 있다. 일부 실시예들은 본 명세서에서 설명된 프로그램 기능의 특정 구성(organization) 및 할당에 제한되지 않을 수도 있음을 알아야 한다.
더욱이, 임의의 프로그램 코드에 의해 수행되거나 임의의 루틴, 워크 플로우 등에서 수행될 수도 있는 본 명세서에 기술된 다양한 동작은 순차적으로 또는 병렬로 및/또는 다른 기술들과 함께 조합되거나, 분할되거나, 재정렬되거나 생략되거나, 수행될 수 있으며, 따라서 일부 구현예들은 본 명세서에서 설명된 동작들의 특정 순서로 제한되지 않는다.
분산 음성 입력 처리 환경
도 2는 예를 들어 온라인 검색 서비스(54)와 같은 온라인 서비스와 통신하는 음성 지원(voice-enabled) 디바이스(52)와 함께 사용하기 위한 예시적인 분산 음성 입력 처리 환경(50)을 도시한다. 이하에 설명되는 실시예들에서, 예를 들어, 음성 지원 디바이스(52)는 셀룰러 전화 또는 태블릿 컴퓨터와 같은 모바일 디바이스로서 기술된다. 다른 구현예들은 다양한 다른 음성 지원 디바이스를 이용할 수 있지만, 이후 모바일 디바이스에 대한 참조는 단지 이하의 설명을 간략화하기 위한 것이다. 예를 들어, 랩탑 컴퓨터, 워치(watch), 헤드 장착 디바이스, 가상 또는 증강 현실 디바이스, 다른 웨어러블 디바이스, 오디오/비디오 시스템, 네비게이션 시스템, 자동차 및 기타 차량 시스템 등을 포함하여, 본 명세서에 기술된 기능은 무수히 많은 다른 유형의 음성 지원 디바이스들이 사용할 수 있다. 더욱이, 많은 이러한 음성 지원 디바이스는, 특히 무제한의 컴퓨팅 리소스를 개별 작업에 사용할 수 있는 온라인 또는 클라우드 기반 서비스의 용량(capacities)과 비교할 때, 그러한 디바이스들의 메모리 및/또는 처리 용량이 기술적, 경제적 또는 다른 이유로 제한될 수 있다는 점에서 리소스가 제한적이라고 간주될 수 있다. 그러한 디바이스 중 일부는 오프라인 디바이스로 간주될 수 있으며, 그러한 디바이스들은 예를 들어, 그러한 디바이스들이 일반적인 사용 하에서 때때로 일시적인 네트워크 연결 중단을 경험할 수 있다는 예상에 기초하여, 적어도 부분적으로 온라인 서비스에 "오프라인"으로 연결될 수 있고 오프라인 상태로 운영될 수 있다.
일부 실시예에서의 온라인 검색 서비스(54)는, 예를 들어, 다수의 사용자로부터의 대량의 요청을 처리하기에 적합한 소프트웨어를 실행하는 고성능 컴퓨터의 서버 팜 또는 클러스터를 사용하는, 클라우드 기반 구조를 사용하는 클라우드 기반 서비스로서 구현될 수 있다. 도시된 구현예에서, 온라인 검색 서비스(54)는 예를 들어, 요청된 정보를 포함하는 웹 사이트의 리스트를 제공하기 위해, 하나 이상의 데이터베이스에 쿼리하여 요청된 정보의 위치 파악할 수 있다. 온라인 검색 서비스(54)는 음성 기반 검색에 한정되지 않을 수도 있고, 텍스트 기반 검색, 이미지 기반 검색 등과 같은 다른 유형의 검색을 처리할 수도 있다. 다른 구현예에서, 온라인 시스템은 반드시 검색을 처리할 필요는 없으며, 알람 또는 알림(reminder) 설정, 리스트 관리, 전화, 텍스트, 전자 메일 등을 통한 다른 사용자들과의 통신 개시 또는 음성 입력을 통해 개시할 수 있는 다른 액션 수행과 같은 비-검색 액션들에 대한 음성 기반 요청을 처리하는 것으로 제한될 수 있다. 본 발명의 목적상, 음성 기반 궈리들이 검색을 개시하고, 질문을 제기하고, 명령을 내리는지 여부와 관계없이, 음성 기반 요청 및 다른 형태의 음성 입력은 통칭하여 음성 기반 쿼리라고 지칭될 수 있다. 따라서, 일반적으로, 예를 들어, 하나 이상의 단어 또는 구를 포함하는 임의의 음성 입력은 도시된 구현예들의 문맥 내에서 음성 기반 쿼리로 간주될 수 있다.
도 2의 구현예에서, 음성 지원 디바이스(52)에 의해 수신된 음성 입력은 일부 구현예에서는 검색 애플리케이션일 수 있는 음성 지원 애플리케이션(또는 "앱")(56)에 의해 처리된다. 다른 구현들에서, 음성 입력은 음성 지원 디바이스의 운영 체제 또는 펌웨어 내에서 처리될 수 있다. 도시된 구현예에서의 애플리케이션(56)은 음성 액션 모듈(58), 온라인 인터페이스 모듈(60) 및 렌더링/동기화 모듈(62)을 포함한다. 음성 액션 모듈(58)은 애플리케이션으로 향하는 음성 입력을 수신하여 음성 입력의 분석 및 음성 지원 디바이스(52)의 사용자에 대한 하나 이상의 액션의 수행(performance)을 조정한다. 온라인 인터페이스 모듈(60)은 서비스(54)로 음성 입력을 포워딩하고 응답을 수신하는 것을 포함하여 온라인 검색 서비스(54)와의 인터페이스를 제공한다. 렌더링/동기화 모듈(62)은 예를 들어, 시각 디스플레이, 음성(spoken) 오디오, 또는 특정 음성 지원 디바이스에 적합한 다른 피드백 인터페이스를 통해 사용자로의 응답 렌더링을 관리한다. 일부 구현예에서, 모듈(62)은 또한 예를 들어, 응답 또는 액션이 온라인 검색 서비스에서 사용자에 대해 유지되는 데이터에 영향을 줄 때마다(예를 들어, 음성 입력이 클라우드 기반 일정(calendar)에서 유지되는 약속 생성을 요구하는 경우) 온라인 검색 서비스(54)와의 동기화를 처리한다.
애플리케이션(56)은 예를 들어, 스트리밍 음성-텍스트 모듈(64)과 파서 모듈(68), 대화(dialog) 매니저 모듈(70) 및 액션 구축(action builder) 모듈(72)을 포함하는 시맨틱 프로세서 모듈(66)을 포함하는, 음성 입력을 처리하기 위해 다양한 미들웨어, 프레임워크, 운영 체제 및/또는 펌웨어 모듈에 의존한다.
모듈(64)은, 예를 들어, 디지털 오디오 데이터의 형태로 음성 입력의 오디오 레코딩을 수신하여, 디지털 오디오 데이터를 (본 명세서에서 "토큰"으로 지칭되는) 하나 이상의 텍스트 단어 또는 어구들(phrases)로 변환한다. 도시된 구현예에서, 모듈(64)은 또한 음성 입력이 토큰 단위(token-by-token basis)로 그리고 실시간 또는 거의 실시간으로 텍스트로 변환되어, 사용자가 완전한 음성 요청을 말하기 전에 토큰들이 사용자의 음성과 동시에 효과적으로 모듈(64)로부터 출력될 수 있도록 하는 스트리밍 모듈이다. 모듈(64)은 하나 이상의 국부적으로 저장된 오프라인 음향 및/또는 언어 모델(74)에 의존할 수 있으며, 이 모델은 언어의 단어 시퀀스와 함께 언어의 오디오 신호와 음성 단위(phonetic units) 사이의 관계를 함께 모델링한다. 일부 구현예에서, 단일 모델(74)이 사용될 수 있는 반면, 다른 구현예에서는, 예를 들어, 다수의 언어, 다수의 발화자 등을 지원하기 위해 다수의 모델이 지원될 수 있다.
모듈(64)이 음성을 텍스트로 변환하는 반면, 모듈(66)은 목적을 위해 모듈(64)에 의한 텍스트 출력의 의미(semantics) 또는 뜻(meaning)을 식별하거나 적절한 응답을 공식화하려고 시도한다. 파서 모듈(68)은 예를 들어 하나 이상의 오프라인 문법 모델(76)에 의존하여, 텍스트를 특정 액션에 매핑하고 그러한 액션들의 성능, 예를 들어 그러한 액션들에 대한 입력 변수들을 제한하는 속성을 식별한다. 일부 구현예에서는, 단일 모델(76)이 사용될 수 있지만, 다른 구현예에서는, 예를 들어, 상이한 액션들 또는 액션 도메인들(즉, 통신 관련 액션, 검색 관련 액션, 오디오/시각 관련 액션, 일정 관련 액션, 디바이스 제어 관련 액션 등과 같은 관련 액션들의 집합)을 지원하기 위해 다수의 모델이 지원될 수 있다.
예를 들어, 오프라인 문법 모델(76)은 설정해야 할 알림의 유형을 지정하는 알림 유형 파라미터, 상기 알림와 관련된 하나 이상의 아이템을 지정하는 아이템 파라미터, 및 상기 알림을 활성화시키고 사용자에게 알리는 시간을 지정하는 시간 파라미터를 갖는 "파라미터 설정"과 같은 액션을 지원할 수 있다. 파서 모듈(64)은 "나에게 리마인드(알림) 해줘(remind me to)", "픽업(pick up)", "빵(bread)" 및 "퇴근 후(after work)"와 같은 토큰들의 시퀀스를 수신하여, 알림 유형 파라미터를 "소핑 알림"로 설정하고, 아이템 파라미터를 "빵"으로 설정하고, 시간 파라미터를 오후 5:00로 설정하여 알림을 설정하는 액션에 토큰 시퀀스를 매핑하여, 그날 오후 5시에 사용자가 "빵 구매"에 대한 알림을 받도록 한다.
파서 모듈(68)은 또한 사용자와의 대화(dialog)를 관리하는 대화 매니저 모듈(70)과 함께 동작할 수 있다. 이 문맥 내의 대화는 두 사람 사이의 대화와 유사한 음성 입력 및 응답 세트를 나타낸다. 따라서, 모듈(70)은 대화의 "상태"를 유지하여, 후속 음성 입력들을 처리할 때 이전 음성 입력에서 사용자로부터 얻은 정보를 사용할 수 있게 한다. 예를 들어, 사용자가 "빵을 사라고 나에게 리마인드 해줘"라고 말하면, "예, 언제 리마인드 하시겠습니까?"라고 말하는 응답을 생성하여, "퇴근 후에"라는 후속 음성 입력이 알림을 생성하기 위한 원래의 요청에 다시 연결되도록 할 수 있다.
액션 구축 모듈(72)은 파서 모듈(68)로부터 음성 입력 해석을 나타내는 파싱된 텍스트를 수신하여, 음성 기반 애플리케이션(56)의 모듈(62)에 의한 처리를 위해 임의의 관련 파라미터와 함께 액션을 생성한다. 액션 구축 모듈(72)은 파싱된 텍스트로부터 액션들을 생성하기 위한 다양한 규칙을 통합하는 하나 이상의 오프라인 액션 모델(78)에 의존할 수 있다. 일부 구현예에서, 예를 들어, 액션들은 F(IT)=Au와 같은 함수(F)로 정의될 수 있으며, 여기서 T는 입력 해석의 유형을 나타내고 U는 출력 액션의 유형을 나타낸다. F는 따라서, 예를 들어 f(it)=au와 같이 서로 매핑되는 복수의 입력 쌍(T, U)을 포함할 수 있으며, 여기서 it는 유형(t)의 입력 원시 변수(proto variable)이고, au는 출력 모듈 인수 또는 유형(u)의 파라미터이다. 일부 파라미터들은 음성 입력으로서 직접 수신될 수 있는 반면, 일부 파라미터들은 다른 방식으로, 예를 들어 사용자의 위치, 인구 통계(demographic) 정보 또는 사용자에게 특정한 다른 정보에 기초하여 결정될 수 있다. 예를 들어, 사용자가 "식료품점에서 빵을 사라고 나에게 리마인드 해줘"라고 말하면, 위치 파라미터는 사용자의 현재 위치, 직장과 집사이의 사용자의 알려진 경로, 사용자의 단골 식료품점 등과 같은 추가 정보 없이는 결정될 수 없다.
일부 구현예에서, 모델들(74, 76 및 78)은 모듈들(64, 68, 70 및 72)의 기능일 수 있는 바와 같이 더 적은 수의 모델로 결합되거나 추가 모델로 분리될 수 있음을 이해할 것이다. 더욱이, 모델들(74-78)은 모델들이 음성 지원 디바이스(52) 상에 국부적으로 저장되어 있고, 디바이스(52)가 온라인 검색 서비스(54)와 통신하지 않을 때 오프라인으로 액세스할 수 있는 한 오프라인 모델로 지칭된다.
또한, 온라인 검색 서비스(54)는 일반적으로 다양한 음향/언어, 문법 및/또는 액션 모델들(82)에 의존하는 음성 기반 쿼리 프로세서(80)를 사용하여 음성 입력을 처리하기 위한 보완적인 기능을 포함한다. 일부 구현들에서, 특히 음성 지원 디바이스(52)가 리소스-제한 디바이스일 때, 음성 기반 쿼리 프로세서(80) 및 그에 의해 사용되는 모델들(82)은 음성 지원 디바이스(52)에 국부적인 것보다 더 복잡하고 계산적인 자원 집약적인 음성 처리 기능을 구현할 수 있다. 그러나 다른 구현예에서는 보완적인 온라인 기능을 사용할 수는 없다.
일부 구현예에서, 예를 들어 디바이스가 온라인 서비스와 통신할 때마다 온라인 기능이 사용되고, 연결이 없는 경우에는 오프라인 기능이 사용되도록 온라인 및 오프라인 기능 모두가 지원될 수 있다. 다른 구현예에서, 상이한 액션 또는 액션 도메인들은 온라인 및 오프라인 기능에 할당될 수 있고, 다른 구현예에서는, 오프라인 기능이 특정 음성 입력을 적절하게 처리하지 못할 때만 온라인 기능이 사용될 수 있다.
도 3은 예를 들어 음성 입력을 처리하기 위해 음성 지원 디바이스(52)에 의해 실행될 수 있는 음성 처리 루틴(100)을 도시한다. 루틴(100)은 예를 들어 디지털 오디오 신호의 형태로 음성 입력을 수신함으로써 블록(102)에서 시작한다. 이 실시예에서, 음성 입력을 온라인 검색 서비스로 포워딩하기 위한 초기 시도가 이루어진다(블록 104). 만약 접속 부재 또는 온라인 검색 서비스로부터의 응답 부족로 인해 성공하지 못하면, 블럭(106)은 음성 입력을 텍스트 토큰들로 변환하기 위해 (예컨대, 도 2의 모듈(64)을 사용하여) 블럭(108)으로 제어를 전달하고(블록(108), (예컨대, 도 2의 모듈(68)을 사용하여) 텍스트 토큰들을 파싱하고(블럭(110)), (예컨대, 도 2의 모듈(72)을 사용하여) 파싱된 텍스트로부터 액션을 구축한다(블록 112). 그런 다음 결과 액션은 (예컨대, 도 2의 모듈(62)을 사용하여) 클라이언트 측 렌더링 및 동기화를 수행하는데 사용되고(블록(114)), 음성 입력의 처리는 완료된다.
블록(106)으로 돌아가서, 만약 음성 입력을 온라인 검색 서비스로 포워딩하려는 시도가 성공하면, 블록(106)은 블록(108-112)을 바이패스하고 블록(114)으로 직접 제어를 전달하여 클라이언트 측 렌더링 및 동기화를 수행한다. 그러면 음성 입력 처리가 완료된다. 다른 구현예에서, 상술한 바와 같이, 음성 입력이 국부적으로 처리될 수 있을 때, 불필요한 데이터 통신을 피하기 위해 온라인 처리 이전에 오프라인 처리가 시도될 수 있음을 이해할 것이다.
리소스-제한된 오프라인 디바이스를 위한 동적 업데이트 가능한 오프라인 문법 모델
전술한 바와 같이, 일부 구현예에서, 음성 지원 디바이스는 리소스가 제한될 수 있으며, 온라인 서비스의 원시(raw) 컴퓨팅 능력 및/또는 저장 용량이 부족할 수 있다. 음성 기반 사용자 인터페이스 구현과 관련된 복잡성의 상당 부분은 예를 들어 텍스트를 액션들에 매핑하는 문법 모델들을 포함하여 이러한 기능을 구현하는 다양한 모듈에 사용되는 모델들에 구현되어 있다.
이와 관련하여 문법 모델은 하나 이상의 텍스트 단어 또는 구문(통칭하여 "토큰"이라고 칭함)을 디바이스에서 구현될 하나 이상의 액션에 매핑하기에 적합한 임의의 데이터 구조를 지칭할 수 있다. 특정 액션에 매핑된 텍스트 단어 또는 구문은 해당 액션에 매핑된 고유한 음성 기반 쿼리를 구성하는 것으로 간주될 수도 있다. 문법 모델은 예를 들어, 천이 상태 그래프(transition state graph) 또는 다른 적절한 데이터 구조로 구현될 수 있다. 게다가, 문법 모델은 다수의 방식으로, 예를 들어, 프로그래밍을 통해, 트레이닝을 통해 생성될 수 있다.
액션은 검색 수행, 전화 걸기, 문자 메시지 전송, 이메일 전송, 알림 설정, 길 찾기(getting directions), 약속 설정, 디바이스 설정 변경, 메모 작성, 노래 또는 비디오 재생, 볼륨 변경 등과 같이, 특정 디바이스에 의해 수행될 수 있는 임의의 액션을 실질적으로 지칭할 수 있다. 일부 구현 예에서, 액션들은 예를 들어, (전화를 걸기 위한, 메시지 전송을 위한) 통신 액션 도메인, (음악 재생을 위한, 비디오 재생을 위한) 미디어 액션 도메인, (알림 생성을 위한, 약속 작성을 위한) 계획(planning) 액션 도메인, (지도 디스플레이를 위한, 길 찾기를 위한) 네비게이션 액션 도메인과 같은 액션 도메인들로 불리는 콜렉션들(collections)로 그룹화될 수 있다. 문법 모델들은 상이한 언어, 상이한 발화자, 다른 최종 사용자 애플리케이션에 따라 다를 수 있다는 것을 이해할 것이다
문법 모델의 유틸리티는 적어도 부분적으로 다른 액션들을 위해 생성된 상이한 매핑 수에 적어도 부분적으로 기초한다. 언어는 끊임없이 진화하고 있으며, 상이한 발화자들은 예를 들어 연령, 국가, 지역 등의 차이에 기초하여, 동일한 액션을 수행하기 위해 상이한 명령들을 발화할 수 있다. 그러나, 문법 모델 내에서 구현되는 매핑의 수는 일반적으로 모델을 저장하는데 필요한 메모리 양과 모델의 특정 매핑을 식별하는데 필요한 처리 시간 및 리소스를 증가시킨다.
많은 온라인 서비스에서 사용할 수 있는 막대한 컴퓨팅 리소스를 감안할 때, 이러한 많은 서비스는 다양한 매핑을 처리할 수 있는 크고 복잡한 문법 모델을 사용한다. 예를 들어, 도 4는 아이템, 시간(timedate) 및 위치 파라미터(128, 130 및 132)를 갖는 "쇼핑 알림 생성(create shopping reminder)" 액션(126)에 맵핑된 복수의 상태(122) 및 천이 (124)을 통합하는 유한 상태 천이 그래프로서 구현되는 예시적인 문법 모델(120)의 일부를 나타낸다. 도면에서 알 수 있는 바와같이, 알림을 트리거하고(예컨대, "remind me to," "set a reminder to," "don't let me forget to" 등) 상기 알림이 쇼핑 알림(예컨대, "사다(buy)," "집어 들다(pick up)," "갖다(get)," "잡다(grab some)," 멈추고 집어 들다(stop and pick up) 등)임을 지정하기 위해 다수의 토큰이 지원되므로, 많은 수의 잠재적인 매핑과 이에 따라 쇼핑 알림을 생성하는데 사용할 수 있는 동의어 또는 음성 기반 쿼리들이 생성될 수 있다.
또한, 각각의 파라미터(128, 130, 132)에 대해, 많은 수의 잠재적인 값들이 문법 모델 내에 매핑될 수 있다. 아이템 리스트(128)에 대해, 예를 들어, 특정 브랜드 이름뿐만 아니라 아이템들에 대한 일반적인 용어를 포함하여 셀 수 없는 제품 이름 및 설명(134)이 가능할 수 있다(예를 들어, "빵", "우유"등). 시간(timedate) 파라미터(130)에 대해, 예를 들어, 수치값(예컨대, "오후 6시") 및 비-수치값(예컨대, "퇴근 후(after work)," "내일 아침(torrow morning)" 등)을 포함하여 시간 및/또는 날짜와 관련된 다양한 구문들(136)이 지원될 수 있다. 위치 파라미터(132)에 대해, 어드레스들(예컨대, "101 메인 스트리트"), 일반(generic) 위치들(예컨대, "식료품점"), 비지니스 이름들(예컨대, 특정 식료품점) 등이 특정될 수 있다. 일부 구현예에서, 하나 이상의 파라미터는 선택적일 수 있다. 또한, 일부 구현예에서, 하나 이상의 파라미터는 비-음성 데이터, 예를 들어, 현재의 GPS 위치, 사용자의 선호 비지니스, 사용자의 통상적인 근무 시간의 지식 등에 기초하여 정의될 수 있고, 그리고 일부 경우에는 음성 및 비-음성 데이터의 조합(예컨대, 사용자가 "식료품점"을 말하고 이 입력을 사용자의 알려진 집 경로와 조합하여 특정 식료품점을 길게 식별하는 경우)에 기초하여 정의될 수 있다. 게다가, 파라미터들은 다이얼로그(dialogs) 또는 대화(conversations)에 기초하여 일부 구현예에서 도출될 수 있어, 상기 파라미터들은 이전의 음성 입력으로부터 적어도 부분적으로 추정된다.
그래프(120)는 문법 모델에 포함될 수 있는 잠재적 매핑들의 단지 작은 서브 세트를 나타내며, 사용자로부터 수신될 수 있는 음성 기반 쿼리들의 가능한 모든 변형들을 커버하기 위해, 가능한 모든 변형은 대한 매핑들이 문법 모델에 통합될 필요가 있음을 이해할 것이다. 개별 컴퓨터 및 전자 디바이스의 많은 리소스 제한이 없는 온라인 서비스는 문법 모델의 유용성을 극대화하기 위해 많은 수의 매핑을 통합하는 사치를 누릴 수 있다. 그러나, 결과적으로 온라인 서비스에서 사용되는 문법 모델(일반적으로 "온라인"문법 모델이라고 칭함)은 일반적으로 개별 컴퓨터 및 전자 디바이스, 특히 음성 기반 사용자 인터페이스들이 가장 필요로 하는 많은 유형의 디바이스에서 사용하기에는 너무 크거나 프로세서 집약적이다.
그러나, 본 명세서에서 설명된 구현예에서, 오프라인 문법 모델은 리소스가 제한된 음성 기반 오프라인 디바이스에서 사용하기 위해 보다 작고 및/또는 덜 프로세스 집약적이 되도록 생성될 수 있어, 디바이스의 메모리 및/또는 처리 제한을 수용할 수 있다. 더욱이, 오프라인 문법 모델은 다수의 사용자에 의해 복수의 리소스-제한 디바이스에 걸쳐 빈번하게 발행되는 음성 기반 쿼리들에 더하여 또는 대신에, 하나 이상의 특정 사용자에 의해 하나 이상의 특정 리소스-제한 디바이스에서 발행된 음성 기반 쿼리들에 기초하여 생성될 수 있다. 결과적으로, 오프라인 문법 모델은 소수의 특정 리소스-제한 디바이스 및/또는 그러한 리소스-제한 디바이스(들)의 제한된 수의 사용자에 대해 커스터마이징된 음성 기반 쿼리들을 바람직하게 포함하여, 오프라인 시맨틱 프로세서는 바람직하게는 온라인 문법 모델과 비교하여 감소된 리소스 요구사항을 가지면서 상기 특정 리소스-제한 디바이스(들)에서 사용될 가능성이 있는 음성 기반 쿼리들에 응답할 것이다.
다양한 구현예에서, 오프라인 문법 모델은 음성 기반 쿼리들의 발행 후에 자원 제한 디바이스들에서의 액션 수행의 통계적 분석에 기초하여 구성될 수 있다. 예를 들어, 일부 구현예에서, 리소스-제한 디바이스에서 발행된 쿼리는 리소스-제한 디바이스에 의해 수행 가능한 하나 이상의 후보 응답 액션을 식별하기 위해 의미적으로 처리될 수 있다. 소위 "후보 응답 액션 수행 통계"는 하나 이상의 후보 응답 액션으로부터 적격의 응답 액션을 선택하도록 분석될 수 있다. 후보 응답 액션 수행 통계는 쿼리 발급 후 리소스-제한 디바이스에 의한 하나 이상의 후보 응답 액션의 수행과 관련될 수 있다. 적격의 응답 액션은 음성 기반 쿼리들의 발행 후에 디바이스에 의해 수행되는 액션일 수 있다. 또한, 일부 구현예에서, 음성 기반 쿼리의 발행 후의 액션의 수행은 하나 이상의 적격 기준(qualifying criteria )을 충족해야 할 수도 있다. 예를 들어, 적격 기준은 발행된 쿼리와 상기 수행된 액션 사이의 상관 관계(예컨대, 상관 관계가 임계값 이상)와 관련될 수 있다. 상관 관계는 예를 들어, 음성 쿼리와 액션의 수행 사이의 경과 시간, 개재 액션(intervening action)의 존재 여부, 액션의 수행이 디바이스에 의해 제공된 프롬프트에 대한 응답으로 야기되었는지 여부 및 프롬프트들이 제공된 다수의 후보 액션 등과 같은 하나 이상의 요소에 좌우될 수 있다. 일부 예들에서, 상기 적격 기준은 상술한 하나 이상의 요소에 직접적으로 관련될 수 있다. 예를 들어, 수행된 액션은 쿼리의 발행과 액션의 수행 사이의 경과 시간이 임계값 이하이고 및/또는 개재 액션들이 없는 경우 적격 액션으로 간주될 수 있다. 마찬가지로, 수행된 액션은 해당 액션이 디바이스가 제공한 프롬프트에 대한 응답으로 수행된 경우 적격 액션으로 간주될 수 있다.
리소스-제한 디바이스에 저장된 오프라인 문법 모델은 자원-제한 디바이스에 의해 수행 가능한 액션들에 쿼리들을 매핑할 수 있는며 상기 발행된 쿼리와 상기 적격 응답 액션 사이의 매핑을 포함하도록 업데이트될 수 있다. 결과적으로, 온라인 문법 모델에 의해 지원되는 모든 쿼리가 오프라인 문법 모델에 통합되는 것은 아니지만, 오프라인 문법 모델의 메모리 공간(footprint) 및 오프라인 문법 모델을 활용하는데 필요한 처리 요구 사항은 오프라인 디바이스의 리소스 제한을 보다 잘 고려하기 위해 축소되었다.
예를 들어, 도 5는 후보 응답 액션 수행 통계의 분석에 적어도 부분적으로 기초하여 오프라인 문법 모델을 구축하기 위해 온라인 또는 오프라인 서비스에 의한 실행에 적합한 루틴(150)을 나타낸다. 루틴(150)은 음성 기반 쿼리들을 처리하는 동일한 서비스에 의해 실행될 수 있거나, 모두 다른 서비스일 수 있다. 게다가, 루틴(150)은 오프라인 문법 모델을 초기에 생성하거나, 이전에 생성된 오프라인 문법 모델을 대체하기 위해 사용되는 업데이트된 오프라인 문법 모델을 생성하는데 사용될 수 있다.
루틴(150)의 블록들(152-156)은 도 3에 도시된 루틴(100)의 다양한 블록들과 유사하다. 블록(152)에서, 음성 입력이 예를 들어 디지털 오디오 신호의 형태로 수신된다. 블록(154)에서, 음성 입력은 (예를 들어, 도 2의 모듈(64 및/또는 82)을 사용하여) 텍스트 토큰들로 변환된다. 블록(110)에서, 상기 텍스트 토큰들은 (예컨대, 도 2의 모듈(68 및/또는 82)을 사용하여) 파싱될 수 있다.
블록(158)에서, 상기 발행된 쿼리에 잠재적으로 응답하는 하나 이상의 후보 액션들은 예를 들어, 리소스 제한 디바이스(52)의 모듈(64, 68 및 72)에 의해 또는 온라인인 경우 모듈(82)에 의해 식별될 수 있다. 일부 구현예에서, 블록(158)에서 수행된 후보 응답 액션들의 식별은 블록(112)의 동작과 유사한 방식으로 수행될 수 있다. 사용자가 "이봐, 크레이지 헤어를 들었으면 좋겠어(boy, I sure could go for some Crazy Hair)"와 같은 특정 롱-테일 쿼리를 발행한다고 가정해 보자. 시맨틱 프로세서(예컨대, 도 2의 66 또는 82)는 지식 그래프 등으로부터의 엔티티 식별과 같은 다양한 기술을 사용하여, "크레이지 헤어(krazy hair)"가 음악가를 지칭한다고 결정할 수 있다. 상기 결정에 기초하여, 디바이스(52)의 다음 논리적 액션(즉, 후보 응답 액션)이 뮤직 플레이어를 열고 크레이지 헤어 밴드(Crazy Hair Band)에 의해 녹음된 음악을 재생하는 것을 추가로 결정할 수 있다.
다양한 구현에서 잠재적으로 응답하는 후보 액션이 여러개 있을 수 있다. 예를 들어, 특정 아티스트가 음악을 재생할 수 있는 여러 옵션이 있을 수 있다. 스트리밍 어플리케이션은 하나 이상의 네트워크를 통해 아티스트(및/또는 유사한 음악적 취향과 관련된 음악)와 관련된 스트리밍 "채널"로부터 리소스-제한 디바이스로 음악을 스트리밍할 수 있다. 다른 뮤직 플레이어 애플리케이션은 리소스-제한 디바이스에 국부적으로 저장된 음악을 재생할 수 있다. 이러한 시나리오에서, 크레이지 헤어 밴드를 재생할 애플리케이션을 열면 상기 쿼리 "이봐, 크레이지 헤어를 들었으면 좋겠어"에 잠재적으로 응답할 수 있는 후보 액션이 구성된다.
많은 사용자는 예를 들면 사용자가 롱 테일 음성 기반 쿼리들을 발행할 수 있는 조정된 "에코시스템(ecosystem)"의 일부로서 다수의 리소스-제한 디바이스를 동작시킬 수 있다. 예를 들어, 사용자는 모바일 전화기와 스마트 워치를 모두 동작시킬 수 있다. 경우에 따라, 스마트 워치는 블루투스, Wi-Fi 등과 같은 저전력 및/또는 근거리 무선 기술을 사용하여 모바일 전화기에 연결할 수 있지만 필수 사항은 아니다. 만약 사용자가 디바이스들 중 하나에서 롱 테일 음성-기반 쿼리를 발행하면(예컨대, 스마트 워치의 마이크로 말하면), 사용자는 동일한 디바이스 또는 다른 디바이스에서 응답 액션이 수행되기를 원할 수 있다. 따라서, 다양한 구현예들에서, 하나 또는 둘 모두의 디바이스에서 수행 가능한 하나 이상의 후보 응답 액션이 블록(158)에서 식별될 수 있다.
일부 실시예에서, 블록(160)에 나타낸 바와 같이, 블록(158)에서 식별된 하나 이상의 후보 응답 액션에 대응하는 하나 이상의 프롬프트가 자원-제한 디바이스(52)에서 사용자에게 제공될 수 있다. 각각의 프롬프트는 자원-제한 디바이스(52)에서 대응하는 후보 응답 액션의 수행을 제안할 수 있다. 프롬프트들은 오디오, 시각 및/또는 촉각(예컨대, 진동) 피드백과 같은 다양한 형태로 나타날 수 있다. 예를 들어, 전술한 시나리오를 계속하면, 사용자는 2개의 선택 가능한 그래픽 요소를 제시받을 수 있는데, 하나는 브루스 스프링스틴(Bruce Springsteen) 채널을 재생하기 위한 스트리밍 플레이어를 개시하기 위한 것이고, 다른 하나는 국부적으로 저장된 브루스 스프링스틴 콘텐츠의 재생을 개시하기 위한 것이다.
프롬프트들은 다양한 형태 및 방식으로 리소스-제한 디바이스상에 제시(예를 들어, 출력)될 수 있다. 예를 들어, 일부 구현예에서, 프롬프트들은 다른 애플리케이션의 그래픽 사용자 인터페이스의 일부에서 제공될 수 있다. 상기 애플리케이션은 예를 들어 웹 브라우저, 소셜 미디어 애플리케이션, 지능형 개인 비서 애플리케이션 등일 수 있다. 상기 프롬프트들은 팝업, 하이퍼 링크(텍스트 또는 그래픽 형태), 및/또는 사용자가 선택, 무시 및/또는 거부할 수 있는 소위 "카드(card)"로 시각적으로 제시될 수 있다. 추가적으로 또는 대안적으로, 프롬프트는 청각적으로 제시될 수 있다. 예를 들어, 다수의 후보 응답 액션이 있을 수 있는 음성-기반 쿼리에 응답하여, 리소스-제한 디바이스는 "액션 x 수행 또는 액션 y 수행을 의미합니까 ?"와 같은 것을 청각적으로 출력할 수 있다.
또한 위에서 언급한 바와같이, 일부 사용자는 단일 조정된 에코시스템의 일부로서 다수의 디바이스를 조작할 수 있다. 그러한 일부 구현들에서, 하나 이상의 프롬프트가 다수의 디바이스들 중 하나 이상에 제공될 수 있다. 사용자가 스마트 워치에서 '위치 X에 대한 길 찾기(find directions to location X)'라는 음성-기반 쿼리를 발행(issue)했다고 가정해 보자. 스마트 워치는 디스플레이가 있을 수 있지만, 사용자가 자전거를 운전하거나 자전거를 타고 있는 경우 사용자가 디스플레이 상에 제시된 시각 프롬프트에 응답하는 것은 바람직하지 않을 수 있다. 그러나, 사용자의 모바일 전화기는 스피커를 가질 수 있거나, 사용자가 착용하는 카 스테레오 또는 블루투스 헤드폰과 같은 다른 오디오 디바이스와 페어링(paired)될 수 있다. 이러한 스피커는 사용자에게 가청 프롬프트를 제공하기에 적합할 수 있다. 이 경우, 사용자가 스마트 워치상에서 음성-기반 쿼리를 발행한 것에 대한 응답하여, 사용자의 전화기는 사용자에게 "도시 A의 위치 X 또는 도시 B의 위치 X를 의미합니까 ?"와 같은 가청 프롬프트가 제공되도록 할 수 있다.
블록(162)에서, 후보 응답 액션 수행 통계는 사용자에 의해 조작되는 하나 이상의 자원-제약 디바이스로부터 수집될 수 있다. 다양한 구현예에서, 후보 응답 액션 수행 통계는 블록(158)에서 식별된 하나 이상의 후보 응답 액션의 수행과 관련될 수 있고 및/또는 이를 나타낼 수 있다. 다양한 구현예에서, 리소스-제한 디바이스는 예를 들어, 음성 기반 쿼리의 발행 이후 다양한 시간 간격에서 사용자 거동 (behavior)을 관찰하고 기록함으로써 이러한 통계 자체를 수집할 수 있다. 일부 구현예에서, 리소스-제한 디바이스는 사용자가 프롬프트에 얼마나 신속하게 응답했는지, 사용자가 프롬프트를 기각하고 및 상기 리소스-제한 디바이스로 하여금 대체 액션을 수행하도록 하였는지 여부 등과 같이, 블록(160)에서 제공된 프롬프트들에 대한 사용자 응답(또는 그에 대한 부재)에 관한 다양한 데이터를 관찰하고 기록할 수 있다.
블록(164)에서, 블록(162)에서 수집된 후보 응답 액션 수행 통계가 분석될 수 있다. 만약 블록(160)에서 프롬프트들이 제공되지 않으면, 상기 쿼리의 발행 이후에 하나 이상의 리소스-제한 디바이스와의 하나 이상의 관찰된 사용자 상호 작용은, 상기 발행된 쿼리와 하나 이상의 잠재적 응답 액션 사이의 상관 관계 (correlation)에 대한 간접적인(예를 들어, 정황상의) 증거를 구성할 수 있다. 그러나 음성-기반 쿼리 발행과 임의의 후보 응답 액션의 개시 사이에 비교적 긴 시간이 경과한다고 가정한다. 그러한 상관 관계에 대한 가능성은 낮을 수 있는데, 특히, 그 중간에서, 사용자가 블록(158)에서 후보 응답 액션으로서 식별되지 않은 하나 이상의 액션을 수행하기 위해 하나 이상의 리소스-제한 디바이스를 동작시키는 경우에 그러하다.
사용자가 "이봐, 스프링스틴을 들었으면 좋겠어(boy, I sure could go for some Springsteen)"와 같은 특정 롱-테일 쿼리를 발행한다고 가정한다. 상술한 바와 같이, 리소스 제한 디바이스(52)의 모듈(64, 68 및 72), 또는 온라인인 경우 모듈(82)은 Bruce Springsteen에 의한 음악 재생을 포함하는 하나 이상의 후보 응답 액션을 식별할 수 있다. 예를 들어, 하나의 후보 응답 액션은 Bruce Springsteen 채널을 스트리밍하도록 스트리밍 앱을 여는 것이고, 다른 하나의 후보 응답 액션은 국부적으로 저장된 Bruce Springsteen 노래를 재생하도록 뮤직 플레이어를 여는 것일 수 있다. 만약, 블록(162)에서 수집된 통계치가 음성-기반 쿼리의 발행 이후에 사용자가 즉시 Bruce Springsteen 채널을 스트리밍하기 위해 상기 스트리밍 뮤직 플레이어 애플리케이션을 열었음을 나타내면, 블록(164)에서, 국부적으로 저장된 음악을 재생하기 위해 발행된 쿼리와 뮤직 플레이어 사이에 존재하는 것보다, 상기 발행된 사용자 쿼리와 상기 스트리밍 어플리케이션 사이에 더 강한 상관 관계가 있다고 결정될 수 있다.
부가적으로 또는 대안으로, 하나 이상의 프롬프트가 블록(160)에서 제공되었다고 가정한다. 하나 이상의 프롬프트에 대한 사용자의 응답은 그래픽 아이콘을 선택하는 형태 또는 가청 프롬프트에 대한 음성 응답을 제공하는 형태로 분석될 수 있다. 프롬프트들은 발행된 쿼리에 대한 응답으로 제공되기 때문에, 프롬프트에 대한 긍정의 사용자 응답은 상기 발행된 쿼리와 상기 프롬프트에 의해 개시된 액션 사이에 보다 직접적인 상관 관계의 증거를 제공할 수 있다. 사용자가 프롬프트에 응답했는지 여부에 부가하여 사용자가 프롬프트에 얼마나 빨리 응답했는지, 응답할 대체 프롬프트가 몇개나 있는지 등이 평가될 수 있다.
블록(164)에서의 분석에 기초하여, 블록(166)에서, 발행된 쿼리와 하나 이상의 후보 응답 액션 사이의 하나 또는 매핑이 식별될 수 있다. 일부 구현예에서, 리소스 제한 디바이스(52)는 상기 식별된 하나 이상의 매핑을 모듈(82)(또는 다른 온라인 구성 요소)로 다시 전송할 수 있다. 상기 매핑에 기밀 정보(예컨대, 차 고문을 조작하기 위한 비밀 암호)가 포함되거나 암시되는 상황에서 매핑은 전송하기 전에 익명으로 처리될 수 있다. 부가적으로 또는 대안적으로, 사용자는 디바이스(52)에서의 매핑을 전용(private) 매핑으로 유지하고, 모듈(82)로 매핑을 제공하지 않도록 디바이스(52)를 구성할 수 있다.
블록(168)에서, 사용자에 의해 동작되는 하나 이상의 리소스-제한 디바이스에 의해 이용되는 하나 이상의 오프라인 문법 모델(예를 들어, 도 2의 76)은 블록(166)에서 식별된 하나 이상의 매핑을 포함하도록(예를 들어, 디바이스(52) 및/또는 모듈(82)에서) 업데이트될 수 있다. 예를 들어, 오프라인 문법은 모듈(82)에 패키징되어 하나 이상의 리소스-제한된 음성-기반 오프라인 디바이스(예를 들어, 특유의 롱 테일 음성 기반 쿼리를 사용하는 특정 사용자에 의해 동작되는 다수의 디바이스)에 배포될 수 있다. 하나 이상의 오프라인 리소스-제한 디바이스는 패키징된 오프라인 문법 모델을 수신 및 압축 해제하여 해당 디바이스에 모델을 저장할 수 있다. 패키징은 오프라인 문법 모델을 압축하여 전송 크기를 줄이고 그렇지 않으면 각각의 디바이스에서 사용할 수 있는 방식으로 모델을 포맷하는데 사용될 수 있다. 따라서, 리소스-제한 디바이스는 오프라인 또는 심지어 온라인일 때, 오프라인 문법을 이용하여 음성-기반 쿼리를 처리할 수 있다.
초기 오프라인 문법 모델을 구축하기 위해 루틴(150)이 사용되는 것 이외에 또는 대신에, 루틴(150)은 또한 예를 들어, 시간 경과에 따른 사용량의 변화를 더 잘 추적하고, 특정 사용자에 대한 추가의 롱 테일 음성-기반 쿼리를 통합하기 위해 상기 오프라인 문법 모델을 업데이트하는데 사용될 수 있다. 이러한 업데이트는 리소스-제한 디바이스가 시스템 업데이트의 일부로 업데이트되거나 애플리케이션 업데이트로 업데이트되거나 그렇지 않으면 사용자로부터 은익된 백그라운드 업데이트로 업데이트될 수 있다는 점에서 동적 업데이트로 간주될 수 있다.
일부 구현예에서, 롱 테일 쿼리들과 응답 액션들 간의 매핑은 하나 이상의 오프라인 문법 모델 외에도 온라인 문법 모델에 통합될 수 있다. 이런 방식으로, 만약 새로운 사용자가 이전에 식별되고 다른 사용자에게 매핑된 롱 테일 쿼리를 발행하면, 동일한 매핑이 새로운 사용자에 의해 동작되는 하나 이상의 리소스-제한 디바이스에 의해 사용되는 하나 이상의 오프라인 문법에 추가될 수 있다. 그러나, 일부 구현예에서, 사용자들은 잠재적으로 기밀한 롱 테일 쿼리들의 프라이버시, 익명성 및/또는 보안을 유지하기 위해 그러한 공조(collaboration)를 거부할 수 있다.
몇몇 구현예가 본 명세서에서 설명되고 예시되었지만, 기능을 수행하고/하거나 결과를 얻거나 및/또는 본 명세서에 기술된 하나 이상의 이점을 얻기 위한 다양한 다른 수단 및/또는 구조가 이용될 수 있으며, 그러한 변형 및/또는 수정들 각각은 본 명세서에 설정된 구현들의 범위 내에 있는 것으로 간주된다. 보다 일반적으로, 본 명세서에 기술된 모든 파라미터, 치수, 재료 및 구성은 예시적인 것이며, 실제 파라미터, 치수, 재료 및/또는 구성은 특정 애플리케이션 또는 그 교시 (teaching)가 사용되는 애플리케이션에 의존할 것이다. 당업자는 일상적인 실험만을 사용하여 본 명세서에서 설명된 특정 구현예에 대한 많은 균등물을 인식할 수 있거나 또는 확인할 수 있을 것이다. 따라서, 전술한 구현예들은 단지 예일 뿐이며, 첨부된 청구 범위 및 그 등가물의 범위 내에서, 상기 구현들은 구체적으로 기술되고 청구된 것과 다르게 실시될 수 있음을 이해해야 한다. 본 발명의 구현들은 본 명세서에 기술된 각각의 개별적인 특징, 시스템, 항목(article), 재료, 키트 및/또는 방법에 관한 것이다. 게다가, 2개 이상의 그러한 특징(features), 시스템, g항목, 재료, 키트 및/또는 방법의 임의의 조합은, 그러한 특징, 시스템, 항목, 재료, 키트 및/또는 방법이 상호 불일치하지 않는 경우, 본 발명 내용의 범위 내에 포함된다.

Claims (20)

  1. 방법에 있어서,
    리소스-제한 디바이스에 의해 수행 가능한 하나 이상의 후보 응답 액션을 식별하기 위해 리소스-제한 디바이스에서 발행된 쿼리를 의미적(semantically)으로 처리하는 단계와;
    상기 하나 이상의 후보 응답 액션으로부터, 적격(qualifying) 응답 액션을 선택하기 위해 후보 응답 액션 수행 통계를 분석하는 단계와, 상기 후보 응답 액션 수행 통계는 상기 쿼리의 발행 후에 상기 리소스-제한 디바이스에 의한 상기 하나 이상의 후보 응답 액션의 수행에 관련되고; 그리고
    상기 발행된 쿼리와 상기 적격 응답 액션 사이의 매핑을 포함하도록 상기 리소스-제한 디바이스에 저장된 오프라인 문법 모델을 업데이트하는 단계를 포함하고, 상기 오프라인 문법 모델은 쿼리들을 오프라인 동안 상기 리소스-제한 디바이스에 의해 수행 가능한 액션들에 매핑하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 리소스-제한 디바이스를 동작시키는 사용자에게 출력으로서, 상기 각각의 하나 이상의 후보 액션들의 수행(performance)을 제안하는 하나 이상의 프롬프트를 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 분석 단계는 상기 하나 이상의 프롬프트에 대한 상기 사용자에 의한 응답에 관한 통계를 분석하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 하나 이상의 프롬프트는 선택 가능한 그래픽 요소를 포함하는 것을 특징으로 하는 방법.
  5. 제2항 또는 제3항에 있어서,
    상기 하나 이상의 프롬프트는 청각 또는 촉각 프롬프트를 포함하는 것을 특징으로 하는 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 오프라인 문법 모델을, 상기 리소스-제한 디바이스에 의한 저장을 위해 그리고 오프라인 동안 상기 리소스-제한 디바이스의 시맨틱(semantic) 프로세서에 의한 사용을 위해 상기 리소스-제한 디바이스로 통신하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 오프라인 문법 모델을 상기 리소스-제한 디바이스로 통신하는 단계는 상기 리소스-제한 디바이스에 저장된 오프라인 문법 모델을 동적으로 업데이트하는 것을 특징으로 하는 방법.
  8. 선행하는 임의의 어느 한 항에 있어서,
    상기 발행된 쿼리는 음성-기반 쿼리이고, 상기 오프라인 문법 모델은 음성- 기반 쿼리들을 액션들에 매핑하는 것을 특징으로 하는 방법.
  9. 선행하는 임의의 어느 한 항에 있어서,
    상기 리소스-제한 디바이스를 동작시키는 사용자와 관련된 복수의 리소스-제한 디바이스에 의한 상기 하나 이상의 후보 액션의 수행을 나타내는 데이터를 수집하는 단계를 더 포함하고, 상기 통계를 분석하는 단계는 상기 수집된 데이터에 기초하는 것을 특징으로 하는 방법.
  10. 선행하는 임의의 어느 한 항에 있어서,
    상기 의미적(semantic) 처리는 온라인 문법 모델을 사용하여 수행되고, 상기 오프라인 문법 모델은 상기 온라인 문법 모델에 비해 감소된 리소스 요구 사항을 갖는 것을 특징으로 하는 방법.
  11. 선행하는 임의의 어느 한 항에 있어서,
    상기 매핑, 상기 발행된 쿼리 및 상기 리소스-제한 디바이스에 대한 상기 오프라인 문법 중 하나 이상에 대한 액세스를 제한하는 단계를 더 포함하는 것을 특징으로 하는 방법..
  12. 메모리 및 상기 메모리에 저장된 명령들을 실행하도록 동작 가능한 하나 이상의 프로세서들을 포함하는 시스템으로서,
    리소스-제한 디바이스에 의해 수행 가능한 하나 이상의 후보 응답 액션을 식별하기 위해 리소스-제한 디바이스에서 발행된 쿼리를 의미적(semantically)으로 처리하고;
    상기 하나 이상의 후보 응답 액션으로부터, 적격(qualifying) 응답 액션을 선택하기 위해 후보 응답 액션 수행 통계를 분석하고, 상기 후보 응답 액션 수행 통계는 상기 쿼리의 발행 후에 상기 리소스-제한 디바이스에 의한 상기 하나 이상의 후보 응답 액션의 수행에 관련되고; 그리고
    상기 발행된 쿼리와 상기 적격 응답 액션 사이의 매핑을 포함하도록 상기 리소스-제한 디바이스에 저장된 오프라인 문법 모델을 업데이트하기 위한 명령들을 포함하고, 상기 오프라인 문법 모델은 쿼리들을 오프라인 동안 상기 리소스-제한 디바이스에 의해 수행 가능한 액션들에 매핑하는 것을 특징으로 하는 시스템.
  13. 제12항에 있어서,
    상기 리소스-제한 디바이스를 동작시키는 사용자에게 출력을 제공하기 위한 명령들을 더 포함하고, 상기 출력은 상기 각각의 하나 이상의 후보 액션의 수행을 제안하는 하나 이상의 프롬프트를 포함하는 것을 특징으로 하는 시스템.
  14. 제13항에 있어서,
    상기 하나 이상의 프롬프트에 대한 상기 사용자에 의한 응답에 관한 통계를 분석하기 위한 명령들을 더 포함하는 것을 특징으로 하는 시스템.
  15. 제13항 또는 제14항에 있어서,
    상기 하나 이상의 프롬프트는 선택 가능한 그래픽 요소를 포함하는 것을 특징으로 하는 시스템.
  16. 제13항 또는 제14항에 있어서,
    상기 하나 이상의 프롬프트는 청각 또는 촉각 프롬프트를 포함하는 것을 특징으로 하는 시스템.
  17. 제12항 내지 제16항 중 어느 한 항에 있어서,
    상기 오프라인 문법 모델을, 상기 리소스-제한 디바이스에 의한 저장을 위해 그리고 오프라인 동안 상기 리소스-제한 디바이스의 시맨틱 프로세서에 의한 사용을 위해 상기 리소스-제한 디바이스로 통신하기 위한 명령들을 더 포함하는 것을 특징으로 하는 시스템.
  18. 제12항 내지 제17항 중 어느 한 항에 있어서,
    상기 발행된 쿼리는 음성-기반 쿼리이고, 상기 오프라인 문법 모델은 음성- 기반 쿼리들을 액션들에 매핑하는 것을 특징으로 하는 시스템.
  19. 제12항 내지 제18항 중 어느 한 항에 있어서,
    상기 리소스-제한 디바이스를 동작시키는 사용자와 관련된 복수의 리소스-제한 디바이스에 의한 상기 하나 이상의 후보 액션의 수행을 나타내는 데이터를 수집하기 위한 명령들을 더 포함하며, 상기 통계를 분석하는 단계는 상기 수집된 데이터에 기초하는 것을 특징으로 하는 시스템.
  20. 컴퓨터 시스템에 의해 실행될 때, 컴퓨터 시스템으로 하여금 제1항 내지 제11항 중 어느 한 항의 방법을 수행하게 하는 컴퓨터 실행 가능 명령들.
KR1020187025726A 2016-02-24 2016-12-14 리소스 제한된 디바이스에서 오프라인의 시맨틱 처리의 간이화 KR101938806B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/051,778 US9836527B2 (en) 2016-02-24 2016-02-24 Customized query-action mappings for an offline grammar model
US15/051,778 2016-02-24
PCT/US2016/066619 WO2017146803A1 (en) 2016-02-24 2016-12-14 Facilitation of offline semantic processing in a resource-constrained device

Publications (2)

Publication Number Publication Date
KR20180112813A true KR20180112813A (ko) 2018-10-12
KR101938806B1 KR101938806B1 (ko) 2019-01-16

Family

ID=57794346

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187025726A KR101938806B1 (ko) 2016-02-24 2016-12-14 리소스 제한된 디바이스에서 오프라인의 시맨틱 처리의 간이화

Country Status (9)

Country Link
US (1) US9836527B2 (ko)
EP (1) EP3405885B1 (ko)
JP (1) JP6518020B1 (ko)
KR (1) KR101938806B1 (ko)
CN (1) CN107122154A (ko)
DE (2) DE202016008225U1 (ko)
GB (1) GB2547744B (ko)
RU (1) RU2685392C1 (ko)
WO (1) WO2017146803A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11232101B2 (en) * 2016-10-10 2022-01-25 Microsoft Technology Licensing, Llc Combo of language understanding and information retrieval
US10986002B1 (en) * 2017-11-03 2021-04-20 EMC IP Holding Company LLC Centralizing enterprise-specific information across cloud-based systems
US11170762B2 (en) 2018-01-04 2021-11-09 Google Llc Learning offline voice commands based on usage of online voice commands
US10678857B2 (en) 2018-03-23 2020-06-09 International Business Machines Corporation Managing a distributed knowledge graph
KR102611386B1 (ko) * 2018-06-27 2023-12-08 구글 엘엘씨 로컬 텍스트-응답 맵을 활용하여 사용자의 음성 발화에 대한 응답 렌더링
US11394627B1 (en) 2019-07-31 2022-07-19 Express Scripts Strategie Development, Inc. Systems and methods for monitoring inter-application communications in complex computing ecosystems
JP7029434B2 (ja) * 2019-10-23 2022-03-03 サウンドハウンド,インコーポレイテッド コンピュータによって実行される方法、サーバ装置、情報処理システム、プログラム、およびクライアント端末

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014106523A (ja) * 2012-11-30 2014-06-09 Aisin Aw Co Ltd 音声入力対応装置及び音声入力対応プログラム

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6601026B2 (en) 1999-09-17 2003-07-29 Discern Communications, Inc. Information retrieval by natural language querying
WO2001098942A2 (en) 2000-06-19 2001-12-27 Lernout & Hauspie Speech Products N.V. Package driven parsing using structure function grammar
EP1215661A1 (en) * 2000-12-14 2002-06-19 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Mobile terminal controllable by spoken utterances
US6751595B2 (en) 2001-05-09 2004-06-15 Bellsouth Intellectual Property Corporation Multi-stage large vocabulary speech recognition system and method
DE10147341B4 (de) 2001-09-26 2005-05-19 Voiceobjects Ag Verfahren und Vorrichtung zum Aufbau einer in einem Computersystem implementierten Dialogsteuerung aus Dialogobjekten sowie zugehöriges Computersystem zur Durchführung einer Dialogsteuerung
US20030191802A1 (en) * 2002-04-03 2003-10-09 Koninklijke Philips Electronics N.V. Reshaped UDDI for intranet use
US7197331B2 (en) 2002-12-30 2007-03-27 Motorola, Inc. Method and apparatus for selective distributed speech recognition
US7729913B1 (en) 2003-03-18 2010-06-01 A9.Com, Inc. Generation and selection of voice recognition grammars for conducting database searches
US20040224674A1 (en) * 2003-04-07 2004-11-11 O'farrell Robert System and method for context sensitive mobile data and software update
US7200559B2 (en) * 2003-05-29 2007-04-03 Microsoft Corporation Semantic object synchronous understanding implemented with speech application language tags
US7349845B2 (en) 2003-09-03 2008-03-25 International Business Machines Corporation Method and apparatus for dynamic modification of command weights in a natural language understanding system
KR100718147B1 (ko) 2005-02-01 2007-05-14 삼성전자주식회사 음성인식용 문법망 생성장치 및 방법과 이를 이용한 대화체음성인식장치 및 방법
US20070005579A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Query based synchronization
US7949529B2 (en) 2005-08-29 2011-05-24 Voicebox Technologies, Inc. Mobile systems and methods of supporting natural language human-machine interactions
US7822699B2 (en) * 2005-11-30 2010-10-26 Microsoft Corporation Adaptive semantic reasoning engine
US7818315B2 (en) * 2006-03-13 2010-10-19 Microsoft Corporation Re-ranking search results based on query log
US7689420B2 (en) 2006-04-06 2010-03-30 Microsoft Corporation Personalizing a context-free grammar using a dictation language model
US8949130B2 (en) 2007-03-07 2015-02-03 Vlingo Corporation Internal and external speech recognition use with a mobile communication facility
US8396713B2 (en) 2007-04-30 2013-03-12 Nuance Communications, Inc. Method and system for using a statistical language model and an action classifier in parallel with grammar for better handling of out-of-grammar utterances
US20090254512A1 (en) * 2008-04-03 2009-10-08 Yahoo! Inc. Ad matching by augmenting a search query with knowledge obtained through search engine results
US20090327224A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Automatic Classification of Search Engine Quality
WO2010051966A1 (en) * 2008-11-07 2010-05-14 Lingupedia Investments Sarl Method for semantic processing of natural language using graphical interlingua
TWI384378B (zh) * 2008-12-29 2013-02-01 Ind Tech Res Inst 網頁應用程式執行方法
US8515966B2 (en) * 2009-01-09 2013-08-20 Ebay Inc. Analyzing queries to generate product intention rules
US8392543B1 (en) * 2009-01-30 2013-03-05 Sprint Communications Company L.P. Synchronization of content change across multiple devices
US9172803B2 (en) 2009-08-23 2015-10-27 Aspect Software, Inc. System and method for integrating runtime usage statistics with developing environment
US9323843B2 (en) * 2010-04-07 2016-04-26 Yahoo! Inc. Method and system for performing bi-directional search
US8538915B2 (en) * 2010-07-12 2013-09-17 International Business Machines Corporation Unified numerical and semantic analytics system for decision support
US8954422B2 (en) * 2010-07-30 2015-02-10 Ebay Inc. Query suggestion for E-commerce sites
US8655881B2 (en) * 2010-09-16 2014-02-18 Alcatel Lucent Method and apparatus for automatically tagging content
US8364709B1 (en) * 2010-11-22 2013-01-29 Google Inc. Determining word boundary likelihoods in potentially incomplete text
US9679561B2 (en) 2011-03-28 2017-06-13 Nuance Communications, Inc. System and method for rapid customization of speech recognition models
US8626711B2 (en) * 2011-07-07 2014-01-07 Daniel Allan Mooney Systems, methods, and media for correlating objects according to relationships
US9135237B2 (en) * 2011-07-13 2015-09-15 Nuance Communications, Inc. System and a method for generating semantically similar sentences for building a robust SLM
US20130086024A1 (en) * 2011-09-29 2013-04-04 Microsoft Corporation Query Reformulation Using Post-Execution Results Analysis
CA2767676C (en) * 2012-02-08 2022-03-01 Ibm Canada Limited - Ibm Canada Limitee Attribution using semantic analysis
US8868587B1 (en) * 2012-05-04 2014-10-21 Google Inc. Determining correction of queries with potentially inaccurate terms
WO2013185109A2 (en) 2012-06-08 2013-12-12 Apple Inc. Systems and methods for recognizing textual identifiers within a plurality of words
US20130346403A1 (en) * 2012-06-25 2013-12-26 Google Inc. Signal based recommender
US8903838B2 (en) * 2012-10-29 2014-12-02 Dropbox, Inc. System and method for preventing duplicate file uploads in a synchronized content management system
US9594837B2 (en) * 2013-02-26 2017-03-14 Microsoft Technology Licensing, Llc Prediction and information retrieval for intrinsically diverse sessions
US9424354B2 (en) * 2013-03-15 2016-08-23 Microsoft Technology Licensing, Llc Providing crowdsourced answers to information needs presented by search engine and social networking application users
US9430465B2 (en) * 2013-05-13 2016-08-30 Facebook, Inc. Hybrid, offline/online speech translation system
US9460211B2 (en) * 2013-07-08 2016-10-04 Information Extraction Systems, Inc. Apparatus, system and method for a semantic editor and search engine
US9772994B2 (en) * 2013-07-25 2017-09-26 Intel Corporation Self-learning statistical natural language processing for automatic production of virtual personal assistants
DE102013219649A1 (de) * 2013-09-27 2015-04-02 Continental Automotive Gmbh Verfahren und System zum Erstellen oder Ergänzen eines benutzerspezifischen Sprachmodells in einem mit einem Endgerät verbindbaren lokalen Datenspeicher
US9218366B1 (en) * 2013-11-27 2015-12-22 Google Inc. Query image model
US9251224B2 (en) * 2014-03-04 2016-02-02 Google Inc. Triggering and ranking of native applications
US20160055203A1 (en) * 2014-08-22 2016-02-25 Microsoft Corporation Method for record selection to avoid negatively impacting latency
US10068008B2 (en) * 2014-08-28 2018-09-04 Microsoft Technologies Licensing, LLC Spelling correction of email queries
US9342707B1 (en) * 2014-11-06 2016-05-17 Sap Se Searchable encryption for infrequent queries in adjustable encrypted databases
US9760681B2 (en) * 2014-11-24 2017-09-12 Practice Fusion, Inc. Offline electronic health record management
JP6834118B2 (ja) * 2015-02-16 2021-02-24 富士通株式会社 端末装置、画面更新プログラム、画面更新方法及び情報処理システム
US10223437B2 (en) * 2015-02-27 2019-03-05 Oracle International Corporation Adaptive data repartitioning and adaptive data replication
US9922138B2 (en) 2015-05-27 2018-03-20 Google Llc Dynamically updatable offline grammar model for resource-constrained offline device
US10102482B2 (en) * 2015-08-07 2018-10-16 Google Llc Factorized models
US10146815B2 (en) * 2015-12-30 2018-12-04 Oath Inc. Query-goal-mission structures

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014106523A (ja) * 2012-11-30 2014-06-09 Aisin Aw Co Ltd 音声入力対応装置及び音声入力対応プログラム

Also Published As

Publication number Publication date
DE102016125823B4 (de) 2021-01-14
US9836527B2 (en) 2017-12-05
CN107122154A (zh) 2017-09-01
US20170242914A1 (en) 2017-08-24
GB2547744A (en) 2017-08-30
GB2547744B (en) 2019-08-14
WO2017146803A1 (en) 2017-08-31
DE202016008225U1 (de) 2017-05-16
KR101938806B1 (ko) 2019-01-16
EP3405885B1 (en) 2022-04-13
JP6518020B1 (ja) 2019-05-22
JP2019516150A (ja) 2019-06-13
DE102016125823A1 (de) 2017-08-24
GB201621095D0 (en) 2017-01-25
RU2685392C1 (ru) 2019-04-17
EP3405885A1 (en) 2018-11-28

Similar Documents

Publication Publication Date Title
KR101938806B1 (ko) 리소스 제한된 디바이스에서 오프라인의 시맨틱 처리의 간이화
US11676606B2 (en) Context-sensitive dynamic update of voice to text model in a voice-enabled electronic device
US10552489B2 (en) Dynamically updatable offline grammar model for resource-constrained offline device
KR102112814B1 (ko) 다이얼로그 시스템들에서의 파라미터 수집 및 자동 다이얼로그 생성
JP6827479B2 (ja) パーソナルアシスタントモジュールによる非決定的なタスク開始
KR102043365B1 (ko) 음성 인식 전자 디바이스에서 선택적으로 오프라인으로 실행가능한 음성 액션을 위한 데이터의 로컬 유지
KR20230169052A (ko) 복수의 지능형 개인 비서 서비스를 위한 관리 계층
CN102292766B (zh) 用于语音处理的方法和装置
JP2022548064A (ja) 動的なコンテキスト対話セッション延長

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant