KR101649771B1 - 발성 처리를 위한 인식기들의 마크업 언어 기반 선택 및 이용 - Google Patents

발성 처리를 위한 인식기들의 마크업 언어 기반 선택 및 이용 Download PDF

Info

Publication number
KR101649771B1
KR101649771B1 KR1020117016517A KR20117016517A KR101649771B1 KR 101649771 B1 KR101649771 B1 KR 101649771B1 KR 1020117016517 A KR1020117016517 A KR 1020117016517A KR 20117016517 A KR20117016517 A KR 20117016517A KR 101649771 B1 KR101649771 B1 KR 101649771B1
Authority
KR
South Korea
Prior art keywords
markup language
recognizer
recognizers
language document
utterance
Prior art date
Application number
KR1020117016517A
Other languages
English (en)
Other versions
KR20110117086A (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 KR20110117086A publication Critical patent/KR20110117086A/ko
Application granted granted Critical
Publication of KR101649771B1 publication Critical patent/KR101649771B1/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
    • G10L15/32Multiple recognisers used in sequence or in parallel; Score combination systems therefor, e.g. voting systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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

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)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

마크업 언어 문서에 기초하여 발성을 처리하기 위한 다수의 인식기를 선택하고 이용하기 위한 실시예들이 제공된다. 마크업 언어 문서 및 발성이 컴퓨팅 장치에서 수신된다. 마크업 언어 문서 내의 마크업 언어에 기초하여 발성에 대한 결과들의 세트를 리턴하기 위한 다수의 인식기로부터 하나 이상의 인식기가 선택될 수 있다. 결과 세트는 마크업 언어 문서에서 지정되는 처리 방법에 의해 결정되는 포맷으로 선택된 인식기 또는 인식기들로부터 수신된다. 이어서, 결과 세트의 수신에 응답하여, 컴퓨팅 장치 상에서 이벤트가 실행된다.

Description

발성 처리를 위한 인식기들의 마크업 언어 기반 선택 및 이용{MARKUP LANGUAGE-BASED SELECTION AND UTILIZATION OF RECOGNIZERS FOR UTTERANCE PROCESSING}
<저작권 공시>
본 특허 문헌의 명세서의 일부는 저작권 보호를 받는 내용을 포함한다. 저작권 소유자는 특허 문헌 또는 특허 명세서가 특허청의 파일 또는 레코드들에 게재될 때 어느 누군가에 의한 특허 문헌 또는 특허 명세서의 팩시밀리 재생에 대해 반대하지 않지만, 그 외에는 모든 저작권을 유보한다.
이동 컴퓨팅 장치들은 음성 인식 기술을 이용하여, 다이얼링 및 정보 쿼리들과 같은 다양한 음성 활성화 기능들을 수행한다. 이동 컴퓨팅 장치들의 저장 한계들로 인해, 포괄적인 음성 인식을 수행하기 위해서는, (간단한 명령들 및 간단한 쿼리들을 처리하기 위한) 로컬 또는 장치 기반 인식기들 및 (온라인 서비스들에 대한 액세스를 요구하는 것들과 같은 더 복잡한 쿼리들을 처리하기 위한) 네트워크 인식기들을 포함하는 다수의 "인식기"가 필요할 수 있다. 그러나, 현재의 이동 컴퓨팅 장치들은 단일 인식기만을 이용하거나, 결과들의 처리를 위해 결과들이 네트워크 인식기로 급송되기 전에 로컬 인식기에 의해 처리되어야 하는 직렬 방식으로 로컬 및 네트워크 인식기들을 이용하여 쿼리들을 처리하는 것으로 제한된다. 로컬 인식기만을 이용하는 것과 관련된 단점은 결과들이 (저장 한계들로 인해) 간단한 명령 및 제어 요청들로 제한된다는 점이다. 네트워크 인식기만을 이용하는 것과 관련된 단점은 간단한 명령 및 제어 요청들에 대한 결과들을 수신하기 위한 과다한 지연이다. 로컬 및 네트워크 인식기들을 직렬 방식으로 이용하는 것과 관련된 단점은 로컬 인식기가 충분한 결과 처리를 제공할 수 없는 경우에도 로컬 인식기가 네트워크 인식기보다 먼저 사용되어야 한다는 것이다. 본 발명의 다양한 실시예들은 이들 및 다른 단점들을 고려하여 이루어졌다.
본 요약은 아래의 상세한 설명에 더 설명되는 개념들의 발췌를 간단한 형태로 소개하기 위해 제공된다. 본 요약은 청구 발명의 중요한 특징들 또는 본질적인 특징들을 식별하고자 하는 의도도 없고, 청구 발명의 범위를 결정하는 데 있어서의 보조물로서도 의도하지 않는다.
마크업 언어 문서에 기초하여 발성을 처리하기 위한 다수의 인식기를 선택하고 이용하기 위한 실시예들이 제공된다. 마크업 언어 문서 및 발성이 컴퓨팅 장치에서 수신된다. 마크업 언어 문서 내의 마크업 언어에 기초하여 발성에 대한 결과들의 세트를 리턴하기 위한 다수의 인식기로부터 하나 이상의 인식기가 선택될 수 있다. 결과 세트는 마크업 언어 문서에서 지정되는 처리 방법에 의해 결정되는 포맷으로 선택된 인식기 또는 인식기들로부터 수신된다. 이어서, 결과 세트의 수신에 응답하여, 컴퓨팅 장치 상에서 이벤트가 실행된다.
이들 및 다른 특징들 및 이점들은 아래의 상세한 설명을 읽고 관련 도면들을 검토함으로써 명백할 것이다. 위의 일반 설명 및 아래의 상세한 설명 모두는 예시적일 뿐, 청구 발명을 한정하지 않는다는 것을 이해해야 한다.
도 1은 다양한 실시예에 따른, 마크업 언어 문서에 기초하여 발성을 처리하기 위해 다수의 인식기를 선택 및 이용하기 위한 네트워크 아키텍처의 블록도이다.
도 2는 다양한 실시예에 따른, 마크업 언어 문서에 기초하여 발성을 처리하기 위해 다수의 인식기를 선택 및 이용하는 데 사용될 수 있는 클라이언트 컴퓨팅 환경의 블록도이다.
도 3은 다양한 실시예에 따른, 마크업 언어 문서에 기초하여 발성을 처리하기 위해 다수의 인식기를 선택 및 이용하기 위한 루틴의 흐름도이다.
도 4는 다양한 실시예에 따른, 마크업 언어 문서에 기초하여 발성을 처리하기 위해 갱신된 인식기를 이용하기 위한 루틴의 흐름도이다.
도 5는 다양한 실시예에 따른, 발성을 처리하고, 발성에 대한 결과 세트들을 처리하기 위한 다수의 인식기 중에서 선택하는 데 사용될 수 있는 태그들을 포함하는 마크업 언어 문서의 도면이다.
마크업 언어 문서에 기초하여 발성을 처리하기 위한 다수의 인식기를 선택하고 이용하기 위한 실시예들이 제공된다. 마크업 언어 문서 및 발성이 컴퓨팅 장치에서 수신된다. 마크업 언어 문서 내의 마크업 언어에 기초하여 발성에 대한 결과들의 세트를 리턴하기 위한 다수의 인식기로부터 하나 이상의 인식기가 선택될 수 있다. 결과 세트는 마크업 언어 문서에서 지정되는 처리 방법에 의해 결정되는 포맷으로 선택된 인식기 또는 인식기들로부터 수신된다. 이어서, 결과 세트의 수신에 응답하여, 컴퓨팅 장치 상에서 이벤트가 실행된다.
아래의 상세한 설명에서는, 그 일부를 형성하고, 특정 실시예들 또는 예들을 예시적으로 도시하는 첨부 도면들을 참조한다. 이러한 실시예들은 결합될 수 있고, 다른 실시예들이 이용될 수 있으며, 본 발명의 사상 또는 범위로부터 벗어나지 않고 구조적인 변경들이 이루어질 수 있다. 따라서, 아래의 상세한 설명은 제한적인 의미로 간주되지 않아야 하며, 본 발명의 범위는 첨부된 청구항들 및 이들의 균등물들에 의해 정의된다.
이제, 여러 도면들을 통해 동일한 번호들이 동일한 요소들을 지시하는 도면들을 참조하여, 본 발명의 다양한 양태들이 설명된다. 도 1은 다양한 실시예에 따른, 마크업 언어 문서에 기초하여 발성을 처리하기 위해 다수의 인식기를 선택 및 이용하기 위한 네트워크 아키텍처의 블록도이다. 네트워크 아키텍처는 네트워크(4)를 통해 네트워크 서버(70)와 통신하는 클라이언트 컴퓨팅 장치(2)를 포함한다. 클라이언트 컴퓨팅 장치(2)는 음성 인식 서버 애플리케이션(30), 이벤트 핸들러 애플리케이션(38), 인식기(40), 발성(42), 마크업 언어 문서(44), 결과 세트들(46), 장치 인터페이스 애플리케이션들(50) 및 동기화 서비스 애플리케이션들(60)을 포함할 수 있다. 다양한 실시예들에 따르면, 인식기(40)는 하나 이상의 인식기를 포함할 수 있다는 것을 이해해야 한다. 다양한 실시예에 따르면, 클라이언트 컴퓨팅 장치(2)는 랩탑 컴퓨터, "스마트폰"(즉, 컴퓨터 기능을 갖고, 그리고/또는 애플리케이션 개발자들을 위한 표준화된 인터페이스 및 플랫폼을 제공하기 위한 운영 체제 소프트웨어를 실행할 수 있는 이동 전화) 및 자동차 기반 컴퓨팅 장치를 포함하지만, 이에 제한되지 않는, 하나 이상의 애플리케이션 프로그램을 실행할 수 있는 이동 또는 휴대용 컴퓨터 또는 다른 유형의 컴퓨터를 포함할 수 있다.
클라이언트 컴퓨팅 장치(2) 내의 음성 인식 서버 애플리케이션들(30)은 검색 엔진들(예컨대, 비즈니스 검색, 주가 검색, 스포츠 스코어, 영화 시각, 기상 데이터, 점성(horoscope), 문서 검색), 네비게이션, 음성 활성화 다이얼링("VAD"), (예컨대, 라디오의 턴온 또는 턴오프, 순항 제어 기능 활성화, 온도 제어, 비디오 디스플레이 기능 제어, "DVD" 재생을 위한) 자동차 기반 소프트웨어, 장치 제어 기능들(예컨대, 클라이언트 컴퓨팅 장치(2)의 턴오프, 노트 레코딩, 파일들의 삭제/생성/이동), 메시징(예컨대, 텍스트 및 MMS), 미디어(예컨대, 사진 촬영) 및 콘텐츠를 포함하지만 이에 제한되지 않는 음성 인식을 이용할 수 있는 다양한 생산성 소프트웨어 애플리케이션들을 포함할 수 있다. (도 2-3의 설명에서 더 상세히 설명되는) 다양한 실시예에 따르면, 이벤트 핸들러 애플리케이션(38)은 클라이언트 컴퓨팅 장치(2)로부터 발성(42)을 수신하고, 문법에 대해 발성(42)을 처리하는 데 사용될 수 있다. 발성(42)은 클라이언트 컴퓨팅 장치(2) 상의 음성 인식 서비스 애플리케이션들(30)의 사용자에 의한 (어드레스 북으로부터 콘택을 다이얼링하는 것과 같은) 명령 또는 정보에 대한 쿼리를 포함할 수 있다는 것을 알 것이다. 이벤트 핸들러 애플리케이션(38)은 발성(42)에서 사용된 문법에 기초하여 인식기(즉, 인식기(40) 또는 인식기(72))를 지정하는 태그들에 대해 마크업 언어 문서(44)를 분석하고, 발성(42)에 응답하여 하나 이상의 결과들(즉, 하나 이상의 결과 세트들(46) 또는 결과 세트들(76))을 리턴하는 데에도 사용될 수 있다. 일 실시예에 따르면, 인식기(40)는 발성(42)에 대한 결과들을 처리하기 위해 클라이언트 컴퓨팅 장치(2) 상에서 실행될 수 있는 개별 애플리케이션을 포함할 수 있다. 다른 실시예에 따르면, 인식기(40)는 클라이언트 컴퓨팅 장치(2)의 운영 체제에 내장될 수 있다.
클라이언트 컴퓨팅 장치(2) 내의 장치 인터페이스 애플리케이션들(50)은 사용자 인터페이스 생성, 네트워킹, 오디오 캡처, 음성 인식, 오디오 재생, 카메라, 어드레스 북 및 글로벌 포지셔닝 시스템("GPS") 기능들을 포함하지만 이에 제한되지 않는 클라이언트 컴퓨팅 장치(2)에 의해 수행될 수 있는 다양한 기능들에 대한 애플리케이션 프로그램 인터페이스들("APIs")을 포함할 수 있다. 클라이언트 컴퓨팅 장치(2) 내의 동기화 서비스 애플리케이션(60)은 클라이언트 컴퓨팅 장치(2)와 네트워크 서버(70)의 동기화를 용이하게 한다.
클라이언트 컴퓨팅 장치(2)는 근거리 네트워크 또는 광역 네트워크(예컨대, 인터넷)를 포함할 수 있는 네트워크(4)를 통해 네트워크 서버(70)와 통신할 수 있다. 네트워크 서버(70)는 인식기(72), 마크업 언어 문서(74) 및 결과 세트들(76)을 포함할 수 있다. 다양한 실시예에 따르면, 인식기(72)는 하나 이상의 인식기를 포함할 수 있다는 것을 이해해야 한다. 일 실시예에 따르면, 네트워크 서버(70)는 클라이언트 컴퓨팅 장치(2)로부터 발성(42)을 수신하고, (이벤트 핸들러 애플리케이션(38)으로부터의 요청에 응답하여) 인식기(72)를 이용하여, 발성(42)에 응답하여 결과 세트들(76)을 결정하고 이들을 클라이언트 컴퓨팅 장치(2)로 리턴하기 위해 데이터 센터 내의 복수의 컴퓨팅 장치를 포함할 수 있다.
다양한 실시예에 따르면, 그리고 도 4와 관련하여 아래에 더 상세히 설명되는 바와 같이, 마크업 언어 문서(74)는 마크업 언어 문서(44)의 버전을 포함할 수 있다. 이벤트 핸들러 애플리케이션(38)은 클라이언트 컴퓨팅 장치(2) 상의 마크업 언어 문서(44)와 마크업 언어 문서(74)를 비교하도록 구성될 수 있으며, 마크업 언어 문서(74)가 갱신 버전인 경우(예컨대, 마크업 언어 문서(74)는 인식기(40)에 의해 사용될 수 있는 새로운 추가된 특징들을 처리하기 위한 추가적인 마크업 언어를 포함할 수 있는 경우), 마크업 언어 문서(44)는 추가적인 마크업 언어를 갖도록 갱신된다.
네트워크 서버(70)를 구성하는 복수의 컴퓨팅 장치(도시되지 않음)는 애플리케이션 게이트웨이, 애플리케이션 서버, 동기화 게이트웨이 및 인식 POD 또는 복제 장치를 포함할 수 있지만, 이에 제한되는 것은 아니다. 네트워크 서버(70)를 구성하는 복수의 컴퓨팅 장치와 클라이언트 컴퓨팅 장치(2) 사이의 통신은 다수의 네트워크 프로토콜의 이용을 통해 촉진될 수 있다는 것을 이 분야의 기술자들은 알아야 한다. 예컨대, 클라이언트 컴퓨팅 장치(2)와 애플리케이션 게이트웨이 사이의 보안 데이터 통신은 전송 제어 프로토콜("TCP") 및 보안 소켓 계층 프로토콜을 통한 하이퍼텍스트 전송 프로토콜("HTTPS")의 이용을 통해 촉진될 수 있다. 애플리케이션 게이트웨이, 애플리케이션 서버 및 인식 POD 사이의 통신은 하이퍼텍스트 전송 프로토콜("HTTP")의 이용을 통해 촉진될 수 있다. 전술한 프로토콜들은 이 분야의 기술자들에게 공지되어 있으며, 따라서 여기서는 더 설명되지 않는다. 일 실시예에 따르면, 네트워크 서버(70)에 의해 수신된 발성(42) 및 결과 세트들(76)은 (예컨대, 인식 POD 및 애플리케이션 서버로 전송되기 전에 애플리케이션 게이트웨이에 의해) (오디오와 함께) HTTP POST 방법을 이용하여 처리될 수 있다. 네트워크 서버(70)는 결과 세트들(76)을 클라이언트 컴퓨팅 장치(2)로 전송하기 전에 (예컨대, 애플리케이션 서버를 통해) 결과 세트들(76)을 마크업 언어 문서(즉, 마크업 언어 문서들(44, 74)과 무관한 마크업 언어 문서)로 변환할 수도 있다(이 실시예에 따르면, 이벤트 핸들러 애플리케이션(38)은 결과 세트들(76)을 포함하는 마크업 언어 문서를 처리하기 위한 마크업 언어 해석기(도시되지 않음)를 포함할 수 있다). 일 실시예에 따르면, 결과 세트들(76)은 클라이언트 컴퓨팅 장치(2)로 전송되기 전에 하나 이상의 압축 방법을 이용하여 압축될 수 있다. 다양한 실시예에서 이용될 수 있는 압축 방법들의 예는 공지된 무선 애플리케이션 프로토콜 이진 확장 가능 마크업 언어("WBXML") 및 GNU zip("GZIP") 압축 방법들이다.
예시적인 운영 환경
이제, 도 2를 참조하면, 아래의 설명은 다양한 예시적인 실시예들을 구현할 수 있는 적절한 컴퓨팅 환경의 간단한 일반 설명을 제공하는 것을 의도한다. 다양한 실시예들이 컴퓨팅 장치 상의 운영 체제 상에서 실행되는 프로그램 모듈과 관련하여 실행되는 프로그램 모듈과 일반적으로 관련하여 설명되지만, 이 분야의 기술자들은 다양한 실시예들이 다른 유형의 컴퓨터 시스템들 및 프로그램 모듈들과 연계하여 구현될 수도 있다는 것을 인식할 것이다.
일반적으로, 프로그램 모듈들은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조 및 다른 유형의 구조를 포함한다. 더욱이, 이 분야의 기술자들은 다양한 실시예들이 핸드-헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램가능한 가전제품, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다양한 컴퓨터 시스템 구성을 이용하여 실시될 수 있다는 것을 알 것이다. 다양한 실시예들은 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서도 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘다에 위치할 수 있다.
도 2는 랩탑 컴퓨터, "스마트폰"(즉, 컴퓨터 기능을 갖고, 그리고/또는 애플리케이션 개발자들을 위한 표준화된 인터페이스 및 플랫폼을 제공하기 위한 운영 체제 소프트웨어를 실행할 수 있는 이동 전화) 및 자동차 기반 컴퓨팅 장치를 포함하지만, 이에 제한되지 않는, 하나 이상의 애플리케이션 프로그램을 실행할 수 있는 이동 또는 휴대용 컴퓨터 또는 다른 유형의 컴퓨터를 포함할 수 있는 클라이언트 컴퓨팅 장치(2)를 나타낸다. 클라이언트 컴퓨팅 장치(2)는 적어도 하나의 중앙 처리 장치(8)("CPU"), 랜덤 액세스 메모리(18)("RAM") 및 판독 전용 메모리("ROM")(20)를 포함하는 시스템 메모리(12), 및 메모리를 CPU(8)에 결합하는 시스템 버스(10)를 포함한다. 시동 중과 같은 때에, 컴퓨터 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템이 ROM(20)에 저장되어 있다.
클라이언트 컴퓨팅 장치(2)는 운영 체제(32), 음성 인식 서비스 애플리케이션(30), 이벤트 핸들러 애플리케이션(38), 인식기(40), 발성(42), 마크업 언어 문서(44), 결과 세트들(46), 장치 인터페이스 애플리케이션들(50) 및 동기화 애플리케이션들(60)을 저장하기 위한 대용량 저장 장치(14)를 더 포함한다. 대용량 저장 장치(14) 상에 상주하는 소프트웨어로서 구현되는 것에 더하여, 인식기(40)는 완전히 하드웨어로서 구현될 수도 있다는 것을 이 분야의 기술자들은 알 것이다. 예컨대, 인식기(40)는 음성 분석, 인식 프로세스 및 시스템 제어 기능들을 갖는 단일 칩 CMOS 음성 인식 LSI 회로로서 구현될 수 있다.
다양한 실시예에 따르면, 운영 체제(32)는 워싱턴, 레드몬드의 마이크로소프트사의 윈도 운영 체제들과 같이 네트워크화된 퍼스널 컴퓨터의 동작을 제어하는 데 적합할 수 있다. 대용량 저장 장치(14)는 버스(10)에 접속된 대용량 저장 장치 컨트롤러(도시되지 않음)를 통해 CPU(8)에 접속된다. 대용량 저장 장치(14) 및 그와 관련된 컴퓨터 판독가능 매체들은 클라이언트 컴퓨팅 장치(2)에 대한 비휘발성 저장을 제공한다. 여기에 포함된 컴퓨터 판독가능 매체들의 설명이 하드 디스크 또는 CD-ROM 드라이브와 같은 대용량 저장 장치를 참조하지만, 컴퓨터 판독가능 매체들은 클라이언트 컴퓨팅 장치(2)에 의해 액세스 또는 이용될 수 있는 임의의 이용 가능한 매체들일 수 있다는 것을 이 분야의 기술자들은 알아야 한다. 예를 들어, 컴퓨터 판독가능 매체들은 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만, 이에 제한되는 것은 아니다.
컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 물리적 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 하드웨어 저장 매체들을 포함한다. 컴퓨터 저장 매체들은 RAM, ROM, EPROM, EEPROM, 플래시 메모리 또는 다른 반도체 메모리 기술, CD-ROM, "DVD"(digital versatile disk) 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치를 포함하지만 이에 제한되지 않으며, 이들은 원하는 정보를 저장하는 데 사용될 수 있고, 클라이언트 컴퓨팅 장치(2)에 의해 액세스될 수 있다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터를 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하는 것과 같은 방식으로 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선 및 기타 무선 매체와 같은 무선 매체를 포함하지만, 이에 제한되는 것은 아니다. 위의 임의 것들의 조합들도 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다. 컴퓨터 판독가능 매체들은 컴퓨터 프로그램 제품으로도 지칭될 수 있다.
본 발명의 다양한 실시예에 따르면, 클라이언트 컴퓨팅 장치(2)는 전술한 바와 같이 근거리 네트워크 또는 광역 네트워크(예컨대, 인터넷)를 포함할 수 있는 네트워크(4)를 통한 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 클라이언트 컴퓨팅 장치(2)는 버스(10)에 접속된 네트워크 인터페이스 유닛(16)을 통해 네트워크(4)에 접속할 수 있다. 네트워크 인터페이스 유닛(16)은 다른 유형의 네트워크들 및 원격 컴퓨팅 시스템들에 접속하는 데에도 이용될 수 있다는 것을 알아야 한다. 클라이언트 컴퓨팅 장치(2)는 마이크(80)는 물론, 키보드, 마우스, 펜, 스타일러스, 손가락 및/또는 다른 수단들(도시되지 않음)을 포함하는 다양한 입력 유형들로부터의 입력을 수신하고 처리하기 위한 입출력 컨트롤러(22)도 포함할 수 있다. 유사하게, 입출력 컨트롤러(22)는 디스플레이 장치(82)는 물론, 프린터 또는 다른 유형의 출력 장치(도시되지 않음)에 출력을 제공할 수 있다.
도 3은 다양한 실시예에 따른, 마크업 언어 문서에 기초하여 발성을 처리하기 위해 다수의 인식기를 선택 및 이용하기 위한 루틴(300)을 나타내는 흐름도이다. 여기에 제공되는 루틴들의 설명을 읽을 때, 본 발명의 다양한 실시예들의 논리적 동작들은 (1) 컴퓨팅 시스템 상에서 실행되는 컴퓨터 구현 액트들(acts) 또는 프로그램 모듈들의 시퀀스로서 그리고/또는 (2) 컴퓨팅 시스템 내의 상호접속된 기계 논리 회로들 또는 회로 모듈들로서 구현된다는 것을 알아야 한다. 이러한 구현은 본 발명을 구현하는 컴퓨팅 시스템의 성능 요구들에 의존하는 선택의 문제이다. 따라서, 도 3-4에 도시되고, 여기에 설명되는 다양한 실시예들을 구성하는 논리적 동작들은 동작들, 구조적 장치들, 액트들 또는 모듈들로서 다양하게 지칭된다. 이러한 동작들, 구조적 장치들, 액트들 및 모듈들은 여기에 설명되는 청구항들 내에 기재된 바와 같은 본 발명의 사상 및 범위로부터 벗어나지 않고 소프트웨어, 펌웨어, 특수 목적 디지털 논리 및 이들의 임의 조합으로 구현될 수 있다는 것을 이 분야의 기술자는 인식할 것이다.
루틴(300)은 동작 305에서 시작하여, 클라이언트 컴퓨팅 장치(2)에 의해 마크업 언어 문서(예컨대, 마크업 언어 문서(44))가 수신된다. 일 실시예에서, 마크업 언어 문서는 이벤트 핸들러 애플리케이션(38)에 의해 네트워크 서버(70)에 대해 행해진 요청을 통해 수신될 수 있다.
동작 305로부터 루틴(300)은 동작 307로 계속되어, 이벤트 핸들러 애플리케이션(38)은 수신된 마크업 언어 문서(44)에서 지정된 임의의 인식기들이 갱신되었는지를 결정한다. 갱신된 인식기들을 결정하기 위한 루틴은 아래의 도 4의 설명에서 더 상세히 설명된다.
동작 307로부터 루틴(300)은 동작 310으로 계속되어, 클라이언트 컴퓨팅 장치(2) 상에서 실행되는 이벤트 핸들러 애플리케이션(38)은 사용자로부터 발성(예컨대, 발성(42))을 스트림으로서 수신하기 시작한다. 다양한 실시예에 따르면, 사용자로부터 전체 발성(42)이 수신될 필요는 없다는 것을 이해해야 한다. 구체적으로, 사용자가 클라이언트 컴퓨팅 장치(2) 안으로 이야기할 때 문법 인식을 위해 발성(42)이 이벤트 핸들러 애플리케이션(38)으로 스트리밍될 수 있다. 예컨대, 클라이언트 컴퓨팅 장치(2)의 사용은 이벤트 핸들러 애플리케이션(38)과 연계하여 음성 인식 서비스 애플리케이션들(40) 중 하나 이상을 사용하여, (도 2에 도시된) 마이크(80) 내로 이야기함으로써 음성 활성화 다이얼링을 통한 통화의 콘택에 대한 쿼리 또는 비즈니스 기업의 위치, 교통 정보, 방향, 기상 정보 또는 영화 정보에 대한 쿼리를 포함하는 발성을 행할 수 있다.
동작 310으로부터 루틴(300)은 동작 315로 계속되어, 이벤트 핸들러 애플리케이션(38)은 동작 310에서 수신된 발성(42)에서 사용된 문법을 인식한다. 구체적으로, 이벤트 핸들러 애플리케이션(38)은 음성 처리를 수행하여 발성에서 이야기된 문법(즉, 단어들)을 인식하도록 구성될 수 있다. 일 실시예에 따르면, 이벤트 핸들러 애플리케이션(38)은 인식된 문법을 마크업 언어 문서(44)와 연계하여 사용하여, 발성에 대한 결과들을 제공하기 위한 인식기(즉, 로컬 또는 네트워크 인식기)를 결정할 수 있다.
동작 315로부터 루틴(300)은 동작 320으로 계속되어, 이벤트 핸들러 애플리케이션(38)은 동작 315에서 인식된 문법에 기초하여 발성을 처리하기 위한 인식기를 식별하는 마크업 언어 태그에 대해 마크업 언어 문서(44)를 분석한다. 구체적으로, 이벤트 핸들러 애플리케이션(38)은 동작 315에서 발성(42)으로부터 인식된 문법과 비교하기 위한 저장된 문법을 검색할 로컬 또는 네트워크를 (예컨대, 유니버설 리소스 로케이터("URL")를 통해) 식별할 수 있는 <grammar> 마크업 언어 태그에 대해 마크업 언어 문서(44) 내의 마크업 언어를 분석하도록 구성될 수 있다.
동작 320으로부터 루틴(300)은 동작 325로 계속되어, 이벤트 핸들러 애플리케이션(38)은 마크업 언어 문서(44) 내의 마크업 언어 태그에 의해 식별되는 로컬 인식기(즉, 인식기(40)) 또는 네트워크 인식기(즉, 인식기(72))를 선택한다. 구체적으로, 이벤트 핸들러 애플리케이션(38)은 수신된 발성(42)에 대한 결과들을 리턴하기 위한 문법과 관련된 인식기를 선택할 수 있다. 예컨대, 발성(42)이 클라이언트 컴퓨팅 장치(2) 상에 저장된 어드레스 북에 포함된 콘택의 음성 활성화 다이얼링에 대한 요청을 포함하는 경우, 이벤트 핸들러 애플리케이션(38)은 클라이언트 컴퓨팅 장치(2)에 대한 어드레스 북 콘택들을 포함하는 문법과 관련된 것으로서 마크업 언어 문서(44)에서 식별되는 (로컬) 인식기(40)를 선택할 수 있다. 한편, 발성(42)이 로컬 비즈니스 검색에 대한 요청을 포함하는 경우, 이벤트 핸들러 애플리케이션(38)은 네트워크 서버(70)로부터 원격 웹 검색 엔진으로의 쿼리를 통해 검색될 수 있는 비즈니스 검색 정보를 포함하는 문법과 관련된 것으로서 마크업 언어 문서(44)에서 식별되는 (네트워크) 인식기(72)를 선택할 수 있다.
동작 325로부터 루틴(300)은 동작 330으로 계속되어, 이벤트 핸들러 애플리케이션(38)은 발성(42)을 선택된 인식기(예컨대, 인식기(40) 또는 인식기(72))로 전송 또는 스트리밍한다. 발성(42)이 선택된 인식기에 의해 수신되면, 발성은 결과들을 위해 처리될 수 있다.
동작 330으로부터 루틴(300)은 동작 335로 계속되어, 이벤트 핸들러 애플리케이션(38)은 마크업 언어 문서(44)에서 지정되는 포맷에 따라 선택된 인식기로부터 하나 이상의 결과 세트들을 수신한다. 구체적으로, 인식기들(40, 72)은 다양한 실시예들에 따라 발성(42)에 대한 결과 세트들을 미처리된 또는 "미가공된" 포맷 또는 처리된 포맷으로 리턴하도록 구성될 수 있다. 미처리 인식기 결과들은 인식기(40) 또는 인식기(72)에 의한 발성(42)의 음성 인식을 포함하는 하나 이상의 용어를 포함할 수 있다. 한편, 처리된 인식기 결과들은 발성(42)과 관련된 하나 이상의 용어의 음성 인식을 포함할 수 있다. 예컨대, 용어 "coffee"를 포함하는 발성에 대한 미처리 결과들은 발성에 대한 음성 인식의 정확도를 지시하는 인식기에 의해 할당된 신뢰도 스코어(예컨대, 80%)와 함께 용어 커피를 포함할 수 있다. 한편, 용어 "coffee"를 포함하는 발성에 대한 처리된 결과들은 커피를 판매하는 로컬 비즈니스의 명칭들 및 주소들을 포함하는 비즈니스 검색 결과들을 포함할 수 있다. 마크업 언어 문서(44)는 발성에 대한 결과 세트들이 리턴되는 포맷을 식별하는 마크업 언어 태그들을 포함할 수 있다.
동작 335로부터 루틴(300)은 동작 340으로 계속되어, 이벤트 핸들러 애플리케이션(38)은 선택된 인식기로부터 하나 이상의 결과 세트를 수신하는 것에 응답하여 이벤트를 실행한다. 이벤트는 하나 이상의 결과 세트를 클라이언트 컴퓨팅 장치(2)의 사용자에게 (예를 들어, 디스플레이 장치(82) 상에) 표시하는 것, 결과 세트에 기초하여 음성 활성화 다이얼링 기능을 수행하는 것, 결과 세트를 무시하는 것, 및 클라이언트 컴퓨팅 장치(2) 상의 표시를 위해 결과 세트를 이전에 수신된 결과 세트들과 조합하는 것을 포함하지만 이에 제한되지 않는 다수의 액션들을 포함할 수 있다. 일 실시예에 따르면, 각각의 태브(tab)가 결과 세트와 연관되는 태브된 사용자 인터페이스(도시되지 않음)에 다수의 결과 세트가 표시될 수 있다. 사용자 인터페이스는 각각의 결과 세트와 관련된 표시된 카테고리들을 갖는 드릴다운 리스트 또는 결과 유형에 의해 분류된 리스트도 포함할 수 있다. 이벤트 핸들러 애플리케이션(38)은 결과 세트 내의 결과들의 수, 결과 세트에 대한 신뢰도 스코어, 결과 세트에 대한 리턴 코드(예컨대, 리턴 코드는 네트워크 서버(70)가 다운되었음을 지시하는 에러 코드를 포함할 수 있다) 및 결과 세트에 대한 소정의(즉, 사전 결정된) 값들의 존재를 포함하지만 이에 제한되지 않는 다양한 기준에 기초하여 수신된 결과들을 어떻게 처리할지(즉, 어떠한 액션을 취할지)를 결정하도록 구성될 수 있다. 예컨대, 이벤트 핸들러 애플리케이션(38)은 발성 인식의 신뢰도 스코어가 낮은 경우에(예컨대, 50% 보다 낮은) 결과 세트를 무시할 수 있으며, 따라서 결과 세트가 클라이언트 컴퓨팅 장치(2)의 사용자에게 표시되는 것을 방지할 수 있다. 다른 예로서, 이벤트 핸들러 애플리케이션(38)은 결과들을 처리하기 위한 서버가 다운된 것을 지시하는 결과 세트에 대한 리턴 코드를 수신하는 것에 응답하여 에러 다이얼로그를 생성하고, 이를 클라이언트 컴퓨팅 장치(2)의 사용자에게 표시할 수 있다. 또 다른 예로서, 이벤트 핸들러 애플리케이션(38)은 결과 세트와 함께 리턴되는 사전 결정된 값들을 처리할 수 있으며, 이러한 값들은 회사 로고 또는 광고와 함께 결과 세트를 표시하는 것과 같은 사용자에 대한 결과들의 표시를 나타낸다. 이어서, 동작 340으로부터 루틴(300)이 종료된다.
도 4는 다양한 실시예에 따른, 마크업 언어 문서에 기초하여 발성을 처리하기 위해 갱신된 인식기를 이용하기 위한 루틴(400)을 나타내는 흐름도이다. (전술한) 도 3의 동작 305로부터, 루틴(400)은 동작 405에서 시작하여, 이벤트 핸들러 애플리케이션(38)은 (로컬) 인식기(40)에 대한 버전 데이터를 클라이언트 컴퓨팅 장치(2)로부터 네트워크 서버(70)로 전송한다. 도 1의 설명에서 전술한 바와 같이, 인식기(40)는 클라이언트 컴퓨팅 장치(2)의 운영 체제(즉, 운영 체제(32)) 내에 위치할 수 있다. 인식기가 운영 체제에 내장될 때, 이벤트 핸들러 애플리케이션(38)은 운영 체제의 버전을 네트워크 서버(70)로 전송하도록 구성될 수 있다는 것을 알 것이다.
동작 405로부터 루틴(400)은 동작 410으로 계속되어, 이벤트 핸들러 애플리케이션(38)은 버전 데이터에 기초하여 클라이언트 컴퓨팅 장치(2) 상에서 인식기(40)가 갱신되었는지를 결정한다. 예컨대, 내장된 인식기의 경우, 인식기(40)는 클라이언트 컴퓨팅 장치(2) 상의 운영 체제의 갱신 후에 갱신될 수 있다.
동작 410에서 (수신된 버전 데이터에 기초하여 네트워크 서버(70)에 의해 결정되는 바와 같이) 인식기(40)가 갱신된 경우, 루틴(400)은 동작 415로 계속되어, 이벤트 핸들러 애플리케이션(38)은 네트워크 서버(70)로부터 추가적인 마크업 언어(즉, 마크업 언어 문서(74))를 수신한다. 마크업 언어 문서(74)는 인식기(40)의 갱신된 버전에서 새로 추가된 특징들(예를 들어, 음성 활성화 다이얼링 등)을 이용하기 위한 추가적인 마크업 언어 태그들을 포함할 수 있다. 이어서, 루틴(400)은 도 3의 동작 310으로 리턴한다. 동작 410에서 (수신된 버전 데이터에 기초하여 네트워크 서버(70)에 의해 결정되는 바와 같이) 인식기가 갱신되지 않은 경우, 루틴(400)은 또한 도 3의 동작 310으로 리턴한다.
도 5는 다양한 실시예에 따른, 발성을 처리하고, 발성에 대한 결과 세트들을 처리하기 위한 다수의 인식기 중에서 선택하는 데 사용될 수 있는 태그들을 포함하는 마크업 언어 문서를 나타낸다. 구체적으로, 도 5는 클라이언트 컴퓨팅 장치(2) 상의 마크업 언어 문서(44)를 나타낸다. 마크업 언어 문서(44)는 <listener> 태그(90), <recognize> 태그(92), <grammar> 태그(94), <recognize> 태그(96), <grammar> 태그(98), <listener> 태그(100), <if> 태그(102), <assign> 태그(104), <if> 태그(106), <throw event> 태그(108), <else/> 태그(109), <if> 태그(110), <assign> 태그(111) 및 <throw event> 태그(112)를 포함한다.
<listener> 태그(90)는 클라이언트 컴퓨팅 장치(2)의 사용자로부터 발성(42)을 수신하기 위해 이벤트 핸들러 애플리케이션(38)에 의해 사용될 수 있다. <recognize> 태그(92)는 "로컬" 인식기를 식별하는 "유형" 속성을 포함한다. <grammar> 태그(94)는 로컬 인식기에 의해 사용되는 문법에 액세스하기 위한 "http" 어드레스(즉, 웹사이트 어드레스)를 식별하는 "url" 속성을 포함한다. <recognize> 태그(96)는 "네트워크" 인식기를 식별하는 "유형" 속성을 포함한다. <grammar> 태그(98)는 네트워크 인식기에 의해 사용되는 문법에 액세스하기 위한 "http" 어드레스(즉, 웹사이트 어드레스)를 식별하는 "url" 속성을 포함한다. 도 3과 관련하여 전술한 바와 같이, 이벤트 핸들러 애플리케이션(38)은 마크업 언어 문서 내의 태그들을 분석하여, 발성에서 사용된 문법을 식별하고, 식별된 문법에 기초하여 발성을 처리할 인식기를 선택할 수 있다.
도 3과 관련하여 전술한 바와 같이, 이벤트 핸들러 애플리케이션(38)은 선택된 인식기로부터 하나 이상의 결과 세트들을 수신하고, 신뢰도 스코어에 기초하여 하나 이상의 결과 세트를 처리할 수 있다. <listener> 태그(100)는 발성에 응답하여 선택된 인식기로부터 결과 세트를 수신하기 위해 이벤트 핸들러 애플리케이션(38)에 의해 사용될 수 있다. 태그들(102, 104, 106, 108, 109, 110, 111)은 클라이언트 컴퓨팅 장치(2) 상에서 액션을 실행하기 위해 하나 이상의 결과 세트를 사용할지 (예를 들어, 발성 인식에 대한 신뢰도 스코어가 높은 경우에(예를 들어, 50% 보다 높은 - "gSelectedresult.confidence>0.5"), <throw event="process_selectedresult"/>) 또는 발성 인식에 대한 신뢰성 스코어가 낮은 경우에(예를 들어, <if expr="event.result>gSelectedresult.confidence">, 여기서 event.result는 "널 결과(null result)"임) "널" 결과 세트를 사용할지를 결정하고, 따라서 클라이언트 컴퓨팅 장치(2) 상에서 결과 세트에 대한 액션의 실행을 방지하기 위해 이벤트 핸들러 애플리케이션(38)에 의해 사용될 수 있다.
본 발명은 다양한 예시적인 실시예들과 관련하여 설명되었지만, 이 분야의 기술자들은 아래의 청구항들의 범위 내에서 실시예들에 대한 다양한 변경들이 이루어질 수 있다는 것을 이해할 것이다. 따라서, 본 발명의 범위는 위의 설명에 의해 제한되는 것이 아니라, 아래의 청구항들을 전적으로 참조하여 결정되는 것을 의도한다.

Claims (15)

  1. 복수의 인식기를 사용하여 마크업 언어 문서에 기초하여 발성(utterance)을 처리하는 컴퓨터 구현 방법으로서,
    상기 마크업 언어 문서를 수신하는 단계,
    상기 발성을 수신하는 단계,
    상기 마크업 언어 문서 내의 마크업 언어에 기초하여 상기 발성에 대한 결과 세트를 리턴하기 위한 상기 복수의 인식기 중 적어도 하나의 인식기를 선택하는 단계 - 상기 발성에 대한 결과 세트를 리턴하기 위한 상기 복수의 인식기 중 상기 적어도 하나의 인식기는 상기 마크업 언어 문서 내의 마크업 언어에 기초하여 선택되고,
    상기 마크업 언어에 기초하여 선택하는 것은,
    상기 발성에서 사용된 문법을 인식하는 단계,
    상기 문법에 기초하여 상기 발성에 대한 결과 세트를 리턴하기 위한 상기 복수의 인식기 중 적어도 하나의 인식기를 식별하는 적어도 하나의 마크업 언어 태그에 대해 상기 마크업 언어 문서를 분석(parsing)하는 단계, 및
    이벤트 핸들러에 의해 상기 적어도 하나의 마크업 언어 태그에 의해 식별된 상기 복수의 인식기 중 상기 적어도 하나의 인식기를 선택하는 단계
    를 포함하되,
    상기 복수의 인식기 중 상기 선택된 적어도 하나의 인식기는 상기 문법이 클라이언트 컴퓨팅 장치에 저장된 데이터를 포함하는 경우에는 상기 클라이언트 컴퓨팅 장치 상에 내장된 로컬 인식기를 포함하고, 상기 복수의 인식기 중 상기 선택된 적어도 하나의 인식기는 상기 문법이 네트워크 서버로부터 원격 검색 엔진으로 쿼리를 통해 검색되는 데이터를 포함하는 경우에는 상기 네트워크 서버 상의 네트워크 인식기를 포함함 - ,
    상기 복수의 인식기 중 상기 선택된 적어도 하나의 인식기로부터 상기 결과 세트를 상기 마크업 언어 문서에서 지정된 처리 방법에 의해 결정된 포맷으로 수신하는 단계, 및
    상기 결과 세트를 수신하는 것에 응답하여 이벤트를 실행하는 단계
    를 포함하되,
    상기 이벤트는 상기 결과 세트를 수신하는 것에 응답하여 액션을 결정하는 것을 포함하고,
    상기 액션은 상기 발성에 대한 음성 인식의 정확도를 나타내는 할당된 신뢰도 스코어(confidence score)에 적어도 기초하며,
    상기 액션은 상기 결과 세트가 상기 발성에 대한 미처리된 결과를 포함하고 상기 신뢰도 스코어가 사전 지정된 임계치 이하인 경우에 상기 결과 세트를 무시하는 것을 포함하고,
    상기 액션은 추가로 상기 결과 세트가 사용자에게 디스플레이되지 않게 하는 것을 포함하는
    컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 복수의 인식기 중 상기 적어도 하나의 인식기의 버전을 나타내는 버전 데이터를 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치로 전송하는 단계, 및
    상기 버전 데이터가 상기 복수의 인식기 중 상기 적어도 하나의 인식기에 대한 갱신된 버전을 식별하는 경우, 상기 제1 컴퓨팅 장치에서 상기 제2 컴퓨팅 장치로부터 추가적인 마크업 언어를 수신하는 단계
    를 더 포함하고,
    상기 추가적인 마크업 언어는 상기 갱신된 버전에서 새로 추가된 특징들을 이용하기 위한 명령어들을 포함하는
    컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 마크업 언어 문서를 수신하는 단계는 클라이언트 컴퓨팅 장치 상에 로컬로 저장된 마크업 언어 문서를 수신하는 단계 및 상기 클라이언트 컴퓨팅 장치 상에서 네트워크 서버로부터 원격으로 저장된 마크업 언어 문서를 수신하는 단계 중 적어도 하나를 포함하는
    컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 발성을 상기 복수의 인식기 중 상기 선택된 적어도 하나의 인식기에 송신하는 단계 및 스트리밍하는 단계 중 적어도 하나를 더 포함하는
    컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 복수의 인식기 중에서 상기 선택된 적어도 하나의 인식기로부터 상기 결과 세트를 상기 마크업 언어 문서에서 지정된 처리 방법에 의해 결정된 포맷으로 수신하는 단계는, 상기 결과 세트를 미처리된 결과 포맷 및 처리된 결과 포맷 중 적어도 하나의 포맷으로 수신하는 단계를 포함하고,
    상기 미처리된 결과 포맷은 상기 발성의 음성 인식을 포함하는 하나 이상의 용어를 포함하고,
    상기 처리된 결과 포맷은 상기 발성과 연관된 하나 이상의 용어의 음성 인식을 포함하는
    컴퓨터 구현 방법.
  6. 복수의 인식기를 사용하여 마크업 언어 문서에 기초하여 발성을 처리하는 시스템으로서,
    상기 시스템은 클라이언트 컴퓨팅 장치를 포함하고,
    상기 클라이언트 컴퓨팅 장치는,
    실행가능 프로그램 코드를 저장하는 메모리, 및
    상기 메모리에 기능적으로 연결되는 프로세서
    를 포함하되,
    상기 프로세서는 상기 프로그램 코드에 포함된 컴퓨터 실행가능 명령어들에 응답하여,
    상기 마크업 언어 문서를 수신하고,
    상기 발성을 수신하고,
    상기 마크업 언어 문서 내의 마크업 언어에 기초하여 상기 발성에 대한 결과 세트를 리턴하기 위한 상기 복수의 인식기 중 적어도 하나의 인식기를 선택하고 - 상기 발성에 대한 결과 세트를 리턴하기 위한 상기 복수의 인식기 중 상기 적어도 하나 인식기는 상기 마크업 언어 문서 내의 마크업 언어에 기초하여 선택되고,
    상기 마크업 언어에 기초하여 선택하는 것은,
    상기 발성에서 사용된 문법을 인식하는 단계,
    상기 문법에 기초하여 상기 발성에 대한 결과 세트를 리턴하기 위한 상기 복수의 인식기 중 적어도 하나의 인식기를 식별하는 적어도 하나의 마크업 언어 태그에 대해 상기 마크업 언어 문서를 분석(parsing)하는 단계, 및
    이벤트 핸들러에 의해 상기 적어도 하나의 마크업 언어 태그에 의해 식별된 상기 복수의 인식기 중 상기 적어도 하나 인식기를 선택하는 단계
    를 포함하되,
    상기 복수의 인식기 중 상기 선택된 적어도 하나의 인식기는 상기 문법이 클라이언트 컴퓨팅 장치에 저장된 데이터를 포함하는 경우에는 상기 클라이언트 컴퓨팅 장치 상에 내장된 로컬 인식기를 포함하고, 상기 복수의 인식기 중 상기 선택된 적어도 하나의 인식기는 상기 문법이 네트워크 서버로부터 원격 검색 엔진으로 쿼리를 통해 검색되는 데이터를 포함하는 경우에는 상기 네트워크 서버 상의 네트워크 인식기를 포함함 - ,
    상기 복수의 인식기 중 상기 선택된 적어도 하나의 인식기로부터 상기 결과 세트를 상기 마크업 언어 문서에서 지정된 처리 방법에 의해 결정된 포맷으로 수신하고,
    상기 결과 세트를 수신하는 것에 응답하여 이벤트를 실행하도록 동작하되,
    상기 이벤트는 상기 결과 세트를 수신하는 것에 응답하여 액션을 결정하는 것을 포함하고,
    상기 액션은 적어도 상기 발성에 대한 음성 인식의 정확도를 나타내는 할당된 신뢰도 스코어에 기초하며,
    상기 액션은 상기 결과 세트가 상기 발성에 대한 미처리된 결과를 포함하고 상기 신뢰도 스코어가 사전 지정된 임계치 이하인 경우에 상기 결과 세트를 무시하는 것을 포함하고,
    상기 액션은 추가로 상기 결과 세트가 사용자에게 디스플레이되지 않게 하는 것을 포함하는
    시스템.
  7. 제6항에 있어서,
    상기 프로세서는,
    상기 복수의 인식기 중 적어도 하나의 인식기에 대한 갱신된 버전이 이용 가능한지를 결정하고,
    상기 복수의 인식기 중 상기 적어도 하나의 인식기에 대한 갱신된 버전이 이용 가능한 경우에, 상기 갱신된 버전에서 새로 추가된 특성들을 처리하기 위한 추가적인 마크업 언어를 포함하는 갱신된 마크업 언어 문서를 수신하도록 더 동작하는
    시스템.
  8. 제6항에 있어서,
    상기 마크업 언어 문서는 상기 클라이언트 컴퓨팅 장치 상에 로컬로 저장된 마크업 언어 문서 및 상기 네트워크 서버 상에 원격으로 저장된 마크업 언어 문서 중 적어도 하나를 포함하는
    시스템.
  9. 제6항에 있어서,
    상기 프로세서는 상기 발성을 상기 복수의 인식기 중 상기 선택된 적어도 하나의 인식기로 전송하도록 더 동작하는
    시스템.
  10. 제6항에 있어서,
    상기 복수의 인식기 중 상기 선택된 적어도 하나의 인식기로부터의 결과 세트는 상기 마크업 언어 문서에서 지정된 처리 방법에 의해 결정된 포맷으로 수신되고,
    상기 포맷은 미처리된 결과 포맷 및 처리된 결과 포맷 중 적어도 하나를 포함하고,
    상기 미처리된 결과 포맷은 상기 발성의 음성 인식을 포함하는 하나 이상의 용어를 포함하고,
    상기 처리된 결과 포맷은 상기 발성의 음성 인식과 연관된 하나 이상의 용어를 포함하는
    시스템.
  11. 컴퓨터 상에서 실행되는 경우에, 컴퓨터로 하여금 복수의 인식기를 사용하여 마크업 언어 문서에 기초하여 발성을 처리하는 방법을 수행하게 하는 컴퓨터 실행가능 명령어들을 포함하는 컴퓨터 판독가능 저장 매체로서,
    상기 방법은,
    상기 마크업 언어 문서를 수신하는 단계 - 상기 마크업 언어 문서를 수신하는 단계는, 클라이언트 컴퓨팅 장치 상에 로컬로 저장된 마크업 언어 문서를 수신하는 단계 및 상기 클라이언트 컴퓨팅 장치 상에서 네트워크 서버로부터 원격으로 저장된 마크업 언어 문서를 수신하는 단계 중 적어도 하나를 포함함 -,
    상기 발성을 수신하는 단계,
    상기 마크업 언어 문서 내의 마크업 언어에 기초하여 상기 발성에 대한 결과 세트를 리턴하기 위한 상기 복수의 인식기 중 적어도 하나의 인식기를 선택하는 단계 - 상기 마크업 언어 문서 내의 마크업 언어에 기초하여 상기 발성에 대한 결과 세트를 리턴하기 위한 상기 복수의 인식기 중 적어도 하나의 인식기를 선택하는 단계는,
    상기 발성에서 사용된 문법을 인식하는 단계,
    상기 문법에 기초하여 상기 발성에 대한 결과 세트를 리턴하기 위한 상기 복수의 인식기 중 적어도 하나의 인식기를 식별하는 적어도 하나의 마크업 언어 태그에 대해 상기 마크업 언어 문서를 분석하는 단계, 및
    이벤트 핸들러에 의해, 상기 적어도 하나의 마크업 언어 태그에 의해 식별된 상기 복수의 인식기 중 적어도 하나의 인식기를 선택하는 단계
    를 포함하되,
    상기 복수의 인식기 중 상기 선택된 적어도 하나의 인식기는 상기 문법이 클라이언트 컴퓨팅 장치에 저장된 데이터를 포함하는 경우에는 상기 클라이언트 컴퓨팅 장치 상에 내장된 로컬 인식기를 포함하고, 상기 복수의 인식기 중 상기 선택된 적어도 하나의 인식기는 상기 문법이 상기 네트워크 서버로부터 원격 검색 엔진으로 쿼리를 통해 검색되는 데이터를 포함하는 경우에는 네트워크 서버 상의 네트워크 인식기를 포함함 - ,
    상기 발성을 상기 복수의 인식기 중 상기 선택된 적어도 하나의 인식기로 스트리밍하는 단계,
    상기 복수의 인식기 중 상기 선택된 적어도 하나의 인식기로부터 상기 결과 세트를 상기 마크업 언어 문서에서 지정된 처리 방법에 의해 결정된 포맷으로 수신하는 단계, 및
    상기 결과 세트를 수신하는 것에 응답하여 이벤트를 실행하는 단계
    를 포함하되,
    상기 이벤트는 상기 결과 세트를 수신하는 것에 응답하여 액션을 결정하는 것을 포함하고,
    상기 액션은 적어도 상기 발성에 대한 음성 인식의 정확도를 나타내는 할당된 신뢰도 스코어에 기초하며,
    상기 액션은 상기 결과 세트가 상기 발성에 대한 미처리된 결과를 포함하고 상기 신뢰도 스코어가 사전 지정된 임계치 이하인 경우에 상기 결과 세트를 무시하는 것을 포함하고,
    상기 액션은 추가로 상기 결과 세트가 사용자에게 디스플레이되지 않게 하는 것을 포함하는
    컴퓨터 판독가능 저장 매체.
  12. 제11항에 있어서,
    상기 방법은,
    상기 복수의 인식기 중 적어도 하나의 인식기에 대한 갱신된 버전이 이용 가능한지를 결정하는 단계, 및
    상기 복수의 인식기 중 상기 적어도 하나의 인식기에 대한 갱신된 버전이 이용 가능한 경우에, 상기 갱신된 버전에서 새로 추가된 특성들을 처리하기 위한 추가적인 마크업 언어를 포함하는 갱신된 마크업 언어 문서를 수신하는 단계
    를 더 포함하는 컴퓨터 판독가능 저장 매체.
  13. 제11항에 있어서,
    상기 복수의 인식기 중에서 상기 선택된 적어도 하나의 인식기로부터 상기 결과 세트를 상기 마크업 언어 문서에서 지정된 처리 방법에 의해 결정된 포맷으로 수신하는 단계는 상기 결과 세트를 미처리된 결과 포맷 및 처리된 결과 포맷 중 적어도 하나의 포맷으로 수신하는 단계를 포함하고,
    상기 미처리된 결과 포맷은 상기 발성의 음성 인식을 포함하는 하나 이상의 용어를 포함하고,
    상기 처리된 결과 포맷은 상기 발성과 연관된 하나 이상의 용어의 음성 인식을 포함하는
    컴퓨터 판독가능 저장 매체.
  14. 삭제
  15. 삭제
KR1020117016517A 2009-01-22 2009-12-11 발성 처리를 위한 인식기들의 마크업 언어 기반 선택 및 이용 KR101649771B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/357,773 US8515762B2 (en) 2009-01-22 2009-01-22 Markup language-based selection and utilization of recognizers for utterance processing
US12/357,773 2009-01-22

Publications (2)

Publication Number Publication Date
KR20110117086A KR20110117086A (ko) 2011-10-26
KR101649771B1 true KR101649771B1 (ko) 2016-08-19

Family

ID=42337638

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117016517A KR101649771B1 (ko) 2009-01-22 2009-12-11 발성 처리를 위한 인식기들의 마크업 언어 기반 선택 및 이용

Country Status (10)

Country Link
US (1) US8515762B2 (ko)
EP (1) EP2380166B1 (ko)
JP (1) JP5542156B2 (ko)
KR (1) KR101649771B1 (ko)
CN (1) CN102292765B (ko)
AU (1) AU2009339294B2 (ko)
BR (1) BRPI0922906A8 (ko)
CA (1) CA2747791C (ko)
RU (1) RU2525440C2 (ko)
WO (1) WO2010090679A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103038818B (zh) 2010-06-24 2016-10-12 本田技研工业株式会社 在车载语音识别***与车外语音识别***之间的通信***和方法
KR101961139B1 (ko) * 2012-06-28 2019-03-25 엘지전자 주식회사 이동 단말기 및 그것의 음성 인식 방법
US9953630B1 (en) * 2013-05-31 2018-04-24 Amazon Technologies, Inc. Language recognition for device settings
DE102014109122A1 (de) * 2013-07-12 2015-01-15 Gm Global Technology Operations, Llc Systeme und Verfahren für ergebnisbezogene Arbitrierung in Sprachdialogsystemen
US9715878B2 (en) 2013-07-12 2017-07-25 GM Global Technology Operations LLC Systems and methods for result arbitration in spoken dialog systems
CN103475712B (zh) * 2013-09-10 2016-05-11 北京思特奇信息技术股份有限公司 基于云计算实现多企业多通讯录自动关联的方法及***
CN103474069B (zh) * 2013-09-12 2016-03-30 中国科学院计算技术研究所 用于融合多个语音识别***的识别结果的方法及***
US9530416B2 (en) 2013-10-28 2016-12-27 At&T Intellectual Property I, L.P. System and method for managing models for embedded speech and language processing
US9666188B2 (en) 2013-10-29 2017-05-30 Nuance Communications, Inc. System and method of performing automatic speech recognition using local private data
US9953646B2 (en) 2014-09-02 2018-04-24 Belleau Technologies Method and system for dynamic speech recognition and tracking of prewritten script
US10445356B1 (en) * 2016-06-24 2019-10-15 Pulselight Holdings, Inc. Method and system for analyzing entities
US11087766B2 (en) * 2018-01-05 2021-08-10 Uniphore Software Systems System and method for dynamic speech recognition selection based on speech rate or business domain
US10147428B1 (en) * 2018-05-30 2018-12-04 Green Key Technologies Llc Computer systems exhibiting improved computer speed and transcription accuracy of automatic speech transcription (AST) based on a multiple speech-to-text engines and methods of use thereof
CN108846069B (zh) * 2018-06-07 2022-07-19 创新先进技术有限公司 一种基于标记语言的文档执行方法及装置
US11423215B2 (en) 2018-12-13 2022-08-23 Zebra Technologies Corporation Method and apparatus for providing multimodal input data to client applications
US11551681B1 (en) * 2019-12-13 2023-01-10 Amazon Technologies, Inc. Natural language processing routing
CN113763943A (zh) * 2020-06-04 2021-12-07 微软技术许可有限责任公司 在语音识别结果中实时地提供提示

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040107107A1 (en) 2002-12-03 2004-06-03 Philip Lenir Distributed speech processing
US20070061146A1 (en) 2005-09-12 2007-03-15 International Business Machines Corporation Retrieval and Presentation of Network Service Results for Mobile Device Using a Multimodal Browser

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5251131A (en) * 1991-07-31 1993-10-05 Thinking Machines Corporation Classification of data records by comparison of records to a training database using probability weights
US5819220A (en) * 1996-09-30 1998-10-06 Hewlett-Packard Company Web triggered word set boosting for speech interfaces to the world wide web
DE19910236A1 (de) 1999-03-09 2000-09-21 Philips Corp Intellectual Pty Verfahren zur Spracherkennung
FI20001918A (fi) * 2000-08-30 2002-03-01 Nokia Corp Monimodaalinen sisältö ja automaattinen puheen tunnistus langattomassa tietoliikennejärjestelmässä
US7409349B2 (en) * 2001-05-04 2008-08-05 Microsoft Corporation Servers for web enabled speech recognition
US20050234727A1 (en) 2001-07-03 2005-10-20 Leo Chiu Method and apparatus for adapting a voice extensible markup language-enabled voice system for natural speech recognition and system response
US6999930B1 (en) * 2002-03-27 2006-02-14 Extended Systems, Inc. Voice dialog server method and system
US7032169B2 (en) * 2002-05-22 2006-04-18 International Business Machines Corporation Method and system for distributed coordination of multiple modalities of computer-user interaction
KR100636909B1 (ko) 2002-11-14 2006-10-19 엘지전자 주식회사 확장성 표기 언어 기반의 전자문서 버전 매김 및 버전을이용한 갱신 문서 제공 방법
US6834265B2 (en) 2002-12-13 2004-12-21 Motorola, Inc. Method and apparatus for selective speech recognition
US7076428B2 (en) 2002-12-30 2006-07-11 Motorola, Inc. Method and apparatus for selective distributed speech recognition
US7197331B2 (en) * 2002-12-30 2007-03-27 Motorola, Inc. Method and apparatus for selective distributed speech recognition
US7606714B2 (en) * 2003-02-11 2009-10-20 Microsoft Corporation Natural language classification within an automated response system
KR100504841B1 (ko) 2003-07-11 2005-07-29 엘지전자 주식회사 이동 통신 단말기의 메시지 관리 방법
US7158779B2 (en) * 2003-11-11 2007-01-02 Microsoft Corporation Sequential multimodal input
US20050131872A1 (en) * 2003-12-16 2005-06-16 Microsoft Corporation Query recognizer
KR100989500B1 (ko) * 2004-01-28 2010-10-22 주식회사 케이티 음성인식 파라미터 공유 방법
KR100695127B1 (ko) * 2004-10-08 2007-03-14 삼성전자주식회사 다 단계 음성 인식 장치 및 방법
US7865362B2 (en) * 2005-02-04 2011-01-04 Vocollect, Inc. Method and system for considering information about an expected response when performing speech recognition
EP1846850A2 (en) * 2005-02-09 2007-10-24 Pixalert Memory based content display interception
US20060235694A1 (en) 2005-04-14 2006-10-19 International Business Machines Corporation Integrating conversational speech into Web browsers
CA2620931A1 (en) 2005-09-01 2007-03-08 Vishal Dhawan Voice application network platform
US8326629B2 (en) * 2005-11-22 2012-12-04 Nuance Communications, Inc. Dynamically changing voice attributes during speech synthesis based upon parameter differentiation for dialog contexts
US20070239453A1 (en) 2006-04-06 2007-10-11 Microsoft Corporation Augmenting context-free grammars with back-off grammars for processing out-of-grammar utterances
US7840409B2 (en) 2007-02-27 2010-11-23 Nuance Communications, Inc. Ordering recognition results produced by an automatic speech recognition engine for a multimodal application
US8374983B1 (en) * 2009-11-23 2013-02-12 Google Inc. Distributed object classification
US8755610B2 (en) * 2011-06-10 2014-06-17 Apple Inc. Auto-recognition for noteworthy objects

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040107107A1 (en) 2002-12-03 2004-06-03 Philip Lenir Distributed speech processing
US20070061146A1 (en) 2005-09-12 2007-03-15 International Business Machines Corporation Retrieval and Presentation of Network Service Results for Mobile Device Using a Multimodal Browser

Also Published As

Publication number Publication date
RU2525440C2 (ru) 2014-08-10
EP2380166A4 (en) 2013-09-18
AU2009339294B2 (en) 2014-04-24
CA2747791C (en) 2016-11-08
RU2011130550A (ru) 2013-01-27
AU2009339294A1 (en) 2011-07-14
WO2010090679A1 (en) 2010-08-12
CN102292765B (zh) 2013-08-14
CN102292765A (zh) 2011-12-21
BRPI0922906A2 (pt) 2017-10-31
CA2747791A1 (en) 2010-08-12
EP2380166A1 (en) 2011-10-26
US8515762B2 (en) 2013-08-20
KR20110117086A (ko) 2011-10-26
BRPI0922906A8 (pt) 2017-12-12
EP2380166B1 (en) 2018-07-04
US20100185447A1 (en) 2010-07-22
JP2012515946A (ja) 2012-07-12
JP5542156B2 (ja) 2014-07-09

Similar Documents

Publication Publication Date Title
KR101649771B1 (ko) 발성 처리를 위한 인식기들의 마크업 언어 기반 선택 및 이용
JP6373985B2 (ja) 音声動作式機能にキーワードモデルを割り当てるための方法および装置
US9299342B2 (en) User query history expansion for improving language model adaptation
US8868428B2 (en) Integration of embedded and network speech recognizers
AU2017425675B2 (en) Extracting domain-specific actions and entities in natural language commands
US11188289B2 (en) Identification of preferred communication devices according to a preference rule dependent on a trigger phrase spoken within a selected time from other command data
AU2017424116B2 (en) Extracting domain-specific actions and entities in natural language commands
KR20170103801A (ko) 디지털 개인 비서 내에서 헤드리스로 작업을 완료하기 위한 기법
CN111566638B (zh) 向应用编程接口添加描述性元数据以供智能代理使用
JP2013064777A (ja) 端末装置、音声認識プログラム、音声認識方法および音声認識システム
US20050004800A1 (en) Combining use of a stepwise markup language and an object oriented development tool
JP2014513828A (ja) 自動会話支援
US20190042560A1 (en) Extracting domain-specific actions and entities in natural language commands
KR20150077580A (ko) 음성 인식 기반 서비스 제공 방법 및 그 장치
CN111341315A (zh) 语音控制方法、装置、计算机设备和存储介质
KR102536944B1 (ko) 음성 신호 처리 방법 및 장치
JP4962416B2 (ja) 音声認識システム
US7197494B2 (en) Method and architecture for consolidated database search for input recognition systems
TWI818427B (zh) 使用基於文本的說話者變更檢測的說話者劃分糾正方法及系統
US11798542B1 (en) Systems and methods for integrating voice controls into applications
WO2020129465A1 (ja) 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20190718

Year of fee payment: 4