KR20130001261A - 이동 전화의 터치 스크린과 함께 사용하기 위한 다중 모드 문자 입력 시스템 - Google Patents

이동 전화의 터치 스크린과 함께 사용하기 위한 다중 모드 문자 입력 시스템 Download PDF

Info

Publication number
KR20130001261A
KR20130001261A KR1020127026175A KR20127026175A KR20130001261A KR 20130001261 A KR20130001261 A KR 20130001261A KR 1020127026175 A KR1020127026175 A KR 1020127026175A KR 20127026175 A KR20127026175 A KR 20127026175A KR 20130001261 A KR20130001261 A KR 20130001261A
Authority
KR
South Korea
Prior art keywords
user
input
zone
word
character
Prior art date
Application number
KR1020127026175A
Other languages
English (en)
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 KR20130001261A publication Critical patent/KR20130001261A/ko

Links

Images

Classifications

    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3322Query formulation using system suggestions
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0381Multimodal input, i.e. interface arrangements enabling the user to issue commands by simultaneous use of input devices of different nature, e.g. voice plus gesture on digitizer

Abstract

사용자로부터의 문자를 입력하는 시스템 및 방법은, 사용자로부터 입력을 공급받아 입력을 명확화하여 문자에 대응하는 단어 선택을 제공하는 프로그래밍된 프로세서를 포함한다. 일 실시예에서, 입력은 2 이상의 모드로 공급되고, 단어 선택을 제공하도록 분석된다. 다른 실시예에서, 키보드는 각각이 2 이상의 입력 캐릭터를 나타내는 구역들로 분할된다. 사용자에 의해 선택된 구역 시퀀스는 선택된 구역에 대응하는 단어 선택을 제공하도록 분석된다.

Description

이동 전화의 터치 스크린과 함께 사용하기 위한 다중 모드 문자 입력 시스템{MULTIMODAL TEXT INPUT SYSTEM, SUCH AS FOR USE WITH TOUCH SCREENS ON MOBILE PHONES}
[관련 출원에 대한 교차 참조]
본 출원은 공동으로 양도되고 전문이 본 명세서에 참조로서 편입되며, 발명의 명칭이 모두 "Method and Apparatus for Secure Data Transmission"인 2010년 3월 12일 출원된 미국 특허 출원 제61/313,454호(대리인 도켓 번호 71007.8045) 및 2010년 3월 12일 출원된 미국 특허 출원 제61/313,864호(대리인 도켓 번호 71007.8047); 발명의 명칭이 "Method and Apparatus for Secure Data Transmission"인 2010년 3월 12일 출원된 미국 특허 출원 61/313,423호(대리인 도켓 번호 71007.8044); 및 발명의 명칭이 "Multimodal Text Input System, Such as for Use with Touch screens on Mobile Phones"인 2010년 3월 23일 출원된 미국 특허 출원 61/316,799호(대리인 도켓 번호 71007.8036)의 우선권을 주장한다.
또한, 본 출원은 공동으로 양도되고 전문이 본 명세서에 참조로서 편입되며, 발명의 명칭이 "REDUCED KEYBOARD DISAMBIGUATION SYSTEM"인 미국 특허 제6,307,549호; 발명의 명칭이 "VIRTUAL KEYBOARD SYSTEMS WITH AUTOMATIC CORRECTION"인 2006년 4월 17일 출원된 미국 특허 출원 제11/379,006호 및 미국 특허 공보 제2006/0274051호; 및 발명의 명칭이 "DISAMBIGUATION OF ICONS AND OTHER MEDIA IN TEXT-BASED APPLICATIONS"인 2007년 3월 29일 출원된 미국 특허 출원 제11/379.006호와, 2010년 3월 12일 출원된 제61/343,564호와 관련된다.
사용자는 많은 종류의 키보드를 포함하는 입력 장치를 이용하여 컴퓨터 및 다른 데이터 처리 시스템에 문자를 입력한다. 대부분의 표준 키보드는 입력자의 양손을 수용하기 위하여 커야 하지만, 이는 장치의 휴대성을 떨어뜨린다. 랩탑 컴퓨터는 종종 일부 사용자에 대한 타이핑 효율을 훼손시키면서 키보드의 크기를 축소하려고 시도하여 왔다.
휴대 전화, 스마트 폰 등과 같은 소정의 이동 장치는 이러한 장치와 공통적인 폼팩터(form factor)를 유지하기 위하여 훨씬 작은 키보드를 필요로 한다. 일부 전화기는, 사용자가 버튼을 작동시키기 위하여 자신의 엄지를 사용할 수 있는, 키보드 상에서 각 키를 구별하기 위한 물리적 버튼을 갖는 작은 키패드를 포함한다. 다른 장치는 비슷한 크기의 키보드를 디스플레이하는 터치 스크린을 사용한다. 이러한 더 작은 키보드 모두는 비좁아서 더 느리고 그리고/또는 에러를 가지기 쉬운 문자 엔트리를 제공할 수 있다.
터치 스크린 장치가 점점 더 일반적이게 되었지만, 소비자는 이메일, 문자 메시지, 인스턴트 메시지 및 기타 작업과 같이 문자를 입력하는 더 간단한 방법을 계속 요구한다. 그러나, 이러한 터치 스크린 키보드는, 대응하는 작은 키 패드보다 더 많은 문제를 겪을 수 있다. 이러한 키보드의 터치 스크린 상의 소프트 키는 사용자에게 더 적은 촉각 피드백을 제공하며, 이는 다른 문제뿐만 아니라 입력 에러를 발생시킬 수 있다.
도 1은 하나 이상의 원격 위치된 장치와 중앙 집중화된 기업 서버 사이의 통신 인터페이스의 그래픽 표현이다;
도 2는 개시된 기술의 일 실시예에 따른 단어 선택을 형성하는 과정에 대한 플로우 차트이다;
도 3은 개시된 기술의 일 실시예에 따른 다양하게 제안된 단어 선택을 포함하는 키보드를 도시한다;
도 4는 개시된 기술의 일 실시예에 따른 문자 입력 방법을 도시한다;
도 5a 내지 5i는 개시된 기술의 다양한 구현예 하에서 문자를 입력하기 위한 사용자 인터페이스 방법을 나타내는 스크린 샷이다;
도 6은 개시된 기술의 양태들을 채용할 수 있는 적합한 컴퓨팅 시스템을 도시하는 블록도이다;
도 7a는 장치로의 사용자 입력에 기초하여 단어 선택 리스트를 생성하기 위한 과정을 나타내는 플로우 차트이다;
도 7b는 특수 기능 처리를 나타내는 플로우 차트이다;
도 8a는 입력 데이터로부터 입력 특징, 문자 세트 및 근접도 가중치를 결정하는 과정을 나타내는 플로우 차트이다;
도 8b는 입력 특징에 대한 문자 세트 및 적합한 가중치를 식별하는 과정을 도시하는 플로우 차트이다;
도 8c 내지 8f는 문자 선택 서브모듈이 상이한 종류의 입력 특징에 대한 문자 세트를 어떻게 식별할 수 있는 지를 나타내는 스크린샷이다;
도 9a는 단어 선택 리스트를 생성하는 과정을 도시하는 플로우 차트이다;
도 9b는 단어를 위한 매칭 메트릭(matching metrics)을 계산하는 과정을 도시하는 플로우 차트이다;
도 10은 개시된 기술의 일 실시예에 따라 구축된 구역 출력 키 및 선택된 구역을 포함하는 디스플레이된 키보드의 그래픽 표현이다;
도 11은 개시된 기술의 일 실시예에 따른 사용자에 의한 패스워드의 엔트리를 도시하는 플로우 차트이다;
도 12는 개시된 기술의 일 실시예에 따라 수신 장치에서의 패스워드의 수신을 도시하는 플로우 차트이다;
도 13은 개시된 기술의 일 실시예에 따라 QWERTY 키보드 상에서의 구역 출력 키로의 숫자 키패드의 매핑을 도시한다;
도 14a 및 14b는 개시된 기술의 일 실시예에 따른 포인팅 장치를 채용하는 구역의 선택을 도시한다;
도 15는 개시된 기술에 따른 감소된 구역 구성을 도시한다; 그리고,
도 16은 개시된 기술의 다른 실시예에 따른 다른 구역 정의 스킴을 도시한다.
이제 개시된 기술에 대한 다양한 예가 설명될 것이다. 하기의 발명을 실시하기 위한 구체적인 내용은 이러한 예들을 완전히 이해하고 설명하는 특정 상세를 제공한다. 그러나, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는, 개시된 기술이 이러한 상세 중 많은 것이 없어도 실시될 수 있다는 것을 이해할 것이다. 유사하게, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는, 개시된 기술이 본 명세서에서 상세히 설명되지 않은 많은 다른 명확한 특징을 포함할 수 있다는 것도 이해할 것이다. 또한, 널리 알려진 구조 또는 기능은, 관련 설명을 불필요하게 흐리게 하는 것을 방지하기 위하여, 아래에서 상세히 도시되거나 설명되지 않을 수 있다.
아래에서 사용된 용어는, 개시된 기술의 소정의 특정 예에 대한 상세한 설명과 함께 사용되더라도, 최광의의 적절한 방식으로 해석되어야 한다. 사실, 어떤 용어는 아래에서 강조될 수 있다; 그러나, 임의의 한정적인 방식으로 해석되도록 의도된 임의의 용어는 본 발명을 실시하기 위한 구체적인 내용에서 명시적이고 구체적으로 정의될 것이다.
I. 기업/클라우드 환경
아래에서 더욱 상세히 설명되는 바와 같이, 여기에서 설명된 기술은 사용자가 장치로, 특히 이동 장치로 문자를 입력할 수 있는 속도와 정확성을 증가시키는 시스템 및 방법에 관한 것이다. 일 실시예에 따라, 사용자에 의한 문자의 엔트리에 대하여, 이러한 문자 엔트리를 나타내는 데이터는 인터넷, 무선 통신 시스템 또는 원격의 중앙 집중화된 서버로의 다른 적합한 데이터 전송 방법을 통해 중앙 집중화된 위치로 전송된다.
먼저, 도 1을 참조하면, 개시된 기술에 따른 제1 실시예가 도시된다. 도 1에서, 하나 이상의 원격에 위치된 장치가 도시된다. 장치는 휴대 전화, 스마트폰, 넷북 또는 랩탑 컴퓨터 등을 포함한다. 이러한 장치의 각각에는, 바람직하게는, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 널리 알려진 바와 같이, 표준 인터넷 연결 또는 다른 사설 무선 또는 유선 통신 시스템과 같은 통신 시스템이 제공된다. 따라서, 하나 이상의 원격 장치 상에서 취해진 동작 또는 입력된 데이터는 중앙 기업 서버에 적절하게 통신된다. 통신을 동기화하는 것은, 예를 들어, 이메일이 전송되거나 수신될 때 기업의 이메일 받은 편지함 또는 보낸 편지함을 갱신한다. 전통적으로, 이러한 원격 장치의 각각은 장치에서 모든 주요 기능을 수행하고, 정보를 전술한 바와 같은 이메일의 사용자와 같은 기업 서버와 동기화한다.
개시된 기술의 일 실시예에 따라, 하나 이상의 원격에 위치된 장치 상에서의 구현으로 이전에 제한된 소정의 기능은 기업 서버로 이전되어, 따라서 기업 시스템의 모든 사용자에게 더욱 유사한 사용자 경험을 제공한다. 특히, 하나 이상의 원격에 위치된 장치로 문자를 입력할 때, 전술한 바와 같이, 일반적으로 문자 교정, 자동 제안 및 문자 엔트리 단어의 자동 채움에 관한 모든 기능은 원격에 위치된 장치에 보유된 정보에 따라 수행된다. 따라서, 이러한 선택에 있어서 사용되는 데이터 등의 업데이트와 관련된 문제, 그리고 특히 이메일 주소와 같은 기업 범위 기반으로 잠재적으로 빈번하게 업데이트되는 정보에 관련된 문제가 있다. 따라서, 이메일 주소 리스트가 기업 사용자의 전체 그룹에 걸쳐 특정 기업에 대하여 업데이트된다면, 이러한 업데이트는 하나 이상의 원격에 위치된 장치로 전송되지 않을 수 있다. 기업이 충분히 크다면, 이러한 원격 장치에 전체 이메일 리스트를 다운로드하는 것은 실용적이지 않을 수 있다. 따라서, 원격 장치는 제한된 개수의 문자 엔트리, 일반적으로는 로컬에 유지되는 어드레스 리스트 또는 이와 유사한 것에 따라 결정된 엔트리를 로컬 캐시에 유지할 수 있다. 이메일 어드레스가 특별히 표시된 개인에 대하여 발견되지 않는다면, 사용자는 원격 서버 상에서 이메일 어드레스를 검색하는 옵션을 제공받을 수 있지만, 이 과정은 사용자에 의해 수행되어야 하는 추가 단계를 필요로 한다. 개별 기업 사용자의 사용자 경험으로의 이러한 시스템의 자동 통합은 없다. 추가로, 기업 서버 상에 저장된 정보에 대한 액세스를 요청하기 전에 사용자가 문자 엔트리를 완료하여야 하기 때문에, 이러한 시스템은 에러에 관대한(error tolerant) 문자 엔트리를 채용하지 않을 수 있다. 따라서, 일반적으로, 단어에 대한 완전한 사전(dictionary)이 원격에 위치된 장치에 사용가능하지 않을 때, 이러한 시스템이 사용자의 의도를 판단하기 위하여 문자 엔트리를 돕는 어떠한 방법도 없었다.
따라서, 개시된 기술에 따라, 원격 장치 레벨에서 에러에 관대한 문자 엔트리를 채용하고, 이러한 에러에 관대한 문자 엔트리를 사용하는 것이 중앙 데이터베이스 위치로부터 제안된 문자 엔트리를 선택하게 하는 방법 및 장치가 제공된다.
예를 들어, 개시된 기술의 일 실시예에서, 각각 하나 이상의 키를 포함하는 바람직하게는 9개 또는 다른 적합한 개수의 구역을 사용자에게 제공함으로써 에러에 관대한 문자 엔트리가 사용자에게 제공된다. 구역이 선택될 때, 그 구역을 포함하는 미리 정해진 개수의 키도 선택된다. 혁신적인 소프트웨어는 선택될 각 개별 키를 필요로 하는 것보다는 구역 선택 시퀀스에 기초하여 원하는 선택 단어를 결정할 수 있다. 이러한 구역 문자 엔트리 방법의 일례에 대한 더욱 상세한 설명은, 내용이 본 명세서에 참조로서 편입되는 2009년 7월 10일 출원되고 발명의 명칭이 "METHOD AND APPARATUS FOR TEXT ENTRY"인 미국 특허 출원 제12/500,675호에서 설명된다.
개시된 기술의 다른 실시예에서, 이러한 구역 키 엔트리는 이러한 구역의 표시를 사용자에게 제공하지 않으면서 백그라운드에서 수행될 수 있다. 따라서, 사용자가 타이핑할 때 가능한 한 정확하도록 고무될 수 있지만, 높은 정확도는 필요하지 않다. 전문이 본 명세서에 참조로서 편입되고 2007년 6월 14일 출원되고 발명의 명칭이 "A PROBABILITY-BASED APPROACH TO RECOGNITION OF USER-ENTERED DATA"인 Matthew Cecil 등의 공동 양도된 미국 특허 출원 제12/186,425호에서 설명된 것과 같은 다른 에러에 관대한 문자 엔트리 시스템도 사용될 수 있다. 개시된 기술의 또 다른 실시예에서, 더욱 일반적인 문자 엔트리 시스템 및 다른 공지된 예측 문자 엔트리 시스템이 채용될 수 있다.
개시된 기술의 양태에 따라, 개시된 기술의 특정 실시예에서, 에러에 관대한 문자 엔트리 시스템은 전술한 미국 특허 출원 제12/500,675호에서 설명된 바와 같이 제공될 수 있다. 따라서, 설명된 구역 엔트리 문자 시스템은 원격에 위치된 장치에 있는 완전한 단어 사전을 가지지 않고서도 이러한 원격에 위치된 장치에 채용될 수 있다. 또한, 이러한 에러에 관대한 문자 엔트리 시스템은 사용자에게 디스플레이되지 않는 방식으로 구역 정의를 유지할 수 있다. 마지막으로, 다른 에러에 관대한 문자 엔트리 시스템도 본 개시된 기술에 따라 채용될 수 있다.
다음으로, 도 2를 참조하면, 먼저 사용자는 단계(210)에서 특정의 원격에 위치된 컴퓨팅 장치와 동반하는 제공된 문자 엔트리 시스템에 따라 문자를 입력한다. 본 개시 기술의 바람직한 실시예에서, 사용자가 제12/500,675호 출원의 구역 엔트리 시스템 또는 임의의 다른 에러에 관대한 문자 엔트리 시스템의 사용자를 통해 하나 이상의 키를 입력함에 따라, 사용자에 의해 의도될 수 있는 가능한 문자 시퀀스를 판단하기 시작하는 초기 문자 입력 처리 단계가 수행된다. 따라서, 사전 검색은 이때에는 수행되지 않고, 대신에 원격에 위치된 컴퓨팅 장치 상에서 문자 엔트리에 관련된 정보가 추후에 사전 검색에서 사용되도록 결정된다.
그 후, 단계(230)에서, 하나 이상의 사전 검색 또는 다른 데이터베이스 검색이 기업 서버에 예측 문자 엔트리 정보를 전송함으로써 수행된다. 중요하게는, 이는 전송되는 입력된 문자 키일 뿐만 아니라, 초기의 에러에 관대한 문자 엔트리 처리에 따라 결정된 데이터가 전송된다. 개시된 기술의 바람직한 실시예에 따라, 사용자에 의해 입력된 각 키에 대하여, 선택된 키를 갖는 구역에 있는 것으로 정의된 모든 다른 키가, 이러한 구역이 고정적이거나 동적인지의 여부, 사용자에게 사용가능한지의 여부에 관계 없이, 개시된 기술에 따른 추가 처리를 위하여 기업 서버로 전송된다. 이러한 방법으로, 하나 이상의 원격 장치 중 어떤 것에 입력된 수신된 예측 문자 엔트리 정보는 임의의 개수의 지속적으로 유지되는 기업 범위 데이터베이스에 적용될 수 있다.
도 3은 키가 다수의 구역으로 분할되는 키보드(100)를 도시한다. 따라서, 제12/500,675호 출원의 에러에 관대한 문자 엔트리 시스템에서 설명된 개시된 기술에 따라, 특정 구역을 나타내는 하나 이상의 키가 키보드(100)로부터 선택될 때마다, 선택된 키에 의해 표현된 구역 내의 모든 키는 예측 문자 알고리즘으로 통과된다. 일 실시예에서, 각 구역에서 선택된 키에 의해 대표되는 후보 단어는 로컬에서 결정되어 기업 서버에 전송된다. 다른 실시예에서, 사용자에 의해 선택된 구역의 리스트는 가능 후보 단어 리스트를 결정하도록 기업 서버로 전송된다. 가능 단어 리스트는 도 3에서 310에 도시된 바와 같이, 원격에 위치된 장치의 스크린 상에 디스플레이되는 사용자에 대한 하나 이상의 잠재적인 단어 선택에 대한 제안을 결정하도록 분석된다. 이 단어 제안(330)은 입력된 키 시퀀스에 기초하며, 선택된 키의 구역과 관련된 각 엔트리에서 모든 키를 고려한다. 320에서, 사용자에 의해 선택된 키가 도시된다. 단어 선택(340)은 기업 서버 상에 위치된 하나 이상의 적용가능한 데이터베이스로부터 결정되는 바와 같이, 사용자에 의해 의도되는 것으로 결정된 가장 가능성이 많거나 또는 가장 일반적인 단어를 도시한다. 기업 서버에 의한 이러한 단어 제안의 결정에 따라, 이들은 원격에 위치된 장치로 다시 전송되고, 도 2의 단계(240)에서 사용자에 의한 선택을 위하여 도 3에 도시된 바와 같이 사용자에게 디스플레이된다.
제안된 단어를 선택하는 것은 입력된 단어를 단계(250)에서 선택된 단어로 교체한다. 어떤 단어도 선택되지 않았다면, 처리는 사용자로부터 추가의 문자 엔트리가 수신되는 도 2에서의 단계(210)로 다시 통과된다. 이러한 추가 문자 엔트리에 따라, 전술한 단계들이 다시 수행되어, 사용자 선택을 위한 잠재적으로 다른 단어를 제공하거나 또는 사용자를 위한 선택을 좁힌다. 사용자에 의한 제공된 단어 중 하나의 선택에 따라, 이러한 선택된 단어는 원격에 위치되는 컴퓨팅 장치로 입력되고, 처리는 사용자에 의한 다른 문자 시퀀스의 엔트리가 있을 때까지 종료한다.
개시된 기술의 다른 실시예에서, 원격 장치에서의 처리를 촉진시키기 위하여, 특정 사전의 정해진 크기에 기초하여, 사용자에 의한 문자 엔트리의 개시 이전에 원격 장치로 사전을 다운로드하는 것이 유익한 것으로 증명될 수 있다. 따라서, 양식(form) 또는 이와 유사한 것의 내의 특정 필드로의 엔트리가 적은 개수의 가능 엔트리로 제한되는 경우에, 사용자에 의해 필드의 엔트리에 이러한 사전을 다운로드하는 것은 사용될 단일 데이터 전송만 허용할 수 있다. 유사하게, 사용자가 다수의 필드를 갖는 양식 또는 이와 유사한 것을 찾아 간다면, 특정 양식 내의 각 필드를 위한 사전이 미리 또는 양식의 첫 번째 필드의 엔트리에 따라 다운로드될 수 있다. 물론, 임의의 특정 필드가 매우 큰 사전을 갖는 것으로 밝혀지면, 기업 서버 상에서의 이 사전에 대한 액세스가 전술한 바와 같이 제공될 수 있다.
사용자는 단어를 그 사전에 추가하도록 시스템을 훈련시킬 수 있거나, 또는 시스템은 단어가 입력된 사전 설정된 횟수 후에 자동으로 단어를 추가하도록 설정될 수 있다. 따라서, 개시된 기술에 따라, 사전이 기업 범위의 플랫폼 상에서 수정될 수 있을 뿐만 아니라, 원격에 위치된 컴퓨팅 시스템을 사용하는 특정 사용자에 의한 문자 엔트리는 임의의 기업 사용자에 의한 다음의 사용을 위하여 데이터베이스 또는 사전에 이러한 문자 엔트리의 추가를 제공할 수 있다. 물론, 로컬 데이터베이스도 전체로서 기업에 사용가능하게 될 필요가 없는 문자 엔트리에 대하여 유지될 수 있다.
예시적인 예측 문자 알고리즘은 전술한 미국 특허 출원 제12/186,425호에서 설명된다. 본 개시 기술에 따라 활용되는 이러한 알고리즘은 개시된 기술의 예측 문자 요건을 해결한다. 하나 이상의 원격에 위치되는 컴퓨팅 장치 상에서 사용자에게 제공된 사용자 인터페이스는 기업 위치에서 알고리즘에 캐릭터(character)(또는 하나 이상의 선택된 구역과 관련된 캐릭터 스트링)을 제공할 것이며, 알고리즘은 캐릭터 세트를 해석하여 하나 이상의 제안된 단어 선택의 형태로 기업 서버로부터의 결과를 원격에 위치된 컴퓨팅 장치에서의 사용자 인터페이스로 돌려준다. 이 대신에, 기업 서버는 단어 선택을 적절하게 파싱(parse)하는 것에 대한 불능에 대한 표시를 돌려줄 수 있어, 이에 의해 사용자가 지금까지 아직 충분한 글자를 입력하지 않았다는 것을 나타낸다.
일 실시예에서, 사용자의 상황, 히스토리 또는 이와 유사한 것은, 특정 개별 사용자에 따라 또는 완전한 세트의 기업 사용자의 집합적인 경험에 따라, 이러한 제안된 단어 선택에 도움이 되도록 채용될 수 있다. 추가로, 설명된 예측 문자 알고리즘이 채용될 수 있지만, 본 개시 기술은 임의의 적합한 문자 파싱 또는 예측 문자 알고리즘과 함께 사용될 수 있다.
확률 매트릭스(matrix of probability)를 사용하여, 예측 문자 알고리즘은, 눌러진 각 문자에 대하여, 사용자는 캐릭터를 전술한 바와 같이 표시된 구역에서 왼쪽, 오른쪽, 위쪽 또는 아래쪽 캐릭터, 또는 다른 캐릭터를 의도할 수 있다는 것을 안다. 알고리즘이 (선택된 키와 관련된 키에 기초하여) 어느 캐릭터가 가능성이 있는지를 알기만 하면, 알고리즘은, 상술한 '425 출원에서 더욱 완전하게 설명되는 바와 같이, 복수의 기업 사용자가 액세스가능한 기업 서버 위치에서 바람직하게 제공된 사전에 대하여 검색을 실행한다. 가능성 있는 캐릭터 스트링과 매칭하는 임의의 단어들이 지정되고, 그 다음 바람직하게는 캐릭터 사이의 거리, 빈도, 확률 및 사용자의 의도를 나타낼 수 있는 임의의 개수의 다른 캐릭터에 기초하여 점수가 매겨진다.
또한, 본 시스템은 특정 사용자의 빈번하게 사용되는 패턴에 대하여 또는 기업 설정에서 특정 사용자 그룹에 대한 더 높은 선택 가능성을 제공하기 위하여 일정 기간 동안 채용될 수 있다. 따라서, 예측 메커니즘은, 특정 사용자가 공통의 중앙 집중화된 기업 사전 또는 데이터베이스로부터 단어를 선택하고 있더라도, 그 사용자에 대하여 개인화될 수 있다. 이러한 개인화는 미리 정해진 선행 시간 구간 동안 특정 사용자에 의한 단어 선택 빈도에 기초한 선택을 제공하는 것을 포함할 수 있다. 따라서, 사용자가 특정 단어를 더 많이 사용할수록, 다시 선택될 수 있는 가능성이 더 커지며, 사용자에게 제안될 가능성이 더 커질 것이다. 이 개인화는 사용자가 중앙 집중화된 기업 범위의 이메일 리스트로부터 이메일 어드레스를 입력할 때와 같은 상황에서 특히 유용할 수 있다. 특정 사용자가 이메일을 하나 이상의 수신인에게 전송함에 따라, 이러한 수신인의 이름은 장래에 사용자에 의해 입력될 가능성이 더 높다. 또한, 이러한 개인화는 단일 개인에게 한정될 필요는 없다. 더 정확히 말하면, 특정 이메일 어드레스의 입력은 사람들의 그룹 또는 이와 유사한 것을 위하여 축적될 수 있어, 이에 따라 부서(department) 또는 이와 유사한 것이 이메일 어드레스의 선호되는 리스트를 생성할 수 있게 한다. 또한, 선택은 표준 단어 또는 문자 엔트리 시스템에 따라 선택될 수 있는 다른 시퀀스에 적용될 수 있다. 이러한 개인화는 가장 최근에 또는 가장 빈번하게 선택된 단어 또는 이메일 어드레스가 사용자에게 먼저 제공되고, 이어서 더 이전에 또는 덜 빈번하게 선택된 단어가 제공되는 가중 선택 시스템(weighted selection system)을 제공할 수 있다.
다른 실시예에서, 사용자 사전의 개인화는 사용자에 의해 일반적으로 또는 최근에 선택된 단어에 한정되지 않는다. 또한, 사전은 사용자의 최근 행동에 기초하여 커스터마이즈(customize)될 수 있다. 사용자가 특정 화제에 관한 웹 페이지를 위하여 인터넷을 탐색한다면, 이러한 웹 페이지로부터의 단어가 분류되어 더욱 가능성 있는 선택으로서 사전에 추가될 수 있다. 예를 들어, 사용자가 음식과 요리에 관련된 원격 장치 상의 웹 페이지를 보고 있다면, 사용자가 "d i s e r t" 키를 입력할 때, 단어 검색 알고리즘은 최근 히스토리를 사용하여 단어 "desert" 전에 단어 "dessert"를 제안한다. 유사하게, 시간적 지리적 고려 사항이 문자 선택 알고리즘에 의해 사용될 수 있다. 예를 들어, 원격 장치의 GPS 위치가 검출되어 기업 서버로 전송될 수 있다. 사용자가 산에 위치된다는 것이 알려지면, 문자 예측 알고리즘은 "how is the snor"라는 문자 엔트리가 "How is the show"가 아니라 "How is the snow"이어야만 한다는 것을 제안하도록 훈련된다.
본 실시예에서, 최근 열람 히스토리에 관한 정보, 현재 위치, 이메일 판독, GPS 위치 등에 관한 정보는 기업 서버로 전송되어 최근 행동에 기초하여 사전을 커스터마이즈하거나 사용자를 위한 가능성 있는 단어를 선택하는데 도움을 주기 위하여 사용자와 관련된 파일 내에 유지된다.
도 3에서 알 수 있는 바와 같이, 디스플레이된 키보드는 풀(full) QWERTY 키보드를 나타내지만, 임의의 다른 원하는 구성을 포함할 수 있다. 이러한 키보드는 가상 키보드 또는 문자 엔트리를 위하여 제공될 하나 이상의 글자(letter)와 관련된 하드 키(hard key)를 포함하는 물리적 키보드일 수 있다. 개시된 기술이 이러한 키보드를 일반적으로 참조하는 것으로서 설명되었지만, 임의의 개수의 입력 장치, 메커니즘 또는 스킴이 채용될 수 있다. 개시된 기술은 9개 또는 12개의 키 숫자 패드 또는 4-방식 방향 키를 갖는 전통적인 이동 전화기에서의 문자 입력에 유사하게 적용 가능하다. 개시된 기술은 Apple Ipod® 장치 상에 제공된 것과 같은 스크롤 형식의 휠의 사용에 적용될 수 있다. 이러한 상황에서, 스크롤 휠을 따른 이동이 구역 선택에 대한 원(circle)을 따르는 이동을 가져다 주도록 원형 구성으로 구역을 정의하는 것이 유익할 수 있다.
또한, 개시된 기술은 스크롤 장치를 이용하거나 아니면 단지 1개 또는 2개의 방향 지시 키를 포함하는 이동 장치 또는 다른 장치에 적용될 수 있다. 스크롤 장치 또는 1개나 2개의 방향 키로, 바람직하게는, 미리 정의된 구역은 왼쪽에서 오른쪽으로, 그 다음 상부에서 하부로 등과 같은 미리 정의된 시퀀스를 제공받아, 스크롤하거나 또는 방향키를 사용하는 것에 따라 사용자가 미리 정의된 구역의 각각을 통해 전달되어, 현재 선택된 구역을 강조하거나 표시한다. 스크롤 장치를 누르는 것 또는 다른 선택 방법은 사용자가 구역을 선택할 수 있게 하고, 그 다음 스크롤 하는 것이 선택을 위하여 다음 구역으로 이동되도록 채용된다.
개시된 기술은 다양한 감지 메커니즘 사용자가 투영된 키보드의 어디를 터치하는지 판단하는 투영된 키보드에 더 적용될 수 있다. 이러한 감지의 정확성이 판단하기 어려울 수 있기 때문에, 사용자가 더 적은 개수의 더 큰 구역으로부터 선택할 수 있게 하는 것은 매우 유익할 것이다.
II. 마이크로 제스처(MICROGESTURE) 입력
개시된 기술의 다른 양태에 따라, 에러에 관대한 예측 문자 알고리즘에 영향을 주는 신속한 문자 엔트리 시스템 및 방법이 제공된다. 사용자는 QWERTY 키보드(또는 다른 일반적이 키보드 레이아웃)와의 익숙함을 사용하여 전체 단어보다 더 적은 개수를 포함하는 2 또는 3개의 글자에 대한 더 짧은 마이크로 제스처(microgesture)를 입력할 수 있다. 더 짧은 단어는 하나의 이러한 마이크로 제스처로 입력될 수 있으며, 더 긴 단어는 2 이상의 마이크로 제스처를 이용할 수 있다. 따라서, 후술되는 문자 엔트리 시스템은 종래 시스템의 적어도 하나의 주요 문제점, 즉 사용자가 자신의 손가락을 들어올리지 않고서 의도된 전체 단어 엔트리를 입력하고 이에 따라 전체 의도된 단어에 대한 단일 트레이스(trace)를 제공하는 요구 사항을 해소한다.
일 실시예에 따라, 문자 엔트리 시스템은 각 마이크로 제스처의 시작 및 종료 위치에 주목한다. 또한, 굽음(bend)이 사용자에 의해 입력된 마이크로 제스처에서 검출되면, 제3의 중간 글자가 의도되었다는 것이 판단된다. 다수의 상이한 방법이 의도된 중간 글자를 판단하는데 사용될 수 있다. 먼저, 마이크로 제스처에서 굽음의 위치가 판단될 수 있다. 두 번째로, 시작 및 종점 입력이 주어진다면, 시작 위치로부터 이동된 방향이 문자 파싱 알고리즘으로 제공되어 다수의 가능성 있는 다음 글자의 문자 엔트리 중에서 선택하는 것을 도울 수 있다. 이 대신에, 이러한 굽음의 존재에 대한 인식이 판단될 수 있어, 이에 따라 중간 글자가 의도되었다는 것을 표시한다. 그 다음, 더욱 전통적인 문자 엔트리 시스템에서 누락된 글자를 만나게 된 것과 같이, 문자 파싱 알고리즘은 어떠한 추가적인 도움 없이 이러한 글자를 판단하는데 도움을 줄 수 있다.
제1 마이크로 제스처가 판단되면, 선택된 글자는 문자 선택 알고리즘으로 입력되고, 단어 제안 또는 이와 유사한 것이 더욱 전통적인 포맷으로 사용자에게 제공된다. 단어가 선택되지 않는다면, 키의 다음 탭(tap) 또는 다음 마이크로 제스처가 동일한 더 긴 단어에 대한 문자 엔트리의 일부가 되는 것으로 판단된다.
일 실시예에서, 사용자는 입력될 각각의 글자를 들어올려 누르는 대신에 키보드 상의 다수의 캐릭터 사이에 자신의 손가락을 슬라이딩한다. 사용자가 잘못된 키를 탭하고 필요하다면 자신의 손가락을 들어올려 각 키를 연속으로 누를 수 있는 전통적인 탭 엔트리 시스템(tap entry system)에 비하여 더 편리하고 문자 엔트리 에러에 대한 잠재성을 감소시키기 때문에, 일부 사용자는 각 캐릭터를 개별적으로 태핑(tapping)하는 대신에 이웃하는 캐릭터에 대한 이러한 슬라이딩을 선호한다고 판단되었다. 또한, 사용자는 임의의 종류의 반복하는 스트레스 문제를 방지할 수 있으며, 문자를 더욱 빠르게 입력할 수 있다.
더 작고 일반적으로 휴대용인 터치 스크린 장치를 이용할 때, 사용자가 자신들이 더욱 전통적인 보통의 랩탑/PC 키보드를 사용할 때와 같은 모든 손가락 대신에 1개 또는 2개의 손가락을 이용하여 일반적으로 타이핑하는 것이 발견되었다. 단지 1개/2개의 손가락 이용은 손가락 피로를 발생시키고, 사용자가 터치 스크린 장치 상에서 타이핑하는 의욕을 꺾는다. 입력될 각 글자를 위하여 손가락을 들어 올려 배치하는 필요 동작은 수근골 증후군(carpal tunnel syndrome) 및 이와 유사한 것과 같은 반복적인 스트레스 부상과 종종 관련된다. 개시된 기술의 일 실시예에 따라, 사용자는 몇 개의 글자을 입력하도록 자신의 손가락을 슬라이딩하거나 특정 글자 엔트리를 원한 바에 따라 태핑하는 선택 사항을 가진다. 따라서, 전통적인 문자 엔트리 시스템에서와 같이 태핑을 필요로 하거나 앞서 나열된 종래 특허 문헌에서 강조된 바와 같은 전체 단어에 대하여 글자를 트레이스하는 대신에, 사용자는 자신이 선호하는 문자 입력에 대한 선택 사항 및 유연성을 가진다. 이러한 선호는 특정 입력 장치, 입력되는 특정 단어 등에 기초할 수 있다. 궁극적으로, 사용자는 가장 유연한 선택 사항을 제공받을 수 있고, 편의에 따라 마이크로 제스처, 태핑 또는 이 양자의 조합으로 입력하도록 선택할 수 있다.
마이크로 제스처는 사용자가 단일 마이크로 제스처를 이용하여 2개 또는 3개의 캐릭터를 한 번에 선택할 수 있게 한다. 이러한 마이크로 제스처의 다른 한 이점은 사용자가 예측 문자 알고리즘이 대응하는 단어를 제안하기 시작하기 전에 단의의 완전한 경로를 정신적으로 또는 물리적으로 트레이스할 필요가 없다는 것이다. 더 긴 단어를 위한 경로를 트레이스하는 것은 혼란스럽고 어려울 수 있다. 사용자는 자신이 이미 입력한 단어의 캐릭터를 잊어버리는 경향이 있으며, 철자를 틀리는 경향이 있다. 또한, 긴 단어를 위해 경로를 트레이스하는 것은 정신적 및/또는 물리적 피로를 발생시킬 수 있다. 또한, 전체 단어를 트레이스하는 경로를 수신하는 장치가 입력된 데이터를 처리하기 전에 그 단어의 완료를 대기하여야만 하기 때문에, 이러한 문자 엔트리의 자동 완성 또는 가능성 있는 의도된 단어 엔트리의 제안을 제공하는 것이 가능하지 않다. 따라서, 사용자는 전체 단어의 트레이스를 완료하여야만 하고, 그 후에만 시스템이 단어 제안을 제공할 수 있다.
또한, 개시된 기술의 마이크로 제스처 입력 시스템은 단일 키보드에 맞지 않고 이에 따라 대안(alternative)/기능(function)/시프트 키보드로부터 글자/캐릭터를 얻는 것을 필요로 하는 알파벳을 갖는 언어에서 문자 또는 단어를 입력하는데 유용하다.
그러나, 각 마이크로 제스처의 완료시에, 개시된 기술의 일 실시예에 따른 시스템은 입력을 자동 완성할 수 있다. 이러한 자동 완성을 사용하는 능력은 사용자가 부분적인 단어만을 입력하고 제공된 제안으로부터 선택할 수 있게 한다. 사용자가 종종 단순히 제1 마이크로 제스처를 입력한 후에 원하는 입력 단어를 선택할 수 있을 것이기 때문에, 이것은 사용자 경험을 향상시키고, 더 빠른 문자 엔트리를 돕고, 전체 단어를 트레이스하는 것을 필요로 하는 종래 기술의 시스템에 비하여 훨씬 더 개선된다. 이러한 방법으로, 개시된 기술에 따른 예측 문자 알고리즘은 글라이딩(gliding) 또는 태핑을 위한 에러에 관대한 입력을 지원한다. 사용자는 문자를 입력하는데 있어서 엉성하여도 되고, 원하는 단어를 얻기 위하여 정확한 캐릭터 입력을 제공할 필요가 없다. 사실상, 마이크로 제스처 엔트리에서 선택된 글자는 마치 종래의 문자 엔트리 시스템에서 태핑된 것과 같이 문자 파싱 알고리즘에 의해 고려된다. 따라서, 종래의 문자 파싱 알고리즘이 영향을 받을 수 있으며, 훨씬 더 단순하고 유연한 시스템이 사용자에게 제공된다. 따라서, 누락된 그리고/또는 부정확한 글자가 수신될 수 있으며, 시스템은 여전히 사용자에 의한 정확하고 의도된 문자 엔트리를 판단할 수 있다.
글라이딩의 사용을 통하여 문자 엔트리에 대한 글자를 선택하는 것은 사용자가 도 4의 예에 의해 도시되는 바와 같이 단어의 모든 캐릭터보다 더 적은 캐릭터에 대한 경로를 추적할 수 있게 한다. 본 예에 따라, 사용자는 단어 INPUT을 입력하는데 관심이 있다고 가정된다. 전통적으로, 사용자는 5개의 키의 각각을 태핑할 것이다. 5개 키 모두를 누르면, 단어 INPUT이 사용자에게 제공될 것이다.
그러나, 개시된 기술의 일 실시예에 따라, 사용자는 5개 글자의 각각을 태핑할 필요가 없고, 사실 원하는 글자를 입력하기 위하여 하나 이상의 마이크로 제스처 글라이드를 채용할 수 있다. 개시된 기술에 따라 단어 INPUT을 입력하는 많은 상이한 시퀀스가 있다.
도 4에 도시된 바와 같이, 사용자는 자신의 손가락(들)을 글자 "i-n-p" 위로 글라이딩하고 글자 "u" 및 "t"를 태핑할 수 있다. 상기 도면에 도시된 바와 같이, 사용자는 자신의 마이크로 제스처 글라이딩을 "i"에서 시작하고, 그 다음 "n"으로 글라이딩하고, 마이크로 제스처 글라이딩을 "p"에서 마친다. 그 후, 글자 "u" 및 "t"가 태핑되어 완전한 단어를 입력한다. 또한, 다음의 다른 입력 시퀀스가 문자 예측 알고리즘에 의해 식별되는 단어 INPUT을 제공할 수 있다:
"i-n-p" 글라이딩 및 "u-t" 글라이딩;
"i", "n" 태핑 및 "p-u-t" 글라이딩;
"i", "n", "p" 태핑 및 "u-t" 글라이딩.
사용자 경험을 더 편하게 하기 위하여, 사용자에 의해 입력된 임의의 글라이드 또는 탭은 무엇이 입력되었는지 판단하기 위하여 충분한 피드백을 사용자에게 제공하기 위한 시간 구간 동안 디스플레이 상에서 유지될 수 있다. 그러나, 전술한 바와 같이, 글라이드 엔트리의 이러한 관리는 사용자에 대하여만 유용하며 사용자 입력을 판단하는데 있어서 바람직하게 역할을 하지 않을 수 있다(물론, 개시된 기술의 다른 실시예에서, 문자 입력을 판단하는데 이러한 글라이드 위치를 사용하는 것이 가능할 수 있다). 따라서, 사용자가 장치 상에서 관찰할 수 있는 경로를 도 4에 도시된 트레이스가 도시하지만, 내부적으로는, 개시된 기술에 따른 문자 예측 알고리즘은 바람직하게는 상이하며, 사용자에 의해 입력된 글라이드의 초기 및 최종 캐릭터만을 추적한다. 중간 캐릭터는, 있는 경우에, 글라이드의 처음 및 마지막 글자 사이의 이동 방향과 관련된 벡터를 이용하여, 또는 덜 바람직하게는 사용자에 의해 입력된 글라이드에서 굽음의 근사적 위치를 이용하여 해독된다. 따라서, 개시된 기술에 따라, 본 발명의 알고리즘은 특정의 처음 글라이드 및 있다면 중간 캐릭터와 함께 처음 및 마지막 캐릭터 입력을 이용함으로써 데이터베이스로부터 단어를 찾으려고 한다. 글라이드에서의 굽음의 결정 및 3개의 글자 글라이더를 가정하는 와일드카드 캐릭터의 사용에 기초하여, 문자 예측 알고리즘은 결과를 되돌려 준다. 그 다음, 중간 캐릭터가 사용자에 의해 그려진 바와 같은 벡터 방향을 만족하지 않는 단어를 필터링하기 위하여 추가 계산이 수행될 수 있다.
다음의 예는 이러한 글라이드 및 벡터 알고리즘의 사용을 더 나타낸다. 사용자가 경로 "t-h-e"를 추적하면, "h"는 "t"의 오른쪽 아래에 있다. 알고리즘을 통한 초기 패스는 "tie", "toe" 및 "the"와 같은 단어를 되돌려 줄 것이다. 첫 글자 "t"를 입력한 후에 이동 벡터를 보면, 사용자가 글자 "h"를 향해 아래로 이동한다고 판단될 수 있다. 글자 "o"와 "i"가 글자 "t"의 오른쪽에 있기 때문에, 알고리즘이 찾을 더 가까운 선택 사항이 있으므로, 이들은 버려질 것이다(또는 사용자에게 덜 가치있는 선택으로서 제공될 것이다). 잠재적인 제안 선택 "the"로부터의 글자 "h"는 입력의 벡터 근접도를 더욱 밀접하게 충족하며, 따라서 바람직하게는 중간 캐릭터로서 선택될 것이다. 또한, 에러에 관대한 문자 엔트리가 제공될 수 있고, 이에 따라 사용자가 "r-j-w"를 트레이스하라도 여전히 제안된 단어로서 "the"를 획득할 것이다. 글자 "j"는 글자 "r"의 오른쪽 아래 방향에 위치되고, 글자 "h"는 글자 "t"의 오른쪽 아래 방향에 위치된다. 양 벡터가 밀접한 근접도를 가지기 때문에, 글자 "h"가 중간 캐릭터로서 선택될 것이다.
이하, 벡터 방향에 대한 설명이 기술될 것이며, 이는 전문이 본 명세서에 참조로서 편입되는 2007년 6월 14일 출원되고, 발명의 명칭이 "DATA ENTRY SYSTEM AND METHOD OF ENTERING DATA"인 Sharan 등의 미국 특허 출원 제12/091,700호)에서 더욱 완전하게 설명된다. 유익하게는, 개시된 기술은 평행 이동, 즉, 사용자에 의해 순차적으로 작동될 때 다른 키에 대한 한 키의 방향에 관한 사용자 입력을 인코딩한다.
바람직하게는, 평행 이동은 미리 결정된 주요 방향 세트 내에서 인코딩되어, 2개의 연속적인 키 작동 사이에 취해질 수 있는 모든 가능한 방향에 대한 감소된 세트가 된다. 감소된 세트의 일례는 다음의 4개 방향일 수 있다: "상", "하", "좌" 및 "우". 따라서, 취해진 실제 방향에 따른 각각의 평행 이동을 등록하는 대신에, 바람직하게는 시스템은 감소된 세트 중 하나를 할당한다. 예를 들어, 2개의 작동 사이의 실제 이동 방향이 수직으로부터 10° 벗어난다면, 평행 이동은 예를 들어 "상"으로 할당될 수 있으며, 이는 실제 10° 방향에 가장 가까운 주요 방향이다.
모든 평행 이동이 감소된 그룹, 예를 들어 "상", "하", "좌" 및 "우" 내로 카테고리화하도록 가능 방향을 무한한 개수에서 적은 개수로 감소시키는 것은, 많은 이질적인 평행 이동 방향이 동일한 주요 방향으로 할당될 것이라는 것을 의미한다. 예를 들어, 모든 이동이 위쪽으로 향하는 방향에 대하여 ±44°까지의 방향을 갖는 모든 이동은 동일한 주요 방향인 "상"에 할당될 수 있다. 또한, 이것은 동일한 실제 방향을 갖지만 완전히 다른 시작 지점을 갖는 모든 운동을 포함할 것이며, 따라서 키보드 상의 많은 상이한 지점에서 발생하는 동일한 수직 운동이 간단하게 "상"으로 표현될 수 있다.
본 개시 기술의 마이크로 제스처 문자 엔트리 시스템에 따른 사용을 위한 예시적인 예측 문자 알고리즘은 전술한 미국 특허 출원 제12/186,425호에서 설명된다. 본 개시 내용에 따라 사용된 이러한 알고리즘은 개시된 기술의 예측 문자 요건을 해결한다. 사용자 인터페이스는 캐릭터(또는 특정 점퍼 지점 또는 구역과 관련된 캐릭터 스트링)을 알고리즘에 전달할 것이고, 알고리즘은 그 캐릭터(또는 캐릭터들)을 해석하여 하나 이상의 제안된 단어 선택의 형태로 사용자 인터페이스에 결과를 되돌려 주거나, 또는 단어 선택을 적절하게 파싱할 수 없다는 것에 대한 표시를 되돌려 주어 사용자가 아직 충분한 글자를 입력하지 않았다는 것을 나타낼 수 있다. 물론, 사용자의 상황, 히스토리 또는 이와 유사한 것이 이러한 제안된 단어 선택을 돕도록 채용될 수 있다. 또한, 설명된 예측 문자 알고리즘이 채용될 수 있지만, 본 개시 기술은 임의의 적합한 문자 파싱 또는 예측 문자 알고리즘과 함께 사용될 수 있다. 점프 지점이 다수의 상이한 입력과 관련될 수 있고 이러한 입력이 서로 구별될 수 있어 사용자에 의한 의도된 입력을 선택하는데 사용될 수 있는 한, 개시된 기술이 사용될 수 있다.
따라서, 확률 매트릭스를 이용하여, 알고리즘은 눌러진 각 캐릭터에 대하여 사용자가 좌, 우, 상, 하로의 캐릭터 또는 전술한 바와 같은 개시된 기술에 따라 표시된 구역에 있는 다른 캐릭터를 의도하였다는 것을 안다. 알고리즘이 어느 캐릭터가 (선택된 점퍼 지점과 관련된 키, 또는 이 대신에 사용자의 의도, 즉 어느 글자가 사용자가 의도한 것에 가까운 것인지에 대한 동적 또는 다른 판단에 기초하여) 가능성 있는지를 알면, 미리 정의된 구역이 제공되지 않더라도, 알고리즘은, 전술한 '425 출원에서 더욱 완전하게 설명되는 바와 같이, 사전에 대한 서치를 실행한다. 가능성 있는 캐릭터 스트링과 매칭하는 임의의 단어가 지정되고, 그 다음 바람직하게는 캐릭터 사이의 거리, 빈도, 확률 및 사용자 의도를 나타낼 수 있는 임의의 개수의 다른 특성에 기초하여 점수가 매겨진다. 또한, 시스템은 특정 사용자의 자주 사용되는 패턴에 대하여 더 높은 선택 확률을 제공하기 위하여 장시간 동안 채용될 수 있다. 따라서, 예측 메커니즘은 특정 사용자에 대하여 개인화될 수 있다.
사용자 의도를 결정하는데 추가로 도움을 주기 위하여, 개시된 기술에 따라, 제안된 시스템의 예측 알고리즘은, 전통적인 사전에 의존하는데 더하여, 입력이 이메일, 채팅, 검색 등을 위한 것인지, 문자 입력이 특정 텔레비전 쇼 동안 또는 음악 애플리케이션이 노래를 연주하고 있는 동안에 발생한 것인지 판단하는 것과 같이, 특정 문자 입력에 대한 상황을 판단함으로써 사용자 의도를 더 판단하려고 시도한다. 사용자는 상이한 단어 및/또는 다른 언어 차이를 이용하려고 하려는 정도까지, 이러한 상황 판단은 예측 문자 알고리즘의 정확성에 도움을 줄 수 있다. 또한, 알고리즘은 예측의 신뢰성을 향상시키기 위하여 저장된 내용, 사용자의 연락처 리스트 등과 같은 하나 이상의 데이터베이스의 내용으로부터의 정보에 관한 정보를 수신할 수 있다. 이러한 상황은 문자 엔트리를 위하여 사용되고 있는 장치 내에 저장되거나 인터넷 또는 다른 사용가능한 네트워크를 통해 액세스가능한 데이터베이스 내에 원격으로 저장될 수 있다. 그 다음, 단어 리스트는 그 점수에 기초하여 소팅되어 사용자 인터페이스로 되돌려진다. 따라서, 개시된 기술은, 사용자 의도 각각에 대하여 근사 입력을 명료한 입력으로 매핑하기 위하여, 입력 언어 또는 가능한 입력 기능에서의 리던던시를 이용한다. 또한, 사용자 입력을 결정할 때 장치 특징 및 기능이 고려될 수 있어, 이에 따라 아마도 이러한 입력을 결정할 때의 장치 한계를 고려할 수 있다.
본 개시 기술이 '425 출원의 예측 문자 알고리즘을 채용하는 일 실시예에서 설명되었지만, 다른 문자 파싱 알고리즘을 이용하는 것이 가능하다. 이러한 대체 문자 엔트리 시스템은 전문이 본 명세서에 참조로서 편입되는 2009년 7월 10일 출원되고 발명의 명칭이 "METHOD AND APPARATUS FOR TEXT INPUT"인 Sharan 등의 미국 특허 출원 제12/500,676호에서 설명된다. '676 출원은 키보드를 복수의 구역으로 분할하고, 그 다음 특정 구역에서의 임의의 문자 엔트리가 그 구역에서의 모든 글자에 대한 선택인 것으로 고려하는 시스템 및 방법을 설명한다. 따라서, 사용자는 문자를 입력할 때 덜 정밀하게 될 수 있다. 이 시스템은 전술한 마이크로 제스처 엔트리 방법과 함께 사용될 수 있고, 따라서 각각의 결정된 시작 지점, 종료 지점 및 임의의 백터 방향이나 굽음 판단은 의도되 글자를 포함하는 표시된 구역만을 필요로 하여, 이에 따라 사용자를 위한 문자 엔트리의 곤란성을 용이하게 한다.
추가로, 개시된 기술이 디스플레이된 키보드 또는 터치 스크린 키보드와 접촉하는 사용자에 대하여 설명되었지만, 접촉을 필요로 하지 않지만 특정 키 등에 근접하여 손가락 또는 이와 유사한 것으로 그리는 사용자에 따라 문자 엔트리를 허용할 수 있는 키보드에 동일하게 적용가능할 수 있을 것이다. 마이크로 제스처는 키보드 위에서 사용자가 자신의 손가락을 제거할 때 입력되는 것으로 고려될 수 있는 최종 키로 이동하는 손가락을 포함할 수 있다. 따라서, 처리는 전술한 시스템 및 방법에 따라, 그러나 키 선택 및 엔트리를 위한 접촉이 아니라 근접 검출에 의존하여 진행될 수 있다.
개시된 기술의 방법 및 시스템을 위한 주요 사용이 소형의 이동 장치 또는 카메라, PDA, 넷북 등과 같은 소형 전자 기기를 위한 것일 수 있지만, 이러한 입력 시스템은 예를 들어 원격 제어를 이용하는 셋톱 박스 또는 텔레비전 또는 Wii® 컨트롤러 등과 같은 다른 입력 장치에서 엔트리를 위해 동일하게 적용가능할 수 있다. 따라서, 사용자는 키(또는 구역)를 가리키고, 선택 버튼을 누르고, 사용자가 표시자를 두 번째 글자(원하는 경우에)를 통해 세 번째 및 선택 버튼을 해제함으로써 표시되는 마이크로 제스처의 마지막 글자로 이동하는 동안 버튼을 유지함으로써 엔트리를 시작할 수 있다. 구역 입력 시스템 및 이러한 원격 제어를 이용하는 엔트리에 대한 더욱 완전한 설명은 본 명세서에서 참조로 편입된 전술한 '676 출원에 있다. 사실, 본 개시 기술은 원격 제어, Wii® 리모트, 손 제스처 또는 다른 엔트리 기술을 포함하지만 이에 한정되지 않는 '676 출원에서 언급된 임의의 입력 스킴 또는 기술에 적용가능할 수 있다.
III. 적합한 사용자 인터페이스
도 5a는 다중 모드 사용자 입력(예를 들어, 탭, 트레이스, 하버(hover), 다른 촉각 입력 및/또는 비촉각 입력의 혼합)을 수신하고 단어를 출력하는데 적합한 사용자 인터페이스를 도시한다. 여기에서 사용된 사용자 인터페이스는 사용자 입력을 단어로 변환하는 것이 바람직한, 이동 전화, PDA, 휴대용 오디오 시스템, 랩탑 컴퓨터(울트라 모바일 개인용 컴퓨터를 포함함), 데스크탑 컴퓨터, 기타 컴퓨팅 시스템, 비디오 게임 시스템, 텔레비전 및 무수한 다른 소비자 및 상용 전자 시스템 또는 가전 제품(예를 들어, 냉장고, 키오스크 등을 포함함)을 포함하지만 이에 한정되지 않는 임의의 시스템의 일부를 형성할 수 있다.
사용자 인터페이스는 사용자로부터의 (예를 들어, 손가락 끝 또는 스타일러스에 의한) 촉각 입력 및 시각적 출력을 모두 용이하게 하는 터치 스크린 또는 유사한 디스플레이를 포함한다. 도시된 축에 의해 표시된 바와 같이, 디스플레이 상의 각 지점은 고유의 X-Y 좌표로 설명될 수 있다. 또한, 도 5a에서는 도시되지 않았지만, 사용자 인터페이스는 시스템 가속기 및/또는 터치 스크린 내의 압력 센서로부터의 입력, 오디오 입력, 시각적 입력 등을 포함하는 다른 입력을 수신할 수 있다. 추가로, 사용자 인터페이스는 다른 시각적 출력, 오디오 출력, 촉감 출력 등과 같은 다른 출력을 생성할 수 있다.
도 5a에 도시된 샘플 디스플레이(및 다른 도시된 디스플레이)는 무선 이동 장치를 위한 것이고, 신호 강도, 무선 캐리어 이름, 시간, 배터리 강도 등과 같은 소정의 시스템 정보를 제공하는 상부 수평부(502)를 포함한다. 상부 수평부(502)의 아래에, 도시된 디스플레이에서는 이메일 애플리케이션인 애플리케이션을 위한 입력 버튼과 소정의 정보를 포함하는 애플리케이션 바(504)가 있다. 문자 디스플레이부 또는 출력 영역(506)은, 예를 들어, 애플리케이션 프로그램과 관련될 수 있는 사용자에 의한 문자 입력을 디스플레이한다. 단어 제안부 또는 단어 선택 영역(508)(후술함)은 사용자 입력에 기초하여 제안된 단어를 사용자에게 디스플레이한다.
사용자 인터페이스 디스플레이는 하부에서 가상 키보드를 디스플레이하고 가상 키보드로부터 캐릭터 선택을 나타내는 촉각 사용자 입력을 수신하도록 구성된 가상 소프트키 키보드 영역(510)을 포함한다. 도시된 바와 같이, 가상 키보드는 디스플레이 상에서 특정 레이아웃으로 배열된 여러 개의 정의 영역을 갖는다. 각 정의 영역은 키의 한계를 정한다. 특수 기능 키를 제외하고, 가상 키보드 내의 각 키는, 여기에서 더욱 상세히 설명되는 바와 같이, 하나 이상의 캐릭터와 관련된다. 본 명세서에서 사용되는 바와 같이, 용어 "캐릭터(character)"는 알파벳 글자(액센트와 같은 발음 구별 부호를 가지거나 가지지 않음), 숫자, 일본어 가나, 한글 자모 및 중국어 주음(zhuyin)을 포함하는 음운 또는 서브 단어(sub-word) 성분을 나타내는 캐릭터 또는 부호, 또는 숫자와 같은 다른 언어적 또는 비언어적 캐릭터 및 약어, 채팅 속어, 이모티콘, 사용자 ID 또는 URL에 포함된 문장 부호를 포함할 수 있다. 가상 키보드 내의 특수 기능 키는 문자 정보의 입력에 관련된 특수 기능(예를 들어 글자의 대문자화, 캐릭터의 삭제)의 수행과 관련된다. 특수 기능 키는 시프트 키, delete 키, 숫자 입력 키(예를 들어, 숫자 및 부호 캐릭터의 더 빠른 엔트리에 적합한 키보드 레이아웃을 선택하기 위한 것), 다중 키보드 선택 키(예를 들어, 상이한 키보드 레이아웃 및/또는 상이한 캐릭터 세트를 지원하는 가상 키보드를 선택하기 위한 것), 리턴 키 및 스페이스 키를 포함하지만 이에 한정되지 않는다.
사용자는, 캐릭터 시퀀스에 대한 자신의 선택을 나타내기 위하여, 여기에서 더욱 상세히 설명되는 바와 같이, 상이한 종류의 촉각 입력을 가상 키보드 영역(510)에 제공할 수 있다. 사용자는 자신의 촉각 입력 세트를 의도하여 사용자 인터페이스 디스플레이(또는 다른 출력부)에 도시된 출력 영역(506)에서 특정의 의도된 단어에 대한 형성물을 집합적으로 제공할 수 있다. 명료함을 위하여, 상황이 다른 것을 명확하게 요구하지 않는다면, 본 명세서에서 사용된 바와 같은 용어 "단어(word)"는 캐릭터 스트링, 단어 어간, 접두사, 접미사, 어구, 문장, 약어, 채팅 속어, 이모티콘, 사용자 ID, URL 또는 표의 문자(ideographic character) 시퀀스, 이모티콘들이나 아이콘들을 포함하지만 이에 한정되지 않는 임의의 종류의 언어 객체를 나타낸다.
시스템 중재 없이, 가상 키보드로의 사용자의 가공되지 않은(raw) 촉각 입력은, 예를 들어, (1) 사용자가 엉성하거나 부정확하게 자신의 촉각 입력을 제공하고, (2) 사용자가 단어의 철자를 틀리고, (3) 여러 번의 키 스트록이 특정 캐릭터를 선택하기 위하여 필요하고(예를 들어, 발음 구별 부호가 필요하거나 가상 키보드가 도 1h에 도시된 것과 같은 절반-QWERTY 또는 12-키 레이아웃을 가지는 경우에), (4) 의도된 단어가 특히 길고, 그리고/또는 (5) 다른 이유가 있는 경우에, 자신의 의도된 단어와 상이한 의도되지 않은 단어가 출력 영역에 추가되는 결과를 가져다 준다. 이러한 인자들 중 어떠한 것도 의도된 단어의 사용자 엔트리를 지연시킬 수 있다.
따라서, 개선된 사용자 경험을 용이하게 하기 위하여, 개시된 사용자 인터페이스는 가상 키보드 영역(510)(그리고 터치 민감형 디스플레이 및/또는 다른 입력부)으로부터 공급받은 사용자 입력을 여기에서 개시된 명확화(disambiguation) 모듈과 같은 명확화 시스템 또는 모듈에 제공할 수 있다. 명확화 모듈은 공급받은 사용자 입력을 분석하여, 순위가 매겨지거나 아니면 논리적 방식으로 조직화될 수 있는 단어 선택에 대한 제안 리스트("단어 선택 리스트(word choice list)")를 생성한다. 그 다음, 사용자 인터페이스는 단어 선택 리스트 영역(508)에서 명확화 모듈에 의해 생성된 단어 선택 리스트의 서브 세트를 (예를 들어, 정렬되거나 그루핑되는 방식으로) 디스플레이할 수 있다. 단어 선택 리스트 영역 내에서, 하나 이상의 디폴트(default) 단어는 출력 영역 내에서 강조되거나(예를 들어, 도 5a에 도시된 "are") 그리고/또는 디스플레이될 수 있다. 사용자는 자신의 의도된 단어를 표시하기 위하여 (예를 들어, 단어 선택 리스트 영역 내에 촉각 입력을 제공함으로써; 스페이스 바와 같은 특수 키에 또는 그 근처에서의 디스플레이 상의 한 지점을 누름으로써; 또는 선택을 나타내는 다른 입력을 제공함으로써) 단어 선택 영역 내에 디스플레이된 단어를 선택할 수 있다. 사용자는 이 대신에 단어를 선택하기 전에 (예를 들어, 단어 선택 영역 내에서 스크롤링 또는 스위핑(swiping)에 의해) 단어 선택 리스트 영역 내에서의 단어 선택 리스트로부터의 추가적인 결과를 검토할 수 있다. 사용자가 단어 선택 리스트에서의 자신의 선택을 나타낸 후에, 사용자 인터페이스는 선택된 단어를 출력 영역(506)에 추가할 수 있다(아니면 선택된 단어를 출력할 수 있다).
사용자 인터페이스 디스플레이가 여기에서 주로 터치 민감형 터치 스크린으로서 설명되지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 여기에서 설명된 사용자 인터페이스와 명확화 시스템 및 방법은, 시스템이 가상 키보드를 디스플레이하고 사용자 동작을 터치 스크린의 촉각 입력과 유사한 디스플레이된 키보드 내의 위치 정보로 변환할 수 있기 때문에, 이 대신에 레이저 프로젝션 키보드, 근육 감지 키보드, 섬유 키보드, 모션 민감형 비디오 시스템(예를 들어, Nintendo Wii®), 가상 현실 시스템 등을 이용하여 구현될 수 있다는 것을 이해할 것이다.
사용자 입력의 모드
도 5b 내지 5g는 도 5a에 도시된 적합한 사용자 인터페이스에 의해 수신되고 명확화 모듈에 의해 분석되어 사용자 인터페이스 내에 디스플레이되는 단어 선택 리스트를 생성할 수 있는 다양한 종류의 사용자 입력을 나타낸다. 간략함을 위하여, 터치 스크린 디스플레이에 대한 촉각 사용자 입력은 사용자가 손가락 끝으로 디스플레이를 누르는 것과 함께 설명된다. 그러나, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 사용자가 임의의 적합한 수단, 예를 들어, 손가락, 스타일러스 또는 임의의 다른 적합한 입력 도구에 의해 터치 스크린을 누를 수 있다는 것을 이해할 것이다.
탭( tap ) 입력
도 5b는 사용자 인터페이스가 어떻게 일련의 탭을 수신하고 이에 응답하여 단어 선택 리스트를 출력할 수 있는지를 도시한다. 탭은 자신의 손가락을 들어올리기 전에 국지화된 지점에서 터치 스크린을 사용자가 간단하게 누르는 것으로 이루어진다. 도 5b의 예에서, 사용자 인터페이스는 일련의 3개의 탭을 수신할 수 있다(시간 T = 1에서 "A" 키 근처, T = 3에서 "D" 키 위, 그리고 T = 4에서 "E" 키 위). 본 예에서, 이러한 3개의 탭 특징을 이용하여, 명확화 모듈은 디폴트 선택 "are"를 포함하는 단어 선택 리스트를 생성한다. 영어에서 사용자가 단어 "ade" 대신에 단어 "are"를 생성하려고 의도할 것이라는 것이 더 가능성이 높기 때문에, 이 디폴트 선택은 어떻게 명확화 모듈이 명백한 사용자 에러를 보정할 수 있는지를 나타낸다.
트레이스 ( trace ) 입력
도 5c는 사용자 인터페이스가 어떻게 사용자로부터 입력된 트레이스를 공급받고 이에 응답하여 단어 선택 리스트를 출력할 수 있는지를 도시한다. 트레이스를 입력하기 위하여, 사용자는 터치 스크린 디스플레이 상의 지점을 누르거나 또는 그 지점에 자신의 손가락을 놓고, 디스플레이를 계속하여 누르는 동안 자신의 손가락을 스크린으로부터 궁극적으로 들어올리기 전에 자신의 손가락으로 디스플레이 내에서 선을 그린다(trace). 본 명세서에서 더욱 상세히 설명되는 바와 같이, 트레이스 입력은 적어도 2개의 상이한 종류의 다음과 같은 별개 특징으로 더 나누어질 수 있다: 코너(corner) 및 세그먼트(segment). 본 명세서에서 더욱 상세히 설명되는 바와 같이, "코너 특징(coner feature)"은 다음을 포함하지만 이에 한정되지 않는, 트레이스 동안의 상이한 종류의 이벤트 발생으로부터의 결과이다: (1) 사용자가 트레이스의 시작에서 초기에 스크린을 누르는 것, (2) 사용자가 트레이스의 종료에 스크린에서 손가락을 들어올리는 것, 및/또는 (3) 사용자가 트레이스 동안 갑자기 방향을 변경하는 것. 그 다음, 코너의 각 쌍은 2개의 코너 사이의 사용자 트레이스 경로를 따라 지나가는 세그먼트 특징의 경계를 표시한다.
도 5c에 도시된 예에서, 사용자는 키보드 영역(510)에서 "K" 키 근처의 스크린 상에 자신의 손가락을 누르는 것으로 T = 1에서 시작하고, 자신의 손가락을 "P" 및 "O" 키 근처의 지점을 향하여 위로 트레이스하고, 가상 키보드의 상부 행을 가로질러 이동함으로써 그 지점 근처에서 방향을 갑자기 변경하고, 마지막으로 T = 3에서 "W" 키 근처의 지점에서 스크린으로부터 자신의 손가락을 들어올리는 트레이스를 입력한다. 3개의 도트(dot)에 의해 도시된 바와 같이, 이러한 단일의 연속하는 트레이스는 3개의 분명한 코너 특징(코너 1, 코너 2, 코너 3)과 2개의 세그먼트 특징(코너 1 및 코너 2 사이에 연장되는 세그먼트 1과, 코너 2 및 코너 3 사이에 연장되는 세그먼트 2)로 나누어질 수 있다. 도 5c에 도시된 바와 같이, 다섯 개의 추출된 입력 특징(3개의 코너와 2개의 세그먼트)를 이용하여, 명확화 모듈은 사용자 인터페이스를 통해 사용자에게 디스플레이되는 디폴트 단어 "how"를 포함하는 단어 선택 리스트를 생성할 수 있다.
하버( hover )
도 5d는 사용자 인터페이스가 어떻게 하버 입력 특징을 사용자로부터 공급받을 수 있는지를 도시한다. 하버 특징은, 지점 근처에서 손가락을 멈추는 것, 지점 주위로 손가락을 꿈틀거리거나(wiggling) 돌리거나(encircling) 또는 휘갈겨 쓰는 것(scribbling), 트레이스 동안 지점 근처에서 감속하는 것, 지점에 추가 압력(예를 들어, 압력 민감형 터치 스크린 디스플레이에 의해 검출되는 것과 같은)을 제공하는 것, 트레이스 동안 다른 손가락으로 제2 탭을 동시에 제공하는 것 등을 포함할 수 있는 특정 방식으로 디스플레이 내의 한 지점에 특수한 강조를 사용자가 제공하는 임의의 사용자 입력을 포함한다. 예를 들어, 도 5d에 도시된 바와 같이, 도 5c에 관하여 전술한 트레이스 동안, 사용자는 시간 윈도우 T = [2:5] 동안 머무르는 것으로 "T" 키 근처의 지점에서 하버 특징을 입력할 수 있다. 도 5d가 트레이스 특징과 함께 발생하는 하버 특징을 도시하지만, 하버 특징은 다른 경우(예를 들어, 탭 누름이 임계 지속 시간 이상 연장되는 경우에, 예를 들어 탭 특징과 함께)에 발생할 수 있다.
다중 모드 입력: 다중 촉각 특징
여기에서 설명된 사용자 인터페이스는 사용자가 상이한 종류의 입력 특징을 임의의 순서로(예를 들어, 트레이스, 그 다음 2개의 탭, 이어서 3개의 트레이스 등을 입력하도록) 입력할 수 있게 허용한다. 또한, 사용자 인터페이스는 사용자가 제1 특징(예를 들어, 트레이스)을 입력한 후에 정지하고, 그 다음 (예를 들어, 제2 트레이스를 입력하거나 또는 탭을 입력하도록) 자신의 입력을 재개할 수 있게 허용한다. 정지 후에, 명확화 모듈은 단어 선택 리스트를 생성하기 위하여 정지 이전에 검출된 입력 특징과 정지 후에 검출된 입력 특징을 모두 이용할 수 있다.
도 5e는 사용자 인터페이스가 어떻게 상이한 종류의 촉각 입력 특징을 포함하는 사용자로부터의 입력을 공급받아 이에 응답하여 모든 다중 입력 특징을 이용하여 생성되는 단어 리스트를 디스플레이할 수 있는지를 도시한다. 도 5e의 예에서, T = [1:3]으로부터, 사용자는 단어 선택 리스트에서 디스플레이되고 있는 디폴트 단어 "how"를 제공하는 라인을 트레이스하여 도 5c에 도시된 바와 같은 동일한 입력을 제공한다. 그 다음, 사용자는, "E" 및 "R" 키 사이를 태핑하는(업데이트된 단어 선택 리스트의 디스플레이를 제공할 수 있다) T = 7까지 중지한다. 사용자는 T = 10에서 "F" 및 "R" 키 근처에서 종료하는 새로운 트레이스를 "V" 키 근처에서 개시하는 T = 9까지 정지한다. 이 트레이스의 끝에서, 모든 입력 특징(즉, 제1 트레이스(3개의 코너 및 2개의 세그먼트를 포함함), 탭 및 제2 트레이스(2개의 코너와 1개의 세그먼트를 포함함))의 전체를 이용하여, 명확화 모듈은 사용자 인터페이스에 디스플레이된 디폴트 단어가 "however"가 되도록 단어 선택 리스트를 업데이트한다.
다중 모드 입력: 촉각 입력 특징 및 오디오 입력
도 5f 및 5g에 도시된 바와 같이, 여기에서 설명된 사용자 인터페이스는 사용자가 다중 촉각 입력과 오디오 입력을 상호 보완적인 방식으로 혼합하도록 허용한다. 이러한 예에서, 사용자 인터페이스 및/또는 명확화 모듈은 오디오 입력을 단어 및/또는 단어 선택 리스트로 파싱 및/또는 명확화하도록 구성된 음성 인식 모듈을 더 포함할 수 있다. 제1 예로서, 사용자 인터페이스는 촉각 사용자 입력에 의해 초기에 생성된 단어 선택 리스트로부터 단어를 선택하도록 오디오 입력을 사용자가 제공할 수 있게 허용한다. 도 5f에 도시된 예에서, 시간 T = [1:10] 동안, 사용자는 단어 "howdy" 뿐만 아니라 디폴트 단어 "however"를 포함하는 단어 선택 리스트의 디스플레이를 제공하는 다중 촉각 특징을 입력함으로써 도 5e에서 설명된 동일한 입력을 제공한다. 시간 T = 11에서, 사용자는 그 선택을 나타내는 사용자 인터페이스로 오디오 입력을 생성하기 위하여 "howdy"를 크게 말하여(사용자 인터페이스를 제공하거나 운반하는 장치에 연결된 마이크로 말함으로써) 전자의 단어를 선택하려는 자신의 의도를 나타낸다.
다른 예로서, 사용자 인터페이스는 사용자가 촉각 입력(예를 들어 트레이스 입력)을 통해 단어 선택 리스트로부터 단어를 선택할 수 있게 하고, 단어 선택 리스트는 오디오 입력(예를 들어, 음성 인식 소프트웨어를 이용하여 생성된 단어 선택 리스트), 자유로운 형태의 필기 입력(예를 들어, 필기 인식 소프트웨어를 이용하여 생성된 단어 선택 리스트) 또는 다른 입력 모드를 이용하여 생성된다. 도 5g의 예에서, 사용자는 T = 1에서 "I am using voice recognition software to enter text initially and using tracing to correct mistakes."라고 크게 선언함으로써 자신의 입력을 시작할 수 있다. 이러한 오디오 입력에 응답하여, 사용자 인터페이스는(예를 들어, 음성 인식 모듈을 이용하여) 출력 영역(506)에서 사용자의 문장의 문자 버전을 생성하지만, 에러가 있는 4번째 단어("reconnaissance")를 갖는다. 이 에러를 보정하기 위하여, 사용자는, 시간 T2에서, 키보드 영역(510) 내의 촉각 입력(예를 들어, 탭)을 통해 에러가 있는 단어를 선택한다. 사용자 인터페이스는 선택적으로 음성 인식 모듈에 의해 생성된 음성학상 유사한 단어 reconnaissance, recognizable 및 recognition으로 이루어진 단어 선택 리스트를 단어 선택 영역(508)에 디스플레이할 수 있다. 그 다음, 사용자는 전술한 바와 같이 가상 키보드를 이용하여 정확한 단어("recognition")를 트레이스한다. 어느 단어 선택이 가장 매칭이 잘되는지를 판단하기 위하여 트레이스를 분석함으로써, 시스템은 사용자의 의도된 단어를 인식하여 실수를 교정할 수 있다. 시스템의 다중 모드 성질은 음성, 태핑, 필기, 음성 등과 같은 임의의 특정 모드를 이용하여 입력된 단어가 선택/재선택되어 교정될 수 있다는 것을 의미한다. 일부 모드에서, 모호성(nature of ambiguity)은 대체 선택으로서 2 이상의 단어(어구 세그먼트)를 갖는 단일 단어를 제공할 수 있거나, 또는 2 이상의 단어로 이루어진 부분이 더 짧은 대체 선택을 가질 수 있다. 일례는 "Do Little" 및 "Do let a"의 대체를 갖는 "Doolittle"로 인식될 수 있는 "Do little"이라고 사용자가 말하는 경우이다.
상기 예들은 상호 보완적인 방식으로 여러 종류의 명확화를 혼합하는 사용자 인터페이스의 더욱 일반적인 능력을 나타낸다. 이러한 예들에서, 제1 명확화 모드(예를 들어, 문자 명확화 또는 오디오 명확화)는 구성원이 공통된 특징(예를 들어, 키보드 상의 유사한 캐릭터 배열 또는 음성학적 유사성)을 공유하는 제1 단어 선택 리스트(예를 들어, N-최상 리스트)를 생성한다. 다음으로, 제2 종류의 사용자 입력을 명확화하는 시간이 오면, 제2 입력을 명확화하기 위하여 검색되어야 하는 가능성 있는 단어 세트(예를 들어, 검색된 "사전")는 제1 단어 선택 리스트(예를 들어, N-최상 리스트)의 구성원에 한정된다.
대체 키보드 레이아웃 및 다른 특징
도 5a의 적합한 사용자 인터페이스는 각 키와 관련하여 많아야 단일의 캐릭터를 디스플레이하는 풀 QWERTY 가상 키보드를 도시한다. 그러나, 본 명세서에서 설명된 입력 기능, 출력 기능 및 명확화 기능(태핑, 트레이싱, 하버링, 다중 모드 입력 등)은 단일 키가 2 이상의 캐릭터와 관련하여 디스플레이되는 키보드 레이아웃을 포함하는 임의의 스타일의 키보드 레이아웃을 활용하는 사용자 인터페이스로 적합하게 구현될 수 있다. 예를 들어, 도 5h는 4×3 구성으로 배열된 12개의 주요 키와 측부에 있는 2개의 추가 기능 키(스페이스 키 및 delete 키)를 갖는 가상 키보드를 포함하는 사용자 인터페이스를 도시한다. 이러한 레이아웃에서, 주요 키의 대부분은 1개 내지 4개의 상이한 캐릭터와 관련하여 디스플레이된다. 유사한 12 키 레이아웃을 사용하는 종래의 시스템에서, 사용자는 소정의 캐릭터를 나타내기 위하여 여러 키 스트록(stroke)을 사용하여야 한다(예를 들어, 종래의 시스템에서, 4번의 반복된 키 스트록 또는 키의 지속된 누름이 글자 "i"를 나타내는데 필요할 수 있다). 그에 반하여, 도 5h에 도시된 바와 같이, 본 명세서에서 설명된 명확화 방법은 사용자가 단지 몇 개의 트레이스 및 탭으로 의도된 단어 "imminent"를 포함하는 단어 리스트를 생성하게 허용한다. 사용자 인터페이스에서, 다중 입력 특징(예를 들어, 4개의 연속적인 탭 또는 "4GHI" 키 위로의 긴 하버)은 의도된 단어 "i"의 처음 글자를 선택하는데 필요하지 않다.
유사하게, 종래 시스템과는 다르게, 본 명세서에서 설명된 시스템에서, 반복되거나 오래 계속되는 사용자 입력 특징(예를 들어, 다중 입력된 탭 또는 하버)은 가상 키보드 상에서 시각적으로 디스플레이되지 않을 수 있는 액센트가 있는 캐릭터(또는 다른 대체 캐릭터)를 선택하는 것이 필요하지 않다. 예로서, 종래의 시스템에서, 도 5a에서 도시된 것과 같은 QWERTY 키보드 레이아웃 상에서 액센트가 있는 캐릭터
Figure pct00001
를 선택하기 위하여, 사용자는 하나가 "E" 키를 포함하는 여러 키 스트록을 실행할 수 있다. 이에 반하여, 본 명세서에서 설명된 명확화 방법은 사용자가 "E" 키를 포함하는 사용자 인터페이스에 대한 단일 입력 특징(예를 들어, 단일 탭 또는 코너)으로만 액세트가 있는 글자 "
Figure pct00002
"를 갖는 단어를 포함하는 단어 리스트를 생성할 수 있게 허용한다. 또한, 단일 키로 매핑된 다중의 유사한 글자를 갖는 것에 더하여, 본 명세서에서 설명된 명확화 방법은 상부 행 위의 글자에 대한 대체로서 숫자가 나타나는 키보드 레이아웃으로 실시될 수 있다.
추가로, 본 명세서에서 설명된 사용자 인터페이스는 반복된 캐릭터 및/또는 반복된 키 스트록을 나타내기 위하여 사용자로부터 반복되거나 추가적인 입력 특징을 필요로 하지 않는다. 예를 들어, 도 5a에 도시된 풀 QWERTY 사용자 인터페이스를 이용하여 의도된 단어 "moonlight"를 효율적으로 입력하기 위하여, 의도된 단어 내에서 반복된 "oo"의 존재에도 불구하고, 사용자는 생성된 단어 리스트에서 의도된 단어를 생성하도록 "O" 키 근처에서 하나의 촉각 특징만을 입력할 필요가 있다. 다른 예로서, 도 5h의 인터페이스를 이용하여 단어 "his"를 효율적으로 입력하기 위하여는, 동일한 키가 의도된 단어에서 첫 글자("h") 및 두 번째 글자("i") 모두를 위하여 사용되기 때문에, 사용자는 단일 입력 특징(예를 들어, 단일 탭 또는 코너)을 통해서 단지 "4GHI" 버튼의 선택을 나타낼 필요만 있다.
상황( context )으로 구동되는 트레이싱
도 5i는 더욱 효율적인 문자 엔트리를 제공하기 위하여 상황(context) 정보가 어떻게 사용될 수 있는지를 도시한다. 도 5i에서, 사용자는 연락처 애플리케이션 프로그램 내에서 연락처 이름을 탐색한다. 자신의 친구의 이름을 입력하기 위하여, 3개의 코너가 있는 트레이스를 그린다. 이 트레이스 엔트리를 명확화할 때, 명확화 모듈(213)은 단어 검색을 사용자의 연락처 리스트에서 단지 단어(예를 들어, 일반적으로 고유 명사)만을 포함하는 사전으로 제한할 수 있다. 또한, 명확화 모듈은 단어 선택 리스트를 정렬시키고 디폴트 이름을 제안하기 위하여 단순한 트레이스 매칭 이상의 것을 사용할 수 있다. 예를 들어, 명확화 모듈은 연락처 애플리케이션 프로그램, 이메일 프로그램 또는 모든 애플리케이션 프로그램 중에서 사용자가 자주 입력하거나 액세스하는 이름을 장려할 수 있다. 예시를 위하여, 도 5i에 도시된 트레이스가 "D"에서 시작하여 "A"에서 방향을 바꾸고 글자 "N"에서 끝나 일반적인 이름 "DAN"을 형성하지만, 사용자가 "DAN"보다 훨씬 더 높은 빈도 및/또는 최근성(recency)을 갖는 이름 "DAVID"를 입력한다면, 명확화 모듈은 여전히 그 이름을 장려할 것이다.
도 5a 내지 5i가 가상 키보드와 관련된 탭, 트레이스, 하버 및 다중 모드 입력과 같은 촉각 입력을 강조하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는, 본 명세서에서 설명된 명확화 시스템이 다중 터치 입력(예를 들어, 터치 스크린 상의 2 이상의 손가락), 가속기 입력(예를 들어, 더 큰 시스템의 가속도를 나타내는 입력), 필기/제스처 입력(예를 들어, 자유로운 형태의 촉각 입력) 및/또는 입력 버튼으로부터의 신호를 포함하는 다른 종류의 사용자 입력도 이용할 수 있다는 것을 이해할 것이다.
적합한 시스템 및 명확화 모듈
도 6 및 이어지는 논의는, 개시된 기술이 구현될 수 있는 적합한 컴퓨팅 환경에 대한 간단하고 일반적인 설명을 제공한다. 필요하지는 않지만, 개시된 기술의 양태들은 범용 데이터 처리 장치, 예를 들어 서버 컴퓨터, 무선 장치 또는 개인용 컴퓨터에 의해 실행되는 루틴과 같은 컴퓨터 실행가능한 명령어와 일반적으로 연계하여 설명된다. 관련 기술 분야에서 통상의 지식을 가진 자는 개시된 기술의 양태가 다른 통신, 데이터 처리 또는 인터넷 장비, 휴대용 장치(PDA 포함), 착용 컴퓨터(wearable computer), 모든 방식의 휴대 또는 이동 전화(VoIP(Voice over IP) 전화 포함), 단순 단말기(dumb terminal), 미디어 플레이어, 게임 장치, 멀티 프로세서 시스템, 마이크로프로세서 기반의 또는 프로그래밍 가능한 소비자 전자 장치, 셋톱 박스, 네트워크 PC, 미니 컴퓨터, 미니프레임 컴퓨터 등을 포함하는 컴퓨터 시스템 구성을 이용하여 실시될 수 있다는 것을 이해할 것이다. 사실, "컴퓨터", "서버", "호스트", "호스트 시스템" 등과 같은 용어는 본 명세서에서 일반적으로 서로 교환가능하게 사용되며, 임의의 데이터 프로세서뿐만 아니라, 상기 장치 및 시스템 중 어느 하나를 지칭한다.
개시된 기술의 양태는 본 명세서에서 상세히 설명되는 하나 이상의 컴퓨터 실행가능한 명령어를 수행하기 위하여 특수하게 프로그래밍되거나, 구성되거나, 구축된 특수 목적 컴퓨터 또는 데이터 프로세서로 구체화될 수 있다. 소정의 기능과 같은 개시된 기술의 양태가 단일 장치에서 배타적으로 수행되는 것으로 설명되지만, 개시된 기술은 기능 또는 모듈이 LAN(Local Area Network), WAN(Wide Area Network) 또는 인터넷과 같은 통신 네트워크를 통해서 연결된 이질적인 처리 장치 사이에서 공유되는 분산 환경에서도 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 모두에 위치될 수 있다.
일 실시예에서, 개시된 기술은 일시적이지 않은 컴퓨터 판독가능한 매체 또는 컴퓨터 판독가능한 메모리에 저장되는 프로그램 명령어 시퀀스로서 구현된다. 명령어는 본 명세서에서 설명된 기능을 수행하기 위하여 프로세서 전자 장치에 의해 실행된다.
개시된 기술의 양태는 자기적으로 또는 광학적으로 판독가능한 컴퓨터 디스크, 하드웨어에 내장되거나 사전 프로그래밍된 칩(예를 들어, EEPROM 반도체 칩), 나노기술 메모리, 생체 메모리 또는 다른 데이터 저장 매체를 포함하는 유형의 컴퓨터 판독가능한 매체 상에 저장되거나 배포될 수 있다. 이 대신에, 개시된 기술의 양태 하에서 컴퓨터로 구현된 명령어, 데이터 구조, 스크린 디스플레이 및 다른 데이터는 인터넷 또는 다른 네트워크(무선 네트워크를 포함)를 통해 소정의 시간 구간 동안 전파 매체(예를 들어, 전자기파, 음파 등) 상에서의 전파 신호로 배포될 수 있거나, 또는 임의의 아날로그나 디지털 네트워크(패킷 스위칭, 회로 스위칭 또는 다른 스킴) 상에서 제공될 수 있다.
도 6은 명확화 모듈(613)이 본 명세서에서 설명된 사용자 인터페이스 기능을 제공하기 위하여 동작할 수 있는 적합한 데이터 처리 또는 컴퓨팅 시스템(600)을 도시한다. 컴퓨팅 시스템은 터치 스크린 디스플레이(603), 다른 입력 장치(608), 오디오 출력 부품(604), 다른 출력 장치(606), 하나 이상의 프로세서 또는 중앙 처리 유닛(CPU)(601) 및 적어도 하나의 메모리(610)를 포함할 수 있으며, 그 중 일부 또는 모두는 하우징(미도시) 내에 운반되거나 수용될 수 있다. CPU에 대신에 또는 이에 추가하여, 컴퓨팅 시스템(600)은 하나 이상의 DSP(digital signal processor), ASIC(application-specific integrated circuit), FPGA(programmable gate array) 또는 다른 논리/데이터 처리 회로를 포함할 수 있다.
입력 및 출력 부품은 GPS(global positioning system), 디지털 카메라, 무산 LAN(WiFi) 인터페이스, 모션 센서, 가속도계, Bluetooth® 인터페이스, 외부 USB 또는 유사한 포트, 헤드폰 또는 헤드셋 잭 어댑터, 프로젝션 디스플레이, 촉감 출력 장치(예를 들어, 바이브레이터) 및 다른 부품이나 통신 요소를 포함할 수 있다. 예를 들어, Bluetooth® 인터페이스는, 오디오 입력을 수신할 뿐만 아니라 오디오 출력을 제공하기 위하여 무선 헤드셋과 같은 외부 무선 통신 부품과 통신할 수 있다. 일 구현예에서, 컴퓨팅 시스템(600)은 이동 전화이고, 이에 의해 시스템은 무선 통신을 허용하기 위하여 CPU(601)에 연결된 하나 이상의 무선 장치를 포함할 수 있다.
시스템의 출력 양식은 문자를 음성으로 변환한 출력, 오디오 출력, 진동 출력, 촉각 출력, 시각 출력 등을 포함할 수 있다. 예를 들어, 시스템은 사용자가 어느 입력 특징, 캐릭터 및/또는 글자가 '진동' 또는 '소리' 피드백을 추가함으로써 인식될 수 있는지를 알게 할 수 있다. 유사하게, 시스템은 사용자에게 추출된 특징 및 명확화와 관련된 불확실성의 레벨에 대한 더욱 상세한 이해를 제공할 수 있다.
메모리(610)는 운영 체계(611), 명확화 모듈(613) 및 하나 이상의 애플리케이션 프로그램(애플리케이션 프로그램 1 내지 N(614 내지 616)으로 도시됨)를 더 포함할 수 있다. 애플리케이션 프로그램은 단어 처리 프로그램, 슬라이드 프리젠테이션 또는 이미지 생성 프로그램, 이메일 프로그램, SMS/MMS 메시징 프로그램, 인스턴트 메시징 프로그램 또는 다른 문자 기반의 통신 또는 문자 기반의 문서 생성 프로그램을 포함할 수 있다.
명확화 모듈(613)은 운영 체계로부터 터치 스크린(603)을 이용한 사용자 입력과 관련되는 데이터를 포함하는 사용자 입력 데이터를 공급받고, 애플리케이션 프로그램에 제공할 수 있는 사용자가 선택한 단어를 식별하기 위하여 공급받은 입력 데이터를 사용한다. 예를 들어, 명확화 모듈(613)은 손가락 하향(down) 이벤트(사용자가 터치 스크린 상의 지점을 누를 때), 손가락 이동 이벤트(예를 들어, 스크린을 누르는 동안 사용자가 자신의 손가락을 이동시킬 때) 및 손가락 상향(up) 이벤트(예를 들어, 사용자가 자신의 손가락을 터치 스크린으로부터 들어올릴 때)에 대하여 운영 체계(611)로부터 일련의 통지를 공급받을 수 있다. (여기에서 손가락을 이용한 것으로 일반적으로 설명되었지만, 사용자는 스타일러스와 같이 터치 스크린을 터치하거나 작동시키기 위한 어떠한 것도 사용할 수 있다.) 각각의 공급받은 통지는 시계열적인 위치 데이터, 예를 들어 터치 스크린(603)에 대한 사용자의 촉각 입력을 반영하는 시간 스탬프 t를 갖는 X-Y 좌표(x, y) 세트(즉, 좌표(x, y, t))를 포함할 수 있다. 추가로, 터치 스크린(603)이 압력 센서를 포함한다면, 공급받은 통지는 시계열적인 위치 및 압력 데이터, 예를 들어 인가된 압력(p)를 포함하는 터치 스크린(604)에 대한 사용자의 촉각 입력을 반영하는 좌표(x, y, t, p) 세트를 포함할 수 있다. 또한, 운영 체계(611)는 다중 터치 입력(예를 들어, 터치 스크린를 동시에 접촉하는 제2 손가락을 나타내는 동시 좌표(x, y, t)에 대한 추가 세트), 오디오 입력(예를 들어, 음성 입력), 시각적 입력, 가속도계 입력, 위치 데이터, 센서 데이터 등을 포함하는 다른 종류의 데이터를 명확화 모듈(613)에 제공할 수 있다.
명확화 모듈은 단어 식별을 용이하게 하기 위하여 운영 체계 및/또는 애플리케이션 프로그램(들)로부터 동적 상황 데이터를 추가로 공급받아 처리할 수 있다. 상황 정보는 명확화 모듈에 사용자의 의도를 알려주는 것을 도울 수 있고, 여기에서 더욱 상세히 설명되는 바와 같이, 문장 또는 단어 쌍 상황, 언어 상황, 애플리케이션 전용 상황(예를 들어, 데이터 필드/태그), 사용자 전용 상황, 위치, 하루의 시간 등과 같은 정보를 포함할 수 있다. 예를 들어, 모듈은 사용자에 의해 선택된 최종 단어, 다른 문장 레벨 상황, 사용된 가상 키보드 레이아웃, 단어가 입력될 엔트리 필드의 종류(예를 들어, "연락처" 필드), 위치 데이터(예를 들어, 컴퓨팅 시스템이 GPS 수신기를 포함하거나 위치 데이터에 액세스하는 경우), 사용자를 위한 일정 기록 데이터 및/또는 식별된 단어를 사용할 수 있는 사용되었거나 사용되고 있는 상황 데이터 또는 애플리케이션과 같은 상황 정보를 공급받을 수 있다. 다른 예로서, 명확화 모듈은 다른 모드의 입력으로부터 "상위 N개" 리스트를 공급받을 수 있다. 상위 N개 리스트는 고정된 크기(예를 들어, N)로 한도가 정해질 수 있는 제안된 단어에 대한 순위가 매겨진 리스트이다. 일례로서, 상위 N개 리스트는 음성 인식 프로그램으로부터 생성된 단어 리스트(예를 들어, 동음 이의어 리스트) 또는 필기 인식 프로그램으로부터 생성된 단어 리스트와 같이 다른 종류의 명확화 애플리케이션 프로그램으로부터 생성될 수 있다. 또 다른 예로서, 사용자가 이전 이메일에 응답하기 위하여 문자를 입력한다면, 명확화 모듈은 이전 이메일에 사용된 단어 리스트를 공급받을 수 있다.
명확화 모듈은 캐릭터 선택 서브모듈(618), 단어 리스트 선택 서브모듈(620), 키보드 매핑 데이터베이스(622), 어휘 모듈(624), 사용자 상황 데이터베이스(626), 애플리케이션 상황 데이터베이스(628) 및 명확화 파라미터 데이터베이스(630)를 포함할 수 있다. 개별 모듈로서 도시되었지만, 단일 모듈, 프로그램 또는 루틴은 2 이상의 모듈을 포함할 수 있다.
캐릭터 선택 서브모듈(618)은 공급받은 사용자 입력 또는 입력 데이터를 분석하여 입력 특징(또는 "입력 특징들"), 예를 들어, 탭, 코너, 세그먼트, 하버 또는 다른 특징을 추출하도록 구성된다. 캐릭터 선택 서브모듈(618)은 정렬된 특징 객체 세트(예를 들어, 철자가 입력된 단어에 대하여 순위로 정렬된 글자 세트)를 포함하는 입력 시퀀스를 생성하도록 언어에 독립적인 키보드 매핑 데이터베이스(622)를 이용하여 추출된 입력 특징을 분석하도록 더 구성된다. 입력 시퀀스에서의 각 특징 객체는 여러 가상 키보드 또는 키 레이아웃 중 하나, 근접도 가중치 세트 및 하나 이상의 특징 타입에 대응하는 키와 관련된 캐릭터 세트와 관련된다. 근접도 가중치는 사용자가 특정 입력 특징(예를 들어, 탭, 코너, 세그먼트 또는 하버)을 통해 특정 키 스트록을 유효하게 하도록 의도한 가능성을 반영한다. 이 유사성은 입력 특징의 위치(들)와 가상 키보드 상의 키의 위치 사이의 근접도에 기초할 수 있다. 그 동작 동안, 캐릭터 선택 서브모듈은 명확화 파라미터 데이터베이스로부터 검색된 파라미터, 정책 및 선호도를 이용할 수 있다. 캐릭터 선택 서브모듈(618)의 양태에 대한 추가적인 상세는 본 명세서에 참조로서 편입되고 발명의 명칭이 "VIRTUAL KEYBOARD SYSTEMS WITH AUTOMATIC CORRECTION"인 본 양수인의 미국 특허 공보 제2006/0274051호에서 찾아볼 수 있다.
키보드 매핑 데이터베이스(622)는 캐릭터 선택 서브모듈(618)이 사용자가 특정 입력 특징을 입력함으로써 특정 키 스트록을 유효하게 하도록 의도하였다는 가능성을 평가할 수 있게 한다. 풀 QWERTY(예를 들어, 28 키, 32 키 또는 그 이상), 14 키 절반 QWERTY 키보드, 12 키 "숫자" 키패드 등과 같이, 본 시스템에 의해 사용되고 스크린 상에서 사용자에게 디스플레이되는 가상 키보드 레이아웃의 각각의 종류에 대하여, 키보드 매핑 데이터베이스(622)는 터치 스크린 디스플레이 상에서 특정 정의 영역 또는 지점에 특정 키를 매핑하거나 그 역으로 매핑하는 영역 대 키 매핑을 제공한다. 예를 들어, 28 키 풀 QWERTY 키 레이아웃에서, 영역-키 매핑은 다음과 같은 디스플레이의 4개의 지점 세트를 이용하여 "E 키"를 정의할 수 있다: {(x1, y1), (x2, y2), (x3, y3), (x4, y4)}. 다른 예로서, 도 1h에 도시된 것과 같은 4×3의 12 키 레이아웃에서, 영역-키 매핑은 다음과 같은 4개의 지점 세트를 이용하여 "5JKL"키를 정의할 수 있다: {(x11, y11), (x22, y22), (x33, y33), (x44, y44)}. 물론, 가상 키보드에 대하여 원을 정의하기 위한 x-y 중심 위치 및 반지름과 그 가상 키보드에 대한 대응하는 캐릭터로의 맵(원이 교차할 수 있는 위치)과 같은 다른 매핑도 가능하다.
또한, 본 시스템에 의해 사용되는 각각의 종류 캐럭터 레이아웃(예를 들어, 미국 영어식의 풀 QWERTY 캐릭터 레이어웃 대 프랑스어식의 풀 AZERTY 캐릭터 레이아웃)에 대하여, 키보드 매핑 데이터베이스는 특정 키(예를 들어, "E 키")를 하나 이상의 캐릭터로(또는 특수 기능 키를 위하여 특정 기능으로)로 매핑하거나 또는 그 반대로 캐릭터를 특정 키로 매핑하는 키-캐릭터 매핑을 제공한다. 키-캐릭터 매핑은 일대다 관계를 설명할 수 있으며, 특정 키는 가상 키보드 상에서 터치 스크린의 사용자에게 디스플레이되지 않는 키를 포함하는 2 이상의 캐릭터와 관련된다. 예를 들어, 풀 QWERTY 키 레이아웃과 관련된 키-캐릭터 매핑에서, "E 키"는 다음의 캐릭터 중 2 이상으로 매핑될 수 있다:
Figure pct00003
. 다른 예로서, 도 5h에 도시된 것과 유사한 12 키 레이아웃과 관련된 키-캐릭터 매핑에서, "5JKL" 키는 다음의 캐릭터들로 매핑될 수 있다: 5, %, J, j, K, k, L, l. 단일 영역-키 매핑은, 예를 들어 단일 가상 키보드 레이아웃을 통해 더 쉬운 다중 언어 입력을 허용하기 위하여 2 이상의 키-캐릭터 매핑에 관련될 수 있다. 사용자 입력을 명확하게 하기 위한 키보드 매핑 데이터베이스(622)의 사용이 여기에서 더욱 상세히 설명될 것이다.
또한, 키들은 결합하여 사용자가 표준 라틴-1 기반 키보드를 이용하여 외국어 캐릭터를 입력할 수 있게 하는 로마자화(Romanization), 음역(transliteration) 또는 음성 표기(transcription)를 형성할 수 있다. 사용자는 라틴-1 기반 키보드를 이용하여 소리 나는 대로 단어를 타이핑할 수 있고, 음역 성분이 그 본래의 문자로 단어를 생성할 것이다. 예를 들어, "serodija"를 타이핑하는 것은 러시아어 단어 "сегодня"를 제공한다. 하나 이상의 라틴-1 캐릭터는 하나 이상의 러시아어 캐릭터를 형성하도록 결합될 수 있다. 이러한 매핑은 상태 기계 또는 다른 일반적으로 사용되는 방법을 이용하여 다양한 방법으로 구현될 수 있다. 이러한 번역 또는 음역 레이어는 확률로서 구현되는 매핑 레이어 또는 추가 서브모듈을 추가한다. 일대일 매핑이 있는 경우에, 구현은 복잡하지 않다. 여러 해석이 있는 경우에, 각 매핑은 확률값이 할당될 수 있다. 예를 들어, 힌두어에서, 글자는 2 이상의 유효 매핑을 가질 수 있다. 예를 들어, 글자
Figure pct00004
는 다음의 매핑을 가진다: i, yi, ee 및 yi. 유사하게
Figure pct00005
는 i 및 yi로 매핑된다. 여기에서 언급된 상황 또는 다른 파라미터는 사용자에게 디스플레이된 선택 리스트를 더 명확화하거나 정렬하는데 사용될 수 있다.
단어 리스트 선택 서브모듈(620)은 캐릭터 선택 서버모듈에 의해 생성된 입력 시퀀스를 공급받도록 구성된다. 단어 리스트 선택 서버모듈(620)은 도 5a 내지 5i에 도시된 것과 같이, 순위로 정렬되거나 아니면 다르게 구성된 단어 선택 리스트를 생성하기 위하여 다양한 다른 입력을 이용하여 입력 시퀀스를 분석할 수 있다. 단어 리스트 선택 서버모듈(620)이 사용할 수 있는 다른 입력은 어휘 서버모듈(624)로부터의 데이터, 명확화 파라미터 데이터베이스(630)에서 검색된 파라미터, 공급받은 동적 상황 데이터 및 사용자 상황 데이터베이스(626)와 애플리케이션 상황 데이터베이스(628)에서 검색된 상황 데이터를 포함한다. 단어 리스트 선택 서버모듈(620)은 여기에서 더욱 상세히 설명된다.
단어 선택을 용이하게 하기 위하여, 어휘 모듈(624)은 단어 세트 또는 단어의 논리 그룹을 정의하는 하나 이상의 사전을 제공한다. 예를 들어, "미국 영어" 사전은 영어를 구사하는 미국인에 의한 보통 용법으로의 단어 논리 그룹을 정의할 수 있으며, "미국 영어-Msg" 사전은 문자 및 멀티미디어 메시지(예를 들어, SMS, MMS 또는 유사한 메시지)에서 영어를 구사하는 미국인에 의해 일반적으로 사용되는 단어(이모티콘 포함) 논리 그룹을 정의할 수 있다. 또한, 어휘 모듈(624)은 특정 단어 논리 그룹 내(예를 들어, 특정 언어 내)에서의 정적 또는 동작 빈도 정보 및/또는 특정 상황과 같은 추가 언어 정보를 제공할 수 있다. 예를 들어, 추가 언어 정보는: 정확하고 그리고/또는 일상 대화에 쓰이는 작성 문자에서의 단어의 발생 빈도; 어떤 이전 단어 또는 단어들의 다음에 올 때의 단어의 발생 빈도; 주위 문장에 대한 적절하거나 일반적인 문법; 왼쪽 어간 또는 오른쪽 어간(또는 접두사나 접미사)로서 활용되는 단어의 빈도 등 중의 하나를 포함할 수 있는 언어 모델에 따른 빈도 정보를 포함할 수 있다. 빈도에 더하여, 변환 확률이 특정 변환에 할당될 수 있어, 규칙에 맞지 않는 단어를 형성할 수 있는 사전 내의 다른 단어를 갖는 접두어를 거부하면서, 한 부류의 접두사를 하나 이상의 접미사 부류를 갖는 그럴싸한 어간 또는 어간들에 연결한다. 예를 들어, 단어 작업은 종종 유효한 단어를 형성하는 접미사 -er, -ers, -ing, -s 및 -ed 를 갖는 높은 변환 확률을 가질 수 있다.
명백하게, 명확화 모듈은 사용자가 자신의 키보드 구성을 변경하더라도 자신의 사전을 변경할 필요가 없다. 또한, 키보드 매핑 데이터베이스(622)를 사용함으로써, 명확화 모듈은 키보드 레이아웃에 관계 없이 임의의 시스템 내에서 활용될 수 있다.
명확화 파라미터 데이터베이스(630)는 상호 작용 또는 입력 특징 추출, 캐릭터 선택 및/또는 단어 선택을 수행하기 위한 다양한 파라미터, 정책 및 선호도를 저장할 수 있다. 예를 들어, 명확화 파라미터 데이터베이스는, 모두 본 명세서에서 설명되는, 거리 기능, 근접도 메트릭, 매칭 메트릭 및 후처리 단계에 대한 선택 및 적용에 도움을 주는 파라미터 및 정책을 포함할 수 있다.
개선된 캐릭터 및/또는 단어 선택을 용이하기 위하여, 사용자 상황 데이터베이스(626)와 애플리케이션 상황 데이터베이스(628)는 캐릭터 선택 서브 모듈(618) 및/또는 단어 리스트 선택 서브모듈(620)에 상황 정보를 제공하여, 이 처리를 알려줄 수 있다; 이러한 서브모듈들은 애플리케이션 프로그램 및/또는 운영 체계로부터 동적 상황 정보를 공급받을 수도 있다. 문자의 엔트리, 선택 가능한 것 중에서의 선택, 상황 정보 및 다중 모드는 명확화 모듈에 의해 관리된다. 시스템은, 본 명세서에서 언급된 바와 같이 사용자의 의도를 결정하기 위하여, 사용자로부터의 입력, 애플리케이션의 상황, 외부 센서, 상황 리소스, 명확화 및 보정 접근을 이용할 수 있다. 사용자의 의도에 대한 이해에 기초하여, 시스템은 애플리케이션의 상황 및 상태를 유지할 수 있으며, 다중 입력 모드에 걸친 입력 및 동기화의 구성을 관리한다. 비지니스 논리와 인터페이스함으로써, 시스템은 사용자에게 제공될 다중 모드 출력을 생성할 수 있다. 상호 작용, 비지니스 논리 및 상황과 상태는 상호 작용 스크립트 또는 더욱 복잡한 상태 기계(State Chart XML 또는 SCXML)이나 XHTML+Voice Profile 또는 SALT와 같은 사용자 인터페이스의 제어를 위해 사용되는 언어를 통해 관리될 수 있다.
사용자 상황 데이터베이스(626)는 사용자에 의해 활용된 이전 단어, 사용자에 의해 입력된 단어의 빈도 및 사용자에 의해 채용된 관용 어구와 같은 사용자의 이전 캐릭터 및/또는 단어 선택 거동에 관한 임의의 히스토리 정보를 포함할 수 있다. 사용자 상황 정보의 다른 예는 다음을 포함한다: 사용자에 의해 입력된 단어 쌍, 특정 애플리케이션에서의 사용자 고유의 어휘(예를 들어, 문자 메시지 대 이메일), 문자를 시스템으로 입력하는 동안의 '엉성함(sloppiness)'의 사용자 레벨(캐릭터 인식 영역을 증가시킴) 등. 추가로, 사용자 상황 정보는 사용자가 특정 언어로부터 단어를 얼마나 자주 선택하는지 또는 사용자가 어느 언어를 주로 사용하는지를 반영할 수 있다. 예를 들어, 시스템이 이중 언어 사용자를 위하여 프랑스어 사전과 영어 언어 사전을 모두 활용한다면, 사용자 상황 데이터베이스(626)는 사용자의 "주요 언어(primary language)"를 판단하기 위하여 사용자가 영어 단어에 대하여 프랑스어 단어를 선택하는 상대적인 빈도를 추적하고, 그 사전으로부터의 단어가 다른 사전으로부터의 단어에 대해 먼저 제공되거나 선호될 수 있다.
대체하거나 또는 추가로, 일부 사용자 상황 정보는 어휘 모듈(624)에서 사용자 전용 사전 및/또는 다른 데이터 구조에 반영될 수 있다. 또한, 대체하거나 또는 추가로, 사용자 상황 데이터베이스(626)는 명확화 파라미터 데이터베이스(230)에 저장된 디폴트 명확화 파라미터에 우선할 수 있는 사용자 전용 정책 및 파라미터를 제공할 수 있다.
애플리케이션 상황 데이터베이스(628)는 명확화 모듈(613)이 특정 애플리케이션 프로그램 내에서 캐릭터 또는 단어 선택에 관련된 히스토리 정보를 액세스할 수 있게 허용한다. 또한, 애플리케이션 상황 데이터베이스(628)는 명확화 파라미터 데이터베이스(630)에 저장된 디폴트 명확화 파라미터에 우선할 수 있는 애플리케이션 전용 사전 및/또는 애플리케이션 전용 정책 및 파라미터를 제공할 수 있다. 또한, 상황은 정보가 입력되는 것으로 되어 있는 문자 필드로부터 나올 수 있다. 일례로서, 일부 구현예에서, 명확화 모듈은 특정 단어 엔트리와 관련될 수 있는 애플리케이션 전용 필드, 태그 또는 라벨을 정의하는 특정 종류의 애플리케이션 프로그램과 통합되도록 설계될 수 있다. 일례로서, 양식의 문자 필드("이름" 또는 "이메일")는 상황 정보를 제공하는데 활용될 수 있는 라벨일 수 있다. 그 다음, 애플리케이션 상황 데이터베이스(628)는 사용자의 히스토리 단어 엔트리를 애플리케이션 전용 필드(들)과 상관시켜 추가 상황 정보를 제공할 수 있다. 시스템은, 애플리케이션 상황 데이터베이스에서, 필드 정보 및 다른 상황 정보가 단어 선택 동안 어떻게 활용도리 수 있는지를 반영하는 애플리케이션 전용 필드 및 규칙(예를 들어, 문법 규칙, 매칭 메트릭 및/또는 후처리 규칙)을 정의할 수 있다. 이 규칙은 심지어 특정 필드에 대한 단어 제안이 사용자가 다른 필드에 무슨 단어를 입력하였는지에 의존할 수 있다고 특정할 수 있다.
시스템은 명확화 모듈에 필드의 의도된 문자 정보(이름, 전화 번호, 날짜, 이메일 주소, 암호)를 알려주고, 그리고/또는 정보를 설명하는 문법을 제공한다. 예를 들어, 주 명칭(State), 우편번호 및 도시가 입력되는 것이 필요한 양식은 다른 필드의 상황 및 내용에 기초하여 적합한 문법을 제공할 수 있는 접근 방식을 사용할 수 있다. 주 명칭이 "WA"이면, 도시에 대한 문법은 워싱턴 주 내의 실제 도시로 제한되고, 우편 번호도 유사하게 제한된다. 도시 및 주 명칭이 입력되면, 우편 번호의 범위는 다시 제한된다. 필드와 문법 사이의 복잡한 상호 작용은 이러한 "양식"에서의 데이터 입력을 단순화할 수 있다. 이 대신에, 시스템은 종종 사용되는 문자 필드에 대한 상황을 학습할 수 있다.
이러한 상황 정보의 사용을 예시하기 위하여, 사용자가 특정 필드(들)에 무엇을 입력하였는지를 명확화 모듈이 기억할 수 있는 양식 작성의 예를 고려하라. 예시를 위해, 주문 양식에서, 사용자는 자신의 업무 이메일을 이메일 필드에 입력할 수 있으며, 그 다음, 명확화 모듈은 발송 주소 필드가 사용자의 업무 주소를 포함할 수 있다고 예측할 것이다. 이와 반대로, 사용자가 자신의 개인 이메일 주소를 이메일 필드에 입력한다면, 명확화 모듈은 발송 주소 필드에 사용자의 집 주소를 예측할 것이다.
다른 상황 정보는 하루 중의 시간, 위치, 달력 엔트리, 사용자 설정, 애플리케이션 설정 및 시스템 설정과 같은 환경 파라미터를 포함한다.
개별 데이터베이스로 도시되었지만, 본 명세서에서 설명된 2 이상의 데이터베이스는 결합될 수 있으며, 임의의 데이터 구조 또는 논리 구성으로 구현될 수 있다.
캐릭터 선택 서브모듈(618) 및/또는 단어 리스트 선택 서브모듈(620)은 사용자 상황 데이터베이스(626) 및/또는 애플리케이션 상황 데이터베이스(228)를 사용자의 현재 거동에 관한 통지를 제공함으로써 현재로 유지할 수 있다. 예를 들어, 단어 리스트 선택 서브모듈(620)은 사용자가 단어 선택 리스트로부터 단어를 선택할 때 이러한 데이터베이스에 정보를 되돌려줄 수 있다.
또한, 추가로, 전술한 바와 같이, 명확화 모듈(613)은 운영 체계 및/또는 애플리케이션 프로그램으로부터 추가의 동적 상황 데이터를 공급받을 수 있다. 도시되지 않았지만, 명확화 모듈은 본 명세서에서 설명된 바와 같이 음성 또는 오디오 입력을 명확화하도록 구성된 음성 인식 소프트웨어를 추가로 포함할 수 있다.
적합한 명확화 방법
본 명세서에서 설명된 플로우 차트는 모든 기능 또는 데이터 교환을 보여주지 않지만, 그 대신에 본 시스템 하에서 교환되는 명령 및 데이터에 대한 이해를 제공한다. 관련 기술분야에서 통상의 지식을 가진 자는 일부 기능과 명령 및 데이터의 교환이 반복되거나, 변경되거나, 생략되거나 또는 보충될 수 있으며, 도시되지 않은 다른(덜 중요한) 양태가 용이하게 구현될 수 있다는 것이 이해될 것이다. 또한, 과정의 단계, 방법의 단계, 블록, 알고리즘 또는 이와 유사한 것이 특정 순서로 설명될 수 있지만, 이러한 과정, 방법, 블록 및 알고리즘은 다른 순서로 작용하도록 구성될 수 있다. 다른 말로 하면, 본 명세서에서 설명된 임의의 시퀀스 또는 순서는 단계 또는 블록이 그 순서로 수행되어야 하는 요건을 반드시 나타내지 않는다. 본 명세서에서 설명된 과정 및 방법의 단계 또는 블록은 임의의 실용적인 순서로 수행될 수 있으며, 일부 단계들은 동시에 수행될 수 있다.
도 7a는 단어 선택 리스트로부터의 단어 선택을 허용하기 위한 다중 모드 사용자 입력에 대응할 수 있는 일련의 사용자 입력 데이터의 명확화에 대한 과정(700)을 도시한다. 과정(700)은 명확화 모듈(613)에 의해 수행되며, 블록(730)으로 진행하기 전에 명확화 모듈(613)이 입력 데이터를 대기하여 공급받는 블록(710)에서 시작한다. 일반적으로, 명확화 모듈(613)은 하나 이상의 사용자 입력 통지 또는 운영 체계로부터의 입력 이벤트의 형태로 입력 데이터를 공급받지만, 애플리케이션 프로그램과 같은 다른 과정으로부터 입력 데이터를 공급받을 수도 있다. 예를 들어, 블록(710)에서, 명확화 모듈은 운영 체계로부터 손가락 하향 통지, 손가락 이동 통지 및/또는 손가락 상향 통지를 대기하여 공급받을 수 있으며, 그 각각은 (x, y, t) 또는 (x, y, t, p) 좌표 세트에 의해 수반되며, 여기에서 x는 디스플레이 상의 사용자의 손가락의 x-위치이고, y는 사용자의 손가락의 y-위치이고, t는 이러한 입력에 대한 시간 또는 클록 기준이고, p는 선택적인 입력 측정(압력 민감형 스크린 용)이다. 또한, 명확화 모듈(613)은, 음성 입력, 가속도계 입력, 외부 센서 데이터, 위치 정보와 같은 다른 형태의 입력 데이터를 대기할 수 있다. 도시되지 않지만, 블록(710)에서, 명확화 모듈(613)은 추가의 동적 상황 데이터를 예를 들어 운영 체계 및/또는 애플리케이션 프로그램으로부터 공급받을 수 있다. 예를 들어, 애플리케이션 프로그램의 종류 또는 사용자가 문자를 입력하고 있는 상황(예를 들어, 데이터 필드 대 이름 필드와 같은 사용자가 타이핑하고 있는 필드의 종류)에 대한 정보를 공급받을 수 있다.
명확화 모듈이 사용자 입력 데이터를 대기하여 공급받는 시간 구간은 가변할 수 있다. 예를 들어, 일 구현예에서, 명확화 모듈은, (1) 손가락 하향 통지, (2) 다음 손가락 상향 통지 및 (3) 이러한 처음 두 번의 통지 사이에 발생할 수 있는 모든 손가락 이동 통지에 대응하는 전체 통지 그룹을 블록(730)으로 진행하기 전에 공급받도록 대기할 수 있다. 일부 다른 구현예에서, 불록(710)에서, 명확화 모듈(613)은 사용자 입력 데이터에서 다른 종류의 논리 그루핑을 식별하기 위하여 들어오는(incoming) 사용자 입력 데이터를 연속적으로 분석할 수 있으며, 논리 그룹이 전체로서 공급받아질 때에만 블록(730)으로 진행할 수 있다. 예를 들어, 블록(710)에서, 명확화 모듈은 입력 특징(예를 들어, 탭, 코너, 하버 등) 또는 특수 기능이 발생하였는지를 (예를 들어 각각 블록(802) 및 블록(730)에서 본 명세서에 설명된 기술을 이용하여) 결정하기 위하여 공급받은 통지를 도착할 때 연속적으로 분석하고, 단일 입력 특징 또는 특수 기능에 대응하는 입력 데이터의 논리 그룹이 검출될 때, 그 논리 그룹의 처리가 블록(730)으로 진행할 수 있다.
판단 블록(730)에서, 명확화 모듈은 사용자가 명확화 모듈이 단어 선택, 캐릭터 선택 또는 특수 기능 키(예를 들어, 시프트 키, 캐피털 락 키, 키보드 선택 키 등)에 관련된 기능과 같은 특수 기능을 수행하여야 한다는 것을 나타내는 입력을 제공하였는지 여부를 판단한다. 도 7a에 도시된 바와 같이, 특수 기능이 표시되면, 처리는 블록(740)으로 진행하기 전에 명확화 모듈이 도 7b(본 명세서에서 설명됨)에 도시된 과정에 따라 특수 기능을 수행하는 블록(780)으로 진행한다. 이와 달리, 입력 데이터가 특수 기능을 나타내지 않는다면, 과정은 블록(740)으로 바로 진행한다.
블록(740)에서, 명확화 모듈은 만약에 있다면 무슨 입력 특징(예를 들어, 탭, 코너, 세그먼트, 하버, 오디오 입력 등)이 공급받은 입력 데이터에 의해 표시되는지를 식별하기 위하여 캐릭터 선택 서브모듈(618)을 활용한다. 또한, 블록(740)에서, 명확화 모듈은 각각의 식별된 입력 특징에 대하여 특징 객체를 생성하도록 캐릭터 선택 서브모듈을 활용한다. 특징 객체는 캐릭터 세트, 특징 종류 세트 및 근접도 가중치 세트를 포함한다. 캐릭터 선택 서브모듈은 도 8a 및 8b에 도시된 과정에 따라 이러한 작업들을 수행할 수 있다.
또한, 블록(740) 동안, 캐릭터 선택 서브모듈은 하나 이상의 특징 종류를 이용하여 각각의 식별된 입력 특징을 특징화할 수 있다. 예를 들어, 캐릭터 선택 서브모듈은 각각의 입력 특징을 탭, 코너, 세그먼트, 하버 등으로 특징화할 수 있다. 추가로, 캐릭터 선택 서브모듈은 식별된 입력 특징이 "의도 입력 특징(intentional input feature)"(또는 "의도 특징")인지 여부를 판단할 수 있다. 의도 입력 특징은 다른 종류의 입력 특징에 비하여 사용자에 의해 의도된 키 스트록에 가장 유사하게 대응하는 것으로 보이는 입력 특징이다. 특징이 의도 입력 특징이 아니라면, 이 대신에 "우연 입력 특징(incidental input feature)"(또는 "우연 특징")으로서 특징화된다. 입력 특징에 대한 후보 단어를 매칭시킬 때, 의도 입력 특징은, 본 명세서에서 설명되는 바와 같이, 우연 특징과는 다르게(예를 들어, 더 높게 가중치를 가지도록) 취급될 수 있다.
예시를 위하여, 일부 구현예에서, 명확화 모듈은 모든 탭 및 모든 코너를 의도 입력 특징으로서 취급하며, 이는 이러한 특징들이 사용자의 입력 거동에서 명확하고 급작스런 변동을 나타내기 때문이다. 다른 예시에서, 명확화 모듈은 모든 탭, 코너 및 하버를 "의도" 입력 특징으로서 취급할 수 있다. 더하여, 명확화 모듈은 본 명세서에서 설명된 다른 인자들을 채용하여 어느 입력 데이터가 의도 또는 우연 특징으로서 특징화되는지를 세밀하게 구별할 수 있다. 입력 특징의 특징화는 도 8a를 참조하여 본 명세서에서 더욱 상세히 설명될 것이다. 일부 구현예에서, 명확화 모듈은 구별을 하지 않을 수 있으며, 모든 입력 특징을 의도 특징으로서 취급할 수 있다.
블록(750)에서, 명확화 모듈은, 만약에 있다면, 블록(740)에서 식별된 새로운 의도 입력 특징의 개수를 반영하기 위하여 예측된 입력 길이 변수(L)를 증분할 수 있다. 본 명세서에 설명되는 바와 같이, 명확화 모듈은, 블록(370)에서 단어 선택 리스트를 생성할 때 사전을 사전 필터링하기 위하여 또는 다른 목적을 위하여 예측된 입력 길이(L)를 나중에 사용할 수 있다. 유사하게, 블록(750)에서, 명확화 모듈은 입력 시퀀스의 구성을 반영하는 다른 변수(예를 들어 입력 시퀀스에 존재하는 세그먼트 특징의 개수를 반영하는 변수)를 추가로 업데이트할 수 있다.
블록(760)에서, 명확화 모듈은 입력 시퀀스에 대한 임의의 새롭게 생성된 특징 객체를 첨부한다. 입력 시퀀스는 사용자가 단어를 마지막으로 선택한 이후에 생성된 모든 입력 특징 객체에 대한 정렬된 세트를 반영한다. 입력 시퀀스에서의 다양한 특징 객체는 시간 기반으로 정렬될 수 있다.
블록(770)에서, 명확화 모듈은 단어 리스트 선택 서브모듈(618)을 이용하여 현재의 입력 시퀀스를 이용하는 단어 선택 리스트를 생성하고 이 리스트를 사용자에게 (예를 들어, 터치 스크린 디스플레이 상의 단어 선택 리스트 영역을 통해) 출력한다. 이러한 방법으로, 명확화 모듈은 사용자에게 의도된 단어를 선택하는 기회를 제공한다. 단어 선택 리스트의 생성은 본 명세서에서 도 9a 및 9b를 참조하여 더욱 상세히 설명된다.
본 시스템의 일 변형례에서, 사용자가 단어 선택 리스트 내의 한 단어를 선택하면, 본 시스템은 선택된 단어로 시작하는 단어들을 단지 보여줌으로써 응답할 수 있다. 단어들에 더하여, 선택 리스트는 단어에 의해 표현되는 객체를 포함할 수도 있다. 예를 들어, 단어 "love"는 그와 관련된 하트 형상의 아이콘을 가질 수 있다. 또한, 연락처 사전과 같은 상이한 어휘 또는 제공자로부터 검색된 단어는 선택되는 경우에 추가 선택 사항을 제공할 수 있다. 예를 들어, 사용자가 연락처 사전 내의 단어와 일치하는 이름을 입력하였다면, 사용자는 전화 번호, 운전 방향, 이메일 주소 또는 기계 판독 가능한 형식(vCard 등)으로 연락처를 나타내는 객체를 포함하는 임의의 다른 관련 객체를 추가하도록 선택할 수 있다. 다른 단어는 키워드, 전화번호, 잠재적인 캘린더 엔트리 등을 인식할 수 있는 '인식자(recognizer)'에게 전송될 수 있다. 사용자가 "Let's meet for Lunch at Joey's"라고 타이핑하였다면, 인식자는 캘린더에 Joey 가게에 전화 걸기, 예약하기, 방향 삽입하기 등의 동작을 추가할 수 있다. 사용자가 임의의 동작을 선택하면, 시스템은 완료시 사용자에게 문자 엔트리의 활동을 되돌려주는 활동을 런칭할 수 있다. 이러한 활동은, 사용자 히스토리, 사용자 선호도를 포함하는 사용자의 의도에 대하여 활동이 더 좋은 정보를 받도록 도울 수 있는 임의의 관련 상황 파라미터로 런칭될 수 있다. 다른 예에서, 사용자는 노래를 이메일에 추가하기 원할 수 있다. 노래 제목, 아티스트, 앨범 또는 심지어 mp3, 노래와 같은 키워드를 타이핑함으로써, 사용자는 사용자가 객체를 심리스식으로 첨부할 수 있게 하는 활동을 런칭할 수 있다. 선택적으로, 활동의 개시를 발생시키도록 선택된 단어(들)가 자동으로 삭제될 수 있다.
도 7b는 사용자 입력 데이터에 의해 표시되는 특수 기능을 수행하는 과정(715)을 도시한다. 과정(715)은 명확화 모듈이 어느 종류의 특수 기능이 사용자 입력 데이터로 표시되었는지를 식별하는 블록(782)에서 시작한다. 그렇게 하기 위하여, 명확화 모듈은 특수 기능 키, 단어 선택 리스트 영역 및/또는 메뉴 버튼과 같은 다른 활성 영역에 대한 촉각 사용자 입력의 근접도를 분석할 수 있고; 음성 명령 입력의 음성 인식 분석을 수행할 수 있고; (예를 들어, 스윕, 멀티 터치 동작을 검출하기 위하여) 다른 촉각 제스처 또는 물리적 제스처(예를 들어, 장치 흔들기)를 분석할 수 있고; 그리고/또는 각종 입력을 특수 기능으로 매핑하기 위하여 명확화 파라미터 데이터베이스에서 룩업을 수행할 수 있다.
판단 블록(784)에서, 명확화 모듈은, 사용자가 (예를 들어 단어 선택 리스트에서) 단어를 선택하였다고 입력 데이터가 나타내는지 판단한다. 단어에 대한 사용자의 선택은, 사용자가 특수 키(예를 들어, 스페이스 바, 탭 키, 엔터 키 등) 근처 또는 그 위로 태핑하거나, 트레이스하거나, 하버하는 경우에, 예를 들어, (전술한 바와 같이) 음성 선택을 통해 발생할 수 있다. 물론, 사용자는 장치 흔들기, 입력 버튼 누르기 등에 의해서와 같이 임의의 다른 적합한 방법에 의해 단어를 선택할 수 있다.
일례에서, 명확화 모듈(613)은, 사용자의 입력이 사용자가 하나의 별개 단어를 종료하고 다른 것을 시작하려고 의도한다는 것을 나타내는지 여부를 판단하기 위하여 사용자에 의해 활용된 입력 특징 종류를 분석함으로써 "자동 띄어쓰기(auto-spacing)" 기능을 제공할 수 있다. 일부 구현예에서, 명확화 모듈(613)은, 사용자가 (1) 입력 시컨스에서의 마지막 트레이스 및 다른 이전 특징에 대하여 결정된 디폴트 단어를 선택하도록, 그리고 (2) 두 번째 트레이스로 시작하는 새로운 단어를 시작하도록 의도하였다는 표시로서, 입력 시퀀스에서 (즉, 트레이스 또는 하버와 같은 다른 입력 특징 종류가 개재하지 않는) 2개의 연속하는 트레이스를 해석할 것이다. 따라서, 블록(784)에서, 명확화 모듈은 마지막 2개의 입력 특징이 트레이스이었는지를 판단할 수 있다. 트레이스이었다면, 시스템은 (1) 마지막 디폴트 단어의 사용자 선택을 처리하도록 블록(792)로 진행하여, (2) 새로운 입력 시퀀스에서의 첫 번째 특징으로서 두 번째 트레이스의 성분(즉, 코너 및 세그먼트)을 이용하여 과정(700)을 재개할 수 있다. 아니면, 시스템은 단순히 과정(700)을 계속할 수 있다. 물론, 임의의 다른 적합한 특징 조합이 판단 블록(784)에서 자동 띄어쓰기를 테스트하는데 활용될 수 있다. 더욱 일반적으로, 명확화 모듈(613)은 입력 시퀀스 내의 특정 특징 구성의 발생에 따라 자동 띄어쓰기를 수행할 수 있다; 트리거링 구성이 명확화 파라미터 데이터베이스(630)에서 명확화 파라미터 및 선호도를 이용하여 설정될 수 있다.
추가로, 어떤 언어(예를 들어, 합성 언어) 또는 상황(예를 들어, URL 엔트리)에 대하여, 자동 띄어쓰기 특징은 디스에이블되거나 다른 방식으로 구현될 수 있다. 예를 들어, 2개의 연속하는 트레이스(또는 상이한 트리거링 조건)이 검출되면, 시스템은 (1) 마지막 디폴트 단어의 사용자 선택을 처리하기 위하여 블록(792)로 진행하고, (2) 새로운 입력 시퀀스에서의 첫 번째 특징으로서 두 번째 트레이스의 성분(즉, 코너 및 세그먼트)을 이용하여 과정(700)을 재개할 수 있고, 마지막 디폴트 단어와 새로운 단어는 새로운 단어가 선택될 때 합성되어야만 한다는 것을 나타내는 플래그를 설정할 수 있다.
사용자가 단어를 선택하였다고 입력 데이터가 나타내면, 과정은 명확화 모듈이 선택된 단어를 처리하는 블록(792)으로 진행하고, 그렇지 않다면, 과정은 블록(786)으로 바로 진행한다. 블록(792)에서, 명확화 모듈은 선택된 단어를 원하는 출력(예를 들어, 현재 실행되고 있는 애플리케이션 프로그램과 관련된 윈도우 출력 영역)으로 출력한다. 이 출력의 성질은 상황(예를 들어, 문장 상황), 플래그, 파라미터 또는 다른 인자에 의해 영향을 받을 수 있다. 예를 들어, 문장에서 바로 이전 단어가 합성어에서 공통의 좌측 어간이고, 현재 선택된 단어가 동일한 합성어에서 공통 우측 어간이라면, 명확화 모듈은 현재 선택된 단어 전에 빈칸을 삽입할 지 또는 새로 선택된 단어를 직전 단어에 합성시킬지를 판단할 수 있다. 이러한 결정을 하기 위하여, 명확화 모듈은 어휘 모듈(624) 및/또는 문법 모듈로부터의 언어 정보를 활용할 수 있다. 다른 예로서, 명확화 모듈은, 사용자가 URL을 입력하고 있는 상황(예를 들어 "google.com"이라는 이전 엔트리)으로부터 추론할 수 있다면, 단어 사이에 빈칸을 제거할 수 있다.
추가로, 블록(792)에서, 명확화 모듈은 선택을 반영하기 위하여 어휘 모듈을 업데이트할 수 있다. 예를 들어, 명확화 모듈은 선택된 단어에 관련된 빈도 및 최근성 정보를 갱신할 수 있고 그리고/또는 사용자가 생성한 단어를 사용자 전용 사전 또는 사용자가 동일한 단어를 여러 번 입력하기 전까지의 임시 사전에 추가할 수 있다. 이는 사용자 데이터베이스로의 쓰레기 단어의 예기치 못한 추가를 방지한다. 본 시스템은 추가의 사용자 간섭 없이 사전으로의 이러한 예기치 못한 추가를 제거하기 위하여 단어에 대한 사후 편집을 통지할 수 있다. 또한, 사용자는, 사용자가 생성한 단어가 단어를 오래 누르는 것과 같은 특정 동작을 통해 사용자 사전에 즉치 추가되어야만 한다는 것을 표시할 수 있다. 단어에 더하여, 시스템은 (예를 들어, 본 명세서에 언급된 바와 같이, 단어 쌍을 이용한) 장래의 예측을 더 개선하기 위하여 선행하는 단어/단어들과 같은 단어의 문자 상황에 관한 정보를 포함할 수 있다.
다른 예로서, 명확화 모듈은 (시스템이 이메일과 문자 메시지에 대하여 상이한 사용자 사전을 유지한다면) 애플리케이션 종속적이고 사용자 종속적인 사전을 업데이트할 수 있다. 또 다른 예로서, 명확화 모듈은 사용자에 의해 활용된 단어 쌍에 관련된 정보를 이용하여 사용자 상황 데이터베이스(626)을 업데이트하기 위하여 입력된 이전 단어를 검색할 수 있다. 예를 들어, 사용자가 "school book"이라는 단어 쌍을 자주 사용하고, 현재 엔트리에서 이전 단어가 "school"이었다면, 단어 "book"은 더 높은 확률을 공급받아, 단어 선택 리스트에서 승급될 수 있다. 다른 예로서, 일부 구현예에서, 명확화 모듈은, 예를 들어 선택된 단어를 적용가능한 필드 라벨과 관련시켜, 애플리케이션 상황 데이터베이스(628)를 업데이트할 수 있다.
추가로, 블록(792)에서, 명확화 모듈은, 장래의 거동을 조정하기 위하여 현재의 그리고/또는 연혁적으로 공급된 입력 데이터, 현재의 그리고/또는 연혁적인 입력 시퀀스와 현재의 그리고/또는 연혁적으로 선택된 단어를 분석할 수 있다. 예를 들어, 명확화 모듈은 사용자의 선택된 단어에 대응하는 키의 위치를, 입력 시퀀스에서 검출된 특징의 위치에 비교하여 사용자가 사용자 인터페이스에 데이터를 어떻게 입력하는지(시스템이 유사한 사용자 입력 세트에 기초하여 사용자의 패턴이나 습관을 어떻게 학습할 수 있는지)에 대한 임의의 경향을 파악할 수 있는지 판단할 수 있다. 경향이 파악된다면, 명확화 모듈은 임의의 관찰된 경향을 반영하기 위하여 사용자 전용 또는 다른 명확화 파라미터를 업데이트할 수 있다. 예로서, 사용자가 항상 코너에서 캐릭터를 오버슈트(overshoot) 또는 언더슈트(undershoot)한다면(또는 소정의 경우에 그렇게 한다면), 사용자가 추가 강조를 명확하게 제공하거나 반복된 글자를 나타내기 위한 노력으로 탭 동안 약간 꿈틀거린다면, 의도된 키 스트록을 나타내기 위하여 사용자가 중간 세그먼트에서 일반적으로 중지한다면, 또는 기타 경우에, 명확화 모듈은 그 캐릭터 선택 파라미터를 조정할 수 있다. 다른 특정 예로서, 명확화 모듈은 사용자가 입력 엔트리에서 특히 얼마나 정확한지 또는 부정확한지를 반영하기 위하여 적용가능한 거리 함수 및/또는 근접도 메트릭 파라미터(예를 들어, 본 명세서에서 설명되는 바와 같이 코너 타원형을 생성하기 위하여 사용되는 것)를 조정할 수 있다. 많은 경우에, 명확화 모듈은 피드백 루프를 채용하며, 모듈은 사용자가 단어 리스트에서 선택한 동일한 단어와 관련된 사용자 입력 시리즈를 저장하고, 이러한 입력들을 비교하고, 이후의 단어 리스트에서의 정렬된 단어 리스트, 입력에 대한 가중치의 명확화 등에 대한 조정을 한다. 양 손으로 키보드를 유지할 때의 여러 손가락을 통한 엔트리에 대하여, 시스템이 단일 손가락 엔트리(한 손으로 장치를 유지할 때의 엄지와 같이)를 검출할 때 상이한 적응 모델이 존재한다. 또한, 모델은 사용자의 속도, 주변광의 사용 가능성 등과 같은 다른 상황 파라미터를 고려할 수 있다.
다른 예로서, 명확화 모듈은 특정 언어로부터 사용자가 단어를 선택하는 빈도를 판단함으로써 사용자의 주요 또는 선호되는 언어를 판단하기 위하여 선택된 단어를 분석할 수 있어, 사용자는 자신의 선호 언어를 명시적으로 설정할 필요가 없다.
추가로, 블록(792)에서, 명확화 모듈은 특정 애플리케이션 프로그램(예를 들어, 문자 메시지 프로그램) 및/또는 특정 애플리케이션 필드(예를 들어, "이름" 필드)의 상황 내의 단어 또는 어구의 빈도 또는 최근성을 반영하기 위하여 애플리케이션 상황 데이터베이스를 업데이트할 수 있다. 적절하다면, 패스워드 필드와 같은 선택된 필드는 기억될 수 있지만, 다양한 상황 파라미터에 의존할 수 있는 시간 구간 동안 사용자가 비밀 패스코드, 제스처, 흔들기, 보안된 메모리를 풀기 위한 음성 명령, 볼트(vault) 또는 이러한 민감한 단어를 포함하는 위치를 입력할 때까지 검색되는 것으로부터 보호될 수 있다. 예를 들어, 장치가 '슬립' 모드 또는 '스크린 세이버' 모드로 들어갔을 때, 볼트는 자동 잠금될 수 있다. 볼트의 행위는, 케이스 단위 기준으로 필요하다면, 사용자에 의해 정의될 수 있다. 또한, 사용자는 다양한 '모습(persona)' 또는 겉모습을 정의할 수 있으며, 명시적 또는 묵시적 활성화에 기초하여 사용자 이름, 패스워드 및 다른 민감한 데이터가 변경될 수 있다. 예를 들어, 업무 시간 동안, 모습은 '업무'일 수 있지만, 몇 시간 후에 또는 주말 동안에 모습은 '레저' 또는 '집' 또는 '가족'일 수 있고, 시스템의 다른 사전, 데이터베이스 및 선호도가 모습에 의존하여 사용될 수 있다.
마지막으로, 블록(792)에서, 명확화 모듈은 입력 시퀀스를 클리어하여, 도 7a에 도시된 바와 같은 새로운 과정(700)을 재개할 수 있다.
블록(786)에서, 명확화 모듈은 입력 데이터가 캐릭터의 삭제를 나타내는지 판단할 수 있다. 예를 들어, 명확화 모듈은 delete 특수 기능 키가 눌러졌는지(또는 트레이스되었는지) 또는 사용자가 장치를 흔들었거나 아니면 삭제 제스처를 수행하였는지 판단할 수 있다. 삭제 이벤트가 검출되면, 과정은 블록(788) 전에 블록(794 및 796)으로 진행한다. 그렇지 않으면, 과정은 블록(788)로 바로 진행한다. 블록(794)에서, 명확화 모듈은 하나 이상의 특징 객체를 입력 리스트로부터 제거한다. 일반적으로, delete 키의 단일의 누름(예를 들어, 탭) 또는 트레이스에 대하여, 명확화 모듈은 마지막 의도 특징 객체 및 임의의 이어지는 우연 특징 객체를 입력 시퀀스로부터 제거한다. 그러나, 명확화 모듈은 입력 시퀀스로부터 다른 특징 객체 서브세트를 제거할 수 있다; 블록(394)에서 제거된 특징의 개수, 성질 및 순서는 공급받은 입력 데이터의 정밀한 성질(예를 들어, "모두 삭제(delete all)" 키 또는 제스처가 "하나 삭제(delete one)" 키 또는 제스처 대신에 사용되었는지 여부; 사용자의 삭제 제스처 또는 입력이 특정 특징이 삭제되어야만 하는 것을 표시하는지 여부 등)에 의존할 수 있다. 블록(794)에서, 명확화 모듈은, 입력 시퀀스로부터 하나 이상의 의도 특징 객체의 삭제를 반영하기 위하여, 예측 입력 길이 변수(L)을 추가로 감소시킬 수 있다. 블록(796)에서, 명확화 모듈은 업데이트된 입력 시퀀스를 이용하여 새로운 단어 리스트를 생성하여 이러한 새로운 리스트를 사용자에게 (예를 들어, 도 9a에서 설명되는 바와 같이) 출력한다.
블록(788)에서, 명확화 모듈은 입력 데이터가, 단어 선택 리스트를 생성할 때 명확화 모듈이 후보 캐릭터 및/또는 단어를 선택하여야만 하는 방법과 관련된 특수 기능을 나타내는지를 판단한다. 예를 들어, 명확화 모듈은 사용자가 시프트 키, 캐피털 락 키, 키보드 선택 키 또는 명확화 모듈이 캐릭터 및/또는 단어를 선택하여야만 하는 방법을 수정하는 유사한 키 위로 태핑하였거나 트레이스하였는지 여부를 판단할 수 있다. 다른 예에서, 키보드는 사용자가 시스템 명령을 신속하게 입력할 수 있게 하는 'Command' 키를 포함할 수 있다. 예를 들어, Command 키 단어 "COPY" 위로 트레이스함으로써 또는 Command 키로부터 트레이스하여 키보드 상에서 단어 COPY를 트레이스함으로써, 사용자는 선택된 문자를 복사할 수 있다. 유사하게, CTRL 키는 다음의 일반적으로 사용되는 기능으로 매핑하는데 사용될 수 있다": "모두 선택"을 위한 CTRL-A, 복사 및 붙여넣기를 위한 CTRL-C/V, 문자를 입력하기 위한 CTRL-E 등. 또한, 사용자는 명령 및 단축키를 정의할 수 있다. 다른 예로서, 명확화 모듈은 사용자가 다른 입력 수단을 통해(예를 들어, 오프-키보드(off-keyboard)를 (예를 들어, 디스플레이되지 않은 캐릭터가 요구된다는 것을 나타내기 위하여) 트레이스함으로써; 흔들기, 문지르기 또는 다른 물리적 제스처에 의해; 또는 음성 명령에 의해) 유사한 의도를 나타내었는지를 판단 할 수 있다. 특수 기능이 표시된다면, 명확화 모듈은 블록(798)에서, 예를 들어, 캐릭터 판단 플래그(예를 들어, 대문자화 플래크, 영역-키 매핑 선택 플래그, 키-캐릭터 매핑 선택 플래그 및/또는 발음 구별 부호 플래그) 또는 단어 판단 플래그(예를 들어, 대문자화 플래그)를 조정함으로써, 입력 시퀀스의 내용을 조정함으로써 그리고/또는 임의의 다른 적합한 동작을 취함으로써, 블록(298)에서 적절한 응답 동작을 취할 수 있다.
블록(790)에서, 명확화 모듈은 입력 데이터가 다른 기능을 나타내는지 판단한다. 예를 들어, 명확화 모듈은 사용자가 메뉴 버튼을 태핑하였다고 판단할 수 있다. 다른 기능이 표시되면, 블록(799)에서, 명확화 모듈은 과정(315)이 복귀하기 전에 다른 표시된 기능을 수행하는데 필요한 적절한 단계를 취할 수 있다. 그렇지 않으면, 과정(715)은 즉시 복귀한다.
도 8a는 만약에 있다면 어느 입력 특징이 공급받은 입력 데이터에 의해 표시되는지 식별하고 각 식별된 입력 특징에 대하여 특징 객체를 생성하는 과정(800)을 도시한다. 또한, 과정은 각 입력 특징을 특징화하고, 입력 특징과 관련시키도록 캐릭터 세트를 선택하고, 그 캐릭터 세트와 관련된 근접도 가중치 세트 또는 그 세트 내의 각 캐릭터에 대한 대응하는 가중치를 결정한다.
과정(800)은 캐릭터 선택 서브모듈이 존재하는 입력 특징(들)의 종류 및 식별된 입력 특징의 위치를 식별하기 위하여 가공되지 않은(raw) 입력 데이터(예를 들어, 위치 측정과 관련된 시계열적인 손가락 하향, 손가락 이동, 손가락 상향 통지 또는 이벤트)를 처리하는 블록(802)에서 시작한다. 각각의 입력 특징을 식별하기 위하여, 캐릭터 선택 서브모듈은 사용자의 손가락의 단일 누름, 즉, 손가락 하향 이벤트, 임의의 개수의 손가락 이동 이벤트 및 손가락 상향 이벤트로 시작하는 시계열적인 입력 데이터에 대응하는 입력 데이터 그룹을 분석한다. 그 다음, 캐릭터 선택 서브모듈은 압력 측정을 관련된 시계열적인 위치/압력 데이터 X-Y = {x(t), y(t), 그리고 선택적으로는 p(t)}로부터 이동 및/또는 압력 메트릭을 판단하기 위하여 이 그룹을 분석할 수 있다. 예를 들어, 캐릭터 선택 서브모듈은 다음과 같은 1차 값을 계산할 수 있다: 누름의 전체 시간, 이동된 전체 거리(예를 들어, X-Y에서 반영된 모든 선 세그먼트를 가산함으로써), (x(t), y(t)) 또는 그 일부 조합의 범위, 누르는 동안의 압력에서의 순 차이(net difference) 등. 다른 예로서, 캐릭터 선택 서브모듈은, 트레이스를 따르는 사용자의 손가락의 속도를 결정하는 것, 코너, 굴절 지점(예를 들어, 2차 도함수를 이용하여) 및/또는 다른 교차 지점을 식별하는데 사용될 수 있는 널리 알려진 기하학적 해석 알고리즘과 같은, 더 높은 차수 및/또는 시간 종속적인 계산을 수행할 수 있다.
블록(805)에서, 캐릭터 선택 서브모듈은 입력 데이터가 탭 특징을 나타내는지 판단한다. 탭 특징을 식별하기 위하여, 캐릭터 선택 서브모듈은 전체 누르는 시간이 임계 탭 시간값 아래에 속하는지 그리고/또는 시계열 동안의 전체 이동 범위가 임계 탭 거리값 아래에 속하는지 여부를 간단히 판별한다. 이러한 조건이 만족되면, 캐릭터 선택 서브모듈은 적합한 위치(예를 들어, 윈도우를 누르는 동안에 보여진 초기, 평균 또는 최종 (x, y) 좌표)를 식별하여 탭 특징의 위치로서 활용할 수 있다. 그러나, 캐릭터 선택 서브모듈은, 탭을 식별하고, 탭을 다른 종류의 특징과 구별하고 그리고/또는 탭의 위치를 결정하기 위하여, 임의의 다른 적합한 방법을 적용할 수 있다. 예를 들어, 캐릭터 선택 서브모듈은 낮은 압력의 탭을 무시할 수 있다.
판단 블록(805)에서 탭이 검출되면, 다음으로 과정은 캐릭터 선택 서브모듈이 탭을 특징화하고 탭과 관련된 관련 캐릭터 세트를 식별하고, 캐릭터 세트 내의 각 캐릭터에 대하여 근접도 가중치를 계산함으로써, 탭에 대한 특징 객체를 생성하는 블록(850)으로 이어진다. 일반적으로, 캐릭터 선택 서브모듈은 탭 특징을 전술한 바와 같이 의도 특징으로서 특징화하지만, 명확화 파라미터에 의해 기술된 소정의 환경(예를 들어, 낮은 압력의 탭) 하에서, 캐릭터 선택 서브모듈은 이 대신에 탭을 우연 특징으로서 특징화할 수 있다. 추가로, 캐릭터 선택 서브모듈은 탭 특징을 "손가락 하향" 및 "손가락 상향 이벤트" 모두로서 특징화할 수 있다. 관련된 캐릭터 세트를 식별하고 검출된 탭 특징에 대하여 근접도 가중치를 계산하는 적합한 방법은 도 8b 및 8c를 참조하여 본 명세서에서 더욱 상세히 설명된다.
블록(810)에서, 캐릭터 선택 서브모듈은 입력 데이터가 코너 특징을 포함하고 있는지 판단한다. 캐릭터 세트 서브모듈은 간단히 트레이스의 X-Y 세트의 처음 및 마지막 멤버 또는 데이터 포인트를 이용함으로써 트레이스의 시작 코너와 종료 코너를 검출할 수 있다. 중간 트레이스 코너 특징을 식별하기 위하여, 캐릭터 선택 서브모듈은 사용자의 방향에서의 갑작스런 변동을 검출하기 위하여 임의의 적합한 곡률(curvature) 분석 방법을 이용할 수 있다. 일례로서, 캐릭터 선택 서브모듈은 트레이스에서 일련의 좌표(예를 들어, 3개의 연속하는 점)를 반복적으로 평가하여 중간점이 다른 2개의 점을 연결하는 선으로부터 임계 거리보다 더 많이 떨어졌는지 판단할 수 있다. 만약 그렇지 않다면, 평가는 트레이스에서 점들의 다음 세트에 대하여 반복된다. 만약 그렇다면, 중점은 코너 위치로서 식별된다. 그 다음, 이 과정은 코너를 발견하도록 반복된다. 다른 예로서, 중간 트레이스 코너 특징을 식별하기 위하여, 캐릭터 세트 서브모듈은 트레이스를 따라 압력, 속도 및/또는 가속도 거동을 평가할 수 있다. 그러나, 캐릭터 선택 서브모듈은, 코너를 식별하기 위하여, 코너를 다른 종류의 특징으로부터 구별하기 위하여 그리고/또는 코너의 위치를 판단하기 위하여, 임의의 다른 적합한 방법을 적용할 수 있다.
코너가 블록(805)에서 검출되면, 다음으로 과정은 캐릭터 선택 서브모듈이 코너를 특징화하고, 코너와 관련된 관련 캐릭터 세트를 식별하고, 캐릭터 세트에서 각 캐릭터에 대한 근접도 가중치를 계산함으로써 코너에 대한 특징 객체를 생성하는 블록(860)에서 계속된다. 일반적으로, 캐릭터 선택 서브모듈은 전술한 바와 같이 의도 특징으로서 코너 특징을 특징화할 것이지만, 명확화 모듈에 의해 기술된 소정의 환경 (예를 들어, 낮은 압력의 코너 또는 더 작은 곡률을 갖는 중간 트레이스 코너) 하에서, 캐릭터 선택 서브모듈은 이 대신에 우연 특징으로서 코너를 특징화할 수 있다. 추가로, 캐릭터 선택 서브모듈은 시작 코너 특징을 손가락 하향 특징으로서 특징화하고 종료 코너 특징을 손가락 상향 특징으로서 특징화할 수 있다. 관련 캐릭터 세트를 식별하고 검출된 코너 특징에 대한 근접도 가중치를 계산하는 적합한 방법은 도 8b 및 8d를 참조하여 본 명세서에서 더욱 상세히 설명된다.
블록(820)에서, 캐릭터 선택 서브모듈은 입력 데이터에서 세그먼트 특징이 검출되는지를 판단한다. 캐릭터 선택 서브모듈은 세그먼트를 검출하여 간단히 2개의 인접하는 코너(여기에서, 다시 말하면 "코너(corner)"는 트레이스의 종점을 포함할 수 있다) 사이에 있는 X-Y 트레이스 데이터를 선택함으로써 세그먼트 특징에 대한 위치 데이터를 선택할 수 있다. 또한, 서브모듈은 트레이스가 2개의 특징 사이의 잠재적인 세그먼트를 표시하기 위하여 가상 키보드 상의 키 영역보다 더 큰지 판단할 수 있다. 그러나, 캐릭터 선택 서브모듈은, 세그먼트를 식별하기 위하여, 세그먼트를 다른 종류의 특징으로부터 구별하기 위하여 그리고/또는 세그먼트의 위치를 결정하기 위하여 임의의 다른 적합한 방법을 적용할 수 있다.
세그먼트가 블록(820)에서 검출된다면, 다음으로 과정은 캐릭터 선택 서브모듈이 세그먼트를 특징화하고, 세그먼트와 관련된 관련 캐릭터 세트를 식별하고, 캐릭터 세트에서 각 캐릭터에 대한 근접도 가중치를 계산함으로써 세그먼트에 대한 특징 객체를 생성하는 블록(870)에서 계속된다. 일반적으로, 캐릭터 선택 서브모듈은 명확화 파라미터에 의해 달리 기술되지 않는다면 세그먼트 특징을 우연 특징으로서 특징화할 것이다. 관련 캐릭터 세트를 식별하고 검출된 세그먼트 특징에 대한 근접도 가중치를 계산하는 적합한 방법은 도 8b 및 8e를 참조하여 본 명세서에서 더욱 상세히 설명된다.
블록(830)에서, 캐릭터 선택 서브모듈은 다른 종류의 특징이 입력 데이터에서 검출되었는지 판단한다. 예를 들어, 캐릭터 선택 서브모듈은 X-Y 트레이스 동안 발생된 임의의 하버링(hovering) 또는 변칙적인 국부 압력을 식별할 수 있다. 캐릭터 서브모듈이 검출할 수 있는 다른 특징의 종류는 다음을 포함한다: 음성 명령(예를 들어, 글자를 선택하기 위한), 트레이스 동안 스크린을 태핑하는 제2 손가락, 곡률에서의 완만한 변경 및 곡률에서의 일정한 변경(예를 들어, 원 운동을 암시). 다른 종류의 특징이 검출되면, 과정은 캐릭터 선택 서브모듈이 특징을 특징화하고, 특징과 관련된 관련 캐릭터 세트를 식별하고, 캐릭터 세트에서 각 캐릭터에 대한 근접도 가중치를 계산함으로써 특징에 대한 특징 객체를 생성하는 블록(880)에서 계속된다. 캐릭터 선택 서브모듈은, 특징이 특정 키 스트록을 유발하기 위한 사용자의 의도의 명확한 표시라면, 식별된 특징을 의도 특징으로서 특징화할 수 있다. 예를 들어, 명확한 음성 글자는 의도 특징으로서 특징화될 수 있다.
과정(800) 동안, 캐릭터 선택 서브모듈은 다양한 사용자 전용 명확화 파라미터를 평가함으로써 사용자의 입력 스타일에서 알려진 특이점 또는 경향을 보완하도록 입력 특징의 위치를 조정할 수 있다. 예를 들어, 캐릭터 선택 서브모듈은, 사용자가 키의 오른쪽을 태핑하는 경향을 가진다면, 탭 특징의 위치를 실제 검출된 위치의 왼쪽으로 조정할 수 있다.
도 8b는 캐릭터 세트를 식별하고 입력 특징에 대한 관련 근접도 가중치를 계산하는 과정(890)을 도시한다. 과정(890)은 캐릭터 선택 서브모듈이 특정 특징 종류에 대하여 사용되어야만 하는 적용가능한 거리 기능 및 근접도 메트릭을 식별하기 위하여 명확화 파라미터를 활용하는 블록(803)에서 시작한다. "거리 함수(distance function)"은 특정 입력 특징의 위치와 가상 키보드 상의 특정 키보드의 위치 사이의 간격을 반영하는 거리 점수를 유도하는 방법을 제공한다. "근접도 메트릭(proximity metric)"은 근접도 가중치를 유도하는 방법을 제공한다. "근접도 가중치(proximity weight)"는, 사용자가 입력 특징의 위치와 가상 키보드 상의 특정의 대응하는 키의 위치 사이의 간격에 기초하여, 입력 특징으로 특정 키 스트록을 나타내려고 의도한 가능성 또는 확률을 반영한다. 아래에서 설명되는 도 8c 내지 8e는 사용될 수 있는 거리 함수 및 근접도 메트릭의 다양한 종류를 도시한다. 그러나, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 임의의 적합한 거리 함수 또는 근접도 메트릭이 채용될 수 있다는 것을 이해할 것이다.
블록(806)에서, 캐릭터 선택 서브모듈은 사용자에게 디스플레이되어 사용자에 의해 사용되는 가상 키보드의 키 레이아웃(예를 들어, 12 키, 28 키 등)을 반영하는 키보드 매핑 데이터베이스(622)로부터의 영역-키 매핑을 로드한다.
그 다음, 블록(809)에서 시작하여, 캐릭터 선택 서브모듈은 영역-키 매핑에서 각 키에 대하여 루프를 수행한다. 루프는 캐릭터 선택 서브모듈이 일반적으로 언어에 독립적인 매핑인 영역-키 매핑을 이용하여 키의 위치를 결정하는 블록(812)에서 시작한다. 다음으로, 블록(815)에서, 캐릭터 선택 서브모듈은, 도 8c 내지 8e를 참조하여 본 명세서에서 더욱 상세히 설명되는 바와 같이, 키의 위치와 입력 특징의 위치를 이용하여 적용가능한 거리 함수를 평가함으로써 키의 거리 점수를 계산한다. 판단 블록(818)에서, 캐릭터 선택 서브모듈은 키가 추가 분석을 받을 만큼 입력 특징에 충분히 가까운지 판단한다; 그렇게 하기 위하여, 서브모듈은 임계값에 대하여 거리 점수를 평가할 수 있다. 키가 충분히 가깝지 않다면, 루프는 블록(812)에서의 시작을 반복한다. 아니면, 과정은 캐릭터 선택 서브모듈이, 도 8c 내지 8e를 참조하여 본 명세서에서 더욱 상세히 설명되는 바와 같이, 키의 위치, 입력 특징의 위치 및/또는 거리 점수를 이용하여 적용가능한 근접도 메트릭을 평가함으로써 키의 근접도 가중치를 계산하는 블록(824)으로 진행한다.
블록(827)에서, 캐릭터 선택 서브모듈은 키와 관련된 모든 캐릭터, 심지어 가상 키보드 상에서 사용자에게 디스플레이되지 않을 수 있는 캐릭터(예를 들어, 액센트가 있는 글자)를 식별하기 위하여 하나 이상의 키-캐릭터 매핑을 이용한다. 서브모듈은 다양한 플래그(예를 들어, 키보드 선택 플래그), 동적 상황 정보(예를 들어, 운영 체계로부터 공급받은 사용자의 언어 설정), 사용자의 선호도 및/또는 명확화 파라미터를 평가함으로써 블록(827)에서 사용할 키-캐릭터 매핑을 판단할 수 있다. 예를 들어, 서브모듈은 사용자 인터페이스가 프랑스어 캐릭터 레이아웃을 구비한 풀 QWERTY 키보드를 가진다는 표시를 공급받을 수 있고, 이 정보를 적합한 키-캐릭터 매핑을 선택하는데 사용할 수 있다. 캐릭터 선택 서브모듈은 이 블록에서 (예를 들어, 상이한 온-스크린 캐릭터 레이아웃 사이의 스위칭 없이 연속하여 문자를 입력하기 원하는 다중 언어 사용자에 부응하기 위하여) 2 이상의 키-캐릭터 매핑을 활용할 수 있다.
블록(833)에서, 캐릭터 선택 서브모듈은 블록(827)에서 식별된 각 특징을 특징 객체의 캐릭터 세트에 추가하고, 각각의 식별된 캐릭터를 계산된 키 근접도 가중치와 관련시킨다. 블록(836)에서, 캐릭터 선택 서브모듈은 영역 키 매핑에 처리할 키가 더 있는지 판단한다. 그렇다면, 루프는 블록(812)에서 시작을 반복하고, 아니면 과정(890)은 복귀한다.
도 8c는 탭 특징과 함께 적합하게 사용될 수 있는 적합한 거리 함수 및/또는 근접도 메트릭을 개념적으로 도시한다. 도 8c는 가상의 디스플레이된 QWERTY 키보드의 "E" 키 상의 점("X"로 도시됨)에서 위치된 탭 특징(882)을 나타낸다. 일부 구현예에서, 거리 함수 및 근접도 메트릭은 구분적인(piece-wise) 계단 함수이다. 일례에서, 키의 임의의 부분(또는 키의 전체)이 반경 R의 원(881) 내에 있다면 키에 대한 거리 점수는 0이고, 여기에서 R은 적어도 부분적으로 명확화 파라미터(예를 들어 사용자의 입력 스타일을 반영하기 위하여 조정될 수 있는 파라미터와 평균 키 크기 및/또는 평균 키 간격과 같은 키보드 레이아웃과 관련된 파라미터를 포함)를 이용하여 결정될 수 있다. 본 예에서, 거리 함수는 반지름 외부에 있는 모든 다른 키에 대해 최대값을 가진다. 본 예에서, 도시된 탭(882)에 대하여, A, W, S, E, D, R(그리고 가능하게는 T) 키는 0(또는 다른 최소값)의 거리 값을 가질 것이고, 모든 다른 키는 최대 거리 값을 가질 것이다. 다른 예에서, 키에 대한 거리 점수는, 탭 지점(882)이 키의 바로 위에 있다면 0(또는 최소)이고, 키의 일부(또는 이 대신에 전부)가 반경 R의 원(881) 내에 있다면 중간값이고, 원(4881)의 외부에 있는 모든 다른 키에 대하여 최대값일 것이다. 본 예에서, 도 8c에 도시된 탭(882)에 대하여, E 키는 0의 거리 점수를 가질 것이며, A, W, S, R, R(그리고 가능하게는 T) 키는 중간값을 가질 것이고, 다른 모든 키는 최대값을 가질 것이다. 또 다른 예에서, 키에 대한 거리 함수는 탭 특징(882)으로부터 키 상의 또는 키 내의 점(예를 들어, 그 중심, 그 둘레로부터 가장 가까운 점 등)까지의 직교좌표 거리이다. 이러한 예들에 있어서, 키에 대한 근접도 메트릭은 거리 함수의 최대값(또는 다른 최대값)에서 키의 거리 점수를 뺀 것으로 정의될 수 있다. 그러나, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 임의의 다른 적합한 더 고차의 거리 함수 및/또는 근접도 메트릭이 사용될 수 있고, 근접도 메트릭은 키의 거리 점수를 직접적으로 사용할 필요가 없다는 것을 이해할 것이다. 또한, 탭 특징에 대하여 설명된 기술은 다른 손가락-접촉 및/또는 손가락-분리 특징(예를 들어, 트레이스를 시작하거나 종료하는 코너 특징)에 대하여 적합하게 사용될 수 있다.
도 8d는 코너 특징과 함께 적합하게 사용될 수 있고, 특히 비단말(non-terminal) 코너 특징에 잘 맞을 수 있는 적합한 거리 함수 및/또는 근접도 메트릭을 개념적으로 도시한다. 트레이스 동안, 사용자가 코너(833)에 접근함에 따라, 사용자가 자신의 의도된 코너 키를 오버슈트 및/또는 오버슈트하는 경항이 있을 수 있다. 사용자가 주어진 트레이스 동안 오버슈트하는지 또는 언더슈트하는지 여부는 사용자의 잘 쓰는 손, 키보드의 형상 및/또는 레이아웃, 트레이스의 방향, 사용자가 코너에 접근할 때의 속도 및 가속도, 사용자 손의 형상, 사용자가 코너 키(이는 사용자의 손에 의해 가려질 수 있다)에 접근할 때 키보드 레이아웃을 시각적으로 파악하는 사용자의 능력, 코너에서 트레이스의 곡률의 정도 및 다른 인자의 함수일 수 있다. 또한, 이러한 인자는 사용자가 오버슈트 또는 언더슈트하는 방법(예를 들어, x-방향, y-방향으로 오버슈트하는지, 얼마나 멀리 오버슈트하는지 등)에 정밀하게 영향을 미칠 수 있다.
도 8d는 거리 함수 및/또는 근접도 메트릭이 어떻게 의도된 키를 오버슈트하거나 언더슈트하는 사용자를 보상할 수 있는지를 개념적으로 도시한다. 도 8d는 내부 코너 특정(883)에서의 타원(884) 또는 타원 영역(또는 유사한 비대칭 영역)이 도 8c를 참조하여 전술된 구분적인 거리 함수와 유사한 구분적인 거리 함수를 구현하는데 어떻게 사용될 수 있는지를 보여준다. 영역의 정밀한 형상 및 배향이 전술한 인자들에 의해 발생된 오버슈트 또는 언더슈트를 보상하기 위하여 선택될 수 있다. 예를 들어, 일 구현예에서, 코너에 도달할 때 또는 코너에서 방향을 바꾼 직후에, 타원(884)의 주축(888)은 코너(883)에 도달하기 전의 사용자의 손가락의 속도 벡터에 평행하게 선택될 수 있다. 추가로, 주축(888)의 길이는 이러한 점들 중 하나에서 속도 벡터의 크기에 비례하여 증가하도록 그리고/또는 아니면 전술한 인자(예를 들어, 사용자의 엉성함)를 반영하도록 선택될 수 있다. 유사하게, 종축(889)의 길이는 전술한 인자를 반영하도록 선택될 수 있다.
또한, 도 8f에 도시된 바와 같이, 각각이 자신의 주축 및 종축을 갖는 2개의 반 타원형을 포함하는 난형물(ovoid) 형상과 같은 다른 종류의 비대칭 형상이 활용될 수도 있다. 주축의 방향과, 절대적 및/또는 상대적 길이는 사용자 손가락의 속도(크기 및 방향 모두), 사용자의 잘 쓰는 손, 사용자의 엉성함 및/또는 전술한 다른 인자의 함수일 수 있다. 일 구현예에서, 반 타원형의 주축은, 코너에 도달할 때 또는 코너에서 방향을 바꾼 직후에, 코너에 도달하기 전의 사용자의 손가락의 속도 벡터에 평행하게 선택될 수 있다. 축은 사용자의 잘 쓰는 손 및 이동 방향에 종속하는 가려진 시야를 부분적으로 보상하도록 선택될 수 있다. 예를 들어, 오른쪽으로 움직이는 오른손잡이 사용자는 자신의 손가락의 오른쪽으로 키의 가시성을 덜 가지며(예를 들어, 동일한 방향으로 이동하는 왼손잡이 사용자에 비하여), 이는 코너의 오른쪽에 있는 키를 스트록하려는 자신의 의도를 판단하는데 있어서의 불확실성을 증가시킨다. 도 8f에 도시된 예에서, 난형물은 오른손잡이 사용자가 하부 좌측으로부터 접근할 때 일부 키에 대한 사용자의 더 많이 가려진 시야를 보상하기 위하여 키보드의 오른쪽에서 더 길다. 또한 난형물에서의 2개의 반 타원형의 종축은 전술한 인자를 반영하기 위하여 선택될 수 있다; 2개의 타원형은 상이한 길이의 종축을 가질 수 있으며, 더 긴 축이 상기 예에서는 오른쪽에 위치된다.
도 8c를 참조하여 전술된 방법에 유사하게, 비대칭 형상(예를 들어, 타원(884) 또는 도 8f의 난형물) 내에 (완전히 또는 부분적으로) 있는 키는 비대칭 형상의 외부에 있는 형상보다도 더 낮은 거리 점수(및/또는 더 높은 근접도 가중치를 할당받을 수 있다. 다른 예에서, 코너 지점(883)이 키 상에 있으면, 그 키는 최소 거리 점수를 할당받을 수 있으며, 비대칭 형상 내의 키들은 중간 거리 점수를 할당받을 수 있으며, 비대칭 형상 외부에 있는 키는 최대 거리 점수를 할당받을 수 있다. 또 다른 예에서, 키에 대한 거리 함수는 코너 특징(483)으로부터 키 상의 또는 키 내의 점(예를 들어, 그 중심, 그 둘레로부터 가장 가까운 점 등)까지의 직교좌표 거리이다. 또한, 키에 대한 근접도 가중치는 최대 가능 거리 점수로부터 키의 거리 점수를 감산하여 선택될 수 있다.
도 8d는 코너 특징에 대한 구분적인 거리 함수 및 근접도 메트릭을 주로 설명하였다. 그러나, 임의의 다른 적합한 더 높은 차수의 거리 함수 및/또는 근접도 메트릭(오버슈트 또는 언더슈트를 보상하는 더 높은 차수의 거리 함수 및/또는 근접도 메트릭 포함)이 사용될 수 있으며, 근접도 메트릭은 키의 거리 점수를 직접 사용할 필요는 없다.
도 8e는 세그먼트 특징과 함께 적합하게 사용될 수 있는 거리 함수 및/또는 근접도 메트릭을 개념적으로 도시한다. 여기에서, 구분적인 거리 함수 및/또는 근접도 메트릭은 세그먼트 특징(886)의 트레이스 라인으로부터 특정 수직 거리 내에 있는 모든 점에 의해 정의되는 불규칙 영역(885)을 이용하여 정의될 수 있다. 영역을 정의하는데 활용되는 최대 거리는 명확화 파라미터(예를 들어 사용자의 입력 스타일 및 습관을 반영하기 위하여 조정될 수 있는 파라미터를 포함)를 이용하여 적어도 부분적으로 결정될 수 있다. 제1 예에서, 불규칙 영역(885) 내에 부분적으로(아니면, 이 대신에 전체적으로) 있는 모든 키는 최소 거리 점수(및/또는 최대 근접도 가중치)를 공급받을 수 있으며, 모든 다른 키는 최대 거리 점수(및/또는 최소 근접도 가중치)를 공급받을 수 있다. 제2 예에서, 세그먼트 특징(886)에 의해 직접 교차되는 키는 최소 거리 점수(및/또는 최대 근접도 가중치)를 공급받을 수 있으며, 그 영역 내에 부분적으로(아니면, 이 대신에 전체적으로) 있는 다른 키는 중간 거리 점수(및/또는 최대 근접도 가중치)를 공급받을 수 있으며, 모든 다른 키는 최대 거리 점수(및/또는 최소 근접도 가중치)를 공급받을 수 있다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 트레이스 라인까지의 키의 수직 거리를 활용하는 더 높은 차수의 함수 및 메트릭을 포함하는 임의의 다른 적합한 더 높은 차수의 거리 함수 및/또는 근접도 메트릭이 사용될 수 있다는 것을 이해할 것이다.
도 9a는 특징 객체의 입력 시퀀스를 이용하여 단어 선택 리스트를 생성하는 과정(900)을 도시한다. 과정(900)은 단어 리스트 선택 서브모듈이 적용가능한 명확화 파라미터; 사용자 상황 데이터베이스 및 애플리케이션 상황 데이터베이스로부터 검색된 반정적(semi-static) 상황 데이터와, 운영 체계 및/또는 애플리케이션으로부터 공급받은 동적 상황 데이터를 포함하는 상황 데이터; 및 예를 들어, 어휘 모듈, 사용자 상황 데이터베이스 및/또는 애플리케이션 상황 데이터베이스로부터의 빈도 데이터를 포함하는 언어 데이터를 로드하거나 공급받는 블록(905)에서 시작한다. 블록(510)에서, 단어 리스트 선택 서브모듈(줄여서 "단어 서브모듈")은 상황 데이터, 명확화 파라미터 및/또는 임의의 플래그(예를 들어, 단어 선택 플래그)를 이용하여 어휘 서브모듈로부터 적용가능한 사전을 로드한다. 예를 들어, 사용된 사전은 명확화 모듈의 출력을 공급받을 애플리케이션 프로그램의 종류에 기초하여 선택될 수 있다. 다른 예로서, 사용된 사전은 음성 인식 소프트웨어를 사용하는 사용자의 음성을 분석함으로써, 또는 다른 사용자 입력 모드를 분석함으로써 생성될 수 있다. 예를 들어, 사전은 음성 인식 소프트웨어, 필기 인식 소프트웨어 등에 의해 생성된 상위 N개 리스트일 수 있다.
블록(915)에서, 단어 서브모듈은 단어의 서브그룹을 생성하기 위하여 입력 시퀀스의 일부 부분, 예측 입력 길이(L) 및/또는 상황을 이용하여 사전(dictionary)을 사전 필터링할(pre-filter) 수 있다. 제1 예로서, 단어 서브모듈은 단어가 (전술한) 처음 "손가락 상향" 특징 및/또는 마지막 "손가락 하향" 특징에 매칭하는지 여부에 기초하여 사전을 사전 필터링할 수 있으며, 이는 이러한 특징이 아마도 특정 키 스트록을 유효하게 하려는 사용자의 의도에 대한 가장 강한 표시를 제공하기 때문이다. 제2 예로서, 단어 서브모듈은 예측 입력 길이(L)에 기초하여 사전을 사전 필터링할 수 있다. 예를 들어, 단어 서브모듈은 L-X보다 더 짧은 임의의 단어를 필터링하여 제거할 수 있으며, 여기에서, X는 명확화 파라미터를 이용하여 결정된다. 제3 예로서, 단어 서브모듈은 음성 인식 소프트웨어에 의해 생성된 단어 리스트에 사전을 사전 필터링할 수 있다. 제4 예로서, 동적 상황이 사용자가 이름 필드에서 타이핑하고 있다는 것을 나타내는 경우에, 고유 명사만을 포함하도록 사전을 필터링할 수 있다. 물론, 단어 서브모듈은 이러한 필터링 기술의 조합을 이용할 수 있다.
블록(920)에서, 단어 서브모듈은 언어 데이터, 상황, 단어 길이 및/또는 임의의 다른 적합한 인자에 기초하여 서브그룹에서 다음 단어를 선택한다. 예를 들어, 단어 서브모듈은 사용 빈도에 기초하여 서브그룹을 소팅하여 그 순서로 이러한 단어들을 제공할 수 있다.
블록(925)에서, 단어 서브모듈은 입력 시퀀스, 상황, 단어 길이 및 언어 데이터를 이용하여 매치 메트릭을 평가함으로써 선택된 단어에 대한 매칭 점수를 결정한다. 매치 메트릭을 이용하여 매칭 점수를 결정하는 적합한 방법은 도 9b에 도시된다.
판단 블록(930)에서, 단어 서브모듈은 단어가 명확화 파라미터를 이용하여 결정되는 최소 임계값을 초과하는 매칭 점수를 갖는지 판단한다. 그렇다면, 단어는 과정이 블록(940)으로 진행하기 전에 블록(935)에서 단어 선택 리스트에 추가된다. 그렇지 않다면, 과정은 블록(940)으로 바로 진행한다. 단어 서브모듈은 저조하게 매칭하는 단어를 제거하여 고정되거나 최소 크기의 단어 리스트를 제공할 수 있다. 이 대신에, 블록(930)은 단어 서브모듈로부터 제거될 수 있다.
블록(940)에서, 단어 서브모듈은 서브그룹에서 처리할 단어가 더 있는지 판단한다. 있다면, 과정은 블록(920)으로 복귀하여 다른 단어가 평가될 수 있다.
그렇지 않으면, 과정은 단어 선택 리스트가 후처리되는 블록(945)으로 진행한다. 예를 들어, 단어 서브모듈은 매칭 점수에 의해 그리고/또는 가장 높은 매칭 점수를 갖는 하나 이상의 디폴트 단어를 선택함으로써 리스트를 소팅할 수 있다. 다른 예로서, 소팅 후에, 단어 서브모듈은 개선된 사용자의 브라우징 거동을 용이하게 하기 위하여 논리적인 방식으로 단어의 정렬을 그루핑하거나 조정할 수 있다. 예를 들어, 단어 서브모듈은 동일한 어근을 갖는 단어(예를 들어, "interest", "interesting", 및 "interestingly")들을 함께 그루핑하도록 리스트를 재배열하여 사용자가 단어 선택 리스트를 더욱 신속하게 스캔할 수 있게 허용한다. 또 다른 예로서, 예를 들어 리스트 내에서 특정 단어를 승격시키거나 강등시키는 것과 같이 리스트를 조정하기 위하여 그리고/또는 아니면 리스트의 순서를 조정하기 위하여 블록(950)에서 동적 또는 정적 상황 데이터가 사용될 수 있다. 예를 들어, 사용자가 이전에 동일한 애플리케이션 프로그램에서 특정 단어를 활용하였다면, 그 단어가 승격될 수 있다. 다른 예로서, 단어 서브모듈은 문장 부호로 끝나는 단어를 중간에 끼워지는 문장 부호를 갖는 단어 위로 승진시킬 수 있다. 또 다른 예에서, 2 이상의 언어 사전이 단어 리스트를 생성하는데 사용되었거나, 아니면 (예를 들어, 이중 언어 사용자에 부응하기 위하여) 명확화 모듈이 이중 언어 통합을 제공하고 있다면, 후처리는 사용자의 주 언어에서의 단어를 승격시키고 그리고/또는 사용자의 부 언어에서의 단어를 강등시킬 수 있다. 사용자의 "주 언어(prismary language)"는 언어 파라미터 또는 플래그 및/또는 사용자 상황 데이터베이스(626)로부터의 사용자 상황 데이터에 의해 결정될 수 있다.
후처리의 또 다른 예로서, 명확화 모듈은 애플리케이션 전용 필드 정보 및/또는 애플리케이션 상황 데이터베이스로부터 검색된 규칙 또는 문법에 기초하여 특정 단어를 승격 또는 강등시킬 수 있다.
후처리의 다른 예에서, 명확화 모듈은, 사용자가 "podcast"와 같은 신조어 또는 일반적이지 않은 고유 명사와 같은, 표준 사전에서는 목록에 있지 않거나 찾아볼 수 없는 단어를 활용하려고 시도하고 있는지를 판단할 수 있다. 언어에서의 일반적인 캐릭터 시퀀스에 기초하여 사용자가 사전에서 나타나지 않는 "리스트되지 않은(unlisted)" 단어를 입력하려고 시도할 수 있다고 판단하면, 리스트되지 않은 단어를 디폴트 단어로 하고, 단어 선택 리스트를 대체 제안으로서 제공할 수 있을 것이다. 아니면, 사전으로부터 선택된 높은 점수의 단어를 디폴트 단어로서 활용할 수 있다.
예시를 위하여, 사용자가 글자 "podcast"를 활기차게 태핑하면, 캐릭터 시퀀스("po", "ca" 및 "st"의 조합 등)가 영어에서 빈번하게 보이기 때문에, 표준 영어 사전에서 있지 않을 수 있다는 사실에도 불구하고, 명확화 모듈은 "podcast"를 디폴트 단어로서 유지할 수 있다. 한편, 사용자가 "Pfsx"를 활기차게 태핑하면, "pf", "fs" 및 "sx"가 모두 영어에서 드물게 보이기 때문에, 명확화 모듈은 사용자가 철자를 틀렸으며(또는 엉성하게 타이핑하였으며) "pfsx"를 디폴트 단어로서 선택하지 않을 것이다. 대신에, 명확화 모듈은 블록(905 내지 940) 동안 높은 매칭 점수를 갖는 사전의 단어를 선택할 것이다.
이러한 판단을 하기 위하여, 명확화 모듈은 먼저 입력 시퀀스에서 각각의 의도된 특징(예를 들어, 탭)에 대하여 가장 좋은 근접도 점수를 갖는 관련된 캐릭터를 선택함으로써 "스트록 시퀀스(stroke sequence)"를 생성할 수 있다. 다음으로, 명확화 모듈은 구성 점수를 도출하기 위하여 주어진 언어(또는 다른 단어에 대한 논리 그룹)에서 다양한 캐릭터 시퀀스(캐릭터 바이그램(bigram), 3-그램, 4-그램, ... n-그램 등)의 확률 또는 빈도를 제공하는 어휘 모듈(624) 내에서 테이블 또는 데이터베이스를 이용하여 스트록 시퀀스의 구성을 평가할 수 있다. 구성 점수는 바이그램/등의 다양한 확률/빈도의 곱 또는 다양한 확률/빈도에 대한 다른 더 높은 차수의 함수일 수 있다. 구성 점수가 임계값을 초과하면, 명확화 모듈은 스트록 시퀀스를 디폴트 단어로서 이용할 수 있다. 일부 구현예에서, 스트록 시퀀스는 입력 시퀀스의 상이한 서브세트(예를 들어, 코너가 아닌 탭 특징만)를 이용하여 정의될 수 있다.
블록(950)에서 단어 선택 리스트는 예를 들어 디스플레이 상의 단어 선택 리스트 또는 또는 다른 것을 통해 사용자에게 출력된다. 이 대신에 단어 선택 리스트 및/또는 디폴트 단어는 단어를 선택하기 위한 사용자의 간섭을 필요로 하지 않는 다른 과정(예를 들어, 애플리케이션 프로그램)에 제공될 수 있다.
도 9b는 매칭 메트릭을 이용하여 단어에 대한 매칭 점수를 계산하는 하나의 적합한 과정(990)을 도시한다. 임의의 매칭 메트릭 또는 알고리즘이 매칭 점수를 생성하는데 활용될 수 있으며, 개시된 기술은 아래에서 설명되는 특정 예에 한정되지 않는다.
과정(990)은 단어 서브모듈이 단어의 매칭 점수를 1인 단위값일 수 있는 디폴트 점수로 설정하는 블록(972)에서 시작한다. 그 다음, 블록(974)에 도시된 바와 같이, 단어에서의 각 캐릭터에 대하여 루프가 시작한다. 블록(975)에서, 단어 서브모듈은 입력 시퀀스에서 다음 의도 입력 특징 또는 캐릭터 루프의 첫 번째 반복인 경우 입력 시퀀스에서의 첫 번째 의도 입력 특징에 대응하는 캐릭터 세트 및 관련된 근접도 가중치 세트를 검색한다. 예를 들어, 단어 서브모듈은 입력 시퀀스에서 다음 탭 또는 코너 특징과 관련된 캐릭터 세트 및 근접도 가중치를 검색한다.
블록(976)에서, 단어 서브모듈은 캐릭터에 대한 근접도 가중치를 식별한다. 그렇게 하기 위하여, 서브모듈은 캐릭터가 검색된 캐릭터 세트에 나타나는지를 판단하고, 그렇다면, 캐릭터와 관련된 검색된 근접도 가중치를 이용한다. 그렇지 않으면, 캐릭터가 검색된 캐릭터 세트에 나타나지 않는 경우에, 서브모듈은 명확화 모듈에 의해 특정된 디폴트 근접도 가중치(예를 들어, 낮은 가중치)를 사용하거나, 루프(974)를 종료하거나 또는 디폴트 매칭 점수(예를 들어, 0의 점수나 다른 디폴트 매칭 점수)를 되돌려 줌으로써 과정(990)을 종료한다.
블록(978)에서, 단어 서브모듈은 캐릭터에 대하여 식별된 근접도 가중치를 반영하기 위하여 매칭 점수를 조정한다. 일례에서, 서브모듈은 매칭 점수에 검색된 근접도 가중치를 곱하여 매칭 점수를 조정한다. 그러나, 매칭 점수는 검색된 매칭 점수를 반영하는 임의의 방식으로 조정될 수 있다. 예를 들어, 이전의 매칭 점수 및 검색된 근접도 가중치는 간단한 추가, 가중치가 매겨진 덧셈, 곱셈, 나눗셈 및 더 높은 차수의 함수 등을 포함하는 임의의 적합한 함수로 조합될 수 있다.
블록(979)에서, 단어 서브모듈은 단어에서 처리하여야 할 임의의 추가 캐릭터가 있는지 그리고 입력 시퀀스에서 더 많은 의도 특징이 있는지를 시험한다. 양 조건이 만족되면, 블록(975)에서 시작하는 캐릭터 루프가 반복된다. 그렇지 않으면, 과정은 블록(980)으로 진행한다.
블록(980)에서, 단어 서브모듈은 상황 데이터 및/또는 언어 데이터(예를 들어, 사용 빈도)를 반영하기 위하여 매칭 점수를 조정한다. 일 구현예에서, 단어 서브모듈은 사용 빈도에 의해 매칭 점수를 스케일링한다. 다른 예로서, 단어 서브모듈은 상황 데이터에 기초하여 매칭 점수를 증가시킬 수 있으며, 예를 들어 매칭 점수는 사용자가 동일한 종류의 데이터 필드 및/또는 동일한 애플리케이션에서 동일한 단어를 사용한 경우에 증가될 수 있다. 또 다른 예로서, 주변 문장 상황(예를 들어, 사용자에 의해 입력된 이전 단어)가 단어가 더 많이 또는 더 적게 그럴싸하다고 암시하는 경우, 매칭 점수는 위로 또는 아래로 조정될 수 있다. 이러한 예들은 소진적인 것으로 의도되지 않는다. 이전의 매칭 점수는 상황 및/또는 사용 빈도가 단어가 사용자의 의도된 엔트리이었다는 가능성을 증가시키거나 감소시키는 방법을 반영하는 임의의 적합한 방식(예를 들어 더 높은 차수의 함수를 통해)으로 조정될 수 있다.
블록(982)에서, 알려진 편집 거리 기술을 이용하여, 단어 서브모듈은 입력 시퀀스의 의도 특징에 반영된 캐릭터 시퀀스를 매칭하는데 필요한 편집의 종류를 결정한다. 예를 들어, 단어 서브모듈은 의도 특징의 시퀀스에서 반영된 캐릭터 시퀀스를 매칭시킬 수 있도록 어느 캐릭터가 단어에 추가될 필요가 있을 수 있는지 또는 어느 캐릭터가 단어로부터 제거될 필요가 있을 수 있는지를 판단할 수 있다.
필요한 편집(들)의 종류를 결정하는 경우에, 단어 서브모듈은 입력 시퀀스에서 의도 특징에 대하여 단어의 제1 위치를 매칭시키려고만 시도할 수 있다. 예를 들어, 단어 서브모듈은 단어에서 L 번째 캐릭터 후에 발생하는 임의의 불일치를 무시할 수 있고, 여기에서 L은 예측 입력 길이이다. 컷오프 지점은 이 대신에 L-1, L+2, L+3 등으로 선택될 수 있다. 이러한 방식으로, 단어 서브모듈은 사용자의 초기 입력에 대한 양호한 초기 매치를 갖는 더 긴 단어가 되돌려질 기회를 향상시킨다.
블록(984)에서, 필요한 각각의 편집에 대해, 단어 서브모듈은 입력 시퀀스 및 근접도 가중치에 반영된 특징 종류를 포함하여 예측 입력 길이 및 입력 시퀀스에 기초하여 편집 벌점(penalty)를 결정한다. 여기에서 사용된 바와 같이, "낮은 벌점(low penalty)"는 유사한 편집을 위한 표준 편집 비용 함수에 의해 평가된 표준 또는 디폴트 벌점보다 더 낮은 것이다.
제1 예에서, 단어 서브모듈은 단어의 제1 부분 후에 요구되는 캐릭터 변동에 대하여 0 또는 낮은 벌점을 할당할 수 있다. 예를 들어, 단어에서 L 번째 위치 후에 요구되는 캐릭터 변동에 대하여 평가된 벌점이 없거나 낮은 벌점이 있을 수 있다. 이 기술은 사용자의 초기 입력에 대하여 양호한 초기 매칭을 갖는 더 긴 단어가 되돌려질 가능성을 향상시킨다.
제2 예로서, 단어 서브모듈은 의도 특징 및 우연 특징 모두를 포함하는, 전체 입력 시퀀스에 의해 반영된 캐릭터와 관련되는 캐릭터 추가 또는 삭제에 대하여 0 또는 낮은 벌점을 할당할 수 있다. 예를 들어, 단어와 의도 특징의 입력 시퀀스 사이의 유일한 차이가 제3 및 제4 의도 특징 사이에서 "E"를 누락하고 있는 것이라면, "E" 캐릭터가 입력 시퀀스에서의 제3 및 제4 의도 특징 사이에 있는 우연 특징(예를 들어, 세그먼트)와 관련된 캐릭터 세트 내에 나타난다면 단어 서브모듈은 0 또는 낮은 벌점을 할당할 것이다. 일부 구현예에서, 평가된 벌점은 빠진 캐릭터와 관련된 근접도 가중치의 함수일 수 있다. 예시를 위하여, 이전 예로 돌아가면, 빠진 "E"를 제공하는 세그먼트 특징이 E 키의 중심을 직접 통과한다면(즉, E 캐릭터에 대한 근접도 가중치는 그 가능한 최대값에 가깝다), 평가된 벌점은 세그먼트가 E 키로부터 멀리 지나가는 경우보다 더 낮을 수 있다. 이러한 상황에서 편집 벌점을 감소시키거나 없애는 것에 의해, 단어 서브모듈은 사용자가 간단히 글자를 통과하여 트레이싱함으로써 글자에 대한 자신의 선택을 나타낼 수 있게 허용한다.
제3 예로서, 단어 서브모듈은 캐릭터를 반복하거나 또는 키 스트록을 반복함으로써 발생되는 캐릭터 추가 또는 삭제에 대하여 0 또는 낮은 벌점을 할당할 수 있다. 달리 말하여, 단어가 입력 시퀀스와 일치한다면, 하나 이상의 입력 특징이 시퀀스 내에서 (한 번 이상) 반복되었다면, 벌점이 없거나 평가된 벌점이 낮다. 이러한 상황에서 편집 벌점을 감소시키거나 없애는 것에 의해, 단어 서브모듈은 감소된 개수의 입력 특징을 이용하여 반복하는 캐릭터 또는 반복하는 키 스트록을 갖는 단어에 대한 자신의 선택을 나타낼 수 있게 허용한다. 낮은 벌점이 평가된다면, 반복될 필요가 있을 수 있는 입력 특징의 종류(예를 들어, 의도 대 우연), 각 특징이 반복될 필요가 있을 수 있는 횟수 및/또는 반복된 입력 특징과 관련된 근접도 메트릭의 함수일 수 있다. 예시를 위하여, 단어는 "WEED"이고, 단어와 의도 특징의 입력 시퀀스 사이의 유일한 차이는 두 번째 "E"가 제2 및 제3 의도 특징 사이에서 빠져 있다면, 단어 서브모듈은 0 또는 낮은 벌점을 할당할 수 있다.
제4 예로서, 단어 리스트 선택 서브모듈은 문장 부호 및/또는 유사한 부호의 추가 또는 삭제를 반영하는 캐릭터 변동에 대하여 0 또는 낮은 벌점을 할당할 수 있다.
블록(986)에서, 단어 서브모듈은 임의의 계산된 벌점을 반영하기 위하여 매칭 비용을 조정한다. 일부 경우에, 벌점은 매칭 점수로부터 감산될 수 있다. 그러나, 다른 구현예에서, 더 높은 차수의 조정이 활용될 수 있다. 그 다음, 과정(990)은 복귀한다.
IV. 보안 시스템에 대한 애플리케이션
개시된 기술의 다른 양태에 따라, 사용자가 QWERTY 키보드(또는 다른 일반적인 키보드 레이아웃)과의 친숙도에 영향을 주게 하는 패스워드 또는 다른 문자 엔트리 시스템 및 방법이 제공된다.
이 패스워드 또는 다른 문자 입력은, 사용자에게 바람직하게는 9개 또는 다른 적합한 개수의 정의된 구역을 제공함으로써 획득되며, 그 각각은 구역 출력 키 역할을 하는 별개의 키에 의해 고정된다. 사용자가 특정 구역으로부터 하나의 키를 선택할 때, 선택된 구역의 구역 출력 키가 선택된 것으로 고려된다. 따라서, 사용자는 구역 정의에 따라 패스워드를 표준 방식으로 표준 키보드 상에 입력할 수 있고, 입력 패스워드를 나타내는 구역 출력 키의 시퀀스가 출력될 것이다. 입력 패스워드에 대응하는 출력 키의 시퀀스를 생성할 때 수신 장치가 사용된 구역 정의를 알고 있다면, 수신 장치는 적합한 패스워드가 입력되었는지 판단하기 위하여 출력 키의 시퀀스를 해독할 수 있다.
복수의 구역 정의가 사용 가능할 수 있다. 따라서, 구역 정의 식별자 및 구역 출력 키의 시퀀스를 전송함으로써, 복수의 구역 정의 및 그와 관련된 식별자를 알고 있는 수신 장치는 패스워드의 보안을 유지하면서 전송을 적절하게 해석할 수 있다.
또한, 구역 정의는 서로 인접한 키를 반드시 포함할 필요는 없다, 인접하지 않은 구역을 정의함으로써, 사용자는 키 엔트리에 더욱 정확하여야만 하지만, 코드를 깨는 데 있어서 해커 또는 다른 절도범에 대한 난이도가 상당이 증가될 수 있고, 가능성 있는 사용가능한 구역 정의의 개수도 유사하게 상당히 증가된다.
또한, 패스워드 캐릭터의 문자 엔트리를 위하여 표준 키보드 만을 사용하는 대신에, 캐릭터는 조이스틱에서의 방향 입력, (TV 원격 제어, 전화 및 이동 전화에서 볼 수 있는 것과 같은) 4 또는 8 방향 키패드, 이러한 원격 제어 또는 다른 사용 가능한 숫자 키패드의 상의 숫자 키의 다양한 조합, 또는 Nintendo® Wii® 리모트나 지팡이 같은 다른 입력 장치, 몸 움직임 입력 솔루션 등을 이용하여 입력될 수 있다. 이러한 비전통적인 입력 장치를 이용할 때, 사용자는 조이스틱이나 다른 장치를 입력될 원하는 키의 방향으로 이동시킬 수 있다. 이 이동을 수행할 때, 키 사이를 이동하기 보다는, 선택기가 키의 인접한 구역 사이에 이동하고, 이동된 구역 내에 포함된 모든 키가 선택될 것이며, 그 구역과 관련된 구역 출력 키의 윤곽이 추가로 그려질 것이다. 따라서, 키가 선택되도록 원하여지면, 조이스틱 또는 이와 유사한 것이 원하는 키를 포함하는 구역으로 이동하는데 사용될 수 있다. 이러한 구역의 선택에 의해, 관련된 구역 출력 키는 캐릭터의 출력 시퀀스의 일부로서 제공될 수 있다. 예로서, 사용자가 패스워드의 일부로서 글자 "R"을 선택하기 원한다면, 글자 R, T, Y, U 및 I를 포함하고 구역 출력 키로서 Y를 사용하는 구역으로의 이동 및 이러한 구역의 선택은 출력 스트림의 일부로서 글자 "Y"가 출력되게 한다. 특정 구역에서의 임의의 키의 선택이 패스워드 데이터 스트림의 일부로서 출력되는 동일한 구역 출력 키를 제공할 것이란 점에서, 코딩된 패스워드 전송을 제공하는 것에 더하여, 사용자는 다수의 구역 사이에서 선택하는 것만 필요하고, 각 개별 키를 선택하는 것처럼 정확할 필요는 없다.
또한, 개시된 기술은 임의의 키보드 구성과 언어 및 임의의 다른 부호 그루핑에 적용가능하다. 또한, 입력 장치에 할당된 구역은 사용자에게 보여질 필요가 없고, 오히려 백그라운드에서 전송될 데이터를 해석하기 위한 작업만 하면 된다.
도 10을 참조하면, 개시된 기술에 따른 제1 실시예가 도시된다. 도 10에서, 1000으로 대체로 표시된 키보드는 복수의 키(1110)를 제공받는다. 이러한 예시된 실시예에서, 26 글자의 QWERTY 키보드가 도시된다. 다른 배열의 26개의 영어 글자 알파벳, 다른 언어에 사용하기 위한 임의의 다른 캐릭터 세트의 배열, 숫자 및/또는 글자의 임의의 조합, 또는 임의의 종류의 부호에 대한 임의의 다른 원하는 조합을 포함하지만 이에 한정되지 않는 다른 키보드 구성이 사용가능하다는 것이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 이해될 것이다. 또한, 미리 정해진 개수의 이러한 키(1110)는 구역 출력 키(1120)으로서 지정된다. 임의의 원하는 개수가 사용될 수 있지만, 도시된 실시예에서, 9개의 이러한 구역 출력 키가 있다. 각 구역 출력 키(1120)는 관련된 하나 이상의 글자 키를 포함하는 구역과 관련된다. 예로서 도 10에 더 도시되는 바와 같이, 120a로 표시된 "E" 키는 "E" 키를 포함하는 구역에 대한 구역 출력 키를 나타내고, 다른 글자 키 "Q", "W", "R" 및 "T"는 총괄적으로 1110a로 나타낸다. 따라서, 사용자가 이 구역(1110a 또는 1120a) 내의 5개의 키 중 임의의 하나를 선택하는데 관심을 갖는 어떤 때에도, 구역 출력 키 "E"가 선택된 패스워드 또는 다른 문자를 나타내는 출력 데이터 스트림의 일부를 포함하기 위한 선택된 출력 키가 될 것이다. 각 구역 출력 키가 미리 정의된 고유 키 세트(1110)와 관련될 수 있다는 것이 기대되지만, 중첩하는 구역을 가지면서 하나 이상의 구역에서 하나 이상의 키(1110)를 포함하는 것이 사실상 가능하다.
또한, 이 경우에는 글자인 사용가능한 부호 키의 모두가 적어도 하나의 구역 내에 포함되는 것이 고려되지만, 그럴 필요는 없다. 사실, 임의의 특정 키 또는 키들은 혼자 남겨질 수 있어, 직접적인 사용자 선택을 필요로 한다. 이러한 구성은 특수한 의미를 갖는 드물게 사용되는 키 또는 키들에 대하여 바람직할 수 있다.
도 10을 참조하는 본 설명으로부터 이해될 수 있는 바와 같이, 키 엔트리를 선택할 때 사용자가 정확할 필요가 없기 때문에 사용자 경험이 덜어지며, 더 많은 전통적인 26개 글자가 아니라 특별히 예시된 본 실시예에서 선택할 9개의 구역만을 가진다. 도 10에 도시된 바와 같은 특정 실시예에서, 사용자 인터페이스는 8개의 방향 이동과 하나의 중심 홈(home) 위치를 갖는 조이스틱을 활용할 수 있으며, 각각의 사용가능한 위치는 구역 출력에 대응한다. 이 대신에, 9개의 숫자 키패드를 갖는 원격 제어 또는 다른 장치가 채용될 수 있으며, 각각의 숫자는 구역 출력 키 중 하나에 대응한다. 물론, 더 적은 방향 이동을 갖는 조이스틱, 더 높거나, 같거나 또는 더 낮은 자유도를 갖는 트랙볼을 포함하는 다른 구성이 채용될 수 있어, 이에 따라 사용자가 구역 사이에서 방향성을 가지면서 이동할 수 있게 한다. 더 적은 하드웨어와 학습을 필요로 하지만, 이러한 구성은, 이동이 인접한 구역 사이를 점프하는 것으로 한정될 수 있기 때문에, 입력 키보드 상에서 한 구역에서 원격에 위치된 다른 구역으로 이동할 때 2 이상의 점프를 필요로 할 수 있다. 이 대신에, 각 글자 엔트리 후에 커서 또는 다른 포인터가 "홈(home)" 또는 다른 지정된 구역이나 위치로 복귀하는 시나리오를 제공하는 것이 가능하다. 이러한 특징은 이점과 단점을 가지며, 각 문자 엔트리에 대한 알려진 시작점을 제공하지만 이중 글자 등에 대하여 여러 번의 이동을 필요로 한다.
앞서 언급한 바와 같이, 8개 방향의 조이스틱을 채용할 때, 사용자는 조이스틱의 이동을 통해 구역 사이에 이동할 수 있다. 2 이상의 스킴이 가능하다. 제1 스킴에서, 컨트롤러의 유효한 이동은 상, 하, 좌, 우, 상-우, 상-좌, 하-우 및 하-좌일 수 있다. 이러한 8개의 개별 이동은 사용자가 키보드 상의 구역 출력 키 사이에서 신속하게 이동할 수 있게 하여, 구역에서 구역으로 이동하게 한다. 더 적은 다용도의 4 방향 조이스틱을 이용하는 유사한 스킴이 채용될 수 있다. 사용가능한 대각 방향의 이동이 없지만, 더 많은 점프가 한 구역에서 다른 구역으로 이동하는데 필수적일 수 있다. 제2 스킴에서, 8개 방향 키의 각각과 중앙의 "중립(neutral)" 위치가 각각 구역에 대응할 수 있어, 사용자가 한 구역으로 부터 다른 구역으로 돌아다닐 필요 없이 각 구역을 직접 액세스할 수 있게 한다. 이 대신에, 예를 들어, 9개 키의 숫자 패드가 제공될 때, 각 숫자는 특정 구역에 대응할 수 있다.
가장 일반적인 선택 사항이 이러한 키들이 대응하는 위치에 기초하여 다양한 구역에 할당될 수 있는 것이지만, 개시된 기술의 다른 실시예에서, 사용자가 다수의 구역 중 하나를 간단히 선택하는 것이 아니라 패스워드 키를 실제로 입력하고 있다면, 구역 위치가 사용자의 경험에 영향을 미치지 않을 것이기 때문에, 임의의 인접하거나 인접하지 않은 방식으로 구역을 구성하는 것이 가능하지만, 사용 가능한 다중 구역 구성은 입력 패스워드의 보안을 보호하는데 도움을 줄 것이다. 이러한 엔트리 상황에서, 구역이 사용자에게 보이는 것은 반드시 필요하지 않다. 오히려, 사용자는 키보드 상에서 보통과 같이 패스워드를 입력하도록 재촉될 수 있다. 백그라운드 과정은 구역 정의(후술됨)를 할당하여 전송으로의 데이터 출력 스트림을 마련할 수 있다.
다음으로 도 11을 참조하여, 개시된 기술의 일 실시예에 따라 사용된 단계들이 설명될 것이다. 먼저 단계(1210)에서, 구역 정의가 결정되어야 한다. 따라서, 키보드의 키는 미리 정해진 개수의 구역에 할당된다. 이러한 구역들은 인접하거나 인접하지 않을 수 있다. 다른 가능한 구역 구성의 예가 도 10에 더하여 도 15(구역(1610a 내지 1610d) 참조) 및 도 16에서 볼 수 있다. 예를 들어 도 15에 도시된 바와 같은 4개의 구역의 사용은 4개의 구역 사이의 선택만을 필요로 할 것이기 때문에 사용자의 더 용이한 입력 경험을 제공할 것이다. 그러나, 시스템은 이러한 상황에서 더 긴 패스워드가 사용되는 것을 필요로 할 수 있어, 상이한 패스워드가 상이한 시퀀스의 구역 출력 키를 생성할 가능성이 더 높을 수 있다. 개시된 기술에 따라, 복수의 이러한 구역 구성이 정의될 수 있으며, 따라서 장치는 단계(1210)에서 미리 정의된 구역 레이아웃 정의 중 하나로부터 선택할 수 있다.
구역 정의가 선택되었다면, 사용자는 패스워드를 포함하는 캐릭터를 입력하기 시작할 수 있다. 이러한 입력 캐릭터는 단계(1215)에서 수신된다. 단계(1220)에서, 사용자에 의해 선택된 키를 포함하는 구역과 관련된 구역 출력 키가 입력 캐릭터와 관련된 출력 캐릭터로서 정의된다. 그 다음, 이 출력 캐릭터는 전송될 궁극적인 출력 데이터 스트림으로 제1 캐릭터로서 제공된다. 이어서, 과정은 모든 입력 캐릭터가 수신되었는지가 질의되는 단계(1225)로 진행한다. 이 질의가 부정으로 응답되어, 이에 따라 모든 원하는 입력 캐릭터가 수신된 것이 아니라고 판단되면, 제어는 단계(1215)로 복귀하고, 다음 입력 캐릭터가 수신된다.
그러나, 단계(1225)가 긍정으로 응답되어, 이에 따라 모든 원하는 입력 캐릭터가 수신된 것으로 판단되면, 제어는 활용된 구역 정의 및 입력 패스워드를 나타내는 생성된 출력 데이터 스트림이 수신 장치로 전송되는 단계(1230)로 진행한다. 그 다음, 과정은 단계(1235)에서 종료한다. 본 실시예가 출력 데이터 스트림과 함께 구역 레이아웃 정의를 전송하는 것을 설명하였지만, 이러한 구역 레이아웃 정의는 개별적으로 전송될 수 있다. 이러한 구역 레이아웃 정의는 바람직하게는 구역들의 완전한 리스팅을 포함하지 않고 대신에 구역 정의 표시자를 포함하는 것으로 고려되어, 이에 따라 수신 장치가 복수의 미리 정의진 구역 레이아웃 정의 중 하나로부터 선택할 수 있게 한다. 이러한 방법으로, 그 외의 이러한 의미없는 표시자만이 전송되어, 구역 레이아웃을 제공하지 않고 시스템의 보안을 증가시킨다. 또한, 구역 정의가 전송되지 않고, 전송 장치 및 수신 장치가 동기화되어 미리 결정된 방식으로 미리 정해진 개수의 구역 레이아웃 정의를 통해 단순히 순환하는 것이 가능하다. 또한, 전송 장치 및 수신 장치 모두가 동일한 알고리즘을 처리할 수 있어 패스워드의 생성 및 해석 모두에 대하여 동일한 구역 레이아웃 정의를 활용하는 한, 식, 알고리즘 또는 이와 유사한 것을 입력하도록 임의의 다른 표시자 또는 이와 유사한 것을 사용하여 복수의 구역 레이아웃 정의로부터 선택할 수 있다.
다음으로 도 12를 참조하면, 수신 장치는 먼저 전송된 구역 레이아웃 정의를 수신한다(또는 채용할 정확한 구역 레이아웃 정의를 결정하기 위하여 앞에서 언급된 방법들 중 하나를 이용한다). 그 다음, 과정은 수신 장치가 입력 패스워드를 나타내는 출력 데이터 스트림을 포함하는 전송된 데이터 스트림의 첫 번째 캐릭터를 수신하는 단계(1315)로 진행한다. 그 다음, 이 수신된 캐릭터는 예상 패스워드 캐릭터를 포함하는 구역의 구역 출력 키에 비교된다. 단계(1325)에서, 이러한 캐릭터가 매치하지 않는다고 판단되면, 과정은 단계(1340)에서 종료한다. 이러한 캐릭터가 매치한다고 판단되면, 과정은 모든 패스워드 캐릭터가 수신되었는지 판단되는 단계(1330)로 진행한다. 모든 패스워드 캐릭터가 수신되지 않았다면, 과정은 다음 패스워드 캐릭터를 수신하도록 단계(1315)로 다시 돌아간다.
단계(1330)에서 모든 패스워드 캐릭터가 수신되었다고 판단되면, 과정은 시스템이 유효한 패스워드가 입력되었다고 인식하여 사용자가 통지받는 단계(1335)로 진행한다. 그 다음, 과정은 단계(1340)에서 종료한다. 따라서, 도 11 및 12에 도시된 차트에 따라, 전송 장치 및 수신 장치의 시스템은 각각 실제 패스워드 캐릭터를 실제로 전송하지 않고 하나에서 다른 하나로의 사용자 패스워드를 확인할 수 있어, 이에 따라 패스워드의 보안을 유지한다.
개시된 기술의 다른 실시예에서, 사용자에 의한 2번의 패스워드 엔트리에 따라, 시스템이 수신단에서 선택된 키의 특정 통지를 허용하는 2개의 상이한 구역 정의에 대한 구역 표시자를, 키 자체라 하더라도, 전송하는 방식으로 키보드를 분할하는 2개의 연속적인 구역 정의를 제공하는 것이 가능할 수 있다. 예를 들어, 글자 "A"가 먼저 구역 1과 관련되고, 그 다음 제2 구역 정의에서 이제 구역 4와 관련된 이전의 구역 1에서의 글자라면, 2개의 연속하는 패스워드 엔트리에서의 첫 번째 글자에 대한 Z1, Z4의 시퀀스는, 이 글자가 전혀 전송되지 않았더라도, 글자 "A"에 대한 보증된 결정을 제공할 것이다. 따라서, 이 패스워드 스킴의 여러 번의 반복에 대한 사용자를 통해, 추가의 정밀성이 획득될 수 있다.
종래의 9개 키의 키패드를 채용하는 개시된 기술의 일 실시예가 도 13에 도시된다. 도 13에 도시된 바와 같이, 도 10에 도시된 디스플레이에 유사하게, 관련된 키(110a) 뿐만 아니라. 구역 출력 키(1120, 1120a)가 도시된다. 또한, 구역 출력 키(1120, 1120a) 중 하나에 그 각 키(1415)를 매핑한 것을 나타내는 전통적인 원격 제어, 전화기 또는 이와 유사한 것에 포함될 수 있는 것과 같은 키 구성(1410)이 도시된다. 이러한 매핑은 연결 리드선(1420), 색상, 형상 또는 임의의 다른 원하는 관계 표시장에 의해 표시될 수 있다. 따라서, 다수의 구역이 정의되면, 사용자는 패스워드에서 원하는 캐릭터의 각각을 포함하는 구역과 관련된 숫자 키를 선택함으로써 이러한 키보드를 이용하여 패스워드를 입력할 수 있다.
개시된 기술의 추가 실시예에서, 구역 선택을 나타내기 위하여 전술한 바와 같은 원격 장치 상에서 표시를 하는 것보다는, 예를 들어, NINTENDO® Wii® 컨트롤러, 사용자 입력을 결정하기 위한 몸 움직임 감지 또는 이와 유사한 것을 이용하는 원격 제어와 같은 지시 장치를 채용하는 것이 가능하다. 따라서, 사용자가 디스플레이된 가상 키보드에서 이러한 컨트롤러를 가리키거나 아니면 구역 선택을 나타냄에 따라, 컨터롤러에 의해 가리켜진 구역이 강조되거나 아니면 지정된 것으로 표시된다. 사용자는 리모트 상의 표시자를 누르는 것에 의해 또는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공지된 다른 방법에 의해 이러한 구역을 선택할 수 있다. 개시된 기술에 따른 구역의 사용은 각 개별 키를 선택하는 능력이 이러한 구성에서 어려울 수 있다는 점에서 이러한 상황에 특히 유용하다. 정확성은 어려울 수 있다. 그러나, 본 개시 기술에 따라, 사용자는 예를 들어 9개의 구역 중 하나 사이에서 선택만 할 필요가 있으며, 이에 따라 선택하기 위한 능력을 사용자에 대하여 더 용이하게 만든다. 따라서, 사용자는 훨씬 더 빠르고 더 용이한 방법으로 캐릭터 선택을 통해 이동할 수 있을 것이다.
도 14a 및 14b에 도시된 바와 같이, 이러한 포인터 장치를 활용하는 것은 원하는 구역의 용이한 선택을 허용한다. 도 14a는 도 10에서 선택된 것과 같은 구역(1510) 선택을 도시한다. 도 14b에서, 이전에 선택된 구역의 오른쪽에 있는 2개의 구역인 구역(1520)이 지정되어 선택된다. 사용자는 포인팅 장치를 단순히 다시 향하게 함으로써 이러한 지정 및 선택을 할 수 있다. 바람직하게는, 표시자(530)는 디스플레이 상에 남아서, 포인팅 장치의 현재 위치의 위치를 찾는데 도움을 준다.
하나의 디스플레이된 구역에서 다른 구역으로 이동하는 원격 포인팅 장치의 시각적 표시를 제공하는 것에 더하여, 개시된 기술의 다른 실시예에서, 촉각 또는 다른 촉감 응답이 이동 및 선택의 추가적인 비시각적 표시를 제공하도록 사용자에게 제공된다. 따라서, 사용자가 포인팅 장치를 이동시켜 제2 구역을 지정함에 따라, 진동 또는 다른 비음성적 표시자가 사용자에게 제공될 수 있다. 따라서, 도 14a 및 14b 사이의 이동에서와 같이, 사용자가 2개의 구역에서 포인터를 이동하면, 구역 사이의 경계가 지나쳐 질 때, 이러한 촉감 응답이 사용자에게 2번 제공될 수 있다. 또한, 이러한 촉감 응답은 변경될 수 있으며, 따라서, 상이한 구역에 대하여 다른 응답을 제공할 수 있다. 따라서, 각 구역은 상이한 촉각 서명을 가질 수 있거나, 또는 다음 선택에서 가장 가능성 높은 선택 구역이 되도록 파싱 알고리즘에 의해 결정된 구역이 다른 구역과 상이한 촉감 표시자를 제공받을 수 있다. 구역은 이러한 촉감 표시자를 포함하는 임의의 다른 방식으로 차별화될 수 있다.
도 10을 다시 참조하면, 특정 구역 내의 캐릭터가 사용자 인터페이스 상에서 선택될 때, 오른쪽 및 왼쪽 및/또는 위쪽 및 아래쪽으로의 미리 정해진 개수의 인접한 키가 선택된 키와 함께 강조되고, 따라서 구역 출력 키와 관련된 구역을 포함한다. 이 강조는 사용자가 선택된 구역을 알게 한다. 바람직하게는, 지정된 구역과 관련된 구역 출력 키는 출력 데이터 스트림의 일부가 될 키로서 더 묘사된다. 전술한 바와 같이, 구역이 사용자에게 디스플레이되지 않는다면, 전술한 바와 같이, 백그라운드에서 구역 출력 키가 입력 구역에 기초하여 출력되고 있다고 하더라도, 특정 키의 선택은 디스플레이 상에서 어떠한 변경도 제공하지 않을 것이다.
전술한 바와 같이, 디스플레이된 가상 키보드는 풀 QWERTY 키보드를 나타내지만, 임의의 다른 원하는 구성을 포함할 수 있다. 구역 출력 키는 바람직하게는 키보드 상에서 상이한 색상으로 강조되거나 일부 다른 구별 특징을 이용하여 지정될 수 있다. 입력 장치가 특정 구역 출력 키에 대응하는 구역으로 가는데 사용될 때, 그 구역 내의 다른 캐릭터는 바람직하게는 특정 구역의 선택으로 그루핑되는 글자 세트 상에 사용자 시각 피드백을 제공하도록 역시 강조될 수 있다.
개시된 기술이 패스워드의 전송에 관련되어 설명되었지만, 개시된 기술의 특징은 더 길게 암호화된 데이터 전송에 적용될 수 있다.
결론
본문이 명백하게 달리 요구하지 않는다면, 발명을 실시하기 위한 구체적인 내용 및 특허청구범위 전체를 통해, "포함한다", "포함하는" 등과 같은 단어는, 배타적 또는 소진적 의미에 대하여 반대되는 포함적 의미, 즉 "포함하지만 이에 한정되지 않는(including, but not limited to)"다는 것으로 간주되어야 한다. 여기에서 사용된 바와 같이, "연결된", "결합된" 또는 임의의 그 변형은 2 이상의 요소 사이에서 직접적이거나 간접적인 임의의 연결 또는 결합을 의미한다; 요소 사이의 연결 또는 결합은 물리적, 지역적 또는 그 조합일 수 있다. 또한, "여기에서", "상기", "하기", "아래에서"와 같은 단어 및 유사한 의미의 단어는, 본 명세서에서 사용될 때, 전체로서의 본 출원을 지칭하며, 그리고 본 출원의 특정 부분을 지칭하지는 않는다. 또한, 본문이 허용하는 한, 단수 또는 복수를 사용하는 상술한 발명을 실시하기 위한 구체적인 내용에서의 단어는 각각 복수 또는 단수를 포함할 수 있다. 2 이상의 항목의 리스트에 관한 "또는"이라는 단어는 단어에 대한 다음의 해석의 모두를 포함한다: 리스트에 있는 항목 중 어느 하나, 리스트에서의 모든 항목, 및 리스트에 있는 항목의 임의의 조합.
본 발명의 상술한 발명을 실시하기 위한 구체적인 내용은 소진적이거나 또는 상기 개시된 자세한 형태에 대한 교시 내용을 한정하려고 의도되지 않는다. 본 발명의 특정 실시예 및 본 발명에 대한 예가 예시적인 목적으로 설명되지만, 관련 기술 분야에서 통상의 지식을 가진 자가 인식하는 바와 같이, 다양한 균등한 변형이 개시된 발명의 범위 내에서 가능하다. 예를 들어, 과정 또는 블록이 주어진 순서로 제시되지만, 다른 구현예는 다른 순서로 수행되는 단계들을 갖는 루틴을 수행하거나 또는 다른 순서로 블록을 갖는 시스템을 이용할 수 있고, 일부 과정 또는 블록은 삭제되고, 이동되고, 추가되고, 세분화되고, 결합되고, 그리고/또는 수정되어 대체물 또는 서브 컴비네이션을 제공할 수 있다. 또한, 과정 또는 블록은 가끔 직렬로 수행되는 것으로 나타내어지지만, 이러한 과정 또는 블록은 그 대신에 병렬로 수행되거나 또는 상이한 시간에 수행될 수 있다. 또한, 여기에서 표시된 임의의 특정 숫자는 단지 예이다: 다른 구현예는 상이한 값 또는 범위를 채용할 수 있다.
여기에서 제공된 개시된 기술의 교시는 반드시 상술한 시스템에 적용되는 것이 아니라 다른 시스템에 적용될 수 있다. 상술된 다양한 실시예의 요소 및 동작은 결합되어 개시된 기술의 다른 구현예를 제공할 수 있다. 개시된 기술에 대한 일부 다른 구현예는 전술한 구현예에 대한 추가 요소를 포함할 수 있을 뿐만 아니라 더 적은 요소를 포함할 수 있다.
첨부된 출원 서류에 리스트될 수 있는 임의의 것을 포함하는, 앞에서 언급된 임의의 특허, 출원 및 다른 참조 문헌은, 참조로서 본 명세서에 편입된다. 본 발명의 양태는, 필요하다면, 이러한 참조 문헌에 포함된 시스템, 기능 및 개념을 채용하도록 변형되어 개시된 기술의 다른 구현예를 제공할 수 있다.
이러한 그리고 다른 변경이 상술한 발명을 실시하기 위한 구체적인 내용의 견지에서 본 발명에 대하여 이루어질 수 있다. 전술한 설명이 본 발명의 소정의 실시예를 설명하고 고려되는 최선의 형태를 설명하지만, 상술한 것이 본문에서 어떻게 상세되었는지에 관계없이, 교시는 다양한 방법으로 실시될 수 있다. 시스템의 상세는 그 구현예의 상세에서 상당히 변경될 수 있으며, 이는 여기에서 개시된 내용에 의해 여전히 포함된다. 전술한 바와 같이, 본 발명의 소정의 특징 또는 양태를 설명할 때 사용된 특정 용어는 그 용어가 관련된 본 개시 내용의 임의의 구체적인 특성, 특징 또는 양태로 제한하기 위하여 여기에서 재정의되고 있는 것을 의미하는 것으로 받아들여져서는 안 된다. 일반적으로, 다음의 특허청구범위에 사용된 용어는, 상술한 발명을 실시하기 위한 구체적인 내용이 이러한 용어를 명시적으로 정의하지 않는 한, 본 명세서에 개시된 특정 실시예로 본 발명을 한정하는 것으로 간주되어서는 안 된다.

Claims (50)

  1. 전체 단어보다 적게 표현하는 적어도 제1 입력 선택 및 제2 입력 선택을 나타내는 사용자의 마이크로 제스처를 포함하는 제1 사용자 입력을 수신하는 단계;
    상기 제1 사용자 입력에 기초하여 하나 이상의 가능 단어 제안을 결정하는 단계; 및
    상기 가능 단어 제안을 상기 사용자에게 제공하는 단계
    를 포함하는,
    데이터 입력 방법.
  2. 제1항에 있어서,
    상기 제1 입력 선택으로부터 상기 제2 입력 선택으로의 제스처에서 굽음(bend)이 있는지 판단하는 단계를 더 포함하는,
    데이터 입력 방법.
  3. 제2항에 있어서,
    상기 제스처에서 굽음이 있다고 판단한 경우, 중간 입력 선택이 상기 사용자에 의해 의도된다고 판단하는 단계를 더 포함하는,
    데이터 입력 방법.
  4. 제1항에 있어서,
    상기 제1 입력 선택으로부터의 사용자 입력의 이동 방향을 결정하는 단계를 더 포함하는,
    데이터 입력 방법.
  5. 제4항에 있어서,
    결정된 상기 사용자의 이동 방향에 적어도 부분적으로 기초하여 상기 사용자에 의해 중간 입력 선택이 의도된다고 판단하는 단계를 더 포함하는,
    데이터 입력 방법.
  6. 제1항에 있어서,
    상기 제1 사용자 입력은 이동 장치의 터치 스크린 키보드 상에서 공급되는,
    데이터 입력 방법.
  7. 제1항에 있어서,
    상기 제1 사용자 입력은 컴퓨팅 장치의 터치 스크린 키보드 상에서 공급되는,
    데이터 입력 방법.
  8. 제1항에 있어서,
    상기 제1 사용자 입력은 텔레비전의 셋톱 박스에 공급되고, 상기 제1 사용자 입력은 원격 제어 포인터를 이용하여 이루어지는,
    데이터 입력 방법.
  9. 전체 단어보다 적게 표현하는 적어도 제1 입력 선택과 제2 입력 선택을 나타내는 사용자의 마이크로 제스처를 포함하는 제1 사용자 입력을 공급받는 단계;
    상기 제1 사용자 입력에 기초하여 하나 이상의 가능 단어 제안을 결정하는 단계;
    상기 가능 단어 제안을 상기 사용자에게 제공하는 단계;
    적어도 제3 입력 선택 및 제4 입력 선택을 나타내는 사용자의 마이크로 제스처를 포함하는 제2 사용자 입력을 공급받는 단계;
    상기 제1 사용자 입력 및 상기 제2 사용자 입력에 기초하여 하나 이상의 가능 단어 제안을 결정하는 단계; 및
    상기 가능 단어 제안을 상기 사용자에게 제공하는 단계
    를 포함하는,
    데이터 입력 방법.
  10. 프로그래밍된 명령어를 저장하는 메모리; 및
    상기 명령어를 실행하여 데이터 입력 방법을 수행하도록 구성된 프로세서 전자 장치
    를 포함하고,
    상기 데이터 입력 방법은,
    전체 단어보다 적게 표현하는 적어도 제1 입력 선택 및 제2 입력 선택을 나타내는 사용자의 마이크로 제스처를 포함하는 제1 사용자 입력을 수신하는 단계;
    상기 제1 사용자 입력에 기초하여 하나 이상의 가능 단어 제안을 판단하는 단계; 및
    상기 가능 단어 제안을 상기 사용자에게 제공하는 단계
    를 포함하는,
    컴퓨터 시스템.
  11. 원격 위치 컴퓨팅 장치에서의 데이터 입력 방법에 있어서,
    각각 하나 이상의 키를 포함하는 복수의 구역으로 상기 원격 위치 컴퓨팅 장치의 입력 선택 장치를 분할하는 단계;
    순차적으로 선택된 구역에 대한 사용자 표시 시퀀스를 공급받는 단계;
    상기 선택된 구역의 각각과 관련된 하나 이상의 키의 모두가 선택된 것으로 간주하는 단계;
    상기 순차적으로 선택된 하나 이상의 키의 시퀀스를 원격 데이터베이스 저장 위치로 전송하는 단계;
    상기 순차적으로 선택된 하나 이상의 시퀀스를 선택된 키의 시퀀스와 관련되어 입력된 의도된 사용자 단어 또는 단어들을 결정하는 알고리즘으로 입력하는 단계;
    결정된 상기 의도된 사용자 단어 또는 단어들을 상기 원격 위치 컴퓨팅 장치로 전송하는 단계; 및
    결정된 상기 의도된 사용자 단어 또는 단어들 중의 하나의 선택에 대한 사용자 표시를 공급받는 단계
    를 포함하는,
    데이터 입력 방법.
  12. 제11항에 있어서,
    의도된 사용자 단어 또는 단어들을 결정하는 상기 알고리즘에 따라 상기 원격 위치 컴퓨팅 장치의 하나 이상의 특성을 고려하는 단계를 더 포함하는,
    데이터 입력 방법.
  13. 제12항에 있어서,
    상기 하나 이상의 특성은 상기 원격 위치 컴퓨팅 장치를 사용하는 사용자의 신원을 포함하는,
    데이터 입력 방법.
  14. 제12항에 있어서,
    상기 하나 이상의 특성은 상기 원격 위치 컴퓨팅 장치의 사용자에 따른 과거의 문자 엔트리 선택을 포함하는,
    데이터 입력 방법.
  15. 제14항에 있어서,
    상기 알고리즘에 따라 더 최근에 이루어진 문자 엔트리 선택은 더 이전에 이루어진 문자 엔트리 선택보다 더 큰 가중치가 부여되는,
    데이터 입력 방법.
  16. 제12항에 있어서,
    상기 하나 이상의 특성은 상기 원격 위치 컴퓨팅 장치의 사용자가 관련된 그룹을 포함하는,
    데이터 입력 방법.
  17. 제16항에 있어서,
    상기 하나 이상의 특성은 상기 그룹에 따른 과거에서의 문자 엔트리 선택의 표시를 제공하는,
    데이터 입력 방법.
  18. 제14항에 있어서,
    상기 알고리즘에 따라 더 최근에 그리고 더 빈번하게 이루어진 상기 문자 엔트리 선택은 더 이전에 그리고 덜 빈번하게 이루어진 문자 엔트리 선택보다 더 큰 가중치가 부여되는,
    데이터 입력 방법.
  19. 프로그래밍된 명령어를 저장하는 메모리; 및
    상기 프로그래밍된 명령어를 실행하여 원격 위치 컴퓨팅 장치에서 데이터 입력 방법을 수행하도록 구성된 프로세서 전자 장치
    를 포함하고,
    상기 데이터 입력 방법은,
    각각 하나 이상의 키를 포함하는 복수의 구역으로 상기 원격 위치 컴퓨팅 장치의 입력 선택 장치를 분할하는 단계;
    순차적으로 선택된 구역에 대한 사용자 표시 시퀀스를 공급받는 단계;
    상기 선택된 구역의 각각과 관련된 하나 이상의 키의 모두가 선택된 것으로 간주하는 단계;
    상기 순차적으로 선택된 하나 이상의 키의 시퀀스를 원격 데이터베이스 저장 위치로 전송하는 단계;
    상기 순차적으로 선택된 하나 이상의 시퀀스를 선택된 키의 시퀀스와 관련되어 입력된 의도된 사용자 단어 또는 단어들을 결정하는 알고리즘으로 입력하는 단계;
    결정된 상기 의도된 사용자 단어 또는 단어들을 상기 원격 위치 컴퓨팅 장치로 전송하는 단계; 및
    결정된 상기 의도된 사용자 단어 또는 단어들 중의 하나의 선택에 대한 사용자 표시를 공급받는 단계
    를 포함하는,
    컴퓨터 시스템.
  20. 각각 적어도 하나의 구역 출력 키에 대응하는 2 이상의 입력 키를 포함하는 복수의 구역으로 입력 선택 장치를 분할하는 단계;
    상기 복수의 구역 중 하나에서의 키의 선택과 각각 관련된 복수의 입력을 공급받는 단계; 및
    공급받은 상기 복수의 입력의 각각에 대응하는 복수의 구역 출력 키를 출력하는 단계
    를 포함하는,
    데이터 전송 방법.
  21. 제20항에 있어서,
    상기 복수의 입력 캐릭터는 패스워드를 포함하는,
    데이터 전송 방법.
  22. 제20항에 있어서,
    상기 복수의 구역의 구성은 구역 정의를 포함하는,
    데이터 전송 방법.
  23. 제20항에 있어서,
    상기 구역 정의는 상기 구역 출력 키와 함께 출력되는,
    데이터 전송 방법.
  24. 복수의 구역 레이아웃 정의를 정의하는 단계로서, 각 구역 레이아웃 정의는 구역 정의 식별자에 의해 식별되고, 각 구역 정의는 입력 선택 장치를 복수의 구역으로 분할하고, 각 구역은 관련된 하나의 출력 키를 포함하는 단계;
    상기 구역 레이아웃 정의 중 하나를 선택하는 단계;
    각각이 선택된 상기 구역 레이아웃 정의에 의해 정의되는 상기 복수의 구역 중 적어도 하나와 관련되는 복수의 입력 캐릭터를 수신하는 단계; 및
    선택된 상기 구역 레이아웃 정의에 따라 정의됨에 따라 상기 복수의 입력 캐릭터의 각각과 관련된 각 구역에 포함된 구역 출력 키를 포함하는 구역 출력 키 시퀀스를 출력하는 단계
    를 포함하는,
    데이터 전송 방법.
  25. 제24항에 있어서,
    선택된 상기 구역 레이아웃 정의에 대하여 상기 구역 정의 식별자를 출력하는 단계를 더 포함하는,
    데이터 전송 방법.
  26. 제25항에 있어서,
    상기 구역 정의 식별자 및 구역 출력 키 시퀀스를 수신 장치로 전송하는 단계를 더 포함하는,
    데이터 전송 방법.
  27. 제26항에 있어서,
    상기 수신 장치에서, 전송된 상기 구역 정의 식별자 및 구역 출력 키 시퀀스를 수신하는 단계;
    전송된 상기 구역 정의 식별자와 관련된 복수의 구역 레이아웃 정의 중에서 미리 정해진 하나에 대하여 미리 정의된 캐릭터 리스트를 적용하여 전송된 상기 구역 출력 키 시퀀스와 관련된 예측된 구역 출력 키 시퀀스를 결정하는 단계; 및
    전송된 상기 구역 출력 키 시퀀스를 예측된 상기 구역 출력 키 시퀀스와 비교하여 그 사이의 매치를 판단하는 단계
    를 포함하는,
    데이터 전송 방법.
  28. 제27항에 있어서,
    전송된 상기 구역 출력 키 시퀀스가 예측된 상기 구역 출력 키 시퀀스와 일치하면, 패스워드가 수락되는,
    데이터 전송 방법.
  29. 복수의 구역 레이아웃 정의를 정의하는 단계로서, 각 구역 레이아웃 정의는 입력 선택 장치를 복수의 구역으로 분할하고, 각 구역은 관련된 하나의 출력 키를 포함하는 단계;
    미리 정해진 선택 방법에 따라 상기 구역 레이아웃 정의 중 하나를 선택하는 단계;
    각각이 선택된 상기 구역 레이아웃 정의에 의해 정의되는 상기 복수의 구역 중 적어도 하나와 관련되는 복수의 입력 캐릭터를 수신하는 단계;
    선택된 상기 구역 레이아웃 정의에 따라 정의됨에 따라 상기 복수의 입력 캐릭터의 각각과 관련된 각 구역에 포함된 구역 출력 키를 포함하는 구역 출력 키 시퀀스를 수신 장치로 출력하는 단계;
    상기 수신 장치에서 상기 구역 출력 키의 출력 시퀀스를 수신하는 단계;
    상기 미리 정해진 선택 방법에 따라 상기 구역 레이아웃 정의 중 하나를 선택하는 단계;
    선택된 상기 구역 레이아웃 정의에 대하여 미리 정의된 캐릭터 시퀀스를 적용하여 상기 구역 출력 키의 출력 시퀀스와 관련된 예측된 구역 출력 키 시퀀스를 결정하는 단계; 및
    상기 구역 출력 키의 출력 시퀀스를 예측된 상기 구역 출력 키 시퀀스와 비교하여 그 사이의 매치를 판단하는 단계
    를 포함하는,
    데이터 전송 방법.
  30. 제29항에 있어서,
    상기 구역 레이아웃 정의는 미리 정해진 개수의 구역 정의를 통해 순차적으로 나열함으로써 선택되는,
    데이터 전송 방법.
  31. 제29항에 있어서,
    상기 구역 레이아웃 정의는 미리 정해진 알고리즘을 하나 이상의 미리 정해진 계수에 적용함으로써 선택되는,
    데이터 전송 방법.
  32. 제29항에 있어서,
    구역 레이아웃 정의에서의 각 구역은 인접한 키 그룹을 포함하는,
    데이터 전송 방법.
  33. 제29항에 있어서,
    구역 레이아웃 정의에서의 적어도 하나의 구역은 비연속적인 키들을 포함하는,
    데이터 전송 방법.
  34. 제29항에 있어서,
    구역과 관련된 모든 키가 상기 구역에서의 하나의 키의 선택에 따라 선택되는 것으로 표시되는,
    데이터 전송 방법.
  35. 제29항에 있어서,
    특정의 선택된 입력 키를 포함하는 구역과 관련된 상기 구역 출력 키는 상기 구역 내의 다른 키와 상이하게 표시되는,
    데이터 전송 방법.
  36. 제29항에 있어서,
    상기 구역은 QWERTY 키보드 레이아웃으로부터 정의되는,
    데이터 전송 방법.
  37. 제29항에 있어서,
    적어도 하나의 키는 복수의 구역과 관련되는,
    데이터 전송 방법.
  38. 제29항에 있어서,
    상기 구역 출력 키의 출력 시퀀스가 예측된 상기 구역 출력 키 시퀀스와 일치하면, 패스워드가 수락되는,
    데이터 전송 방법.
  39. 제29항에 있어서,
    사용자는 상기 패스워드의 수락을 통지받는,
    데이터 전송 방법.
  40. 프로그래밍 명령어를 저장하는 메모리; 및
    상기 프로그래밍 명령어를 실행하여 데이터 전송 방법을 수행하도록 구성된 프로세서 전자 장치
    를 포함하고,
    상기 데이터 전송 방법은,
    각각 적어도 하나의 구역 출력 키에 대응하는 2 이상의 입력 키를 포함하는 복수의 구역으로 입력 선택 장치를 분할하는 단계;
    상기 복수의 구역 중 하나에서의 키의 선택과 각각 관련된 복수의 입력을 공급받는 단계; 및
    공급받은 상기 복수의 입력의 각각에 대응하는 복수의 구역 출력 키를 출력하는 단계
    를 포함하는,
    컴퓨터 시스템.
  41. 프로그래밍된 명령어를 저장하는 메모리; 및
    상기 프로그래밍 명령어를 실행하여 사용자로부터의 문자 입력 수신 방법을 수행하도록 구성된 프로세서 전자 장치
    를 포함하고,
    상기 문자 입력 수신 방법은,
    입력되는 문자를 나타내는 입력을 2 이상의 상이한 모드로 사용자로부터 공급받는 단계;
    상기 2 이상의 모드의 각각에서 상기 입력을 분석하여 입력되는 상기 문자에 대응하는 하나 이상의 단어 선택을 결정하는 단계; 및
    상기 2 이상의 모드의 각각으로부터 결정된 상기 단어 선택을 이용하여 입력되는 상기 문자에 대응하는 단어를 선택하는 단계
    를 포함하는,
    컴퓨터 시스템.
  42. 제41항에 있어서,
    상기 명령어는 입력되는 상기 문자에 대응하는 단어를 선택하도록 상기 사용자에게 상기 2 이상의 모드의 각각으로부터 결정된 상기 단어 선택을 제공하도록 상기 프로세서 전자 장치에 의해 실행가능한,
    컴퓨터 시스템.
  43. 제41항에 있어서,
    상기 컴퓨터는 키보드와 마이크를 포함하고, 상기 명령어는 상기 키보드 상의 엔트리를 통해 그리고 상기 마이크에 의해 수신된 오디오 입력을 통해 상기 사용자로부터 입력을 수신하도록 상기 프로세서에 의해 실행가능한,
    컴퓨터 시스템.
  44. 제41항에 있어서,
    상기 컴퓨터는 촉각 입력부와 마이크를 포함하고, 상기 명령어는 상기 촉각 입력부 상의 엔트리를 통해 그리고 상기 마이크에 의해 수신된 오디오 입력을 통해 상기 사용자로부터 입력을 수신하도록 상기 프로세서에 의해 실행가능한,
    컴퓨터 시스템.
  45. 제41항에 있어서,
    상기 메모리는 키보드 상의 엔트리의 문자로의 매핑을 저장하는,
    컴퓨터 시스템.
  46. 제41항에 있어서,
    상기 메모리는 상기 사용자에 의해 입력된 문자에 대응할 가능성이 많은 단어에 대한 데이터베이스를 저장하고, 상기 데이터베이스는 상기 데이터베이스 내의 단어가 상기 사용자에 의해 얼마나 빈번하게 선택되는지를 기록하는,
    컴퓨터 시스템.
  47. 제41항에 있어서,
    상기 메모리는 상기 사용자에 의해 입력된 문자에 대응할 가능성이 많은 단어에 대한 데이터베이스를 저장하고, 상기 데이터베이스는 상기 데이터베이스 내의 단어가 상기 사용자에 의해 얼마나 최근에 선택되었는지를 기록하는,
    컴퓨터 시스템.
  48. 제41항에 있어서,
    상기 명령어는 상기 프로세서가 사용자에 의해 취해진 최근 행동을 판단하여 상기 사용자에 의해 취해진 상기 최근 행동에 대응하는 단어 선택을 선택하게 하는,
    컴퓨터 시스템.
  49. 제48항에 있어서,
    상기 사용자에 의해 취해진 상기 최근 행동은, 사용된 프로그램, 열람된 문서, 방문된 인터넷 사이트 및 경험된 오디오/비디오 콘텐츠 중 하나 이상을 포함하는,
    컴퓨터 시스템.
  50. 제41항에 있어서,
    상기 명령어는 상기 프로세서가 상기 사용자의 위치를 판단하고, 상기 사용자의 위치에 대응하는 단어 선택을 선택하게 하는,
    컴퓨터 시스템.
KR1020127026175A 2010-03-12 2011-03-14 이동 전화의 터치 스크린과 함께 사용하기 위한 다중 모드 문자 입력 시스템 KR20130001261A (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US31342310P 2010-03-12 2010-03-12
US31345410P 2010-03-12 2010-03-12
US61/313,423 2010-03-12
US61/313,454 2010-03-12
US31386410P 2010-03-15 2010-03-15
US61/313,864 2010-03-15
US31679910P 2010-03-23 2010-03-23
US61/316,799 2010-03-23
PCT/US2011/028387 WO2011113057A1 (en) 2010-03-12 2011-03-14 Multimodal text input system, such as for use with touch screens on mobile phones

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020147022010A Division KR101477530B1 (ko) 2010-03-12 2011-03-14 이동 전화의 터치 스크린과 함께 사용하기 위한 다중 모드 문자 입력 시스템

Publications (1)

Publication Number Publication Date
KR20130001261A true KR20130001261A (ko) 2013-01-03

Family

ID=44563890

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020147022010A KR101477530B1 (ko) 2010-03-12 2011-03-14 이동 전화의 터치 스크린과 함께 사용하기 위한 다중 모드 문자 입력 시스템
KR1020127026175A KR20130001261A (ko) 2010-03-12 2011-03-14 이동 전화의 터치 스크린과 함께 사용하기 위한 다중 모드 문자 입력 시스템

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020147022010A KR101477530B1 (ko) 2010-03-12 2011-03-14 이동 전화의 터치 스크린과 함께 사용하기 위한 다중 모드 문자 입력 시스템

Country Status (6)

Country Link
US (2) US9104312B2 (ko)
EP (1) EP2545426A4 (ko)
JP (2) JP5642809B2 (ko)
KR (2) KR101477530B1 (ko)
CN (1) CN103038728B (ko)
WO (1) WO2011113057A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160128378A (ko) * 2014-02-28 2016-11-07 삼성전자주식회사 대화형 디스플레이 상 텍스트 입력
US9841895B2 (en) 2013-05-03 2017-12-12 Google Llc Alternative hypothesis error correction for gesture typing
KR20180093100A (ko) * 2013-10-04 2018-08-20 오에스랩스 피티이 리미티드 손 동작을 기반으로 한 입력문자의 번역 및 음역용 시스템 및 방법
KR20180115699A (ko) * 2016-02-23 2018-10-23 마이스크립트 다중 입력 관리를 위한 시스템 및 방법

Families Citing this family (370)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CA2723898C (en) * 2008-05-09 2015-06-30 Research In Motion Limited Method of e-mail address search and e-mail address transliteration and associated device
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
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US20120309363A1 (en) 2011-06-03 2012-12-06 Apple Inc. Triggering notifications associated with tasks items that represent tasks to perform
US11416214B2 (en) * 2009-12-23 2022-08-16 Google Llc Multi-modal input on an electronic device
EP3091535B1 (en) * 2009-12-23 2023-10-11 Google LLC Multi-modal input on an electronic device
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
CN103038728B (zh) 2010-03-12 2016-01-20 纽昂斯通信有限公司 例如在移动电话上使用触摸屏的多模式文本输入系统
US8487877B2 (en) 2010-06-10 2013-07-16 Michael William Murphy Character specification system and method that uses a limited number of selection keys
GB201200643D0 (en) 2012-01-16 2012-02-29 Touchtype Ltd System and method for inputting text
JP5782699B2 (ja) * 2010-10-15 2015-09-24 ソニー株式会社 情報処理装置、情報処理装置の入力制御方法及びプログラム
US20130305248A1 (en) * 2011-01-18 2013-11-14 Nokia Corporation Task Performance
US8911165B2 (en) 2011-01-24 2014-12-16 5 Examples, Inc. Overloaded typing apparatuses, and related devices, systems, and methods
US9183192B1 (en) * 2011-03-16 2015-11-10 Ruby Investments Properties LLC Translator
US20120239381A1 (en) * 2011-03-17 2012-09-20 Sap Ag Semantic phrase suggestion engine
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US9215506B2 (en) * 2011-03-31 2015-12-15 Tivo Inc. Phrase-based communication system
KR101233561B1 (ko) * 2011-05-12 2013-02-14 엔에이치엔(주) 단어 수준의 후보 생성에 기초한 음성 인식 시스템 및 방법
WO2011137812A2 (zh) * 2011-05-23 2011-11-10 华为终端有限公司 一种输入方法、输入装置和终端设备
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US20140189569A1 (en) * 2011-07-18 2014-07-03 Syntellia, Inc. User interface for text input on three dimensional interface
US20130212515A1 (en) * 2012-02-13 2013-08-15 Syntellia, Inc. User interface for text input
US8935230B2 (en) 2011-08-25 2015-01-13 Sap Se Self-learning semantic search engine
KR101951257B1 (ko) * 2011-09-09 2019-02-26 삼성전자주식회사 데이터 입력 방법 및 이를 구현하는 휴대 단말기
US9785628B2 (en) 2011-09-29 2017-10-10 Microsoft Technology Licensing, Llc System, method and computer-readable storage device for providing cloud-based shared vocabulary/typing history for efficient social communication
JP5887807B2 (ja) * 2011-10-04 2016-03-16 ソニー株式会社 情報処理装置、情報処理方法およびコンピュータプログラム
US9251144B2 (en) * 2011-10-19 2016-02-02 Microsoft Technology Licensing, Llc Translating language characters in media content
US8490008B2 (en) 2011-11-10 2013-07-16 Research In Motion Limited Touchscreen keyboard predictive display and generation of a set of characters
US20130120268A1 (en) * 2011-11-10 2013-05-16 Research In Motion Limited Touchscreen keyboard predictive display and generation of a set of characters
US9122672B2 (en) 2011-11-10 2015-09-01 Blackberry Limited In-letter word prediction for virtual keyboard
US9310889B2 (en) 2011-11-10 2016-04-12 Blackberry Limited Touchscreen keyboard predictive display and generation of a set of characters
US9715489B2 (en) 2011-11-10 2017-07-25 Blackberry Limited Displaying a prediction candidate after a typing mistake
US9652448B2 (en) 2011-11-10 2017-05-16 Blackberry Limited Methods and systems for removing or replacing on-keyboard prediction candidates
CH705918A2 (de) * 2011-12-19 2013-06-28 Ralf Trachte Feld-Analysen für flexible Computer-Eingabe.
US9557913B2 (en) 2012-01-19 2017-01-31 Blackberry Limited Virtual keyboard display having a ticker proximate to the virtual keyboard
EP2618248B1 (en) 2012-01-19 2017-08-16 BlackBerry Limited Virtual keyboard providing an indication of received input
US9330082B2 (en) * 2012-02-14 2016-05-03 Facebook, Inc. User experience with customized user dictionary
US9330083B2 (en) * 2012-02-14 2016-05-03 Facebook, Inc. Creating customized user dictionary
US9307009B2 (en) * 2012-02-15 2016-04-05 Mobilespan Inc. Presenting execution of a remote application in a mobile device native format
GB2503968B (en) 2012-02-24 2021-02-17 Blackberry Ltd Touchscreen keyboard providing word predictions in partitions of the touchscreen keyboard in proximate association with candidate letters
EP2631768B1 (en) 2012-02-24 2018-07-11 BlackBerry Limited Portable electronic device including touch-sensitive display and method of controlling same
US20130227460A1 (en) * 2012-02-27 2013-08-29 Bjorn David Jawerth Data entry system controllers for receiving user input line traces relative to user interfaces to determine ordered actions, and related systems and methods
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
CN102662485A (zh) * 2012-03-12 2012-09-12 成都林海电子有限责任公司 一种中文输入方法及装置
US8667414B2 (en) 2012-03-23 2014-03-04 Google Inc. Gestural input at a virtual keyboard
JP6055961B2 (ja) * 2012-04-07 2017-01-11 グーグル テクノロジー ホールディングス リミティド ライアビリティ カンパニー テキスト選択及び入力
US9201510B2 (en) 2012-04-16 2015-12-01 Blackberry Limited Method and device having touchscreen keyboard with visual cues
CN103376909B (zh) * 2012-04-19 2019-03-22 深圳市世纪光速信息技术有限公司 输入法中调整候选词顺序的方法和系统
US9354805B2 (en) 2012-04-30 2016-05-31 Blackberry Limited Method and apparatus for text selection
US8713464B2 (en) * 2012-04-30 2014-04-29 Dov Nir Aides System and method for text input with a multi-touch screen
US9292192B2 (en) 2012-04-30 2016-03-22 Blackberry Limited Method and apparatus for text selection
WO2013163718A1 (en) * 2012-04-30 2013-11-07 Blackberry Limited Touchscreen keyboard with correction of previously input text
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
WO2013170383A1 (en) 2012-05-16 2013-11-21 Xtreme Interactions Inc. System, device and method for processing interlaced multimodal user input
US9207860B2 (en) 2012-05-25 2015-12-08 Blackberry Limited Method and apparatus for detecting a gesture
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9672209B2 (en) 2012-06-21 2017-06-06 International Business Machines Corporation Dynamic translation substitution
US9116552B2 (en) 2012-06-27 2015-08-25 Blackberry Limited Touchscreen keyboard providing selection of word predictions in partitions of the touchscreen keyboard
US20150106702A1 (en) * 2012-06-29 2015-04-16 Microsoft Corporation Cross-Lingual Input Method Editor
JP5852930B2 (ja) * 2012-06-29 2016-02-03 Kddi株式会社 入力文字推定装置およびプログラム
CN103529951B (zh) * 2012-07-05 2017-09-15 腾讯科技(深圳)有限公司 字符输入方法及系统
US9779080B2 (en) 2012-07-09 2017-10-03 International Business Machines Corporation Text auto-correction via N-grams
CN102819567B (zh) * 2012-07-17 2016-04-20 重庆优腾信息技术有限公司 一种电子设备的联系人信息检索方法和系统
US9298295B2 (en) * 2012-07-25 2016-03-29 Facebook, Inc. Gestures for auto-correct
CN103576882B (zh) * 2012-07-27 2018-03-09 深圳市世纪光速信息技术有限公司 非正常文本识别方法及其系统
US20140040810A1 (en) * 2012-08-01 2014-02-06 James George Haliburton Electronic device and method of changing a keyboard
US9619812B2 (en) 2012-08-28 2017-04-11 Nuance Communications, Inc. Systems and methods for engaging an audience in a conversational advertisement
US9063653B2 (en) 2012-08-31 2015-06-23 Blackberry Limited Ranking predictions based on typing speed and typing confidence
US9524290B2 (en) 2012-08-31 2016-12-20 Blackberry Limited Scoring predictions based on prediction length and typing speed
US9218333B2 (en) * 2012-08-31 2015-12-22 Microsoft Technology Licensing, Llc Context sensitive auto-correction
CN103677299A (zh) * 2012-09-12 2014-03-26 深圳市世纪光速信息技术有限公司 一种在输入法中实现智能联想的方法、装置及终端设备
US9591679B2 (en) 2012-09-17 2017-03-07 Blackberry Limited Initiation of inter-device communication in wireless communication systems
US9826381B2 (en) 2012-09-18 2017-11-21 Blackberry Limited Device handshake/discovery for inter-device communication in wireless communication systems
US9021380B2 (en) * 2012-10-05 2015-04-28 Google Inc. Incremental multi-touch gesture recognition
US8782549B2 (en) 2012-10-05 2014-07-15 Google Inc. Incremental feature-based gesture-keyboard decoding
US9304683B2 (en) * 2012-10-10 2016-04-05 Microsoft Technology Licensing, Llc Arced or slanted soft input panels
US8850350B2 (en) 2012-10-16 2014-09-30 Google Inc. Partial gesture text entry
US8914751B2 (en) 2012-10-16 2014-12-16 Google Inc. Character deletion during keyboard gesture
US8843845B2 (en) 2012-10-16 2014-09-23 Google Inc. Multi-gesture text input prediction
US8701032B1 (en) 2012-10-16 2014-04-15 Google Inc. Incremental multi-word recognition
US8994681B2 (en) * 2012-10-19 2015-03-31 Google Inc. Decoding imprecise gestures for gesture-keyboards
US8819574B2 (en) 2012-10-22 2014-08-26 Google Inc. Space prediction for text input
US20140129933A1 (en) * 2012-11-08 2014-05-08 Syntellia, Inc. User interface for input functions
US11237719B2 (en) 2012-11-20 2022-02-01 Samsung Electronics Company, Ltd. Controlling remote electronic device with wearable electronic device
US11157436B2 (en) 2012-11-20 2021-10-26 Samsung Electronics Company, Ltd. Services associated with wearable electronic device
US10423214B2 (en) 2012-11-20 2019-09-24 Samsung Electronics Company, Ltd Delegating processing from wearable electronic device
US11372536B2 (en) 2012-11-20 2022-06-28 Samsung Electronics Company, Ltd. Transition and interaction model for wearable electronic device
US8994827B2 (en) 2012-11-20 2015-03-31 Samsung Electronics Co., Ltd Wearable electronic device
US10185416B2 (en) 2012-11-20 2019-01-22 Samsung Electronics Co., Ltd. User gesture input to wearable electronic device involving movement of device
US10551928B2 (en) 2012-11-20 2020-02-04 Samsung Electronics Company, Ltd. GUI transitions on wearable electronic device
US10824297B2 (en) 2012-11-26 2020-11-03 Google Llc System for and method of accessing and selecting emoticons, content, and mood messages during chat sessions
US20140173522A1 (en) * 2012-12-17 2014-06-19 Michael William Murphy Novel Character Specification System and Method that Uses Remote Selection Menu and Touch Screen Movements
CN103019497B (zh) * 2012-12-28 2015-11-25 华为终端有限公司 触摸定位方法、装置及触摸终端
DE102013009375A1 (de) 2012-12-28 2014-07-03 Volkswagen Aktiengesellschaft Verfahren zum Eingeben und Erkennen einer Zeichenkette
CN103064530B (zh) * 2012-12-31 2017-03-08 华为技术有限公司 输入处理方法和装置
US8832589B2 (en) 2013-01-15 2014-09-09 Google Inc. Touch keyboard using language and spatial models
IN2013CH00469A (ko) 2013-01-21 2015-07-31 Keypoint Technologies India Pvt Ltd
KR102306899B1 (ko) * 2013-01-21 2021-09-30 키포인트 테크놀로지스 인디아 프라이비트 리미티드 텍스트 입력 시스템 및 방법
WO2014115231A1 (ja) * 2013-01-22 2014-07-31 Necソリューションイノベータ株式会社 入力支援システム、入力支援方法および入力支援プログラム
US20140208258A1 (en) * 2013-01-22 2014-07-24 Jenny Yuen Predictive Input Using Custom Dictionaries
CN103970278B (zh) * 2013-01-25 2017-02-08 胡竞韬 一种圆形触感键盘的输入方法及装置
US9037598B1 (en) * 2013-01-25 2015-05-19 Google Inc. Variable query generation
US9113213B2 (en) 2013-01-25 2015-08-18 Nuance Communications, Inc. Systems and methods for supplementing content with audience-requested information
US9047268B2 (en) * 2013-01-31 2015-06-02 Google Inc. Character and word level language models for out-of-vocabulary text input
US9454240B2 (en) * 2013-02-05 2016-09-27 Google Inc. Gesture keyboard input of non-dictionary character strings
KR102118209B1 (ko) 2013-02-07 2020-06-02 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
US20140229882A1 (en) * 2013-02-08 2014-08-14 Syntellia, Inc. User interface for advanced input functions
US9003333B2 (en) 2013-03-04 2015-04-07 Zynga Inc. Sequential selection of multiple objects
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US20140267045A1 (en) * 2013-03-14 2014-09-18 Microsoft Corporation Adaptive Language Models for Text Predictions
US9348429B2 (en) * 2013-03-15 2016-05-24 Blackberry Limited Method and apparatus for word prediction using the position of a non-typing digit
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
JP2014203288A (ja) * 2013-04-05 2014-10-27 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
US9665246B2 (en) * 2013-04-16 2017-05-30 Google Inc. Consistent text suggestion output
US8825474B1 (en) * 2013-04-16 2014-09-02 Google Inc. Text suggestion output using past interaction data
JP2014211701A (ja) * 2013-04-17 2014-11-13 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
US9805718B2 (en) * 2013-04-19 2017-10-31 Sri Internaitonal Clarifying natural language input using targeted questions
US8887103B1 (en) * 2013-04-22 2014-11-11 Google Inc. Dynamically-positioned character string suggestions for gesture typing
US8756499B1 (en) * 2013-04-29 2014-06-17 Google Inc. Gesture keyboard input of non-dictionary character strings using substitute scoring
US9552411B2 (en) * 2013-06-05 2017-01-24 Microsoft Technology Licensing, Llc Trending suggestions
WO2014197336A1 (en) * 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
CN110442699A (zh) 2013-06-09 2019-11-12 苹果公司 操作数字助理的方法、计算机可读介质、电子设备和系统
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US9244906B2 (en) 2013-06-21 2016-01-26 Blackberry Limited Text entry at electronic communication device
US10445417B2 (en) * 2013-08-01 2019-10-15 Oracle International Corporation Entry of values into multiple fields of a form using touch screens
US9218508B2 (en) * 2013-09-06 2015-12-22 Getac Technology Corporation Electronic device and protection method thereof
CN103455623B (zh) * 2013-09-12 2017-02-15 广东电子工业研究院有限公司 一种融合多种语言文献的聚类机制
US9170736B2 (en) * 2013-09-16 2015-10-27 Microsoft Corporation Hover controlled user interface element
US20150089435A1 (en) * 2013-09-25 2015-03-26 Microth, Inc. System and method for prediction and recognition of input sequences
CN103472998B (zh) 2013-09-27 2017-03-15 小米科技有限责任公司 一种选取文字的方法、装置和终端设备
US20150100911A1 (en) * 2013-10-08 2015-04-09 Dao Yin Gesture responsive keyboard and interface
CN104573447A (zh) * 2013-10-16 2015-04-29 中国移动通信集团公司 一种终端设备控制方法及装置
WO2015061761A1 (en) * 2013-10-24 2015-04-30 Fleksy, Inc. User interface for text input and virtual keyboard manipulation
CN104346067B (zh) * 2013-11-15 2019-02-05 上海触乐信息科技有限公司 连续滑动输入单词的方法和系统
CN103596028A (zh) * 2013-11-25 2014-02-19 乐视致新电子科技(天津)有限公司 智能电视的控制方法和装置
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US9841873B1 (en) * 2013-12-30 2017-12-12 James Ernest Schroeder Process for reducing the number of physical actions required while inputting character strings
KR20150081181A (ko) * 2014-01-03 2015-07-13 삼성전자주식회사 디스플레이 장치 및 이의 추천 문자 제공 방법
CN103825952B (zh) * 2014-03-04 2017-07-04 百度在线网络技术(北京)有限公司 细胞词库推送方法和服务器
US20150277751A1 (en) * 2014-03-28 2015-10-01 Linpus Technologies, Inc. Gesture selection data input method and data storage medium having gesture selection software tool stored thereon for implementing the same
US20150286402A1 (en) * 2014-04-08 2015-10-08 Qualcomm Incorporated Live non-visual feedback during predictive text keyboard operation
JP6362391B2 (ja) * 2014-04-10 2018-07-25 キヤノン株式会社 情報処理端末、情報処理方法及びコンピュータプログラム
KR102177607B1 (ko) * 2014-05-16 2020-11-11 엘지전자 주식회사 이동 단말기 및 이의 제어방법
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
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
TWI566107B (zh) 2014-05-30 2017-01-11 蘋果公司 用於處理多部分語音命令之方法、非暫時性電腦可讀儲存媒體及電子裝置
US9575560B2 (en) 2014-06-03 2017-02-21 Google Inc. Radar-based gesture-recognition through a wearable device
CN105224858A (zh) * 2014-06-05 2016-01-06 阿里巴巴集团控股有限公司 一种密码输入界面显示方法及系统
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US20160041626A1 (en) * 2014-08-06 2016-02-11 International Business Machines Corporation Configurable character variant unification
US9811164B2 (en) 2014-08-07 2017-11-07 Google Inc. Radar-based gesture sensing and data transmission
US9921660B2 (en) 2014-08-07 2018-03-20 Google Llc Radar-based gesture recognition
US10534532B2 (en) 2014-08-08 2020-01-14 Samsung Electronics Co., Ltd. Electronic device and method for processing letter input in electronic device
US10268321B2 (en) * 2014-08-15 2019-04-23 Google Llc Interactive textiles within hard objects
US9588625B2 (en) 2014-08-15 2017-03-07 Google Inc. Interactive textiles
US10515151B2 (en) * 2014-08-18 2019-12-24 Nuance Communications, Inc. Concept identification and capture
US11169988B2 (en) 2014-08-22 2021-11-09 Google Llc Radar recognition-aided search
US9778749B2 (en) 2014-08-22 2017-10-03 Google Inc. Occluded gesture recognition
US10261674B2 (en) 2014-09-05 2019-04-16 Microsoft Technology Licensing, Llc Display-efficient text entry and editing
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US9940016B2 (en) 2014-09-13 2018-04-10 Microsoft Technology Licensing, Llc Disambiguation of keyboard input
US9684694B2 (en) * 2014-09-23 2017-06-20 International Business Machines Corporation Identifying and scoring data values
JP6430198B2 (ja) * 2014-09-30 2018-11-28 株式会社東芝 電子機器、方法及びプログラム
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
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
US9600080B2 (en) 2014-10-02 2017-03-21 Google Inc. Non-line-of-sight radar-based gesture recognition
US10083167B2 (en) 2014-10-03 2018-09-25 At&T Intellectual Property I, L.P. System and method for unsupervised text normalization using distributed representation of words
GB201418402D0 (en) * 2014-10-16 2014-12-03 Touchtype Ltd Text prediction integration
US9696904B1 (en) * 2014-10-30 2017-07-04 Allscripts Software, Llc Facilitating text entry for mobile healthcare application
JP5943359B2 (ja) * 2014-11-05 2016-07-05 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation パスワードを検証するシステム、方法およびプログラム
US10074102B2 (en) * 2014-11-26 2018-09-11 Adobe Systems Incorporated Providing alternate words to aid in drafting effective social media posts
US9516115B2 (en) * 2014-12-05 2016-12-06 Software 263 Technology (Beijing) Co., Ltd. Softphone user interface system and method
US20160216773A1 (en) * 2015-01-24 2016-07-28 Yi-Chuan Cheng Virtual Object Control Method and the Portable Device
US10282089B2 (en) * 2015-02-03 2019-05-07 Google Llc User state-adaptive text input
CN105988704B (zh) * 2015-03-03 2020-10-02 上海触乐信息科技有限公司 高效的触摸屏文本输入系统及方法
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US10016162B1 (en) 2015-03-23 2018-07-10 Google Llc In-ear health monitoring
US9703394B2 (en) * 2015-03-24 2017-07-11 Google Inc. Unlearning techniques for adaptive language models in text entry
US9983747B2 (en) 2015-03-26 2018-05-29 Google Llc Two-layer interactive textiles
US10726197B2 (en) * 2015-03-26 2020-07-28 Lenovo (Singapore) Pte. Ltd. Text correction using a second input
US10498834B2 (en) * 2015-03-30 2019-12-03 [24]7.ai, Inc. Method and apparatus for facilitating stateless representation of interaction flow states
US11221756B2 (en) * 2015-03-31 2022-01-11 Keyless Systems Ltd. Data entry systems
US10203870B2 (en) * 2015-04-07 2019-02-12 Blackberry Limited Authentication using a touch-sensitive keyboard with distinct pluralities of keys as respective regions
US9678664B2 (en) 2015-04-10 2017-06-13 Google Inc. Neural network for keyboard input decoding
WO2016176574A1 (en) 2015-04-30 2016-11-03 Google Inc. Wide-field radar-based gesture recognition
US10241581B2 (en) 2015-04-30 2019-03-26 Google Llc RF-based micro-motion tracking for gesture tracking and recognition
CN107924273A (zh) 2015-04-30 2018-04-17 M·W·墨菲 使用按钮按压类型错误分析进行单词识别的系统和方法
US10310620B2 (en) 2015-04-30 2019-06-04 Google Llc Type-agnostic RF signal representations
US10095403B2 (en) 2015-05-05 2018-10-09 International Business Machines Corporation Text input on devices with touch screen displays
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10088908B1 (en) 2015-05-27 2018-10-02 Google Llc Gesture detection and interactions
US9693592B2 (en) 2015-05-27 2017-07-04 Google Inc. Attaching electronic components to interactive textiles
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
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10146979B2 (en) * 2015-06-03 2018-12-04 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Processing visual cues to improve device understanding of user input
US9898100B2 (en) * 2015-06-04 2018-02-20 Microsoft Technology Licensing, Llc Authenticating stylus device
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US9996507B2 (en) * 2015-06-26 2018-06-12 International Business Machines Corporation Geo-cultural information based dynamic character variant rendering
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media 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
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US9443519B1 (en) * 2015-09-09 2016-09-13 Google Inc. Reducing latency caused by switching input modalities
US10817065B1 (en) 2015-10-06 2020-10-27 Google Llc Gesture recognition using multiple antenna
CN107851932A (zh) 2015-11-04 2018-03-27 谷歌有限责任公司 用于将嵌入在服装中的电子器件连接至外部装置的连接器
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10671272B2 (en) 2015-11-06 2020-06-02 International Business Machines Corporation Touchscreen oriented input integrated with enhanced four-corner indexing
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10366114B2 (en) * 2015-11-15 2019-07-30 Microsoft Technology Licensing, Llc Providing data presentation functionality associated with collaboration database
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
CN105872671A (zh) * 2015-12-11 2016-08-17 乐视致新电子科技(天津)有限公司 智能电视的滑动输入方法及装置
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10073538B2 (en) 2016-04-11 2018-09-11 International Business Machines Corporation Assessment of a password based on characteristics of a physical arrangement of keys of a keyboard
WO2017192167A1 (en) 2016-05-03 2017-11-09 Google Llc Connecting an electronic component to an interactive textile
US10285456B2 (en) 2016-05-16 2019-05-14 Google Llc Interactive fabric
WO2017200570A1 (en) 2016-05-16 2017-11-23 Google Llc Interactive object with multiple electronics modules
WO2017209571A1 (en) 2016-06-02 2017-12-07 Samsung Electronics Co., Ltd. Method and electronic device for predicting response
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
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
US11010551B2 (en) * 2016-06-22 2021-05-18 Huawei Technologies Co., Ltd. Method and apparatus for displaying candidate word, and graphical user interface
EP3497051A4 (en) * 2016-08-15 2020-04-15 The Coca-Cola Company SELECTION AND DISPENSING OF MIXED BEVERAGES FROM A BEVERAGE DISPENSER AFTER MIXING
CN106468960A (zh) * 2016-09-07 2017-03-01 北京新美互通科技有限公司 一种输入法候选项排序的方法和系统
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
US10540441B2 (en) 2016-10-21 2020-01-21 Samsung Electronics Co., Ltd. Device and method for providing recommended words for character input
US10884610B2 (en) 2016-11-04 2021-01-05 Myscript System and method for recognizing handwritten stroke input
US10078370B2 (en) * 2016-11-23 2018-09-18 Immersion Corporation Devices and methods for modifying haptic effects
US10579150B2 (en) 2016-12-05 2020-03-03 Google Llc Concurrent detection of absolute distance and relative movement for sensing action gestures
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US10417332B2 (en) * 2016-12-15 2019-09-17 Microsoft Technology Licensing, Llc Predicting text by combining attempts
US10444987B2 (en) * 2016-12-19 2019-10-15 Microsoft Technology Licensing, Llc Facilitating selection of holographic keyboard keys
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US10831366B2 (en) * 2016-12-29 2020-11-10 Google Llc Modality learning on mobile devices
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US10747427B2 (en) * 2017-02-01 2020-08-18 Google Llc Keyboard automatic language identification and reconfiguration
US11609692B2 (en) * 2017-04-07 2023-03-21 Hewlett-Packard Development Company, L.P. Cursor adjustments
KR20240046613A (ko) * 2017-04-19 2024-04-09 매직 립, 인코포레이티드 웨어러블 시스템을 위한 멀티모달 임무 실행 및 텍스트 편집
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
DK201770428A1 (en) 2017-05-12 2019-02-18 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
US11237642B2 (en) * 2017-05-14 2022-02-01 Mark Stouffer Single-hand interdigit-coordinated mobile keyboard input device
US10528134B2 (en) * 2017-05-14 2020-01-07 Mark Stouffer One-handed input chording user input device for converting finger movements into digital input
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
EP3625652B1 (en) 2017-05-19 2022-09-14 Michael William Murphy An interleaved character selection interface
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US20190079668A1 (en) * 2017-06-29 2019-03-14 Ashwin P Rao User interfaces for keyboards
US11263399B2 (en) * 2017-07-31 2022-03-01 Apple Inc. Correcting input based on user context
EP3646150A4 (en) * 2017-08-29 2020-07-29 Samsung Electronics Co., Ltd. METHOD FOR PROVIDING MULTIMODAL PREDICTIONS BASED ON COGNITIVE SEMIOTICS, AND ELECTRONIC DEVICE THEREFOR
CN109542244B (zh) * 2017-09-21 2022-04-26 北京搜狗科技发展有限公司 一种输入方法、装置和介质
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10394342B2 (en) * 2017-09-27 2019-08-27 Facebook Technologies, Llc Apparatuses, systems, and methods for representing user interactions with real-world input devices in a virtual space
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
CN109670282B (zh) * 2017-10-17 2023-12-22 深圳富泰宏精密工业有限公司 解锁系统、解锁方法及电子装置
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
RU2726009C1 (ru) * 2017-12-27 2020-07-08 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для исправления неверного набора слова вследствие ошибки ввода с клавиатуры и/или неправильной раскладки клавиатуры
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
CN110018746B (zh) 2018-01-10 2023-09-01 微软技术许可有限责任公司 通过多种输入模式来处理文档
US11061556B2 (en) * 2018-01-12 2021-07-13 Microsoft Technology Licensing, Llc Computer device having variable display output based on user input with variable time and/or pressure patterns
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
US10102415B1 (en) * 2018-03-29 2018-10-16 Secugen Corporation Method and apparatus for simultaneous multiple fingerprint enrollment
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US11676220B2 (en) 2018-04-20 2023-06-13 Meta Platforms, Inc. Processing multimodal user input for assistant systems
US20190327330A1 (en) 2018-04-20 2019-10-24 Facebook, Inc. Building Customized User Profiles Based on Conversational Data
US11886473B2 (en) 2018-04-20 2024-01-30 Meta Platforms, Inc. Intent identification for agent matching by assistant systems
US11715042B1 (en) 2018-04-20 2023-08-01 Meta Platforms Technologies, Llc Interpretability of deep reinforcement learning models in assistant systems
US11307880B2 (en) 2018-04-20 2022-04-19 Meta Platforms, Inc. Assisting users with personalized and contextual communication content
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
JP7341166B2 (ja) 2018-05-22 2023-09-08 マジック リープ, インコーポレイテッド ウェアラブルシステムのためのトランスモード入力融合
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
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
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
US10504518B1 (en) 2018-06-03 2019-12-10 Apple Inc. Accelerated task performance
KR102592907B1 (ko) * 2018-06-22 2023-10-23 삼성전자주식회사 텍스트 입력 디바이스 및 그 방법
US11815936B2 (en) 2018-08-22 2023-11-14 Microstrategy Incorporated Providing contextually-relevant database content based on calendar data
US11714955B2 (en) 2018-08-22 2023-08-01 Microstrategy Incorporated Dynamic document annotations
US11106905B2 (en) 2018-09-04 2021-08-31 Cerence Operating Company Multi-character text input system with audio feedback and word completion
CN110888577B (zh) * 2018-09-10 2021-09-28 百度在线网络技术(北京)有限公司 字符纠正方法、装置、设备以及存储介质
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
JP7243109B2 (ja) * 2018-10-02 2023-03-22 カシオ計算機株式会社 電子機器、電子機器の制御方法及びプログラム
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
KR102527892B1 (ko) * 2018-11-26 2023-05-02 삼성전자주식회사 예측 단어를 제공하기 위한 전자 장치 및 그의 동작 방법
US11922007B2 (en) 2018-11-29 2024-03-05 Michael William Murphy Apparatus, method and system for inputting characters to an electronic device
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11682390B2 (en) 2019-02-06 2023-06-20 Microstrategy Incorporated Interactive interface for analytics
KR20200103236A (ko) * 2019-02-22 2020-09-02 삼성전자주식회사 수기에 기반한 입력을 디스플레이하기 위한 방법 및 장치
JP7263857B2 (ja) * 2019-03-14 2023-04-25 オムロン株式会社 文字入力装置、文字入力方法、及び、文字入力プログラム
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
WO2020190103A1 (en) * 2019-03-20 2020-09-24 Samsung Electronics Co., Ltd. Method and system for providing personalized multimodal objects in real time
US11068656B2 (en) * 2019-04-10 2021-07-20 International Business Machines Corporation Displaying text classification anomalies predicted by a text classification model
US11537821B2 (en) 2019-04-10 2022-12-27 International Business Machines Corporation Evaluating text classification anomalies predicted by a text classification model
US11137908B2 (en) * 2019-04-15 2021-10-05 Apple Inc. Keyboard operation with head-mounted device
US11554322B2 (en) 2019-04-26 2023-01-17 Sony Interactive Entertainment LLC Game controller with touchpad input
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
AU2020267498B2 (en) 2019-05-06 2023-04-06 Apple Inc. Handwriting entry on an electronic device
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
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
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
CN111858921B (zh) * 2019-09-24 2024-05-03 北京嘀嘀无限科技发展有限公司 兴趣点查询方法、装置以及电子设备
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
US11327646B2 (en) * 2019-09-27 2022-05-10 International Business Machines Corporation Modifying illumination characteristics of an input device to identify characters associated with predicted words
US11295088B2 (en) 2019-11-20 2022-04-05 Apple Inc. Sanitizing word predictions
US11068073B2 (en) * 2019-12-13 2021-07-20 Dell Products, L.P. User-customized keyboard input error correction
US11561968B2 (en) * 2020-02-20 2023-01-24 Microstrategy Incorporated Systems and methods for retrieving relevant information content while typing
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
US11038934B1 (en) 2020-05-11 2021-06-15 Apple Inc. Digital assistant hardware abstraction
US20210349627A1 (en) * 2020-05-11 2021-11-11 Apple Inc. Interacting with handwritten content on an electronic device
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
EP3945402B1 (en) * 2020-07-29 2024-03-27 Tata Consultancy Services Limited Method and device providing multimodal input mechanism
KR20220015831A (ko) * 2020-07-31 2022-02-08 삼성전자주식회사 전자 장치 및 이의 제어 방법
CN112417087B (zh) * 2020-12-14 2024-03-19 合肥高维数据技术有限公司 基于文字的溯源方法及系统
CN113255342B (zh) * 2021-06-11 2022-09-30 云南大学 一种5g移动业务产品名称识别方法及系统
DE102021121116B4 (de) * 2021-08-13 2023-05-11 Brainbox Gmbh Verfahren und vorrichtung zur eingabe einer zeichenfolge
WO2023034497A2 (en) * 2021-09-03 2023-03-09 Apple Inc. Gaze based dictation
US11507730B1 (en) * 2021-09-30 2022-11-22 Atlassian Pty Ltd. User interface with command-line link creation for generating graphical objects linked to third-party content
US11790107B1 (en) 2022-11-03 2023-10-17 Vignet Incorporated Data sharing platform for researchers conducting clinical trials

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08272787A (ja) * 1995-03-29 1996-10-18 Sharp Corp 文字処理装置
KR100402252B1 (ko) 1995-07-26 2004-01-24 테직 커뮤니케이션 인코포레이티드 감축된 키보드 명료화 시스템
US5903864A (en) * 1995-08-30 1999-05-11 Dragon Systems Speech recognition
JPH10275046A (ja) * 1997-03-31 1998-10-13 Toshiba Corp 単語入力装置及び方法
US6047300A (en) * 1997-05-15 2000-04-04 Microsoft Corporation System and method for automatically correcting a misspelled word
US7881936B2 (en) 1998-12-04 2011-02-01 Tegic Communications, Inc. Multimodal disambiguation of speech recognition
US7720682B2 (en) 1998-12-04 2010-05-18 Tegic Communications, Inc. Method and apparatus utilizing voice input to resolve ambiguous manually entered text input
US7030863B2 (en) * 2000-05-26 2006-04-18 America Online, Incorporated Virtual keyboard system with automatic correction
DE60043008D1 (de) * 1999-05-27 2009-11-05 Tegic Comm Inc Tastatursystem mit automatischer korrektur
US7526431B2 (en) * 2001-09-05 2009-04-28 Voice Signal Technologies, Inc. Speech recognition using ambiguous or phone key spelling and/or filtering
US8460103B2 (en) 2004-06-18 2013-06-11 Igt Gesture controlled casino gaming system
US7382358B2 (en) 2003-01-16 2008-06-03 Forword Input, Inc. System and method for continuous stroke word-based text input
US7453439B1 (en) * 2003-01-16 2008-11-18 Forward Input Inc. System and method for continuous stroke word-based text input
US7729913B1 (en) * 2003-03-18 2010-06-01 A9.Com, Inc. Generation and selection of voice recognition grammars for conducting database searches
US7164410B2 (en) * 2003-07-28 2007-01-16 Sig G. Kupka Manipulating an on-screen object using zones surrounding the object
US7250938B2 (en) 2004-01-06 2007-07-31 Lenovo (Singapore) Pte. Ltd. System and method for improved user input on personal computing devices
CN1965349A (zh) * 2004-06-02 2007-05-16 美国联机股份有限公司 多形式的非歧意性语音识别
AU2005253600B2 (en) * 2004-06-04 2011-01-27 Benjamin Firooz Ghassabian Systems to enhance data entry in mobile and fixed environment
US8972444B2 (en) 2004-06-25 2015-03-03 Google Inc. Nonstandard locality-based text entry
JP4640822B2 (ja) * 2006-01-18 2011-03-02 シャープ株式会社 入力装置
US7831911B2 (en) * 2006-03-08 2010-11-09 Microsoft Corporation Spell checking system including a phonetic speller
WO2007148128A2 (en) * 2006-06-19 2007-12-27 Santosh Sharan A data entry system and method of entering data
KR101019548B1 (ko) 2006-08-31 2011-03-09 콸콤 인코포레이티드 사용자-기반 바이어스들을 사용하여 검색 결과들을 획득 또는 제공하는 방법 및 장치
US20080244446A1 (en) 2007-03-29 2008-10-02 Lefevre John Disambiguation of icons and other media in text-based applications
US7895518B2 (en) * 2007-04-27 2011-02-22 Shapewriter Inc. System and method for preview and selection of words
US9503562B2 (en) * 2008-03-19 2016-11-22 Universal Electronics Inc. System and method for appliance control via a personal communication or entertainment device
US8589149B2 (en) 2008-08-05 2013-11-19 Nuance Communications, Inc. Probability-based approach to recognition of user-entered data
US8669941B2 (en) * 2009-01-05 2014-03-11 Nuance Communications, Inc. Method and apparatus for text entry
US9519353B2 (en) * 2009-03-30 2016-12-13 Symbol Technologies, Llc Combined speech and touch input for observation symbol mappings
US8423351B2 (en) * 2010-02-19 2013-04-16 Google Inc. Speech correction for typed input
CN103038728B (zh) 2010-03-12 2016-01-20 纽昂斯通信有限公司 例如在移动电话上使用触摸屏的多模式文本输入系统
US8593422B2 (en) * 2010-11-05 2013-11-26 Apple Inc. Device, method, and graphical user interface for manipulating soft keyboards

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9841895B2 (en) 2013-05-03 2017-12-12 Google Llc Alternative hypothesis error correction for gesture typing
US10241673B2 (en) 2013-05-03 2019-03-26 Google Llc Alternative hypothesis error correction for gesture typing
KR20180093100A (ko) * 2013-10-04 2018-08-20 오에스랩스 피티이 리미티드 손 동작을 기반으로 한 입력문자의 번역 및 음역용 시스템 및 방법
KR20160128378A (ko) * 2014-02-28 2016-11-07 삼성전자주식회사 대화형 디스플레이 상 텍스트 입력
KR20180115699A (ko) * 2016-02-23 2018-10-23 마이스크립트 다중 입력 관리를 위한 시스템 및 방법

Also Published As

Publication number Publication date
JP5642809B2 (ja) 2014-12-17
CN103038728B (zh) 2016-01-20
US20130046544A1 (en) 2013-02-21
KR20140111333A (ko) 2014-09-18
US9104312B2 (en) 2015-08-11
EP2545426A1 (en) 2013-01-16
WO2011113057A1 (en) 2011-09-15
US20150293602A1 (en) 2015-10-15
KR101477530B1 (ko) 2014-12-30
JP2013522972A (ja) 2013-06-13
JP6140668B2 (ja) 2017-05-31
EP2545426A4 (en) 2017-05-17
CN103038728A (zh) 2013-04-10
JP2015057721A (ja) 2015-03-26

Similar Documents

Publication Publication Date Title
KR101477530B1 (ko) 이동 전화의 터치 스크린과 함께 사용하기 위한 다중 모드 문자 입력 시스템
US11379663B2 (en) Multi-gesture text input prediction
US10996851B2 (en) Split virtual keyboard on a mobile computing device
US9977595B2 (en) Keyboard with a suggested search query region
US9026428B2 (en) Text/character input system, such as for use with touch screens on mobile phones
JP4527731B2 (ja) 自動訂正機能を備えた仮想キーボードシステム
US8117540B2 (en) Method and device incorporating improved text input mechanism
US20170263248A1 (en) Dictation that allows editing
KR101633842B1 (ko) 연속적인 제스쳐 입력을 위한 복수의 그래픽 키보드들
US20110063231A1 (en) Method and Device for Data Input
KR20120006503A (ko) 개선된 텍스트 입력
JP2007133884A5 (ko)
US20170286395A1 (en) Dynamic key mapping of a graphical keyboard
EP1923796B1 (en) Method and device incorporating improved text input mechanism
KR20240029703A (ko) 멀티 포인터를 활용한 문자 입력시스템
KR20240050779A (ko) 조이스틱과 안구 마우스를 활용한 문자 입력시스템
KR20240053333A (ko) 문장예측시스템의 예측단어 선택과 기호입력방법
KR20240056903A (ko) 문자키에 안내 키를 갖는 안구마우스 문장예측시스템

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E801 Decision on dismissal of amendment
A107 Divisional application of patent