KR20130031231A - 음성 인식 결과의 통합 - Google Patents

음성 인식 결과의 통합 Download PDF

Info

Publication number
KR20130031231A
KR20130031231A KR1020120104814A KR20120104814A KR20130031231A KR 20130031231 A KR20130031231 A KR 20130031231A KR 1020120104814 A KR1020120104814 A KR 1020120104814A KR 20120104814 A KR20120104814 A KR 20120104814A KR 20130031231 A KR20130031231 A KR 20130031231A
Authority
KR
South Korea
Prior art keywords
token
group
column
tokens
grid
Prior art date
Application number
KR1020120104814A
Other languages
English (en)
Other versions
KR101411129B1 (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 KR20130031231A publication Critical patent/KR20130031231A/ko
Application granted granted Critical
Publication of KR101411129B1 publication Critical patent/KR101411129B1/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/26Speech to text 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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
    • 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/221Announcement of recognition results

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

구어 입력에 대한 음성 인식 알고리즘들의 애플리케이션으로부터 나오는 후보 해석들은 리던던시를 감소시키는 통합된 방식으로 제시된다. 후보 해석들의 리스트가 생성되고, 각각의 후보 해석은 시간 기반 부분들로 세분되어, 그리드를 형성한다. 다른 후보 해석들로부터의 부분들과 중복하는 그 시간 기반 부분들은 그리드로부터 제거된다. 사용자에게 후보 해석들 간에 선택하기 위한 기회를 제시하는 사용자 인터페이스가 제공되고, 사용자 인터페이스는 중복 엘리먼트들 없이 이러한 얼터너티브들을 제시하도록 구성된다.

Description

음성 인식 결과의 통합{CONSOLIDATING SPEECH RECOGNITION RESULTS}
본원 발명은 구어 입력(spoken input)을 인식하고 해석하기 위한 자동화된 전자 시스템 및 방법에 관한 것이다.
많은 상황들에서, 음성은 전자 디바이스에 입력을 제공하기 위해 선호되는 메커니즘이다. 특히, 구어 입력(spoken input)은, 스크린, 키보드, 마우스, 또는 물리적인 조작 및/또는 디스플레이 스크린을 보는 것이 필요한 다른 입력 디바이스를 통해 전자 디바이스와 상호작용하는 것이 어렵거나 안전하지 않은 상황들에서 유용할 수 있다. 예를 들면, 차량을 운전하는 동안, 사용자는 모바일 디바이스(예컨대, 스마트폰)나 차량-기반 네이게이션 시스템에 입력을 제공하기 원할 수 있고, 디바이스에게 말하는 것이 정보를 제공하거나 데이터를 입력하거나 또는 디바이스의 동작을 제어하는 가장 효과적인 방식이라는 것을 알 수 있다. 다른 상황들에서, 사용자는 구어 입력을 제공하는 것이 편하다는 것을 알 수 있는데, 왜냐하면 다른 사람과의 상호작용을 가장 유사하게 모방하는 대화형 인터페이스에 사용자가 더 편안함을 느끼기 때문이다. 예를 들면, 2011년 1월 10일에 출원되고 본원에 참조로서 통합된 관련 미국 실용신안특허 출원번호 제12/987,982호 "Intelligent Automated Assistant"에 기술된 바와 같이, 사용자는 지능적 자동화 어시스턴트와 상호 작용할 때 구어 입력을 제공하기를 원할 수 있다.
음성 인식은 많은 다양한 맥락에서 사용될 수 있다. 예를 들면, 일부 전자 시스템은, 사용자로 하여금 구어 입력을 통해 디바이스의 동작을 제어할 수 있게 해 주는 음성 기반 사용자 인터페이스를 제공한다. 음성 인식은 또한, 상호작용 음성 인식(IVR) 전화 시스템에서 사용될 수도 있으며, 여기서, 사용자는 예컨대, 항공 티켓의 구매, 영화 시간의 체크 등을 위해 선택 메뉴를 네비게이팅하고, 입력을 제공할 수 있다. 음성 인식은 또한, 워드 프로세서를 통한 기록 등을 포함하여 다양한 형태의 데이터 입력에서 사용될 수도 있다.
다양한 공지된 기술들이 구어 입력을 해석하여 텍스트로 변환하는데에 이용가능하다. 어쿠스틱 모델링은, 사운드 또는 음소(phoneme)의 통계적 표현을 생성하거나 개별 단어 또는 구문을 형성하는데 사용될 수 있다. 오디오 입력이 이러한 통계적 표현들과 비교되어 어떤 단어 또는 구문이 의도된 것인지에 대한 결정을 할 수 있다. 많은 시스템에서, 성공적인 매칭의 가능성을 증가시키기 위해, 소정 방식으로 제한된 어휘가 규정된다. 일부 시스템에서, 언어 모델링이 일련의 구어 단어에서 다음 단어를 예측하는데 도움을 주도록 사용될 수 있고, 이에 따라 음성 인식 알고리즘에 의해 생성된 결과들에서의 모호성을 감소시킬 수 있다.
어쿠스틱 및/또는 언어 모델을 사용하는 음성 인식 시스템의 일부 예들에는: 펜실베니아, 피츠버그의 카네기 멜론 대학의 프로젝트로서 개발된 CMU Sphinx; 메사추세츠, 벌링턴의 뉘앙스 통신(Nuance Communications)에서 입수가능한 드래곤(Dragon) 음성 인식 소프트웨어; 캘리포니아, 마운틴 뷰의 구글 인크에서 입수가능한 구글 음성 검색이 있다.
사용된 음성 인식 기술에 관계 없이 많은 경우에, 둘 이상의 해석이 가능한 구어 입력을 명확하게 하는 것이 필요하다. 종종, 가장 적절한 접근법은 여러 가능한 해석들 중 어느 것을 의도한 것인지 사용자에게 묻는 것이다. 이를 달성하기 위해, 사용자에게 구어 입력의 가능한 후보 해석들의 일부 집합을 제시하여, 사용자에게 하나를 선택하라고 프롬프트할 수 있다. 이러한 프롬프팅은, 스크린에 제시되는 것과 같은 시각적 인터페이스를 통하거나 오디오 인터페이스를 통해 발생할 수 있고, 오디오 인터페이스를 통할 경우, 시스템은 후보 해석을 읽어 주고 사용자에게 하나를 선택하라고 한다.
문장에서와 같이, 연속하여 말해진 단어들의 집합에 음성 인식이 적용될 때, 다수의 후보 해석이 존재할 수 있다. 후보 해석의 집합은 문장들의 집합으로 제시될 수 있다. 많은 경우에서, 후보 문장의 일부분들은 서로 유사(또는 동일)하지만, 다른 부분은 어떤 방식으로든 상이하다. 예를 들면, 구어 문장에서 일부 단어 또는 구문은, 다른 것들보다 시스템이 해석하기에 더 쉬울 수 있다; 대안적으로, 일부 단어 또는 구문은 다른 단어 또는 구문보다 더 많은 수의 후보 해석과 연관될 수 있다. 또한, 후보 해석의 총 순열의 수는, 후보 해석의 집합 내의 총 자유도의 수 때문에 비교적 높을 수 있는데, 이는 문장의 다양한 부분들이 각각 다수의 상이한 방식으로 해석될 수 있기 때문이다. 문장의 상이한 부분들에 대한 상이한 수의 후보들과 함께, 잠재적으로 큰 수의 순열은, 선택을 위해 후보 문장을 사용자에게 제시하는 것이 너무 엄청나거나 어려워서 네비게이팅하기 힘들 수 있다.
필요한 것은 음성 인식 시스템의 사용자에게 후보 문장을 제시하는 메커니즘이고, 여기서, 후보 문장을 제시하는 것은 압도적인 수의 옵션을 사용자에게 제시하지 않도록 간략화 및 간소화된다. 추가적으로 필요한 것은, 불필요한 혼란스러운 정보를 감소시키는 방식으로 후보 문장을 제시하는 메커니즘이다.
본 발명의 다양한 실시예는, 음성 인식 시스템에서 후보 해석들의 집합을 제시하기 위한 향상된 메커니즘을 구현한다. 불필요한 엘리먼트는, 사용자에게 제시되는 옵션을 간략화하기 위해, 통합 프로세스에 의해 최소화되거나 제거된다.
본 발명은 구어 입력을 수신하고 해석하도록 구성된 임의의 전자 디바이스에서 구현될 수 있다. 구어 입력에 음성 인식 알고리즘을 적용하여 얻어지는 후보 해석은, 리던던시를 감소시키거나 제거하는 통합 방식으로 제시된다. 시스템의 출력은, 후보 간에 동일한 부분들에 대한 중복 제시를 억제하면서, 후보 해석 간에 상이한 문장의 부분에 대해 구별되는 옵션들의 집합으로서 제시되는 후보 해석의 리스트이다.
다양한 실시예에 따르면, 후보 해석의 통합 리스트는 음성 입력에 대한 후보 해석의 미처리(raw) 리스트를 먼저 획득함으로써 생성된다. 각 후보 해석은 시간 기반 부분들로 세분화되며, 그리드를 형성한다. 다른 후보 해석들의 부분과 중복하는 이러한 시간 기반 부분들은, 그리드로부터 제거된다. 후보 해석을 선택하는 기회를 사용자에게 제시하는 사용자 인터페이스가 제공된다; 사용자 인터페이스는 중복되는 요소를 제시하지 않으면서, 이러한 얼터너티브들을 제시하도록 구성된다.
다양한 실시예에 따르면, 다수의 메커니즘들 중 임의의 것이, 사용자에게 후보 해석을 제시하고 사용자의 선택에 관한 입력을 수용하도록 사용될 수 있다. 이러한 메커니즘에는 임의의 적합한 유형의 그래픽, 텍스트, 시각 및/또는 청각 인터페이스가 포함될 수 있다. 일부 실시예에서, 사용자는 상이한 후보 해석으로부터 개별 요소를 선택하는 기회를 제공받을 수 있다; 예를 들면, 문장의 제1 부분은 제1 후보 해석으로부터 선택될 수 있고, 반면에 문장의 제2 부분은 제2 후보 해석으로부터 선택될 수 있다. 이후에 최종 결과가 선택된 부분들로부터 조합될 수 있다.
사용자가 후보 해석들 간에 선택을 하면, 선택된 텍스트는 디스플레이되고, 저장되고, 전송되고, 및/또는 그 밖의 동작이 가해질 수 있다. 예를 들면, 일 실시예에서, 선택된 텍스트는 일부 액션을 수행하기 위한 커맨드로 해석될 수 있다. 대안적으로, 선택된 텍스트는, 문서 또는 문서의 일부로서, 이메일이나 다른 형태의 메시지로서, 또는 텍스트 전송 및/또는 저장을 위한 임의의 다른 적절한 저장소 또는 매체로서 저장될 수 있다.
본원에 도시된 바와 같은, 본 발명의 이러한 다양한 실시예들은, 음성 입력의 후보 해석을 명확하게 하는 프로세스를 개선하기 위한 메커니즘을 제공한다. 특히, 이러한 실시예는, 그러한 후보 해석들 간에 선택하기 위한 입력을 제공하는 복잡성 및 부담을 경감하여 사용자 경험을 향상시킨다.
일부 구현예들에 따라, 방법은, 프로세서에서, 음성 입력의 후보 해석들의 리스트를 수신하는 단계를 포함한다. 또한, 상기 방법은 수신된 리스트로부터의 토큰들의 그리드를 형성하는 단계를 포함한다 - 상기 그리드는 복수의 로우와 복수의 컬럼으로 조직됨 -. 또한, 방법은 타이밍 정보에 기초하여 상기 그리드를 컬럼 그룹들의 집합으로 분할하는 단계를 포함한다 - 각 컬럼 그룹은 복수의 토큰 그룹들을 포함하며, 각 토큰 그룹은 적어도 하나의 토큰을 포함함 -. 또한, 방법은 그리드 내의 중복된 토큰 그룹들을 검출하는 것에 응답하여, 통합 그리드를 발생하기 위해 상기 중복된 토큰 그룹들을 제거하는 단계를 포함한다. 일부 구현예들에서, 방법은, 출력 디바이스에서, 통합된 그리드에 기초하여 후보 해석들을 출력하는 단계를 포함한다. 일부 구현예들에서, 방법은 출력 디바이스로 하여금 통합된 그리드에 기초하여 후보 해석들을 출력하도록 하는 단계를 포함한다.
일부 구현예들에 따라서, 방법은, 프로세서에서, 음성 입력의 후보 해석들의 통합 리스트를 수신하는 단계를 포함한다. 통합된 리스트는 단일의 토큰 그룹을 갖는 적어도 하나의 컬럼 그룹과 복수의 토큰 그룹을 갖는 적어도 하나의 컬럼 그룹을 포함한다. 또한, 방법은 단일의 토큰 그룹을 갖는 각 컬럼 그룹에 대해 출력 디바이스 상에 단일의 토큰 그룹을 디스플레이하는 단계를 포함한다. 또한, 방법은 복수의 토큰 그룹을 갖는 각 컬럼 그룹에 대해, 단일의 토큰 그룹을 포함하는 컬럼 그룹의 디스플레이와 비교하여 시각적으로 구별된 방식으로 토큰 그룹들 중 제1 토큰 그룹을 출력 디바이스 상에 디스플레이하는 단계를 포함한다.
일부 구현예들에 따라, 방법은, 서버에서 동작하는 프로세서에서, 구어 입력의 후보 해석들의 리스트를 획득하는 단계를 포함한다. 또한, 방법은 수신된 리스트로부터 토큰들의 그리드를 형성하는 단계를 포함한다 - 상기 그리드는 복수의 로우와 복수의 컬럼으로 조직됨 -. 또한, 방법은 타이밍 정보에 기초하여 그리드를 컬럼 그룹들의 집합으로 분할하는 단계를 포함한다 - 각 컬럼 그룹은 복수의 토큰 그룹을 포함하고, 각 토큰 그룹은 적어도 하나의 토큰을 포함함 -. 또한, 방법은 그리드 내의 중복된 토큰 그룹들을 검출하는 것에 응답하여, 후보들의 통합된 리스트를 형성하도록 중복된 토큰 그룹들을 제거하는 단계를 포함한다. 또한, 방법은 후보들의 통합된 리스트들의 표현을 서버로부터 클라이언트에 전송하는 단계를 포함한다.
일부 구현예들에 따라, 전자 디바이스는 하나 이상의 프로세서들, 메모리, 및 하나 이상의 프로그램들을 포함하며, 하나 이상의 프로그램들은 메모리 내에 저장되고 하나 이상의 프로세서들에 의해 실행되도록 구성되고, 하나 이상의 프로그램들은 위에서 설명된 방법들 중 임의의 방법의 동작들을 수행하기 위한 명령어들을 포함한다. 일부 구현예들에 따라, 컴퓨터 판독 가능 저장 매체는, 전자 디바이스에 의해 실행될 때, 디바이스로 하여금 위에서 설명된 방법들 중 임의의 방법의 동작들을 수행하게 하는 명령어들을 저장한다. 일부 구현예들에 따라, 전자 디바이스는 위에서 설명된 방법들 중 임의의 방법의 동작들을 수행하기 위한 수단들을 포함한다. 일부 구현예들에 따라, 전자 디바이스 내의 사용을 위한 정보 처리 장치는 위에서 설명된 방법들 중 임의의 방법의 동작들을 수행하기 위한 수단들을 포함한다.
일부 구현예들에서, 전자 디바이스는 구어 입력의 후보 해석들의 리스트를 수신하도록 구성된 후보 해석 수신 유닛을 포함한다. 또한, 전자 디바이스는 프로세싱 유닛을 포함한다. 프로세싱 유닛은 수신된 리스트로부터 토큰들의 그리드를 형성하며 - 그리드는 복수의 로우와 복수의 컬럼으로 조직됨 -, 타이밍 정보에 기초하여 그리드를 컬럼 그룹들의 집합으로 분할하고 - 각 컬럼 그룹은 복수의 토큰 그룹을 포함하고, 각 토큰 그룹은 적어도 하나의 토큰을 포함함 -, 그리드 내의 중복된 토큰 그룹들을 검출하는 것에 응답하여 통합된 그리드를 발생하도록 중복된 토큰 그룹들을 제거하도록 구성된다. 일부 구현예들에서, 전자 디바이스는 출력 디바이스로 하여금 통합된 그리드에 기초하여 후보 해석들을 출력하게 하도록 구성된 출력 유닛을 포함한다. 일부 구현예들에서, 출력 유닛은 통합된 그리드에 기초하여 후보 해석들을 출력하도록 구성된다.
일부 구현예들에 따라, 전자 디바이스는 음성 입력의 후보 해석들의 통합된 리스트를 수신하도록 구성된 후보 해석 수신 유닛을 포함한다. 통합된 리스트는 단일의 토큰 그룹을 갖는 적어도 하나의 컬럼 그룹과 복수의 토큰 그룹을 갖는 적어도 하나의 컬럼 그룹을 포함한다. 또한, 전자 디바이스는 단일의 토큰 그룹을 갖는 각 컬럼 그룹에 대해 출력 디바이스 상에 단일의 토큰 그룹을 디스플레이하고, 복수의 토큰 그룹을 갖는 각 컬럼 그룹에 대해 단일의 토큰 그룹을 포함하는 컬럼 그룹의 디스플레이와 비교하여 시각적으로 구별된 방식으로 토큰 그룹들 중 제1 토큰 그룹을 디스플레이하도록 구성된 디스플레이 유닛을 포함한다.
일부 구현예들에 따라, 전자 디바이스는 구어 입력의 후보 해석들의 리스트를 획득하도록 구성된 후보 해석 수신 유닛을 포함한다. 또한, 전자 디바이스는 수신된 리스트로부터 토큰들의 그리드를 형성하며 - 그리드는 복수의 로우와 복수의 컬럼으로 조직됨 -, 타이밍 정보에 기초하여 그리드를 컬럼 그룹들의 집합으로 분할하며 - 각 컬럼 그룹은 복수의 토큰 그룹을 포함하고, 각 토큰 그룹은 적어도 하나의 토큰을 포함함 -, 그리드 내의 중복된 토큰 그룹들을 검출하는 것에 응답하여 후보들의 통합된 리스트를 형성하도록 중복된 토큰 그룹들을 제거하고, 후보들의 통합된 리스트의 표현을 서버로부터 클라이언트에 전송하도록 구성된 프로세싱 유닛을 포함한다.
첨부 도면은 본 발명의 여러 실시예를 도시하고, 발명의 상세한 설명과 함께 실시예에 따른 본 발명의 원리를 설명하는 역할을 한다. 본 기술 분야에서 통상의 지식을 가진 자는 도면에 도시된 특정 실시예들이 단지 예시적일 뿐이며, 본 발명의 범위를 제한하도록 의도된 것은 아니라는 점을 인식할 수 있을 것이다.
도 1은, 본 발명의 일 실시예에 따라 통합된 음성 인식 결과를 생성하기 위한 시스템의 하드웨어 아키텍처를 도시하는 블록도이다.
도 2는, 본 발명의 일 실시예에 따라 클라이언트/서버 환경에서 통합된 음성 인식 결과를 생성하기 위한 시스템의 하드웨어 아키텍처를 도시하는 블록도이다.
도 3은, 본 발명의 일 실시예에 따라 클라이언트/서버 환경에서 통합된 음성 인식 결과를 생성하기 위한 시스템에서의 데이터 흐름을 도시하는 블록도이다.
도 4a는, 본 발명의 일 실시예에 따라 후보 결과들의 통합된 리스트를 생성하기 위한 음성 인식 프로세서의 전반적인 동작을 도시하는 흐름도이다.
도 4b는, 본 발명에 따라 프로세싱되기 전에, 타이밍 코드를 이용하여 후보 해석 하나의 상세 사항과 함께 음성 인식기에 의해 생성될 수 있는 후보 해석들의 리스트에 대한 예이다.
도 5a는, 본 발명의 일 실시예에 따라 후보 해석들의 리스트로부터 토큰들의 그리드를 형성하는 방법을 도시하는 흐름도이다.
도 5b는, 본 발명의 일 실시예에 따라, 도 5a에 도시된 방법에 의해 생성된 토큰들의 그리드에 대한 예를 도시한다.
도 6a는, 본 발명의 일 실시예에 따라 타이밍 정보에 기초하여 그리드를 컬럼 그룹들의 집합으로 분할하는 방법을 도시하는 흐름도이다.
도 6b는, 본 발명의 일 실시예에 따라 도 6a에 도시된 방법에 의해 생성된 컬럼 그룹들의 리스트에 대한 예를 도시한다.
도 7a는, 본 발명의 일 실시예에 따라 컬럼 그룹들에서 중복된 것을 제거하는 방법을 도시하는 흐름도이다.
도 7b는, 본 발명의 일 실시예에 따라, 도 7a에 도시된 방법에 의해 생성된 컬럼 그룹들의 중복 제거된(de-duplicated) 리스트에 대한 예를 도시한다.
도 8a는, 본 발명의 일 실시예에 따라 공유 토큰들을 분할하는 방법을 도시하는 흐름도이다.
도 8b는, 본 발명의 일 실시예에 따라 컬럼 그룹 내의 모든 토큰 구문의 시작에서 나타나는 토큰들을 분할하는 방법을 도시하는 흐름도이다.
도 8c는, 본 발명의 일 실시예에 따라, 컬럼 그룹 내의 모든 토큰 구문의 끝에서 나타나는 토큰들을 분할하는 방법을 도시하는 흐름도이다.
도 8d, 도 8e, 및 도 8f는, 본 발명의 일 실시예에 따라 도 8a에 도시된 방법에 따른 공유 토큰들을 분할하는 예를 도시한다.
도 9a는, 본 발명의 일 실시예에 따라, 초과 후보들(excess candidates)을 제거하는 방법을 도시하는 흐름도이다.
도 9b 내지 도 9f는, 본 발명의 일 실시예에 따라, 도 9a에 도시된 방법에 따른 초과 후보들을 제거하는 예를 도시한다.
도 10은, 본 발명의 일 실시예에 따라, 사용자에게 후보들을 제시하고 후보들에 대한 사용자 선택을 수용하는 사용자 인터페이스에 대한 동작 방법을 도시하는 흐름도이다.
도 11a 내지 도 11d는, 본 발명의 일 실시예에 따라, 사용자에게 후보들을 제시하고 후보들의 사용자 선택을 수용하는 사용자 인터페이스의 예를 도시한다.
도 12a는, 본 발명의 일 실시예에 따라, 후보 해석들의 리스트로부터 토큰들의 그리드를 형성하는 대체 방법을 도시하는 흐름도이다.
도 12b 내지 도 12d는, 본 발명의 일 실시예에 따라, 도 12a에 도시된 대체 방법에 의해 토큰들의 그리드를 생성하는 예를 도시한다.
도 13a 내지 도 13c는, 본 발명의 일 실시예에 따라, 도 12a에 도시된 대체 방법에 의해 토큰들의 그리드를 생성하는 다른 예를 도시한다.
도 14a 내지 도 14e는, 본 발명의 일 실시예에 따라, 보더링 토큰(bordering token)들을 확장하는 예를 도시한다.
도 15는, 일부 일시예에 따라, 전자 디바이스의 기능 블록도를 도시한다.
도 16은, 일부 실시예에 따라, 전자 디바이스의 기능 블록도를 도시한다.
도 17은, 일부 실시예에 따라, 전자 디바이스의 기능 블록도를 도시한다.
시스템 아키텍처
다양한 실시예에 따라, 본원 발명은 임의의 전자 디바이스에서 또는 임의의 수의 전자 디바이스를 포함하는 전자 네트워크에서 구현될 수 있다. 각각의 이러한 전자 디바이스는, 예를 들면, 데스크톱 컴퓨터, 랩톱 컴퓨터, PDA(personal digital assistant), 셀룰러 전화, 스마트폰, 음악 플레이어, 핸드헬드 컴퓨터, 태블릿 컴퓨터, 키오스크, 게임 시스템 등일 수 있다. 아래에 기술되는 바와 같이, 본원 발명은 단독 컴퓨팅 시스템 또는 다른 전자 디바이스에서, 또는 전자 네트워크를 통해 구현되는 클리이언트/서버 환경에서 구현될 수 있다. 둘 이상의 전자 디바이스 사이의 통신을 가능하게 하는 전자 네트워크는, HTTP(Hypertext Transfer Protocol), SHTTP(Secure Hypertext Transfer Protocol), TCP/IP(Transmission Control Protocol/Internet Protocol) 등과 같은 널리 공지된 네트워크 프로토콜을 이용하여 구현될 수 있다. 이러한 네트워크는, 예를 들면 인터넷이나 인트라넷이다. 네트워크에 대한 보안 액세스는 VPN(Virtual Private Network)과 같은 널리 공지된 기술들을 통해 가능할 수 있다. 본 발명은 또한 임의의 공지된 무선 통신 기술 및 프로토콜을 사용하여 무선 디바이스에서 구현될 수 있으며, 공지된 무선 통신 기술 및 프로토콜에는 WiFi, 3G(3rd generation mobile telecommunications), UMTS(Universal Mobile Telecommunications System), W-CDMA(Wideband Code Division Multiple Access), TD-SCDMA(Time Division Synchronous Code Division Multiple Access), HSPA+(Evolved High-Speed Packet Access), CSMA2000, Edge, DECT(Digital Enhanced Cordless Telecommunications), 블루투스, WiMAX(Mobile Worldwide Interoperability for Microwave Access), LTE(Long Term Evolution), LTE Advanced, 또는 이들의 조합이 포함되지만 이들로만 제한되는 것은 아니다.
본원에서 본 발명이 구어 단어 입력을 수신하고 사용자 선택을 위한 후보 해석들을 제시하기 위한 시스템의 맥락에서 기술되었지만, 본 기술 분야에서 통상의 지식을 가진 자라면, 본원 발명의 기술이 다른 맥락에서, 그리고 얼터너티브들(alternatives)(여기서, 얼터너티브들의 일부 부분(들)은 2 이상의 얼터너티브 간에 중복된다)의 리스트를 제시하는 것이 바람직한 임의의 시스템에서 구현될 수 있다는 것을 인식할 수 있을 것이다. 따라서, 아래에 기술되는 내용은 청구된 발명의 범위를 제한하는 것이 아니라, 본 발명의 다양한 실시예를 예시의 방식으로 기술하도록 의도되는 것이다.
일 실시예에서, 본원 발명은 컴퓨팅 디바이스 또는 다른 전자 디바이스에서 실행되는 소프트웨어 애플리케이션으로서 구현된다. 다른 실시예에서, 본원 발명은 적어도 하나의 서버 및 적어도 하나의 클라이언트 머신을 포함하는 클라이언트/서버 환경에서 실행되는 소프트웨어 애플리케이션으로 구현된다. 클라이언트 머신은, 임의의 적절한 컴퓨팅 디바이스 또는 다른 전자 디바이스일 수 있고, 임의의 공지된 유선 및/또는 무선 통신 프로토콜을 사용하여 서버와 통신할 수 있다.
예를 들면, 본 발명은 스마트폰, 컴퓨터, 또는 다른 전자 디바이스에서 동작되는 지능적 자동화 어시스턴트의 부분으로서 구현될 수 있다. 그러한 지능적 자동화 어시스턴트의 예는, 2011년 1월 10일에 출원되고 본원에 참조로 통합되는 관련 미국 실용신안특허 출원번호 제12/987,982호 "Intelligent Automated Assistant"에 기술된다. 일 실시예에서, 이러한 지능적 자동화 어시스턴트는 모바일 디바이스 또는 다른 전자 디바이스에서 실행되는 애플리케이션 또는 "앱"으로 구현될 수 있다; 대안적으로, 어시스턴트의 기능은 운영 시스템의 빌트인 컴포넌트로서 구현될 수 있다. 그러나, 본 기술 분야에서 통상의 지식을 가진 자라면, 본원에 기재된 기술들이 또한 다른 애플리케이션 및 시스템과 관련하여 구현될 수 있고, 및/또는 임의의 다른 유형의 컴퓨팅 디바이스, 디바이스들의 결합, 또는 플랫폼에서 구현될 수 있다는 것을 인식할 수 있을 것이다.
도 1을 참조하면, 일 실시예에 따라, 단독 디바이스(102)에서 통합된 음성 인식 결과들을 생성하기 위한 시스템(100)에 대한 하드웨어 아키텍쳐를 도시하는 블록도가 도시된다.
시스템(100)은, 본원에 기술된 단계를 수행하는 소프트웨어를 실행하기 위한 프로세서(105)를 갖는 디바이스(102)를 포함한다. 도 1에서, 별개의 오디오 프로세서(107) 및 음성 인식 프로세서(108)가 도시된다. 오디오 프로세서(107)는, 오디오 입력을 수신하고 디지털화된 오디오 스트림으로 변환하는 것에 관련된 동작들을 수행할 수 있다. 음성 인식 프로세서(108)는, 본원에 기재된 바와 같이, 음성 인식에 관련된 동작뿐만 아니라, 음성 입력의 후보 해석들을 생성하고 통합하는 것에 관련된 동작을 수행할 수 있다. 그러나 본원에 기재된 기능은 단일의 프로세서 또는 프로세서들의 임의의 조합을 이용하여 구현될 수 있다. 따라서, 도 1에 도시된 특정 집합의 프로세서들은 단지 예시적일 뿐이며, 임의의 프로세서들이 생략될 수 있고, 및/또는 부가적인 프로세서들이 추가될 수 있다.
디바이스(102)는, 소프트웨어를 실행하도록 적응된 임의의 전자 디바이스일 수 있다; 예를 들면, 디바이스(102)는 데스크톱 컴퓨터, 랩톱 컴퓨터, PDA(personal digital assistant), 셀룰러 전화, 스마트폰, 음악 플레이어, 핸드헬드 컴퓨터, 태블릿 컴퓨터, 키오스크, 게임 시스템 등일 수 있다. 일 실시예에서, 컴퓨팅 디바이스(102)는, 캘리포니아, 쿠퍼티노의 애플 인크로부터 입수 가능한 iPhone 또는 iPad일 수 있다. 일 실시예에 있어서, 디바이스(102)는, 캘리포니아주 쿠퍼티노의 Apple Inc.로부터 또한 입수가능한 iOS, 캘리포니아주 쿠퍼티노의 Apple Inc.로부터 또한 입수가능한 Mac OS X, 워싱턴주 레드몬드의 Microsoft사로부터 입수가능한 Microsoft Windows, 캘리포니아주 마운틴뷰의 Google, Inc.로부터 입수가능한 Android 등과 같은 임의의 적합한 운영 체제를 실행한다.
본 발명의 기술들은 잘 알려진 기술들에 따라 디바이스(102) 상에서 실행되는 소프트웨어 애플리케이션으로 구현될 수 있다. 예를 들어, 소프트웨어 애플리케이션은 자립형 소프트웨어 애플리케이션 또는 "app", 또는 캘리포니아주 쿠퍼티노의 Apple Inc.로부터 입수가능한 Safari와 같은 브라우저를 통해 또는 특수 웹-기반 클라이언트 소프트웨어에 의해 액세스가능한 웹-기반 애플리케이션이나 웹사이트일 수 있다.
일 실시예에 있어서, 디바이스(102)는 사용자(101)로부터 구어 입력을 수신하기 위한 마이크로폰(103) 또는 다른 오디오 입력 디바이스를 포함한다. 디바이스(102)는 예를 들어 키보드, 마우스, 터치스크린, 트랙볼, 트랙패드, 5-way 스위치, 음성 입력 디바이스, 조이스틱 및/또는 이들의 임의의 조합을 비롯한 임의의 적합한 입력 디바이스(들)(110)를 더 포함할 수 있다. 이러한 입력 디바이스(들)(110)는 사용자(101)가 디바이스(102)에 입력을 제공하게, 예를 들어 구어 입력의 후보 해석들 중에서 선택하게 할 수 있다. 일 실시예에 있어서, 디바이스(102)는 구어 입력의 후보 해석들을 포함하여 정보를 사용자(101)에게 디스플레이하거나 다른 방식으로 제시하기 위한 스크린(104) 또는 다른 출력 디바이스를 포함한다. 일 실시예에 있어서, 스크린(104)은 생략될 수 있는데, 예를 들어 구어 입력의 후보 해석들은 스피커나 다른 오디오 출력 디바이스(도시되지 않음)를 통해 또는 프린터(도시되지 않음)나 임의의 다른 적합한 디바이스를 이용하여 제시될 수 있다.
일 실시예에 있어서, 후보 해석들이 스크린(104)을 통해 (텍스트로서) 사용자(101)에게 제시되도록 하는 텍스트 편집 사용자 인터페이스(UI)(109)가 제공된다. 사용자(101)는 여기에 설명되는 바와 같이 후보 해석들 중에서 선택하며/하거나 사용자 자신의 해석들을 입력하기 위해서 UI(109)와 상호작용한다.
예를 들어, 여기에 상세하게 설명되는 실시예에 있어서, 스크린(104)은 터치 감지 스크린(터치 스크린)이다. UI(109)는 후보 해석들이 터치스크린(104) 상에 제시되도록 하며; 사용자는, 대안적인 해석들이 이용가능하다는 것을 나타내는 스크린(104)의 영역들을 탭핑함으로써 해석들 중에서 선택할 수 있다. UI(109)는 사용자(101)의 입력을 해석하여, 그에 따라 구어 입력의 디스플레이된 해석들을 업데이트한다.
프로세서(105)는 잘 알려진 기술들에 따라 소프트웨어의 지시 하에서 데이터에 대한 연산들을 수행하기 위한 종래의 마이크로프로세서일 수 있다. 메모리(106)는 소프트웨어를 실행하는 동안에 프로세서(105)에 의해 이용하기 위한 본 기술분야에 알려진 바와 같은 구조 및 아키텍처를 갖는 RAM(random-access memory)일 수 있다. 로컬 저장소(110)는 데이터를 디지털 형태로 저장하기 위한 임의의 자기, 광학 및/또는 전기 저장 디바이스일 수 있으며; 예로는, 플래시 메모리, 자기 하드 드라이브, CD-ROM 등이 포함된다. 일 실시예에 있어서, 로컬 저장소(110)는 오디오 파일들, 후보 해석들 등을 저장할 뿐만 아니라 여기에 설명되는 동작들을 수행하는 동안에 프로세서(105)에 의해 실행되는 소프트웨어를 저장하기 위해 이용된다.
당업자라면, 도 1에 도시된 하드웨어 엘리먼트들의 특정 배열은 단지 예시일 뿐이며, 본 발명은 다수의 상이한 방식 중 임의의 방식으로 구성된 상이한 하드웨어 엘리먼트들을 이용하여 구현될 수 있다는 것을 인식할 것이다. 따라서, 도 1에 도시된 특정 아키텍처는 단지 예시일 뿐이며, 어떠한 방식으로도 본 발명의 범위를 제한하도록 의도되지는 않는다.
이하, 도 2를 참조하면, 본 발명의 일 실시예에 따라 클라이언트/서버 환경에서 본 발명을 실시하기 위한 하드웨어 아키텍처를 도시한 블록도가 도시되어 있다. 이러한 아키텍처는 예를 들어 서버-기반 음성 인식 프로세서(108)와 관련하여 본 발명의 기술들을 구현하기 위해 이용될 수 있다. 오디오는 디바이스(102)에서 수신되어, 통신 네트워크(202)를 통해 서버(203)로 송신될 수 있다. 일 실시예에 있어서, 네트워크(202)는 3G 네트워크와 같이 데이터를 전송할 수 있는 셀룰러 전화 네트워크일 수 있으며; 대안적으로, 네트워크(202)는 인터넷이나 임의의 다른 적합한 네트워크일 수 있다. 서버(203)에서의 음성 인식 프로세서(108)는 오디오의 후보 해석들을 생성하고, 여기에 설명된 기술들에 따라 후보 해석들을 생성하고, 처리하며, 통합한다. 통합된 후보 해석들은 스크린(104) 상에서의 제시를 위해 네트워크(202)를 통해 디바이스(102)로 다시 송신된다. 텍스트 편집 UI(109)는 해석들의 제시 및 해석들 중에서 선택하기 위해서 사용자 입력을 수락하는 메커닉스를 핸들링한다.
일 실시예에 있어서, 서버(203)는, 디바이스(102)에 의해 수집된 오디오 스트림의 분석을 수행하며 미처리 후보 해석들을 생성하는 음성 서버(205)에서 실행되는 음성 인식기(206)와 통신한다. 음성 인식기(206)는 오디오 입력을 해석하기 위해 임의의 종래의 기술들을 이용할 수 있다. 예를 들어, 일 실시예에 있어서, 음성 인식기(206)는 메사추세츠주의 벌링턴의 Nuance Communications, Inc.로부터 입수가능한 Nuance 음성 인식기일 수 있다. 대안적으로, 음성 서버(205)는 생략될 수 있고, 모든 음성 인식 기능들은 서버(203)에서 또는 하나 이상의 서버(들) 및/또는 다른 컴포넌트들의 임의의 다른 배열에서 수행될 수 있다.
네트워크 통신 인터페이스(201)는 통신 네트워크(202)를 통한 다른 디바이스들로의/로부터의 데이터의 통신을 용이하게 하는 전자 컴포넌트이다. 서버들(203, 205)은 네트워크(202)를 통해 디바이스(102)와 그리고/또는 서로 통신하며, 일 실시예에서는 디바이스(102)에 대하여 그리고/또는 서로에 대하여 원격으로 또는 로컬로 위치할 수 있다.
당업자라면, 본 발명이 적절한 경우에 분산형 소프트웨어 아키텍처를 이용하여 구현될 수 있다는 것을 인식할 것이다. 또한, 당업자라면, 도 2에 도시된 클라이언트/서버 아키텍처는 단지 예시일 뿐이며, 웹-기반일 수도 있고 아닐 수도 있는 아키텍처들을 비롯한 다른 아키텍처들이 본 발명을 구현하는데 이용될 수 있다는 것을 인식할 것이다. 일반적으로, 도 2에 도시된 다양한 컴포넌트들 사이에서의 기능들 및 동작들의 특정 분할은 단지 예시일 뿐이며; 당업자라면, 여기에 설명된 단계들 및 동작들 중 임의의 것은 임의의 다른 적합한 컴포넌트 배열에 의해 수행될 수 있다는 것을 인식할 것이다. 따라서, 도 2에 도시된 특정 아키텍처는 단지 예시일 뿐이며, 어떠한 방식으로도 본 발명의 범위를 제한하도록 의도되지는 않는다.
이하, 도 3을 참조하면, 도 2에 도시된 시스템과 유사한 시스템(200)에서의 데이터 흐름을 도시한 블록도가 도시되어 있다. 명쾌함을 위해, 시스템(200)의 몇몇 컴포넌트들은 도 3으로부터 생략된다.
사용자(101)로부터의 구어 단어(spoken word)들을 포함할 수 있는 오디오(303)는 디바이스(102)의 마이크로폰(103)에 의해 캡처된다. 오디오 프로세서(107)는 오디오(303)를 오리지널 오디오(303)를 나타내는 디지털 신호인 오디오 스트림(305)으로 변환한다. 이러한 방식으로 디지털 형태로 변환하는 것은 본 기술분야에 잘 알려져 있다.
디바이스(102)는 오디오 스트림(305)을 서버(203)로 송신한다. 서버(203)에서의 릴레이(304)는 오디오 스트림(305)을 음성 서버(205)에서 실행되는 음성 인식기(206)로 송신한다. 전술한 바와 같이, 이러한 모든 송신은 셀룰러 전화 네트워크 또는 임의의 다른 적합한 유선이나 무선 통신 네트워크를 통해 일어날 수 있다. 전술한 바와 같이, 음성 인식기(206)는 Nuance 음성 인식기(206)일 수 있다. 음성 인식기(206)는 음성 스트림(305)에서 발견된 구어 입력의 후보 해석들의 리스트(306)를 생성하며, 이 리스트(306)를 서버(203)로 송신한다. 이러한 후보 해석들은 본 명세서에서 "후보들"로도 언급된다. 음성 인식 프로세서(108)는 여기에 설명된 기술들에 따라 후보들의 통합된 리스트(307)를 생성하며, 이 리스트(307)를 디바이스(102)로 송신한다.
텍스트 편집 UI(109)는 여기에 설명된 기술들에 따라 스크린(104)을 통해 사용자(101)에게 리스트(307)를 제시하며, 사용자 입력(304)을 해석하여, 여기에 설명된 바와 같이 후보 해석들 중에서 선택한다.
일단 사용자(101)가 후보 해석들 중에서 선택하면, 선택된 텍스트가 디스플레이고, 저장되고, 전송되고/되거나 다른 방식으로 작용될 수 있다. 예를 들어, 일 실시예에 있어서, 선택된 텍스트는 디바이스(102) 또는 다른 디바이스 상에서의 소정 액션을 수행하기 위한 커맨드로서 해석될 수 있다. 대안적으로, 선택된 텍스트는 문서 또는 문서의 일부로서, 이메일이나 메시지의 다른 형태로서, 또는 텍스트 전송 및/또는 저장을 위한 임의의 다른 적합한 리포지토리나 매체로서 저장될 수 있다.
동작 방법
이하, 도 4a를 참조하면, 본 발명의 일 실시예에 따라 후보 결과들의 통합된 리스트를 생성하기 위한 음성 인석 프로세서의 전체 동작을 도시한 흐름도가 도시되어 있다. 일 실시예에 있어서, 도 4a에 도시된 단계들은 도 1 또는 도 2의 음성 인식 프로세서(108)에 의해 수행될 수 있으며; 대안적으로, 이들 단계들은 임의의 다른 적합한 컴포넌트나 시스템에 의해 수행될 수 있다.
음성 인식기(206)로부터 수신된 결과들은 예를 들어 문장들로서 표현된 후보 해석들의 리스트(306)를 포함한다. 전술한 바와 같이, 이들 후보 해석들은 종종 서로 동일한 부분들을 포함한다. 이들 중복 부분들을 포함하는 후보 해석들을 제시하는 것은 사용자(101)를 당황하게 할 수 있으며, 시스템이 동작하는 것을 보다 어렵게 함으로써 감소된 사용자 경험에 기여할 수 있다. 도 4a에 도시된 단계들은, 사용자(101)가 의도된 텍스트를 보다 용이하게 선택할 수 있도록 후보 해석들을 통합하기 위한 방법론을 제공한다.
음성 인식 프로세서(108)는 음성 인식기(206)로부터 오디오 입력의 후보 해석들의 리스트(306)를 수신한다. 각각의 후보 해석 또는 후보는 다수의 단어들을 포함하는데, 예를 들어 각각의 후보 해석은 문장 또는 문장형 구조일 수 있다. 각각의 후보 해석은 잘 알려진 음성 인식 메커니즘에 의해 생성된 구어 입력의 하나의 가능한 해석을 나타낸다. 일 실시예에 있어서, 음성 인식 프로세서(108)는 또한 단어-레벨 타이밍을 수신하는데, 이는 각각의 후보 해석에서의 각 단어(또는 구문)에 대한 오디오 스트림 내의 시작 및 종료 포인트를 나타낸다. 이러한 단어-레벨 타이밍은 음성 인식기(206)로부터 또는 임의의 다른 적합한 소스로부터 수신될 수 있다. 대안적인 실시예에 있어서, 어떠한 타이밍 정보도 이용되지 않으며; 이러한 실시예는 보다 상세하게 후술된다.
이하, 도 4b를 또한 참조하면, 여기에 설명된 기술들에 의해 처리되기 전에 단일의 오디오 스트림으로부터 음성 인식기(206)에 의해 생성될 수 있는 후보들(411)의 리스트(306)의 일례가 도시되어 있다. 각각의 후보(411)는 단어들 및/또는 구문들일 수 있는 다수의 토큰들(412)을 포함한다. 도 4b의 예로부터 알 수 있는 바와 같이, 다수의 후보들(411)은 서로 유사하며, 대부분의 경우에는 단지 하나의 단어나 2개의 단어만큼 상이하다. 이러한 형태로 이러한 리스트를 사용자(101)에게 제시하는 것은 당황하게 하며 혼동하게 할 것인데, 그 이유는 사용자(101)가 다수의 유사한 후보들(411) 중 어느 것이 사용자가 의도한 것에 대응하는지를 식별하는 것이 어려울 것이기 때문이다. 알 수 있는 바와 같이, 본 발명의 시스템 및 방법은 통합된 리스트(307)를 생성하며 개선된 인터페이스를 제공하여, 사용자(101)가 후보들 중에서 선택하는 것을 돕는다.
도 4b는 또한 하나의 후보(411)를 도시한 상세를 포함한다. 타이밍 코드들(413)은 후보(411)에서의 각각의 토큰(412)의 시작 시간을 예를 들어 밀리초로 또는 임의의 다른 적합한 시간 단위로 나타낸다. 일 실시예에 있어서, 리스트(306)에서의 각각의 후보(411)는 그 토큰들(412) 각각에 대한 이러한 타이밍 코드들(413)을 포함한다. 각각의 토큰(412)의 종료 시간은 다음 토큰(412)의 시작 시간과 동일한 것으로 가정될 수 있다. 명쾌함을 위해, 로우에서의 마지막 토큰(412)의 종료 시간은 생략되지만, 이는 몇몇 실시예에서는 또한 특정될 수 있다.
다시, 도 4a를 참조하면, 음성 인식 프로세서(108)는 사용자(101)에게 제시하기 위해 통합된 리스트(307)를 생성하기 위해서 리스트(306)에 대해 다수의 단계들을 수행한다. 먼저, 개별 단어들 또는 구문들(본 명세서에서, 토큰들로 언급됨)의 그리드가 타이밍 정보를 이용하여 리스트(306)로부터 형성된다(402). 그런 다음, 그리드는 타이밍 정보에 기초하여 독립적인 컬럼 그룹들로 분할된다(403). 일 실시예에 있어서, 이는 개별 토큰들을 2개 이상의 부분들로 나누지 않는 최소의 가능한 컬럼들을 식별함으로써 수행된다. 그런 다음, 각각의 컬럼으로부터 중복이 제거되어(404), 후보들의 통합된 리스트(307)가 생성된다.
일 실시예에 있어서, 부가적인 단계들이 수행될 수 있지만, 이러한 단계들은 생략될 수 있다. 예를 들어, 일 실시예에 있어서, 컬럼에서의 모든 엔트리들이 동일한 토큰으로 시작되는지 또는 종료되는지에 대한 결정이 이루어진다. 그러한 경우, 컬럼은 2개의 컬럼들로 분할될 수 있다(405). 그런 다음, 통합된 리스트(307)를 더 단순화하기 위해서 단계(404)가 재적용될 수 있다.
일 실시예에 있어서, 통합된 리스트(307)가 여전히 너무 많은 후보들을 포함한다고 결정되는 경우, 초과 후보들이 제거될 수 있다(406). 그런 다음, 통합된 리스트(307)를 더 단순화하기 위해서 단계(404) 및/또는 단계(405)가 재적용될 수 있다.
도 4a에 도시된 단계들 각각은 보다 상세하게 후술될 것이다.
토큰들의 그리드 형성(402)
이하, 도 5a를 참조하면, 본 발명의 일 실시예에 따라 후보들(411)의 리스트(306)로부터 토큰들의 그리드(505)를 형성하는 방법을 도시한 흐름도가 도시되어 있다. 도 5a에 도시된 방법은 도 4a의 단계(402)에 대응한다.
각각의 후보(411)에서의 각각의 토큰(412)에 대하여, 음성 인식기(206)로부터 또는 다른 소스로부터 수신된 데이터에 포함된 타이밍 코드들(413)에 기초하여 토큰(412)의 시작 시간 및 종료 시간이 결정된다(501). 모든 토큰들(412)의 시작 시간 및 종료 시간은 소팅되는 고유한 정수들의 집합(502)으로부터 형성된다. 이러한 소팅된 집합으로부터, 후보들(411)의 개수와 동일한 다수의 로우들 및 소팅된 집합(502)에서의 고유한 정수들의 개수보다 1개 적은 개수와 동일한 다수의 컬럼들을 갖는 그리드가 생성된다(503). 따라서, 그리드의 각각의 셀은 시작 및 종료 시간에 의해 정의된다. 명쾌함을 위해, 본원의 다양한 도면들에서, 각각의 로우의 마지막 토큰(412)에 대한 종료 시간은 생략되지만, 이는 몇몇 실시예에서는 또한 특정될 수 있다.
각각의 후보(411)에서의 각각의 토큰(412)에 대하여, 셀의 시작/종료 타이밍에 의해 걸쳐진(spanned) 모든 셀들로 토큰(412)이 삽입된다(504). 각각의 토큰(412)은 하나 이상의 컬럼들에 걸치며; 토큰(412)은 그 타이밍이 다른 후보들(411)에서의 다른 토큰들(412)의 타이밍과 오버랩되는 경우에 다수의 컬럼들에 걸칠 수 있다. 그 결과는 토큰들(412)의 그리드(505)이다.
이하, 도 5b를 참조하면, 도 5a에 도시된 방법에 의해 생성된 토큰들(412)의 그리드(505)의 일례가 도시되어 있다. 그리드(505)는 도 4b의 10개의 후보들(411)에 대응하는 10개의 로우들을 포함한다. 그리드(505)는 (마지막 컬럼(513)에 대한 종료 시간이 생략된다는 것을 가정하여) 타이밍 코드들(413)로부터 생성된 11개의 고유한 정수들에 대응하는 11개의 컬럼들(513)을 포함한다.
각각의 로우는 단일의 후보(411)로부터의 토큰들(412)을 포함한다. 각각의 로우에 대하여, 그리드(505)의 셀들은 토큰들(412)과 연관된 타이밍 코드들(413)에 따라 채워진다. 도 5b의 예에서 알 수 있는 바와 같이, 몇몇 토큰들(412)은 그 타이밍 코드들(413)에 기초하여 다수의 컬럼들에 걸친다.
컬럼 그룹들로의 그리드의 분할(403)
이하, 도 6a를 참조하면, 본 발명의 일 실시예에 따라 타이밍 정보에 기초하여 그리드(505)를 컬럼 그룹들의 집합으로 분할하는 방법을 도시한 흐름도가 도시되어 있다. 도 6a에 도시된 방법은 도 4a의 단계(403)에 대응한다.
일 실시예에 있어서, 그리드(505)는 개별 토큰들(412)을 2개 이상의 부분들로 나누지 않는 최소의 가능한 컬럼들을 식별함으로써 분할된다. 그리드(505)에서의 제1 컬럼(513)이 선택된다(601). 선택된 컬럼(513)이 이미 컬럼 그룹에 있는지가 결정되며(602), 그렇지 않은 경우, 선택된 컬럼(513)을 포함하는 새로운 컬럼 그룹이 형성된다(603).
현재의 컬럼(513)에서의 임의의 토큰들(412)이 현재의 컬럼(513)의 종료 시간을 넘는(spans beyond) 종료 시간을 갖는지가 결정된다(604). 그러한 경우, 그리드(505)에서의 다음의 컬럼(513)이 선택된 컬럼(513)을 포함하는 컬럼 그룹에 추가된다.
선택된 컬럼(513)이 그리드(505)에서의 마지막 컬럼인지가 결정된다(609). 그렇지 않은 경우에는, 다음의 컬럼(513)이 선택되며, 이 방법은 단계(602)로 리턴한다. 선택된 컬럼(513)이 그리드(505)에서의 마지막 컬럼인 경우에는, 컬럼 그룹 리스트가 생성된다(625).
도 6a의 방법의 결과는 컬럼 그룹들(615)의 리스트(614)이다. 이하, 도 6b를 또한 참조하면, 도 6a에 도시된 방법에 의해 생성된 컬럼 그룹들(615)의 리스트(614)의 일례가 도시되어 있다. 이 예에서, 리스트(614)는 8개의 컬럼 그룹들(615)을 포함한다. 각각의 컬럼 그룹(615)은 단일의 컬럼(513) 또는 2개 이상의 컬럼(513)을 포함할 수 있다. 컬럼 그룹(615) 내의 각각의 로우는 하나 이상의 토큰들(412)을 포함하는 토큰 구문(616)을 포함한다.
중복 제거(404)
이하, 도 7a를 참조하면, 본 발명의 일 실시예에 따라 컬럼 그룹들(615)의 리스트(614)에서 중복(duplicate)을 제거하는 방법을 도시한 흐름도가 도시되어 있다. 도 7a에 도시된 방법은 도 4a의 단계(404)에 대응한다.
제1 컬럼 그룹(615)이 선택된다(701). 선택된 컬럼 그룹(615)에서의 제1 토큰 구문(616)이 선택된다(702). 동일한 컬럼 그룹(615)에서의 임의의 중복 토큰 구문들(616)이 제거된다(703).
단계(704)에서, 임의의 토큰 구문들(616)이 선택된 컬럼 그룹(615)에 남아 있는 경우에는, 선택된 컬럼 그룹(615)에서의 다음의 토큰 구문(616)이 선택되며(705), 이 방법은 단계(703)로 리턴한다.
단계(704)에서, 어떠한 토큰 구문들(616)도 선택된 컬럼 그룹(615)에 남아 있지 않은 경우에는, 이 방법은 단계(706)로 진행한다. 단계(706)에서, 마지막 컬럼 그룹(615)에 도달한 경우에는, 이 방법은 종료되며, 컬럼 그룹들(715)의 중복 제거된(de-duplicated) 리스트(708)가 출력된다. 단계(706)에서, 마지막 컬럼 그룹(615)에 도달하지 않은 경우에는, 다음의 컬럼 그룹(715)이 선택되며(707), 이 방법은 단계(702)로 리턴한다.
이하, 도 7b를 참조하면, 도 7a에 도시된 방법에 의해 생성된 컬럼 그룹들(615)의 중복 제거된 리스트(708)의 일례가 도시되어 있다. 여기서, 각각의 컬럼 그룹(615)은 단지 고유한 토큰 구문들(616)을 포함한다.
일 실시예에 있어서, 사용자(101)에게 제시될 수 있는 후보 해석들의 통합된 리스트(307)로서 중복 제거된 리스트(708)가 텍스트 편집 UI(109)에 제공된다. 텍스트 편집 UI(109)의 동작 및 통합된 리스트(307)의 제시에 관한 추가 상세가 여기에 제공된다.
다른 실시예에 있어서, 후술하는 바와 같이 텍스트 편집 UI(109)로 제공되기 전에 중복 제거된 리스트(708)에 대해 추가 처리가 수행된다.
공유 토큰들의 분할(405)
이하, 도 8d, 도 8e 및 도 8f를 참조하면, 본 발명의 일 실시예에 따라 공유 토큰들(412)을 분할하는 일례가 도시되어 있다.
일부 경우들에서, 컬럼 그룹(615) 내의 모든 토큰 구문들(616)은 토큰 구문들(616)이 동일한 타이밍 코드들을 가지지 않더라도 동일한 토큰(412)으로 시작하거나 종료할 수 있다. 예를 들어, 도 8d에서, 컬럼 그룹(615A)는 4개의 토큰 구문(616A, 616B, 616C, 616D)을 포함한다. 이들 4개의 토큰 구문들을 조사하면 모든 구문들이 동일한 토큰(412)(단어),"Call(콜)"로 시작한다는 것이 나타난다. 따라서, 일 실시예에서, 컬럼 그룹(615A)은 새로운 두 개의 컬럼 그룹들(615D 및 615E)로 분할된다. 컬럼 그룹(615D)은 토큰 구문(616E, 616F, 616G, 616H)를 포함하며, 각 토큰 구문은 토큰(412) "Call"을 포함한다. 컬럼 그룹(615E)은 토큰 구문들(616J, 616K, 616L, 616M)을 포함하며, 각 토큰 구문들은 토큰 그룹들(616A, 616B, 616C, 616D)로부터 나머지 토큰들(412)을 각각 포함한다. 중복 제거(de-duplication) 단계(404)는 도 8f에서 도시된 바와 같이, 컬럼 그룹(615D)으로부터 중복들을 제거하도록 재적용된다.
일 실시예에서, 공유 토큰들(412)은 그러한 동작이 임의의 빈 얼터너티브들을 생성하지 않을 경우에만 분할된다. 예를 들어, 도 7b를 다시 간략하게 참조하면, 제4 컬럼 그룹(615) 내의 단어 "quietly(조용히)"는 분할될 수 있지만, 이것은 사용자(101)가 보거나 선택하지 못할 수 있는 빈 제안(empty suggestion)을 포함하는 컬럼 그룹을 야기할 수 있다. 따라서, 일 실시예에서, 그런 상황에서, 공유 토큰(412)은 분할되지 않는다.
이제 도 8a를 참조하면, 본 발명의 일 실시예에 따라 공유 토큰들을 분할하는 방법을 설명하는 플로우 차트가 도시된다. 도 8a에 도시된 방법은 도 4a의 단계(405)에 대응한다.
제1 컬럼 그룹(615)이 선택된다(801). 컬럼 그룹(615) 내의 모든 토큰 구문들(616)의 시작에서 나타나는 임의의 토큰들(412)이 분할된다(802)(그러한 분할이 빈 얼터너티브들을 야기하지 않는 한도에서). 컬럼 그룹(615) 내의 모든 토큰 구문들(616)의 종료에서 나타나는 임의의 토큰들(412)이 분할된다(802)(그러한 분할이 빈 얼터너티브들을 야기하지 않는 한도에서).
만약, 단계(804)에서, 마지막 컬럼 그룹(615)에 도달했다면, 방법은 종료하고, 컬럼 그룹들(615)의 업데이트된 리스트(806)이 출력된다. 그렇지 않은 경우, 다음 컬럼 그룹(615)이 선택되고(805), 방법은 단계(802)로 리턴된다.
일 실시예에서, 단계(404)는 중복을 제거하기 위해 업데이트된 리스트(806)에 적용된다.
이제 도 8b를 참조하면, 본 발명의 일 실시예에 따라 컬럼 그룹(615) 내의 모든 토큰 구문들(616)의 시작에서 나타나는 토큰들(412)을 분할하는 방법을 설명하는 플로우 차트가 도시된다. 도 8b에 도시된 방법은 도 8a의 단계(802)에 대응한다.
단계(802)에 대한 입력은 컬럼 그룹(615)이다. 컬럼 그룹(615) 내의 제1 토큰 구문(616)이 선택된다(822). 만약, 단계(823)에서, 토큰 구문(616)이 단지 하나의 토큰을 포함한다면(412) 방법은 종료하고, 출력은 단일의 컬럼 그룹(615)이다. 이것은 임의의 컬럼 그룹(615)이 단지 하나의 토큰을 포함한다면(412), 분할이 발생하지 않을 것이라는 것을 보장한다.
만약, 단계(823)에서, 토큰 구문(616)이 2 이상의 토큰을 포함한다면, 토큰 구문(616) 내의 제1 토큰(412)이 이전 토큰 구문(616) 내의 제1 토큰(412)과 매치하는지 또는 이것이 컬럼 그룹(615) 내의 제1 토큰 구문(616)인지에 대한 결정이 이루어진다(824). 이들 조건들 중의 어느 하나가 참이라면, 방법은 단계(825)로 진행한다. 그렇지 않은 경우, 방법은 종료하고, 출력은 단일의 컬럼 그룹(615)이다.
단계(825)에서, 방법이 컬럼 그룹(615) 내의 마지막 토큰 구문(616)에 도달 했는지에 대한 결정이 이루어진다. 그렇다면, 컬럼 그룹(615)은 두 개의 새로운 컬럼 그룹들(615)로 분할(827)된다. 새로운 제1 컬럼 그룹(615)은 각 토큰 구문(616)으로부터의 제1 토큰(412)으로 채워진다(828). 새로운 제2 컬럼 그룹(615)는 각 토큰 구문(616)으로부터의 남아 있는 토큰(들)(412)으로 채워진다(829).
일 실시예에서, 단계(829) 후에, 방법은 새로운 제2 컬럼 그룹(615)을 이용하여 반복되어(830), 추가적인 분할이 반복적으로 수행될 수 있다. 대안으로, 다른 실시예에서, 단계(829) 후에 새로운 컬럼 그룹들(615)의 집합이 출력된다.
이제 도 8c를 참조하면, 본 발명의 일 실시예에 따라, 컬럼 그룹(615) 내의 모든 토큰 구문들(616)의 종료에서 나타나는 토큰들(412)을 분할하는 방법을 설명하는 플로우 차트가 도시된다. 도 8c에 도시된 방법은 도 8a의 단계(803)에 대응한다. 도 8c의 방법은, (단계(824)를 대체하는) 단계(834)의 비교가 토큰 구문(616) 내의 마지막 토큰(412)과 이전 토큰 구문(616) 내의 마지막 토큰(412) 사이에서 이루어진다는 점을 제외하고, 도 8b의 방법과 실질적으로 동일하다. 더욱이, 아래에서 설명된 것과 같이, 단계들(828, 829, 및 830)은 단계들(838, 839, 및 840)에 의해 대체된다.
단계(803)에 대한 입력은 컬럼 그룹(615)이다. 컬럼 그룹(615) 내의 제1 토큰 구문(616)이 선택된다(822). 만약, 단계(823)에서, 토큰 구문(616)이 오직 하나의 토큰(412)을 포함한다면, 방법은 종료하고, 출력은 단일의 컬럼 그룹(615)이다. 이것은 임의의 컬럼 그룹(615)이 단지 하나의 토큰(412)을 포함하는 경우, 어떠한 분리도 발생하지 않을 것이라는 것을 보장한다.
만약, 단계(823)에서, 토큰 구문(616)이 2 이상의 토큰을 포함한다면, 토큰 구문(616) 내의 마지막 토큰(412)이 이전 토큰 구문(616) 내의 마지막 토큰(412)과 매치하는지 또는, 이것이 컬럼 그룹(615) 내의 제1 토큰 구문(616)인지에 대한 결정이 이루어진다(834). 이들 조건들 중 어느 하나가 참이라면, 방법은 단계(825)로 진행한다. 그렇지 않으면, 방법은 종료하고, 출력은 단일의 컬럼 그룹(615)이다.
단계(825)에서, 방법이 컬럼 그룹(615) 내의 마지막 토큰 구문(616)에 도달했는지에 대한 결정이 이루어진다. 만약 그렇다면, 컬럼 그룹(615)은 두 개의 새로운 컬럼 그룹들(615)로 분할된다(827). 새로운 제2 컬럼 그룹(615)은 각 토큰 구문(616)으로부터의 마지막 토큰(412)으로 채워진다(838). 새로운 제1 컬럼 그룹(615)은 각 토큰 구문(616)으로부터 남아 있는 토큰(들)(412)로 채워진다(839).
일 실시예에서, 단계(839) 후에, 방법은 새로운 제2 컬럼 그룹(615)을 이용하여 반복되어(840), 추가적인 분할이 반복적으로 수행될 수 있게 된다. 대안으로, 다른 실시예에서, 단계(839) 후에, 새로운 컬럼 그룹들(615)의 집합이 출력된다.
초과 후보들의 제거 ( Remove Excess Candidates )(406)
일부 경우들에서, 위에서 설명된 통합(consolidation) 단계들이 수행된 후에라도, 사용자(101)에게 효과적으로 나타내기 위해 여전히 아주 많은 후보들이 존재할 수 있다. 예를 들어, 일부 실시예들에서, 후보들의 수에 있어서 고정 한계가 수립될 수 있으며, 그 한계는, 예를 들어, 5와 같은 임의의 양수일 수 있다. 만약, 컬럼 그룹을 위한 후보들의 수가 이 한계를 초과한다면, 초과 후보들은 제거될 수 있다(406). 다른 실시예들에서, 이 단계는 생략될 수 있다.
이제 도(9a)를 참조하면, 본 발명의 일 실시예에 따라, 초과 후보들을 제거하는 방법을 설명하는 플로우 차트가 도시된다. 도 9a에 도시된 방법은 도 4a의 단계(406)에 대응한다.
컬럼 그룹들(615)의 업데이트된 리스트(806)는 입력으로서 수신된다. 최대 현재 컬럼 그룹의 사이즈 S가 계산되며(901); 이것은 가장 큰 컬럼 그룹(615) 내의 토큰 구문들(616)의 수와 같다. S가 5와 같은 미리 결정된 임계치를 초과하는 지에 대한 결정이 이루어진다(902). 미리 결정된 임계치는, 이용가능한 스크린 사이즈에 있어서의 한계, 사용성 제약, 성능 등과 같은 임의의 적용 가능한 인자(들)에 기초하여 결정될 수 있다.
만약, S가 임계치를 초과하지 않는다면, 방법은 종료하고, 통합된 리스트(307)는 텍스트 편집 UI(109)에 출력으로서 제공될 수 있다.
만약, S가 임계치를 초과한다면, 사이즈 S의 모든 컬럼 그룹들(615)은 하나의 토큰 구문(616)을 제거함으로써 짧아진다(일 실시예에서, 마지막 토큰 구문(616)이 제거되지만, 다른 실시예들에서는 다른 토큰 구문들(616)이 제거될 수 있다). 이것은 제1 컬럼 그룹(615)을 선택하고(903), 컬럼 그룹(615)의 사이즈가 S와 동일한지를 결정하고(904), 만약 그렇다면, 컬럼 그룹(615)으로부터 마지막 토큰 구문(616)을 제거함(905)으로써 행해진다. 단계(906)에서, 만약, 마지막 컬럼 그룹(615)에 도달하지 않았다면, 다음 컬럼 그룹(615)이 선택되고(907), 단계(904)는 반복된다.
마지막 컬럼 그룹(615)이 도달(906)한다면, 방법은 단계(404)로 리턴해서, 중복들이 제거될 수 있고/거나, 공유 토큰들이 분할될 수 있다(405). 단계(404 및 405)가 반복된다면, 필요한 경우 부가적인 후보들을 선택적으로 제거하기 위해 방법은 단계(406)로 돌아갈 수 있다.
이제 도 9b 내지 9f를 참조하면, 본 발명의 일 실시예에 따른, 도 9a에 도시된 방법에 따라 초과 후보들을 제거하는 예시가 도시된다.
도 9b에서, 컬럼 그룹 리스트(614)는 세 개의 컬럼 그룹들(615F, 615G, 615H)을 포함한다. 컬럼 그룹(615H)은 18 개의 토큰 구문들(616)을 포함하며, 이는 미리 결정된 임계치 6을 초과한다.
도 9c에서, 17 개의 토큰 구문들(616)을 남겨둔채로,컬럼 그룹(615H)의 마지막 토큰 구문(616)이 제거된다. 이것은 성공적으로 수행되어, 도 9d에서 16개의 토큰 구문들(606)이 남는다. 토큰 구문(616)의 각 제거 후에, 가능하다면 중복들의 제거와 공유 토큰들의 분할을 가능하게 하도록 단계(404 및 405)는 반복된다.
이 예시에서, 도 9e에 도시된 바와 같이, 12개의 토큰 구문들(616)이 남는다면, 단계(405)는 컬럼 그룹(615H)이 두 개의 새로운 컬럼 그룹들(615J, 615K)로 분할되게 한다. 토큰 구문들(616)의 추가적 제거는 도 9f에 도시된 것과 같이, 사용자에 대한 제시를 위한 얼터너티브들의 합리적인 수를 야기한다.
일 실시예에서, 추가적인 단계들은 구두법(punctuation) 및/또는 공백을 처리하도록 수행될 수 있다. 형태에 의존하여, 구두법은 왼쪽 및/또는 오른쪽으로 이웃하는 컬럼에 합쳐질 수 있다. (마침표(period), 물음표, 및 느낌표와 같은)"종료 구두법(end punctuation)"은 선행하는 토큰(412)과 합쳐질 수 있다. 일 실시예에서, 종료 구두법이 컬럼 그룹의 시작에서 나타나게 할 수 있는 어떠한 분할도 수행되지 않는다. 스페이스, 하이폰, 어퍼스트로피, 인용 부호 등과 같은 다른 구두법은 주어진 언어의 룰에 기초하여 인접한 토큰들(412)과 합쳐질 수 있다.
사용자 인터페이스 ( User Interface )
위에서 설명된 통합 단계들이 수행되었다면, 후보들의 통합된 리스트(307)는 스크린(104) 또는 일부 다른 출력 디바이스를 통해 사용자(101)에게 제시하기 위한 텍스트 편집 UI(109)에 제공될 수 있다. 일 실시예에서, 텍스트 편집 UI(109)는 클라이언트/서버 환경 내의 클라이언트 디바이스(102) 상에서 동작하여, 리스트(307)을 UI(109)에 대해 이용 가능하도록 만들기 위해 후보들의 통합된 리스트(307)가 전자 네트워크를 통해 서버(203)로부터 클라이언트(102)로 전송된다. 대안으로, 도 1에 도시된 것과 같은 독립형 시스템(stand-alone system)에서, 텍스트 편집 UI(109)는 디바이스(102)의 컴포넌트 상에서 구현될 수 있다. 둘 중 어느 경우에라도, 텍스트 편집 UI(109)는 입력 디바이스(들)(110)과 스크린(104)을 통해 사용자(101) 상호작용을 가능하게 한다.
이제 도 10을 참조하면, 본 발명의 일 실시예에 따라, 사용자(101)에게 후보들을 제시하고 후보들의 사용자 선택을 수용하기 위한 텍스트 편집 UI(109)를 위한 동작의 방법을 설명하는 플로우 차트가 도시된다. 이제, 또한 도 11a 내지 11d를 참조하면, 텍스트 편집 UI(109)의 동작의 예시가 도시된다.
일 실시예에서, UI(109)는 후보들의 디폴트 집합을 표현하고, 선택적으로 활성화된 팝-업 메뉴들을 통해 다른 후보들의 선택을 가능하게 한다.
문장(1101)은 리스트(307) 내의 각 컬럼 그룹(615)으로부터의 단일의 엔트리를 이용하여 작성된다(1001)(각 컬럼 그룹(615)은 하나 이상의 컬럼들을 포함할 수 있다). 일 실시예에서는, 각 컬럼 그룹(615)의 제1 행을 점유하는 엔트리가 사용되지만, 다른 실시예들에서는, 다른 엔트리들이 사용될 수 있다. 작성된 문장(1101)은 도 11a에서 도시된 바와 같이, 스크린(104) 상에 디스플레이 된다(1002).
일 실시예에서, 다수의 선택들을 갖는 단어들 및/또는 구문들이 하이라이트되거나 밑줄 그어진다(underlined)(1003). 그러한 단어들 및/또는 구문들은 2 이상의 토큰 구문(616)을 포함하는 그 컬럼 그룹들(615)에 대응한다. 따라서, 단일의 토큰 구문(616)을 포함하는 컬럼 그룹(615)은 하이라이트 되지 않으며, 반대로, 적어도 두 개의 다른 토큰 구문(616)을 포함하는 컬럼 그룹(615)은 하이라이트 된다.
임의의 형태의 하이라이팅 또는 밑줄 긋기가 사용될 수 있으며, 및/또는 그러한 단어들 및/또는 구문들을 다른 단어들 및/또는 구문들과 시각적으로 구별하기 위한, 폰트, 사이즈, 스타일, 백그라운드, 컬러 등을 포함하지만 이들에 한정되지 않는 임의의 다른 기술들이 사용될 수 있다. 다른 실시예에서, 그러한 시각적 구별이 만들어지지는 않는다. 또 다른 실시예에서, 그러한 시각적으로 구별하는 요소들은 사용자(101)가 커서로 하여금 다수의 선택들을 갖는 단어들 및/또는 구문들을 호버링(hover over)하게 할 때에만 표현될 수 있다.
일 실시예에서, 하이라이팅, 밑줄 긋기 또는 다른 시각적 특성들의 서로 다른 형태들이, 예를 들어, 디스플레이된 얼터너티브들 내의 신뢰(confidence)라는 결정된 가능성에 의존하여 사용될 수 있다. 예를 들어, 얼터너티브들이 가능하지만, 디스플레이된 디폴트 선택이 다른 얼터너티브들 중 어느 것보다 더 수정될 수 있다는 결정이 행해지면, 일부 단어들 및/또는 구문들은 더 부드러운 하이라이팅 효과를 이용하여 나타내어질 수 있다. 그러한 접근법은 다른 얼터너티브들이 이용가능하다는 것을 사용자(101)에게 표시하지만, 동시에, 디스플레이된 얼터너티브 내의 신뢰가 낮기 때문에 사용자(101) 입력이 더 중요한 그러한 단어들 및/또는 구문들을 강조하는 방법을 제공한다. 본 기술 분야의 숙련자는 하이라이팅, 밑줄 긋기, 또는 다른 시각적 특성들에 있어서의 차이점들이, 예를 들어, 그리고 제한 없이, 주어진 단어 및/또는 구문에 대한 얼터너티브들의 수를 포함하는 임의의 다른 관련 있는 정보를 나타낼 수 있다는 것을 알아차릴 것이다.
도 11b는 얼터너티브들이 문장(1101)의 그들 요소들에 대해 이용가능하다는 것을 표시하기 위해 하이라이트된 단어 및 하이라이트된 구문(1102)을 갖는 문장(1101)의 디스플레이의 예시를 설명한다. 일 실시예에서, 도 11b에서 도시된 밑줄 긋기는 청색과 같은 구별가능한 색으로 나타난다.
쉬운 명명법(nomenclature)을 위해, "하이라이트된 단어"라는 용어는 얼터너티브들이 이용 가능하다는 것을 표시하기 위한 몇몇 구별가능한 시각적 특성으로 디스플레이된 임의의 단어 또는 구문을 표시하도록 이곳에서 사용될 것이다. 다시 한번, 일 실시예에서, "하이라이트된 단어" 라는 용어가 단순히 얼터너티브들이 이용가능한 임의의 단어 또는 구문을 지칭하는 경우에는, 그러한 시각적 구별이 만들어지지 않는다.
일 실시예에서, 임의의 하이라이트된 단어(1102)는 단어 또는 구문에 대한 얼터너티브들을 제공하는 팝-업 메뉴(1103)를 활성화시키기 위해 사용자(101)에 의해 선택될 수 있다. 예를 들어, 스크린(104)이 터치-감지형인 실시예에서, 사용자(101)는 하이라이트된 단어(1102) 상에서 탭하여(1004), 얼터너티브들(1104)을 포함하는 팝-업 메뉴(1103)가 제시(1005)되게 유도할 수 있다. 다른 실시예에서, 사용자(101)는 포인팅 디바이스, 키보드, 조이스틱, 마우스, 트랙패드 등과 같은 것에 의해 제어되는 온-스크린 커서를 이용하여 하이라이트된 단어(1102)를 선택할 수 있다. 일 실시예에서, 팝-업 메뉴(1103)는 사용자로 하여금 수동으로 텍스트를 입력하는 것을 허용하는 "type..." 엔트리(1105)도 포함하며, 이것은 리스트에 있는 얼터너티브들 중 어떤 것도 사용자(101)가 의도한 것과 일치하지 않는 경우에 사용될 수 있다. 임의의 적절한 단어 및/또는 아이콘이 팝-업 메뉴(1103) 내의 이 엔트리를 나타내기 위해 사용될 수 있으며, 구문 "type..."의 사용은 단지 예시적인 것이다. 일 실시예에서, 사용자(101)가 팝-업 메뉴(1103)로부터 선택하면, 하이라이팅은 제거된다.
다른 실시예에서, 얼터너티브들의 입력을 위해 다른 메카니즘들이 제공될 수 있다. 예를 들어, 일 실시예에서, 팝-업 리스트(1103)는 질문의 특정 단어에 대한 추가적 오디오 입력을 수신하기 위한 커맨드를 제공할 수 있다. 따라서, 사용자는 그러한 커맨드를 선택할 수 있고, 그 후에, 잘못 해석되었던 하나의 단어를 반복할 수 있다. 이것은 사용자가 전체 문장을 반복하지 않고, 음성 입력을 명확하게 하는 방법을 제공한다.
일 실시예에서, 사용자가 하이라이트되지 않은 문장(1101)의 그 부분들에 대해 수동으로 텍스트를 입력하는 것(또는 그렇지 않은 경우 명확하게 하는 것)을 허용하도록 커맨드가 제공될 수도 있는데, 예를 들어, 사용자는 그것이 하이라이트되었든지 아니든지, 타이핑된 입력, 구어 설명 등을 위한 임의의 단어를 선택하는 것이 가능할 수 있다.
도 11c는 사용자(101)가 문장(1101) 내의 "quietly" 상에 탭한 것에 응답하여 스크린(104) 상에 디스플레이될 수 있는 것과 같이, 팝-업 메뉴(1103)의 예시를 도시한다. 예시에서, 두 개의 얼터너티브들이 리스트된다:"quietly"(1104A) 및 "quielty but"(1104B). 또한 팝-업 리스트(1103) 내에 도시된 것은 "type..." 명령어(1105)이다.
만약, 사용자(101)가 리스트된 얼터너티브들(1104) 중 하나를 선택한다면(1006), 디스플레이된 문장(1101)은 업데이트된다(1010).
도 11d는 사용자가 도 11c 내의 "quietly but" 얼터너티브(1104B)를 선택한 후에, 디스플레이된 문장(1101)의 예시를 도시한다. "quietly"는 디스플레이된 문장(1101) 내에서 "quietly but"으로 대체되었다. 두 개의 구문들은 얼터너티브들이 이용가능하다는 것을 표시하기 위해 여전히 하이라이트 되어 있다.
사용자(101)는, 예를 들어, 확인 버튼을 탭하거나 몇몇 다른 액션을 수행하는 것에 의해 문장(1101) 편집을 완료하였다는 것을 표시할 수 있다. 만약, 단계(1011)에서, 사용자(101)가 완료하였다는 것을 표시한다면, 메뉴(1103)는 (현재 보인다면) 해제되고, 방법은 입력된 텍스트와 연관된 적절한 어떠한 액션이라도 수행한다(1012). 예를 들어, 텍스트는 디바이스(102)가 수행할 몇몇의 액션 또는 커맨드를 특정할 수 있으며, 그러한 경우에 디바이스(102)는 그 액션 또는 커맨드를 진행할 수 있다. 대안으로, 텍스트는 전송, 출력 또는 저장될 메세지, 문서 또는 다른 아이템일 수 있으며, 만약 그렇다면, 적절한 액션이 수행된다. 추가적으로, 일 실시예에서, 사용자(101)의 음성의 향후 인식을 개선하기 위해 사용자(101)의 선택들은 서버(203) 및/또는 음성 서버(205)로 돌아갈 수 있다(1013). 사용자(101)가 그러한 선택들을 함에 따라, 추가적인 학습이 발생할 수 있고, 따라서, 음성 인식 프로세서(108) 및/또는 음성 인식기(206)의 성능을 향상할 수 있다.
만약, 사용자(1001)가 얼터너티브를 선택하지 않고(1006), 대신에 "type..." 커맨드를 선택한다면(1007), 텍스트 커서(도시되지 않음)가 디스플레이 되고(1008), 사용자(101)는 타이핑된 입력을 제공하는 기회가 주어지게 된다. 그러한 타이핑된 입력은 물리적 또는 가상의(터치-스크린) 키보드를 통해, 또는 임의의 다른 적절한 수단들에 의해 수신될 수 있다(1009). 완전하게 타이핑된 입력에서, 방법은 문장(1101)의 디스플레이가 업데이트되는 단계(1010)로 진행한다.
만약, 단계(1004 또는 1007)에서, 사용자가 향후 입력이 필요하다는 것을 표시하지 않는다면, 방법은 단계(1011)로 진행하며, 사용자가 텍스트 편집을 완료하였는지에 대한 결정이 행해진다. 사용자가 완료하면, 방법은 텍스트 입력과 연관된 적절한 액션을 수행하기 위해 단계(1012)로 진행하고, 음성 인식 동작들의 향후 개선을 위해 사용자의 선택들(101)을 리턴시키기 위해 단계(1013)로 진행한다.
변형들( Variations )
일 실시예에서, 상술한 바와 같이, 후보 해석들은 이미, 수신시에 토큰화되었고, 각 토큰들에 대한 타이밍 정보가 이용가능하다. 대안적인 실시예에서, 본 발명의 기술들은 타이밍 정보를 반드시 포함하지는 않으면서 후보 해석들로서 제공되는 플레인 텍스트 문장(plain text sentence) 집합 상에서 수행될 수 있다. 상술한 단계 402의 얼터너티브(alternative)로서, 플레인 텍스트 문장이 토큰화되고 그리드에 배치될 수 있다.
이제 도 12a를 참조하여 보면, 본 발명의 일 실시예에 따른, 후보 해석들(411)의 리스트(306)로부터 토큰(412)의 그리드(505)를 형성하는 대안적인 방법을 나타내는 흐름도가 도시된다. 방법은 상술한 단계(402)를 대체할 수 있는 단계 집합(1200)을 포함한다.
이제 도 12b 내지 도 12d를 또한 참조하여 보면, 본 발명의 일 실시예에 따른, 도 12a에 도시된 대안적인 방법에 의해 토큰(412)의 그리드(505)를 생성하는 예가 도시된다.
후보 해석들(411)은 토큰들(412)로 분할된다(1201). 본 기술 분야에 잘 알려진 바와 같이, 표준 언어-특정 스트링 토큰화기(standard language-specific string tokenizer)가 사용될 수 있다. 예를 들어, 영어 문장들 또는 문장 세그먼트들인 후보 해석들(411)에서, 후보들(411)은 공백(whitespace) 캐릭터에 기초하여 분할될 수 있다.
일 실시예에서, 가장 긴 후보(411)가 선택된다(1202); 당업자는 임의의 다른 후보가 선택될 수 있음(411)을 인식할 것이다. 도 12b는 가장 긴 후보(411A)가 볼드체로 표시되는 예시적인 리스트(306)를 나타낸다. 이 예에서, "가장 긴"이란 가장 많은 단어를 가지는 후보(411)를 의미하는 것이다.
선택된 후보(411A)에 대한 각 후보(411)의 최소의 추가/제거를 결정하기 위하여 최소 편집 거리/diff 알고리즘이 적용된다(1203). 일 실시예에서, 프로세싱 및/또는 메모리 소모를 줄이기 위하여 이 알고리즘은 캐릭터 레벨과는 대립되는 토큰 레벨에서 적용된다. 도 12c는 최소 편집 거리/diff 알고리즘이 적용된 예시적인 리스트(306)를 나타낸다. 선택된 후보(411A) 이외의 후보(411) 각각에 대하여, 선택된 후보(411A)에 대한 변경들은 밑줄로 표시되는 한편, 삭제는 꺽쇠 괄호(square brackets)로 표시된다.
그 다음 모든 다른 후보(411) 중에서 최소 편집 거리를 가지는 후보(411)가 선택된다(1204). 그러면 후보들(411)은 최소 편집 거리/diff 알고리즘의 결과를 이용하여 그리드(505)로 형성된다(1205). 그 다음 도 12d는 알고리즘에 기초하는 복수의 컬럼(513)을 가지는 그리드(505)의 예를 나타낸다. 알고리즘의 적용은 서로에 대응하는 토큰(412)들이 그리드 내(505)의 동일한 컬럼에서 나타나도록 블랭크 영역이 그리드(505)의 적절한 위치(예를 들어, 단어 "but"를 포함하는 컬럼(513))에 있을 것임을 보장한다.
그 다음 그리드(505)는 상술한 단계(403)의 입력으로서 사용될 수 있다. 도 14a 내지 14e의 예로 도시된 바와 같이 각 컬럼에 임의적인 시간들을 할당함으로써(예를 들어, 시간 0, 1, 2, 3, 등) 타이밍 코드들이 인위적으로 도입될 수 있다.
일부 경우에서는, 이러한 접근법이 불확실성(uncertainty)을 유입할 수 있다. 이제 도 13a 내지 도 13c를 또한 참조하여 보면, 도 12a에 도시된 대안적인 방법에 의해 토큰들(412)의 그리드(505)를 생성하는 다른 예가 도시되는데, 여기서 불확실성이 유입된다. 이 예에서, 도 13a에 도시된 바와 같이, 가장 긴 후보(411A)는 "Call Adam Shire at work"이다. 도 13b는 최소 편집 거리/diff 알고리즘이 적용되었던 예시적인 리스트(306)를 도시한다. 시스템이 빈 셀을 병합하는 데에 충분한 정보를 가지고 있지 않기 때문에, "Adam"은 "Call"과 오버랩될지 아니면 "Ottingshire"와 오버랩될지 알지 못하여, 도 13c에 도시된 그리드(505)와 같은 결과가 생성된다. 보다 구체적으로, 새로운 토큰 "Adam"은 불확실성을 유입하는데, 왜냐하면 이 토큰은 바로 왼쪽으로의 컬럼(513)에 연관되어야 하는지 아니면 바로 오른쪽으로의 컬럼(513)에 연관되어야 하는지가 알려지지 않았기 때문이다. 일 실시예에서, 이러한 상황은 길이 휴리스틱스(length heuristics)를 이용하거나, 제1 컬럼(513)이 모두 동일함을 알려주거나, 또는 임의의 다른 적절한 메카니즘에 의해 해결될 수 있다.
다른 실시예에서, 도 13c에서 예시하고 있는 상황은 빈 셀들을 가지는 로우에 대하여, 빈 셀이 삭제되고 2개의 이웃하는 컬럼(513)이 확장되어 서로 접촉하도록 보더링 토큰(bordering tokens; 412)를 확장함으로써 해결될 수 있다. 빈 셀에 대응하는 위치에서의 토큰(412)을 가지는 로우에 대하여, 토큰은 연장되었던 컬럼(513)이 차지하는 시간 스팬의 적어도 일부를 오버랩한다. 그 다음 상술한 바와 같이 분할(403), 중복 제거(404), 및 공유 토큰(412)들의 분할(405)이 수행되어 최종 결과를 얻는다.
이제 도 14a 내지 14e를 참조하여 보면, 상술한 바와 같이 보더링 토큰(412)들을 연장하는 예가 도시된다. 토큰 412B은 최소 편집 거리 결정에 의해 계산된 "added" 단어이다. 도 14a에서, 그리드(505)는 로우 3 및 4의 빈 셀들을 제거하도록 수정되는데, 이는 토큰 412B이 이들 2개의 로우에서 빠져있기 때문이다. 토큰 412A 및 412C는 서로 접촉하도록 연장되어 토큰 412B의 부재를 보완한다. 로우 1 및 2에서, 토큰 412B은 2개의 컬럼 간에 걸쳐 있어서(span across)하여, 로우 3 및 4에서 토큰 412A 및 412C가 차지하는 시간 기간을 오버랩한다.
도 14b에서, 분할 단계(403)가 수행되어, 3개의 컬럼 그룹 615L, 615M 및 615N을 산출하였다. 컬럼 그룹 615L은 4개의 컬럼(513)을 포함하고, 컬럼 그룹 615M 및 615N은 각각 하나의 컬럼(513)을 포함한다.
도 14c에서, 중복 제거(404)가 수행되어, 컬럼 그룹 615M 및 615N이 각각 하나의 엔트리를 포함하도록 하였다. 컬럼 그룹 615L은 변경되지 않았다.
도 14d에서, 공유 토큰들의 분할(405)이 수행되었다. 이는 컬럼 그룹 615L이 2개의 컬럼 615P와 615Q로 분할되도록 해준다.
도 14e에서, 중복 제거(404)가 다시 수행되어, 컬럼 그룹(615P)이 이제 하나의 엔트리를 포함하도록 하였다. 그러면 결과들은 통합된 리스트(307)로서 제공될 수 있다.
일부 구현예들에 따라, 도 15는 위에서 설명된 것과 같이 발명의 원리들에 따라 구성된 전자 디바이스(1500)의 기능 블럭도를 도시한다. 디바이스의 기능 블럭들은 발명의 원리들을 수행하기 위해 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다. 본 기술분야의 숙련자들은 위에서 설명된 것과 같이 발명의 원리들을 구현하기 위해 도 15에 설명된 기능 블럭들이 서브-블럭들로 조합되거나 분리될 수 있다는 것을 이해한다. 따라서, 이곳의 설명은 임의의 가능 조합 또는 분리, 또는 이곳에 설명된 기능 블럭들의 부가적인 정의를 지지할 수 있다.
도 15에 도시된 바와 같이, 전자 디바이스(1500)는 구어 입력의 후보 해석들의 리스트를 수신하도록 구성되는 후보 해석 수신 유닛(1502)을 포함한다. 전자 디바이스(1500)는 또한 후보 해석 수신 유닛(1502)에 연결된 프로세싱 유닛(1506)을 포함한다. 일부 구현에서, 프로세싱 유닛(1506)은 그리드 형성 유닛(1508), 그리드 분할 유닛(1510), 및 중복 제거 유닛(1512)을 포함한다. 일부 구현에서, 전자 디바이스는 또한 프로세싱 유닛(1506)에 연결된 출력 유닛(1514)을 포함한다.
프로세싱 유닛(1506)은 수신된 리스트로부터 토큰들의 그리드를 형성하고 - 그리드는 (예를 들어, 그리드 형성 유닛(1508)을 이용하여) 복수의 로우(row) 및 복수의 컬럼(column)으로 조직됨 -; (예를 들어, 그리드 분할 유닛(1510)을 이용하여) 타이밍 정보에 기초하여 그리드를 컬럼 그룹들의 집합으로 분할하고 - 각각의 컬럼 그룹은 복수의 토큰 그룹을 포함하고, 각각의 토큰 그룹은 적어도 하나의 토큰을 포함함 -; 그리드의 중복된 토큰 그룹들을 검출하는 것에 응답하여, (예를 들어, 중복 제거 유닛(1512)을 이용하여) 중복된 토큰 그룹들을 제거하여 통합된 그리드(consolidated grid)를 생성하도록 구성된다. 일부 구현에서, 출력 유닛(1514)은 출력 디바이스로 하여금 통합된 그리드에 기초하여 후보 해석들을 출력하게 하도록 구성된다. 일부 구현에서, 출력 유닛(1514)은 통합된 그리드에 기초하여 후보 해석들을 출력하도록 구성된다.
일부 구현에서, 수신된 리스트의 각각의 후보 해석은 복수의 토큰을 포함하고, 프로세싱 유닛(1506)은 (예를 들어, 그리드 형성 유닛(1508)을 이용하여) 각각의 후보 해석의 각각의 토큰에 대하여, 시작 시간 및 종료 시간을 결정하고; 결정된 시작 시간 및 종료 시간으로부터 고유한 정수들의 집합(set of unique integers)을 형성하고; 수신된 리스트의 후보 해석들의 수에 대응하는 수의 로우를 포함하는 그리드를 형성하고 - 각각의 로우는 고유한 정수들의 집합의 고유한 정수들의 수에 대응하는 수의 셀들을 포함하고, 셀들은 컬럼들로 조직됨 -; 각각의 토큰을 토큰의 시작 시간 및 종료 시간에 의해 걸쳐진 모든 셀들에 삽입하도록 구성된다.
일부 구현에서, 수신된 리스트의 각각의 후보 해석은 시작 시간 및 종료 시간과 연관된 복수의 토큰을 포함하고, 그리드의 각각의 컬럼은 시작 시간 및 종료 시간과 연관되고, 프로세싱 유닛(1506)은 (예를 들어, 그리드 분할 유닛(1510)을 이용하여) 상기 그리드의 각각의 컬럼에 대하여: 컬럼이 아직 컬럼 그룹에 속하지 않는 것에 응답하여, 현재 컬럼을 포함하는 컬럼 그룹을 형성하고; 컬럼의 각각의 토큰에 대하여, 컬럼의 임의의 토큰들이 컬럼의 종료 시간 이후에 걸친 종료 시간과 연관되는지를 결정하고; 컬럼의 임의의 토큰이 컬럼의 종료 시간 이후에 걸쳐진 것에 응답하여, 현재 컬럼을 포함하는 컬럼 그룹에 다음 컬럼을 추가하도록 구성된다.
일부 구현에서, 프로세싱 유닛(1506)은 (예를 들어, 중복 제거 유닛(1512)을 이용하여): 복수의 토큰 구문(token phrase)을 정의하고 - 각각의 토큰 구문은 컬럼 그룹의 로우 내에 나타나는 적어도 하나의 토큰을 포함함 -; 그리드의 각각의 컬럼 그룹에 대하여, 임의의 토큰 구문들이 컬럼 그룹 내에서 중복되는지를 결정하고; 임의의 토큰 구문들이 중복되는 것에 응답하여, 중복들을 삭제(delete)하도록 구성된다.
일부 구현에서, 프로세싱 유닛(1506)은: 임의의 에지 토큰들이 자신의 모든 토큰 구문들에 적어도 2개의 토큰을 갖는 컬럼 그룹 내의 토큰 구문들 간에 공유되는 것에 응답하여, 컬럼 그룹을, (예를 들어, 그리드 분할 유닛(1510)을 이용하여) 공유된 에지 토큰들을 포함하는 제1 컬럼 그룹 및 토큰 구문들 내에 적어도 하나의 나머지 토큰을 포함하는 제2 컬럼 그룹으로 분할(splitting)하도록 구성된다.
일부 구현에서, 프로세싱 유닛(1506)은: 자신의 모든 토큰 구문들에 적어도 2개의 토큰을 갖는 각각의 컬럼 그룹에 대하여, 임의의 토큰들이 컬럼 그룹의 모든 토큰 구문들의 시작 부분에 나타나는 것에 응답하여, 컬럼 그룹을, 제1 토큰을 포함하는 제1 컬럼 그룹 및 토큰 구문들에 적어도 하나의 나머지 토큰을 포함하는 제2 컬럼 그룹으로 분할하고; 임의의 토큰들이 컬럼 그룹의 모든 토큰 구문들의 마지막 부분에 나타나는 것에 응답하여, 컬럼 그룹을, (예를 들어, 그리드 분할 유닛(1510)을 이용하여) 마지막 토큰을 포함하는 제1 컬럼 그룹 및 토큰 구문들에 적어도 하나의 나머지 토큰을 포함하는 제2 컬럼 그룹으로 분할하도록 구성된다.
일부 구현에서, 프로세싱 유닛(1506)은: 임의의 컬럼 그룹이 미리 정해진 임계치를 넘는 수의 토큰 구문들을 갖는 것에 응답하여, 적어도 하나의 토큰 구문을 제거하고; (예를 들어, 그리드 분할 유닛(1510) 및/또는 중복 제거 유닛(1512)을 이용하여) 그리드를 분할하는 단계 및 중복들을 제거하는 단계를 반복하도록 구성된다.
일부 구현에서, 프로세싱 유닛(1506)은: 자신의 모든 토큰 구문들에 적어도 2개의 토큰을 갖는 각각의 컬럼 그룹에 대하여, 임의의 토큰들이 컬럼 그룹의 모든 토큰 구문들의 시작 부분에 나타나는 것에 응답하여, 컬럼 그룹을, (예를 들어, 그리드 분할 유닛(1510)을 이용하여) 제1 토큰을 포함하는 제1 컬럼 그룹 및 토큰 구문들에 적어도 하나의 나머지 토큰을 포함하는 제2 컬럼 그룹으로 분할하고; 임의의 토큰들이 컬럼 그룹의 모든 토큰 구문들의 마지막 부분에 나타나는 것에 응답하여, 컬럼 그룹을, (예를 들어, 그리드 분할 유닛(1510)을 이용하여) 마지막 토큰을 포함하는 제1 컬럼 그룹 및 토큰 구문들에 적어도 하나의 나머지 토큰을 포함하는 제2 컬럼 그룹으로 분할하도록 구성된다.
일부 구현에서, 프로세싱 유닛(1506)은: 임의의 컬럼 그룹이 미리 정해진 임계치를 넘는 수의 토큰 구문들을 갖는 것에 응답하여, 적어도 하나의 토큰 구문을 제거하고; (예를 들어, 그리드 분할 유닛(1510) 및/또는 중복 제거 유닛(1512)을 이용하여) 그리드를 분할하는 단계 및 중복들을 제거하는 단계를 반복하도록 구성된다.
일부 구현에서, 후보 해석 수신 유닛(1502)은 복수의 토큰화된(tokenized) 후보 해석을 수신하고 - 각각의 후보 해석은 복수의 토큰을 포함함 -; 각각의 토큰에 대하여 타이밍 정보를 수신하도록 구성된다.
일부 구현에서, 프로세싱 유닛(1506)은 (예를 들어, 그리드 형성 유닛(1508)을 이용하여): 수신된 리스트의 후보 해석들을 토큰들로 분할하고; 후보 해석들 중 하나를 선택하고; 미분 알고리즘(differential algorithm)을 적용하여 선택된 후보 해석에 대한 각 다른 후보 해석의 차이를 결정하고; 미분 알고리즘의 결과에 기초하여 토큰들의 그리드를 형성하도록 구성된다.
일부 구현에서, 출력 유닛(1514)은, 각각의 컬럼 그룹에 대하여, 컬럼 그룹이 단일의 토큰 그룹을 포함한다는 것에 응답하여, 출력 디바이스 상에 단일의 토큰 그룹을 디스플레이하고; 컬럼 그룹이 복수의 토큰 그룹을 포함한다는 것에 응답하여, 복수의 토큰 그룹을 디스플레이하도록 구성된다.
일부 구현에서, 출력 유닛(1514)은, 각각의 컬럼 그룹에 대하여, 컬럼 그룹이 단일의 토큰 그룹을 포함한다는 것에 응답하여, 출력 디바이스 상에 단일의 토큰 그룹을 디스플레이하고; 컬럼 그룹이 복수의 토큰 그룹을 포함한다는 것에 응답하여, 출력 디바이스 상에 토큰 그룹들 중 제1 토큰 그룹을 디스플레이하고, 컬럼 그룹의 나머지 토큰 그룹들의 적어도 하나의 서브집합을 제1 토큰 그룹에 대한 얼터너티브(alternative)들로서 디스플레이하게 하도록 구성된다.
일부 구현에서, 출력 유닛(1514)은, 복수의 토큰 그룹을 포함하는 적어도 하나의 컬럼 그룹에 대하여, 디스플레이 디바이스 상에 컬럼 그룹으로부터 적어도 하나의 얼터너티브 토큰 그룹을 포함하는 메뉴를 디스플레이하게 하도록 구성된다.
일부 구현에서, 출력 유닛(1514)은, 각각의 컬럼 그룹에 대하여, 컬럼 그룹이 단일의 토큰 그룹을 포함하는 것에 응답하여, 출력 디바이스 상에 단일의 토큰 그룹을 디스플레이하고; 컬럼 그룹이 복수의 토큰 그룹을 포함하는 것에 응답하여, 출력 디바이스 상에, 단일의 토큰 그룹을 포함하는 컬럼 그룹의 디스플레이에 비해 시각적으로 구분되는 방식으로 토큰 그룹들 중 제1 토큰 그룹을 디스플레이하도록 구성된다. 일부 구현에서, 출력 유닛(1514)은, 디스플레이된 토큰 그룹에 신뢰도(degree of confidence)를 나타내는 방식으로 토큰 그룹들 중 제1 토큰 그룹을 디스플레이하도록 구성된다. 일부 구현에서, 출력 유닛(1514)은, 디스플레이된 토큰 그룹이 구어 입력의 올바른 해석일 상대적인 가능성(likelihood)을 나타내는 방식으로 토큰 그룹들 중 제1 토큰 그룹을 디스플레이하도록 구성된다.
일부 구현들에서, 출력 유닛(1514)은 각각의 컬럼 그룹에 대해, 단일의 토큰 그룹을 포함하는 컬럼 그룹에 응답하여, 출력 디바이스 상에 단일의 토큰 그룹을 디스플레이하고; 복수의 토큰 그룹을 포함하는 컬럼 그룹에 응답하여, 출력 디바이스 상에 토큰 그룹들 중 하나를 디스플레이하고 하이라이트하도록 구성된다.
일부 구현들에서는, 전자 디바이스가 하이라이트된 토큰 그룹과 연관된 사용자 입력을 수신하도록 구성된 입력 수신 유닛을 더 포함하고, 출력 유닛(1514)은 하이라이트된 토큰 그룹과 연관된 사용자 입력에 응답하여, 디스플레이 디바이스 상에, 동일한 컬럼 그룹으로부터의 적어도 하나의 얼터너티브 토큰 그룹을 포함하는 메뉴를 디스플레이하도록 구성된다. 일부 구현들에서는, 입력 수신 유닛이 또한 메뉴로부터 얼터너티브 토큰 그룹을 선택하는 사용자 입력을 수신하도록 구성되고, 출력 유닛(1514)은 또한 메뉴로부터 얼터너티브 토큰 그룹을 선택하는 사용자 입력에 응답하여, 하이라이트된 토큰 그룹을 얼터너티브 토큰 그룹으로 교체하도록 구성된다. 일부 구현들에서는, 프로세싱 유닛(1506)이 또한 메뉴로부터 얼터너티브 토큰 그룹을 선택하는 사용자 입력에 응답하여, 선택된 얼터너티브 토큰 그룹을 음성 인식 엔진의 훈련을 위해 음성 인식 엔진에 제공하도록 구성된다.
일부 구현들에 따르면, 도 15는 전술한 바와 같은 본 발명의 원리에 따라 구성되는 전자 디바이스(1500)의 기능적 블록도를 도시한다. 디바이스의 기능 블록들은, 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 결합에 의해 본 발명의 원리를 수행하도록 구현될 수 있다. 당업자라면, 전술한 본 발명의 원리들을 구현하기 위해, 도 15에 도시된 기능 블록들이 조합되거나 서브블록들로 분리될 수 있다는 것을 이해할 것이다. 따라서, 본 설명은 여기에서 설명하는 기능 블록들의 임의의 가능한 조합 또는 분리 또는 또 다른 정의를 지원할 수 있다.
도 16에 도시된 바와 같이, 전자 디바이스(1600)는 구어(spoken) 입력의 후보 해석들의 리스트를 수신하도록 구성된 후보 해석 수신 유닛(1602)을 포함한다. 통합된 리스트는 단일의 토큰 그룹을 갖는 적어도 하나의 컬럼 그룹과 복수의 토큰 그룹을 갖는 적어도 하나의 컬럼 그룹을 포함한다. 전자 디바이스(1600)는 또한 후보 해석 수신 유닛(1602)에 연결된 출력 유닛(1606)을 포함한다. 출력 유닛(1606)은, 단일의 토큰 그룹을 갖는 각각의 컬럼 그룹에 대하여, 출력 디바이스 상에 단일의 토큰 그룹을 디스플레이하고; 복수의 토큰 그룹을 갖는 각각의 토큰 그룹에 대하여, 출력 디바이스 상에, 단일의 토큰 그룹을 포함하는 컬럼 그룹의 디스플레이에 비해 시각적으로 구별되게 하는 방식으로 토큰 그룹들 중 제1 그룹을 디스플레이하도록 구성된다.
일부 구현들에서는, 출력 유닛(1606)은, 출력 디바이스 상에, 컬럼 그룹으로부터 적어도 하나의 얼터너티브 토큰 그룹을 포함하는 메뉴를 디스플레이하도록 구성된다. 일부 구현들에서는, 토큰 그룹들 중 제1 그룹을 시각적으로 구별되게 하는 방식으로 디스플레이하는 것은, 디스플레이된 토큰 그룹을 하이라이트하는 것을 포함한다.
일부 구현들에서는, 전자 디바이스(1600)는 하이라이트된 토큰 그룹과 연관된 사용자 입력을 수신하도록 구성된 입력 수신 유닛을 포함하고, 출력 유닛(1606)은 하이라이트된 토큰 그룹과 연관된 사용자 입력에 응답하여, 출력 디바이스 상에, 동일한 컬럼 그룹으로부터 적어도 하나의 얼터너티브 토큰 그룹을 포함하는 메뉴를 디스플레이하도록 구성된다. 일부 구현들에서는, 사용자 입력 유닛이 메뉴로부터 얼터너티브 토큰 그룹을 선택하는 사용자 입력을 수신하도록 구성되며, 출력 유닛(1606)은 메뉴로부터 얼터너티브 토큰 그룹을 선택하는 사용자 입력에 응답하여, 하이라이트된 토큰 그룹을 얼터너티브 토큰 그룹으로 교체하도록 구성된다.
도 17에 도시된 바와 같이, 전자 디바이스(1700)는 구어 입력의 후보 해석들의 리스트를 획득하도록 구성된 후보 해석 수신 유닛(1702)을 포함한다. 전자 디바이스(1700)는 또한 후보 해석 수신 유닛(1702)에 연결된 프로세싱 유닛(1706)을 포함한다. 일부 구현들에서는, 프로세싱 유닛(1706)은 그리드 형성 유닛(1708), 그리드 분할 유닛(1710), 및 중복 제거 유닛(1712)을 포함한다. 일부 구현들에서는, 전자 디바이스는 또한 프로세싱 유닛(1706)에 연결된 출력 유닛(1714)을 포함한다.
프로세싱 유닛(1706)은 수신된 리스트로부터 토큰들의 그리드를 형성하고 -그리드는 (예컨대, 그리드 형성 유닛(1708)에 의해) 복수의 로우 및 복수의 컬럼으로 조직됨-; (예컨대, 그리드 분할 유닛(1710)에 의해) 그리드를 타이밍 정보에 기초하여 컬럼 그룹들의 세트로 분할하고 -각각의 컬럼 그룹은 복수의 토큰 그룹을 포함하고, 각각의 토큰 그룹은 적어도 하나의 토큰을 포함함-; 및 그리드 내의 중복된 토큰 그룹들의 검출에 응답하여, (예컨대, 중복 제거 유닛에 의해) 중복된 토큰 그룹들을 제거하여 통합된 후보 리스트를 형성하도록 구성된다. 출력 유닛(1714)은 서버로부터 클라이언트로 후보들의 통합된 리스트의 표현을 전송하도록 구성된다.
전자 디바이스(1700)는 또한 후보 해석 수신 유닛(1702)에 연결된 출력 유닛(1706)을 포함한다. 출력 유닛(1706)은 단일의 토큰 그룹을 갖는 각각의 컬럼 그룹에 대해, 출력 디바이스 상에, 단일의 토큰 그룹을 디스플레이하고; 복수의 토큰 그룹을 갖는 각각의 컬럼 그룹에 대해, 출력 디바이스 상에, 단일의 토큰 그룹을 포함하는 컬럼 그룹의 디스플레이에 비해 시각적으로 구별되게 하는 방식으로 토큰 그룹들 중 제1 그룹을 디스플레이하도록 구성된다.
일부 구현들에서는, 전자 디바이스(1700)가 오디오 스트림의 표현을 수신하도록 구성되는 입력 유닛(1716)을 포함한다. 후보 해석 수신 유닛(1702)은 구어 입력의 후보 해석들의 리스트를 생성하기 위해 오디오 스트림의 표현에 대해 음성 인식 분석을 수행하도록 구성된다.
일부 구현들에서는, 전자 디바이스(1700)가 (예컨대, 입력 유닛(1716)에 의해) 서버로부터 오디오 스트림의 표현을 수신하고; (예컨대, 출력 유닛(1714)에 의해) 오디오 스트림의 표현을 음성 인식 서버에 릴레이하며; (예컨대, 입력 유닛(1716)에 의해) 음성 인식 서버에 의해 생성된 구어 입력의 후보 해석들의 리스트를 수신하도록 구성된다.
본 발명은 가능한 실시예에 관하여 구체적으로 상세하게 설명되었다. 당업자는 본 발명이 다른 실시예들로 실현될 수 있다고 인식할 것이다. 먼저, 컴포넌트의 특정한 네이밍(naming), 용어 대문자 약어사용(capitalization), 속성들, 데이터 구조들, 또는 임의의 기타 프로그래밍 또는 구조적인 양태는 필수적이거나 중요한 사항이 아니며, 본 발명을 구현하는 메카니즘 및/또는 그 특징들은 서로 다른 이름, 포맷, 또는 프로토콜을 가질 수 있다. 또한, 시스템은 상술한 하드웨어 및 소프트웨어의 조합으로 구현될 수 있거나, 모두 하드웨어 요소들로, 또는 모두 소프트웨어 요소들로 구현될 수 있다. 또한, 본원에 기재된 각종 시스템 컴포넌트들 간의 특정 기능 구간(the particular division of functionality)은 단지 예시적인 것이며, 필수적인 것이 아니다; 단일의 시스템 컴포넌트에 의해 수행되는 기능들은 복수의 컴포넌트에 의해 대신 수행될 수 있으며, 복수의 컴포넌트에 의해 수행되는 기능들은 단일의 컴포넌트에 의해 대신 수행될 수 있다.
각종 실시예에서, 본 발명은 상술한 기술들을, 단독으로 또는 임의의 조합으로 수행하기 위한 시스템 또는 방법으로서 구현될 수 있다. 다른 실시예에서, 본 발명은 비일시적(nontransitory) 컴퓨터-판독가능 저장 매체 및 이 매체 상에 인코딩되어 컴퓨팅 디바이스 또는 기타 전자 디바이스 내의 프로세서로 하여금 상술한 기술들을 수행하게 해주는 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품으로서 구현될 수 있다.
본 명세서에서 "일 실시예" 또는 "한 실시예"에 대한 언급은 해당 실시예들에 관하여 기술된 구체적인 특성, 구조, 또는 특징이 적어도 본 발명의 일 실시예에 포함됨을 의미한다. 본 명세서의 여러 곳에서 "일 실시예에서"라는 어구가 있다고 해서 반드시 모두가 동일한 실시예를 지칭하는 것은 아니다.
앞서 설명한 부분들 중 일부는 컴퓨팅 디바이스의 메모리 내의 데이터 비트들에 대한 연산들의 기호적 표현 및 알고리즘 용어들로 나타내었다. 이들 알고리즘적 표기와 및 설명들은, 데이터 프로세싱 분야에서의 당업자들이 자신의 작업 내용을 다른 당업자들에게 가장 효과적으로 전달하기 위하여 사용되는 수단이다. 본 명세서에서의 알고리즘은 일반적으로 원하는 결과를 도출하는 단계들의 일관성 있는 시퀀스(self-consistent sequence)(명령어들)라고 인식된다. 단계들은 물리적인 분량(physical quantities)의 물리적인 조작을 요하는 것들이다. 통상, 필수적인 것은 아니지만 이들 분량은 저장되고, 전달되고, 결합되고, 비교되고, 그 외의 조작이 가능한 전기, 자기 또는 광 신호의 형태를 취한다. 때때로, 원칙적으로 일반적인 사용을 이유로, 이들 신호를 비트, 값, 엘리먼트, 기호, 캐릭터, 용어, 숫자 또는 기타 등등으로 편의상 나타내기로 한다. 또한, 때때로, 보편성을 훼손하지 않으면서 물리적인 분량의 물리적인 조작을 요하는 단계들의 특정 구성들을 모듈 또는 코드 디바이스로서 편의상 나타내기로 한다.
그러나, 이들 용어 및 그 유사 용어들 모두는 적절한 물리적 분량과 연관되어야 하는 것이며 이들 분량에 적용되는 편의적인 라벨일 뿐이라는 것을 유념해야 한다. 이하의 논의로부터 명백하게 그렇지 않다고 특별히 지정하지 않은 이상, 본 명세서의 설명 전반에 걸쳐, "프로세싱", "컴퓨팅", "계산", "표시", "결정" 또는 기타 등등과 같은 용어를 활용하는 논의들은 컴퓨터 시스템이나, 또는 컴퓨터 시스템 메모리들, 레지스터, 또는 기타 그러한 정보 저장소, 전송 또는 표시 디바이스들 내의 물리적 (전자적) 분량으로서 표시된 데이터를 조작하고 변형하는 컴퓨터 시스템과 유사한 전산 모듈 및/또는 디바이스의 동작 및 프로세스들을 언급하는 것이다.
본 발명의 특정 양태들은 본원에서 알고리즘 형태로 설명된 프로세스 단계들 및 명령어들을 포함한다. 본 발명의 프로세스 단계들 및 명령어들은 소프트웨어, 펌웨어 및/또는 하드웨어로 구현될 수 있으며, 소프트웨어로 구현되는 경우, 다양한 운영 체제에서 사용되는 서로 다른 플랫폼 상에 상주하고 이 플랫폼으로 운영되도록 다운로드될 수 있다.
본 발명은 또한 본원의 동작들을 수행하기 위한 장치(apparatus)에 관한 것이다. 이 장치는 필요한 용도로 특수하게 구성될 수 있거나, 컴퓨팅 디바이스에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨팅 디바이스를 포함할 수 있다. 이러한 컴퓨터 프로그램은 플로피 디스크, 광 디스크, CD-ROM, 자기-광 디스크, ROM(read-only memories), RAM(random access memories), EPROM, EEPROM, 플래시 메모리, 반도체(solid state) 드라이브, 자기 또는 광 카드, ASIC(application specific integrated circuits), 전자 명령어들을 저장하기에 적합한 임의의 유형의 미디어(이들 각각은 컴퓨터 시스템 버스에 연결되어 있음)를 포함하는 임의의 유형의 디스크와 같은 (그러나 이들로 한정되지 않음) 비일시적 컴퓨터 판독가능 저장 매체에 저장될 수 있다. 또한, 본원에 언급된 컴퓨팅 디바이스들은 단일의 프로세서를 포함하거나 컴퓨팅 기능을 향상시키기 위하여 멀티 프로세서 설계들을 채용하는 구조일 수 있다.
본원에 제시된 알고리즘 및 디스플레이들은 임의의 특정 컴퓨팅 디바이스, 가상 시스템(virtualized system) 또는 기타 장치에 고유하게 관련된 것이 아니다. 각종 범용 시스템이 본원의 교시에 따른 프로그램으로서 사용될 수도 있고, 또는 필요한 방법 단계들을 수행하기 위해 보다 특수화된 장치를 구성하는 것이 편리하다고 검증될 수 있다. 이러한 다양한 시스템에 필요한 구조는 본원에 제공된 설명으로부터 명백해질 것이다. 또한, 본 발명은 임의의 특정 프로그래밍 언어에 관련하여 설명된 것이 아니다. 본 명세서에 설명된 본 발명의 교시를 구현하는 데에 다양한 프로그래밍 언어들을 사용될 수 있으며, 앞서 특정 언어를 참조한 것은 어떤 경우라도 본 발명의 가능한 정도(enablement) 및 최적의 모드를 알리기 위하여 제공된 것이라고 인식될 것이다.
따라서, 각종 실시예에서, 본 발명은 소프트웨어, 하드웨어, 및/또는 컴퓨터 시스템, 컴퓨팅 디바이스, 또는 기타 전자 디바이스를 제어하기 위한 임의의 요소들, 또는 이들의 조합이나 복수물(plurality)로서 구현될 수 있다. 이러한 전자 디바이스는, 예를 들어, 본 기술 분야에서 널리 공지되어 있는 기술들에 따라, 프로세서, (키보드, 마우스, 터치패드, 트랙패드, 조이스틱, 트랙볼, 마이크로폰, 및/또는 이들의 임의의 조합과 같은) 입력 디바이스, (스크린, 스피커, 및/또는 그 외 기타 등등과 같은) 출력 디바이스, 메모리, (자기 저장소, 광 저장소, 및/또는 그 외 기타 등등과 같은) 장기간용 저장소(long-term storage), 및/또는 네트워크 접속을 포함할 수 있다. 이러한 전자 디바이스는 휴대 가능할 수도 있고 휴대가 불가능할 수도 있다. 본 발명을 구현하는 데에 사용될 수 있는 전자 디바이스의 예로는 모바일폰, PDA(personal digital assistant), 스마트폰, 키오스크(kiosk), 서버 컴퓨터, 기업용(enterprise) 컴퓨팅 디바이스, 데스트탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 가전 제품 디바이스(consumer electronic device), 텔레비전, 셋-탑 박스, 또는 기타 등등을 포함한다. 본 발명을 구현하기 위한 전자 디바이스는, 예를 들어, 캘리포니아주 쿠퍼티노 소재의 애플사에서 입수가능한 iOS; 캘리포니아주 쿠퍼티노 소재의 애플사에서 입수가능한 Mac OS X; 캘리포니아주 마운틴 뷰의 구글사로부터 입수가능한 안드로이드; 리눅스; 워싱턴주 레드몬드 소재의 마이크로소프트사로부터 입수가능한 마이크로소프트 윈도우즈; 및/또는 디바이스 상에서 이용하도록 되어 있는 기타 운영 체제와 같은 임의의 운영 체제를 사용할 수 있다.
각종 실시예에서, 본 발명은 분산형 프로세싱 환경, 네트워크화된 컴퓨팅 환경, 또는 웹-기반 컴퓨팅 환경으로 구현될 수 있다. 본 발명의 요소들은 클라이언트 컴퓨팅 디바이스, 서버, 라우터, 및/또는 그 밖의 네트워크나 비-네트워크 컴포넌트들 상에서 구현될 수 있다. 몇몇의 실시예에서, 본 발명은 클라이언트/서버 구조를 이용하여 구현되는데, 일부 컴포넌트들은 하나 이상의 클라이언트 컴퓨팅 디바이스 상에서 구현되고 다른 컴포넌트들은 하나 이상의 서버 상에서 구현된다. 일 실시예에서, 본 발명의 기술을 구현하는 과정에서, 클라이언트(들)는 서버(들)로부터 컨텐츠를 요청하고, 서버(들)는 이 요청들에 응답하여 컨텐츠를 반환한다. 이러한 요청들 및 응답들을 인에이블링(enabling)하고, 사용자가 이러한 인터렉션(interaction)들을 개시하고 제어하고 현재의 컨텐츠를 볼 수 있게 해주는 사용자 인터페이스를 제공하기 위해 클라이언트 컴퓨팅 디바이스에 브라우저가 설치될 수 있다.
본 발명을 구현하기 위한 네트워크 컴포넌트의 임의의 것 또는 모두는, 일부 실시예에서, 유선이든 무선이든, 또는 이 둘의 임의의 조합이든 간에, 임의의 적절한 전자 네트워크를 이용하여 그리고 이러한 통신을 인에이블링하기 위한 임의의 통신 프로토콜을 이용하여 서로 통신가능하게 연결될 수 있다. 이러한 네트워크의 일례로는 인터넷이 있지만, 본 발명은 다른 네트워크들을 이용하여 구현될 수도 있다.
본 발명은 제한된 수의 실시예들에 관련하여 기술되었지만, 전술한 설명으로부터 이득을 얻는 당업자는 본원에 기술된 본 발명의 범위로부터 벗어나지 않는 다른 실시예들이 고안될 수 있음을 인식할 것이다. 추가적으로, 본 명세서에서 사용된 언어는 원칙적으로 판독성을 위하여 그리고 구조적인 목적으로 선택된 것이지, 본 발명의 요지에 대한 윤곽이나 경계를 정하기 위하여 선택된 것이 아님을 유의해야 한다. 따라서, 본 발명의 개시물은 예시를 위한 것이지, 특허 청구 범위에서 설명된 본 발명의 범위를 제한하고자 하는 것이 아니다.

Claims (20)

  1. 음성 인식 결과들의 통합된 리스트(consolidated list)를 생성하기 위한 컴퓨터 구현 방법으로서,
    프로세서에서, 구어 입력(spoken input)의 후보 해석들의 리스트(list of candidate interpretations)를 수신하는 단계;
    상기 프로세서에서, 상기 수신된 리스트로부터 토큰들의 그리드를 형성하는 단계 - 상기 그리드는 복수의 로우(row) 및 복수의 컬럼(column)으로 조직됨 -;
    상기 프로세서에서, 타이밍 정보에 기초하여 상기 그리드를 컬럼 그룹들의 집합으로 분할하는 단계 - 각각의 컬럼 그룹은 복수의 토큰 그룹을 포함하고, 각각의 토큰 그룹은 적어도 하나의 토큰을 포함함 -;
    상기 프로세서에서, 상기 그리드의 중복된 토큰 그룹들을 검출하는 것에 응답하여, 상기 중복된 토큰 그룹들을 제거하여 통합된 그리드(consolidated grid)를 생성하는 단계; 및
    출력 디바이스로 하여금 상기 통합된 그리드에 기초하여 상기 후보 해석들을 출력하게 하는 단계
    를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 수신된 리스트의 각각의 후보 해석은 복수의 토큰을 포함하고,
    상기 수신된 리스트로부터 토큰들의 그리드를 형성하는 단계는,
    상기 프로세서에서, 각각의 후보 해석의 각각의 토큰에 대하여, 시작 시간 및 종료 시간을 결정하는 단계;
    상기 프로세서에서, 상기 결정된 시작 시간 및 종료 시간으로부터 고유한 정수들의 집합(set of unique integers)을 형성하는 단계;
    상기 프로세서에서, 상기 수신된 리스트의 후보 해석들의 수에 대응하는 수의 로우를 포함하는 그리드를 형성하는 단계 - 각각의 로우는 상기 고유한 정수들의 집합의 고유한 정수들의 수에 대응하는 수의 셀들을 포함하고, 상기 셀들은 컬럼들로 조직됨 -; 및
    상기 프로세서에서, 각각의 토큰을 상기 토큰의 시작 시간 및 종료 시간에 의해 걸쳐진 모든 셀들에 삽입하는 단계
    를 포함하는 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 수신된 리스트의 각각의 후보 해석은 시작 시간 및 종료 시간과 연관된 복수의 토큰을 포함하고, 상기 그리드의 각각의 컬럼은 시작 시간 및 종료 시간과 연관되고, 상기 타이밍 정보에 기초하여 상기 그리드를 컬럼 그룹들의 집합으로 분할하는 단계는,
    상기 프로세서에서, 상기 그리드의 각각의 컬럼에 대하여,
    상기 컬럼이 컬럼 그룹에 아직 속하지 않는 것에 응답하여, 현재 컬럼을 포함하는 컬럼 그룹을 형성하는 단계;
    상기 컬럼의 각각의 토큰에 대하여, 상기 컬럼의 임의의 토큰들이 상기 컬럼의 종료 시간 이후에 걸친 종료 시간과 연관되는지를 결정하는 단계; 및
    상기 컬럼의 임의의 토큰이 상기 컬럼의 종료 시간 이후에 걸쳐진 것에 응답하여, 상기 현재 컬럼을 포함하는 컬럼 그룹에 다음 컬럼을 추가하는 단계
    를 포함하는 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 중복된 토큰 그룹들을 제거하여 후보 해석들의 통합된 그리드(consolidated grid)를 형성하는 단계는,
    상기 프로세서에서, 복수의 토큰 구문(token phrase)을 정의하는 단계 - 각각의 토큰 구문은 컬럼 그룹의 로우 내에 나타나는 적어도 하나의 토큰을 포함함 -; 및
    상기 그리드의 각각의 컬럼 그룹에 대하여,
    임의의 토큰 구문들이 상기 컬럼 그룹 내에서 중복되는지를 결정하는 단계; 및
    임의의 토큰 구문들이 중복되는 것에 응답하여, 중복(duplicate)들을 삭제(delete)하는 단계
    를 포함하는 컴퓨터 구현 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 프로세서에서, 임의의 에지 토큰들이 자신의 모든 토큰 구문들에 적어도 2개의 토큰을 갖는 컬럼 그룹 내의 토큰 구문들 간에 공유되는 것에 응답하여, 상기 컬럼 그룹을, 상기 공유된 에지 토큰들을 포함하는 제1 컬럼 그룹 및 상기 토큰 구문들 내에 적어도 하나의 나머지 토큰을 포함하는 제2 컬럼 그룹으로 분할(splitting)하는 단계를 더 포함하는 컴퓨터 구현 방법.
  6. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 프로세서에서, 자신의 모든 토큰 구문들에 적어도 2개의 토큰을 갖는 각각의 컬럼 그룹에 대하여,
    임의의 토큰들이 상기 컬럼 그룹의 모든 토큰 구문들의 시작 부분에 나타나는 것에 응답하여, 상기 컬럼 그룹을, 상기 제1 토큰을 포함하는 제1 컬럼 그룹 및 상기 토큰 구문들에 적어도 하나의 나머지 토큰을 포함하는 제2 컬럼 그룹으로 분할하는 단계; 및
    임의의 토큰들이 상기 컬럼 그룹의 모든 토큰 구문들의 마지막 부분에 나타나는 것에 응답하여, 상기 컬럼 그룹을, 마지막 토큰을 포함하는 제1 컬럼 그룹 및 상기 토큰 구문들에 적어도 하나의 나머지 토큰을 포함하는 제2 컬럼 그룹으로 분할하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 프로세서에서, 임의의 컬럼 그룹이 미리 정해진 임계치를 넘는 수의 토큰 구문들을 갖는 것에 응답하여,
    적어도 하나의 토큰 구문을 제거하는 단계; 및
    상기 그리드를 분할하는 단계 및 중복들을 제거하는 단계를 반복하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  8. 제1항 내지 제4항 중 어느 한 항에 있어서,
    구어 입력의 후보 해석들의 리스트를 수신하는 단계는,
    상기 프로세서에서, 복수의 토큰화된(tokenized) 후보 해석을 수신하는 단계 - 각각의 후보 해석은 복수의 토큰을 포함함 -; 및
    상기 프로세서에서, 각각의 토큰에 대하여 타이밍 정보를 수신하는 단계
    를 포함하는 컴퓨터 구현 방법.
  9. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 후보 해석들의 통합된 그리드는,
    단일의 토큰 그룹을 갖는 적어도 하나의 컬럼 그룹; 및
    복수의 토큰 그룹을 갖는 적어도 하나의 컬럼 그룹
    을 포함하는 컴퓨터 구현 방법.
  10. 제9항에 있어서,
    상기 출력 디바이스로 하여금 상기 후보 해석들을 출력하게 하는 단계는,
    각각의 컬럼 그룹에 대하여,
    상기 컬럼 그룹이 단일의 토큰 그룹을 포함하는 것에 응답하여, 상기 출력 디바이스로 하여금 상기 출력 디바이스 상에 상기 단일의 토큰 그룹을 디스플레이하게 하는 단계; 및
    상기 컬럼 그룹이 복수의 토큰 그룹을 포함하는 것에 응답하여, 상기 출력 디바이스로 하여금 상기 출력 디바이스 상에 상기 복수의 토큰 그룹을 디스플레이하게 하는 단계
    를 포함하는 컴퓨터 구현 방법.
  11. 제9항에 있어서,
    상기 출력 디바이스로 하여금 상기 후보 해석들을 출력하게 하는 단계는,
    각각의 컬럼 그룹에 대하여:
    상기 컬럼 그룹이 단일의 토큰 그룹을 포함하는 것에 응답하여, 상기 출력 디바이스로 하여금 상기 출력 디바이스 상에 상기 단일의 토큰 그룹을 디스플레이하게 하는 단계; 및
    상기 컬럼 그룹이 복수의 토큰 그룹을 포함하는 것에 응답하여, 상기 출력 디바이스로 하여금, 상기 출력 디바이스 상에 상기 토큰 그룹들 중 제1 토큰 그룹을 디스플레이하게 하고, 상기 컬럼 그룹의 나머지 토큰 그룹들의 적어도 하나의 하위집합(subset)을 상기 제1 토큰 그룹에 대한 얼터너티브(alternative)들로서 디스플레이하게 하는 단계
    를 포함하는 컴퓨터 구현 방법.
  12. 제11항에 있어서,
    복수의 토큰 그룹을 포함하는 적어도 하나의 컬럼 그룹에 대하여, 상기 출력 디바이스로 하여금 상기 컬럼 그룹으로부터 적어도 하나의 얼터너티브 토큰 그룹을 포함하는 메뉴를 디스플레이하게 하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  13. 제9항에 있어서,
    상기 출력 디바이스로 하여금 상기 후보 해석들을 출력하게 하는 단계는,
    각각의 컬럼 그룹에 대하여,
    상기 컬럼 그룹이 단일의 토큰 그룹을 포함하는 것에 응답하여, 상기 출력 디바이스로 하여금 상기 출력 디바이스 상에 상기 단일의 토큰 그룹을 디스플레이하게 하는 단계; 및
    상기 컬럼 그룹이 복수의 토큰 그룹을 포함하는 것에 응답하여, 상기 출력 디바이스로 하여금, 상기 출력 디바이스 상에, 단일의 토큰 그룹을 포함하는 컬럼 그룹의 디스플레이에 비해 시각적으로 구분되는 방식으로 상기 토큰 그룹들 중 제1 토큰 그룹을 디스플레이하게 하는 단계
    를 포함하는 컴퓨터 구현 방법.
  14. 제13항에 있어서,
    상기 시각적으로 구분되는 방식으로 상기 토큰 그룹들 중 제1 토큰 그룹을 디스플레이하게 하는 단계는 상기 디스플레이된 토큰 그룹에 신뢰도(degree of confidence)를 나타내는 방식으로 상기 토큰 그룹들 중 제1 토큰 그룹을 디스플레이하는 단계를 포함하는 컴퓨터 구현 방법.
  15. 제9항에 있어서,
    상기 출력 디바이스로 하여금 상기 후보 해석들을 출력하게 하는 단계는,
    각각의 컬럼 그룹에 대하여,
    상기 컬럼 그룹이 단일의 토큰 그룹을 포함하는 것에 응답하여, 상기 출력 디바이스로 하여금 상기 출력 디바이스 상에 상기 단일의 토큰 그룹을 디스플레이하게 하는 단계; 및
    상기 컬럼 그룹이 복수의 토큰 그룹을 포함하는 것에 응답하여, 상기 출력 디바이스로 하여금 상기 출력 디바이스 상에 상기 토큰 그룹들 중 하나의 토큰 그룹을 디스플레이하고 하이라이트하게 하는 단계
    를 포함하는 컴퓨터 구현 방법.
  16. 제15항에 있어서,
    입력 디바이스에서, 하이라이트된 토큰 그룹과 연관된 사용자 입력을 수신하는 단계; 및
    하이라이트된 토큰 그룹과 연관된 사용자 입력에 응답하여, 상기 디스플레이 디바이스 상에, 동일한 컬럼 그룹으로부터 적어도 하나의 얼터너티브 토큰 그룹을 포함하는 메뉴를 디스플레이하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  17. 제16항에 있어서,
    상기 입력 디바이스에서, 상기 메뉴로부터 얼터너티브 토큰 그룹을 선택하는 사용자 입력을 수신하는 단계; 및
    상기 메뉴로부터 얼터너티브 토큰 그룹을 선택하는 사용자 입력에 응답하여, 상기 하이라이트된 토큰 그룹을 상기 얼터너티브 토큰 그룹으로 대체하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  18. 제17항에 있어서,
    상기 메뉴로부터 얼터너티브 토큰 그룹을 선택하는 사용자 입력에 응답하여, 음성 인식 엔진의 훈련을 위하여 상기 음성 인식 엔진에 상기 선택된 얼터너티브 토큰 그룹을 제공하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  19. 시스템으로서,
    하나 이상의 프로세서;
    메모리; 및
    상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성된 하나 이상의 프로그램
    을 포함하고,
    상기 하나 이상의 프로그램은,
    구어 입력의 후보 해석들의 리스트를 수신하고,
    상기 수신된 리스트로부터 토큰들의 그리드를 형성하고 - 상기 그리드는 복수의 로우 및 복수의 컬럼으로 조직됨 -,
    타이밍 정보에 기초하여, 상기 그리드를 컬럼 그룹들의 집합으로 분할하고 - 각각의 컬럼 그룹은 복수의 토큰 그룹을 포함하고, 각각의 토큰 그룹은 적어도 하나의 토큰을 포함함 -,
    상기 그리드의 중복된 토큰 그룹들을 검출하는 것에 응답하여, 상기 중복된 토큰 그룹들을 제거하여 통합된 그리드를 생성하고,
    상기 통합된 그리드에 기초하여, 출력 디바이스로 하여금 상기 후보 해석들을 출력하게 하기 위한
    명령어들을 포함하는 시스템.
  20. 서버 시스템에 의해 실행되도록 구성된 하나 이상의 프로그램을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 하나 이상의 프로그램은,
    구어 입력의 후보 해석들의 리스트를 수신하고,
    상기 수신된 리스트로부터 토큰들의 그리드를 형성하고 - 상기 그리드는 복수의 로우 및 복수의 컬럼으로 조직됨 -,
    타이밍 정보에 기초하여, 상기 그리드를 컬럼 그룹들의 집합으로 분할하고 - 각각의 컬럼 그룹은 복수의 토큰 그룹을 포함하고, 각각의 토큰 그룹은 적어도 하나의 토큰을 포함함 -,
    상기 그리드의 중복된 토큰 그룹들을 검출하는 것에 응답하여, 상기 중복된 토큰 그룹들을 제거하여 통합된 그리드를 생성하고,
    상기 통합된 그리드에 기초하여, 출력 디바이스로 하여금 상기 후보 해석들을 출력하게 하기 위한
    명령어들을 포함하는 컴퓨터 판독가능 저장 매체.
KR1020120104814A 2011-09-20 2012-09-20 음성 인식 결과의 통합 KR101411129B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/236,942 2011-09-20
US13/236,942 US20130073286A1 (en) 2011-09-20 2011-09-20 Consolidating Speech Recognition Results

Publications (2)

Publication Number Publication Date
KR20130031231A true KR20130031231A (ko) 2013-03-28
KR101411129B1 KR101411129B1 (ko) 2014-06-23

Family

ID=46875688

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120104814A KR101411129B1 (ko) 2011-09-20 2012-09-20 음성 인식 결과의 통합

Country Status (6)

Country Link
US (1) US20130073286A1 (ko)
EP (1) EP2573764B1 (ko)
JP (1) JP2013068952A (ko)
KR (1) KR101411129B1 (ko)
CN (1) CN103077715B (ko)
AU (1) AU2012227212B2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190063216A (ko) * 2017-11-29 2019-06-07 현대자동차주식회사 음성 안내 제어 장치 및 방법, 그리고 차량 시스템

Families Citing this family (203)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
JP5652652B2 (ja) * 2010-12-27 2015-01-14 ソニー株式会社 表示制御装置および方法
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US9002322B2 (en) 2011-09-29 2015-04-07 Apple Inc. Authentication with secondary approver
US8769624B2 (en) 2011-09-29 2014-07-01 Apple Inc. Access control utilizing indirect authentication
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
KR102516577B1 (ko) 2013-02-07 2023-04-03 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
US9761228B2 (en) * 2013-02-25 2017-09-12 Mitsubishi Electric Corporation Voice recognition system and voice recognition device
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
WO2014143776A2 (en) 2013-03-15 2014-09-18 Bodhi Technology Ventures Llc Providing remote interactions with host device using a wireless device
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
KR101922663B1 (ko) 2013-06-09 2018-11-28 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
WO2015020942A1 (en) 2013-08-06 2015-02-12 Apple Inc. Auto-activating smart responses based on activities from remote devices
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US20150350146A1 (en) 2014-05-29 2015-12-03 Apple Inc. Coordination of message alert presentations across devices based on device modes
WO2015184186A1 (en) 2014-05-30 2015-12-03 Apple Inc. Multi-command single utterance input method
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US11256294B2 (en) 2014-05-30 2022-02-22 Apple Inc. Continuity of applications across devices
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9967401B2 (en) 2014-05-30 2018-05-08 Apple Inc. User interface for phone call routing among devices
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9509799B1 (en) 2014-06-04 2016-11-29 Grandios Technologies, Llc Providing status updates via a personal assistant
US8995972B1 (en) 2014-06-05 2015-03-31 Grandios Technologies, Llc Automatic personal assistance between users devices
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US10339293B2 (en) 2014-08-15 2019-07-02 Apple Inc. Authenticated device used to unlock another device
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
KR101594835B1 (ko) * 2014-11-05 2016-02-17 현대자동차주식회사 음성인식 기능을 갖는 차량 및 헤드유닛과 이를 위한 음성 인식방법
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US10567477B2 (en) * 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
KR102429260B1 (ko) 2015-10-12 2022-08-05 삼성전자주식회사 음성 에이전트 기반의 제어 명령 처리 장치 및 방법과, 에이전트 장치
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
DK179186B1 (en) 2016-05-19 2018-01-15 Apple Inc REMOTE AUTHORIZATION TO CONTINUE WITH AN ACTION
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179588B1 (en) 2016-06-09 2019-02-22 Apple Inc. INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK201670622A1 (en) 2016-06-12 2018-02-12 Apple Inc User interfaces for transactions
DE102016113428A1 (de) 2016-07-24 2018-01-25 GM Global Technology Operations LLC Paneel und Verfahren zur Herstellung und Verwendung desselben
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US11431836B2 (en) 2017-05-02 2022-08-30 Apple Inc. Methods and interfaces for initiating media playback
US10992795B2 (en) 2017-05-16 2021-04-27 Apple Inc. Methods and interfaces for home media control
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK201770411A1 (en) 2017-05-15 2018-12-20 Apple Inc. MULTI-MODAL INTERFACES
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
US20220279063A1 (en) 2017-05-16 2022-09-01 Apple Inc. Methods and interfaces for home media control
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
CN111343060B (zh) 2017-05-16 2022-02-11 苹果公司 用于家庭媒体控制的方法和界面
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
CN111971647A (zh) 2018-04-09 2020-11-20 麦克赛尔株式会社 语音识别设备、语音识别设备的协作系统和语音识别设备的协作方法
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US10944859B2 (en) 2018-06-03 2021-03-09 Apple Inc. Accelerated task performance
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11107475B2 (en) * 2019-05-09 2021-08-31 Rovi Guides, Inc. Word correction using automatic speech recognition (ASR) incremental response
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US10996917B2 (en) 2019-05-31 2021-05-04 Apple Inc. User interfaces for audio media control
JP7075547B2 (ja) 2019-05-31 2022-05-25 アップル インコーポレイテッド オーディオメディア制御のためのユーザインタフェース
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11481094B2 (en) 2019-06-01 2022-10-25 Apple Inc. User interfaces for location-related communications
US11477609B2 (en) 2019-06-01 2022-10-18 Apple Inc. User interfaces for location-related communications
WO2021056255A1 (en) 2019-09-25 2021-04-01 Apple Inc. Text detection using global geometry estimators
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11810578B2 (en) 2020-05-11 2023-11-07 Apple Inc. Device arbitration for digital assistant-based intercom systems
US11183193B1 (en) 2020-05-11 2021-11-23 Apple Inc. Digital assistant hardware abstraction
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
US11392291B2 (en) 2020-09-25 2022-07-19 Apple Inc. Methods and interfaces for media control with dynamic feedback
WO2022076605A1 (en) * 2020-10-07 2022-04-14 Visa International Service Association Secure and scalable private set intersection for large datasets
US11810558B2 (en) * 2021-05-26 2023-11-07 International Business Machines Corporation Explaining anomalous phonetic translations
US11847378B2 (en) 2021-06-06 2023-12-19 Apple Inc. User interfaces for audio routing

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05197389A (ja) * 1991-08-13 1993-08-06 Toshiba Corp 音声認識装置
US6282507B1 (en) 1999-01-29 2001-08-28 Sony Corporation Method and apparatus for interactive source language expression recognition and alternative hypothesis presentation and selection
JP2002149187A (ja) * 2000-11-07 2002-05-24 Sony Corp 音声認識装置および音声認識方法、並びに記録媒体
US7904296B2 (en) * 2003-07-23 2011-03-08 Nexidia Inc. Spoken word spotting queries
JP4274962B2 (ja) * 2004-02-04 2009-06-10 株式会社国際電気通信基礎技術研究所 音声認識システム
JP4478939B2 (ja) * 2004-09-30 2010-06-09 株式会社国際電気通信基礎技術研究所 音声処理装置およびそのためのコンピュータプログラム
JP4604178B2 (ja) * 2004-11-22 2010-12-22 独立行政法人産業技術総合研究所 音声認識装置及び方法ならびにプログラム
CN1959805A (zh) * 2005-11-03 2007-05-09 乐金电子(中国)研究开发中心有限公司 利用模糊理论的话方独立型语音识别方法
US7831428B2 (en) * 2005-11-09 2010-11-09 Microsoft Corporation Speech index pruning
US7881928B2 (en) * 2006-09-01 2011-02-01 International Business Machines Corporation Enhanced linguistic transformation
US8401847B2 (en) * 2006-11-30 2013-03-19 National Institute Of Advanced Industrial Science And Technology Speech recognition system and program therefor
JP4836290B2 (ja) * 2007-03-20 2011-12-14 富士通株式会社 音声認識システム、音声認識プログラムおよび音声認識方法
JP2009098490A (ja) * 2007-10-18 2009-05-07 Kddi Corp 音声認識結果編集装置、音声認識装置およびコンピュータプログラム
CA2747746C (en) * 2008-12-22 2015-08-11 Google Inc. Asynchronous distributed de-duplication for replicated content addressable storage clusters
EP2259252B1 (en) * 2009-06-02 2012-08-01 Nuance Communications, Inc. Speech recognition method for selecting a combination of list elements via a speech input

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190063216A (ko) * 2017-11-29 2019-06-07 현대자동차주식회사 음성 안내 제어 장치 및 방법, 그리고 차량 시스템

Also Published As

Publication number Publication date
CN103077715B (zh) 2015-07-29
CN103077715A (zh) 2013-05-01
EP2573764B1 (en) 2014-06-18
AU2012227212A1 (en) 2013-04-04
EP2573764A1 (en) 2013-03-27
US20130073286A1 (en) 2013-03-21
JP2013068952A (ja) 2013-04-18
AU2012227212B2 (en) 2015-05-21
KR101411129B1 (ko) 2014-06-23

Similar Documents

Publication Publication Date Title
KR101411129B1 (ko) 음성 인식 결과의 통합
CN108255290B (zh) 移动装置上的模态学习
US10037758B2 (en) Device and method for understanding user intent
EP3084580B1 (en) User interface for overlapping handwritten text input
EP1091303B1 (en) Method and system for providing alternatives for text derived from stochastic input sources
JP5789608B2 (ja) 触覚強化テキストインターフェースのためのシステム及び方法
KR101474854B1 (ko) 음성인식을 통해 컨트롤 객체를 선택하기 위한 장치 및 방법
US20160163314A1 (en) Dialog management system and dialog management method
US20050131686A1 (en) Information processing apparatus and data input method
JP2014202848A (ja) テキスト生成装置、方法、及びプログラム
JP5701327B2 (ja) 音声認識装置、音声認識方法、およびプログラム
KR102091684B1 (ko) 음성 인식 텍스트 수정 방법 및 이 방법을 구현한 장치
EP2835734A1 (en) Apparatus and method for selecting a control object by voice recognition
CN106537489A (zh) 用于识别包括单词序列的语音的方法和系统
JP6499228B2 (ja) テキスト生成装置、方法、及びプログラム
CN111475129A (zh) 一种语音识别候选同音词的展示方法及设备
JP5849690B2 (ja) 文字入力用のプログラムおよび情報処理装置
WO2007102320A1 (ja) 言語処理システム
Navarro-Cerdan et al. Composition of constraint, hypothesis and error models to improve interaction in human–machine interfaces
JP2011243011A (ja) 入力支援装置、抽出方法、プログラム、及び情報処理装置
JP2007178692A (ja) 文字入力装置および方法
JP2008083410A (ja) 音声認識装置及びその方法
KR101830210B1 (ko) 적어도 하나의 의미론적 유닛의 집합을 개선하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
JP5664042B2 (ja) 検索装置、検索方法、検索プログラム及び検索システム
JPH10143503A (ja) 音声ワードプロセッサ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee