KR20140136066A - 스마트 사용자 커스터마이징된 가상 키보드 - Google Patents

스마트 사용자 커스터마이징된 가상 키보드 Download PDF

Info

Publication number
KR20140136066A
KR20140136066A KR1020147031199A KR20147031199A KR20140136066A KR 20140136066 A KR20140136066 A KR 20140136066A KR 1020147031199 A KR1020147031199 A KR 1020147031199A KR 20147031199 A KR20147031199 A KR 20147031199A KR 20140136066 A KR20140136066 A KR 20140136066A
Authority
KR
South Korea
Prior art keywords
key
user
representation
input
keyboard
Prior art date
Application number
KR1020147031199A
Other languages
English (en)
Other versions
KR101602840B1 (ko
Inventor
신청 장
예페이 펭
Original Assignee
구글 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 인코포레이티드 filed Critical 구글 인코포레이티드
Publication of KR20140136066A publication Critical patent/KR20140136066A/ko
Application granted granted Critical
Publication of KR101602840B1 publication Critical patent/KR101602840B1/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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • 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/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
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • G06F3/0418Control or interface arrangements specially adapted for digitisers for error correction or compensation, e.g. based on parallax, calibration or alignment
    • 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]
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • 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
    • 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
    • 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/0489Interaction 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 dedicated keyboard keys or combinations thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

컴퓨팅 디바이스는 사용자 입력들에 근거하여 그래픽 키보드의 속성들을 상기 그래픽 키보드에 자동으로 커스터마이징한다. 예를 들어, 상기 컴퓨팅 디바이스는 입력-감응형 디스플레이의 타겟 영역과 관련된 키의 제 1 표현을 포함하는 제 1 그래픽 키보드 배열을 디스플레잉할 수 있다. 상기 컴퓨팅 디바이스는 복수의 사용자 입력들 - 각각은 상기 입력-감응형 디스플레이의 각각의 터치 영역과 관련됨 - 을 수신한다. 하나 이상의 터치 영역들이 타겟 영역과 실질적으로 정렬되지 않음을 결정한 다음에, 상기 컴퓨팅 디바이스는 상기 키의 제 2 표현을 포함하는 제 2 그래픽 키보드 배열을 디스플레잉하고, 상기 키의 상기 제 2 표현의 적어도 하나의 속성은 터치 영역들 중 하나 이상을 상기 키의 상기 제 2 표현과 관련된 타겟 영역과 실질적으로 정렬하도록 상기 키의 상기 제 1 표현에 대하여 그래픽적으로 수정된다.

Description

스마트 사용자 커스터마이징된 가상 키보드{SMART USER-CUSTOMIZED VIRTUAL KEYBOARD}
본 발명은 컴퓨팅 디바이스들에 의해 제공되는 그래픽 키보드들에 관한 것이다.
사용자는 컴퓨팅 디바이스(예를 들어, 모바일 폰, 테블릿(tablet) 컴퓨터, 스마트 핸드폰, 데스크톱(desktop) 컴퓨터 등) 상에서 실행 어플리케이션들과 인터렉트할 수 있다. 몇몇 예시들에서, 컴퓨팅 디바이스는 사용자로 하여금 상기 컴퓨팅 디바이스와 인터렉트할 수 있게 하는 터치 감응형 디스플레이를 포함할 수 있다. 예를 들어, 컴퓨팅 디바이스 상에서 실행하는 어플리케이션은 터치 감응형 디스플레이로 하여금 그래픽 키보드를 디스플레잉하게 할 수 있으며, 상기 그래픽 키보드는 사용자로 하여금 상기 그래픽 키보드의 특정 영역들을 터칭함으로써 키 누름(press)을 등록할 수 있게 할 수 있다.
그래픽 키보드들의 사용자들 개개인은 여러 가지 타이핑(typing) 스타일들을 가질 수 있다. 이 그래픽 키보드는 사용자가 익숙한 물리적 키보드보다 더 작은 크기일 수 있다. 몇몇 경우에, 사용자 개개인은 그래픽 키보드 상에서 타이핑할 때, 일반적으로 거듭되는 에러들을 만들 수 있다. 예를 들어, 사용자에 의해 터칭되는 그래픽 키보드 상에서 실제 키는 의도된 타겟(target) 키와 다를 수 있다.
일 양상에서, 방법은 컴퓨팅 디바이스의 입력-감응형 디스플레이에서, 상기 입력-감응형 디스플레이의 타겟 영역에 관련된 키의 제 1 표현을 포함하는 제 1 그래픽 키보드 배열을 출력하는 단계 및 상기 입력-감응형 디스플레이에서 복수의 사용자 입력들 - 상기 복수의 사용자 입력들로부터의 각 사용자 입력은 상기 입력-감응형 디스플레이의 각각의 터치 영역과 관련됨 - 을 수신하는 단계를 포함한다. 상기 방법은 또한 상기 복수의 사용자 입력으로부터의 각 사용자 입력이 상기 키에 해당함을 결정함에 응답하여, 상기 관련된 터치 영역들 중 하나 이상이 상기 키의 상기 제 1 표현과 관련된 타겟 영역과 실질적으로 정렬되지 않음을 결정하는 단계를 포함한다. 상기 방법은 또한 상기 타겟 영역과 실질적으로 정렬되지 않는 터치 영역들의 양을 식별하는 단계를 포함하고, 상기 양이 상기 타겟 영역과 실질적으로 정렬되지 않는 터치 영역들의 임계량을 초과함을 결정한 다음으로, 상기 입력-감응형 디스플레이에서, 상기 키의 제 2 표현을 포함하는 제 2 그래픽 키보드 배열을 출력하는 단계를 포함하는데, 상기 키의 상기 제 2 표현의 적어도 하나의 속성은 상기 터치 영역들 중 하나 이상을 상기 키의 상기 제 2 표현과 관련된 타겟 영역과 실질적으로 정렬하도록 상기 키의 상기 제 1 표현에 대하여 그래픽적으로(graphically) 수정된다.
다른 양상에서, 시스템은 적어도 하나의 프로세서, 그래픽 키보드 배열들을 생성하도록 적어도 하나의 프로세서에 의해 동작가능한 키보드 어플리케이션, 및 상기 입력-감응형 디스플레이의 타겟 영역에 관련된 키의 제 1 표현을 포함하는 제 1 그래픽 키보드 배열을 출력하는 상기 입력-감응형 디스플레이를 포함한다. 상기 입력-감응형 디스플레이는 복수의 사용자 입력들 - 사용자 입력은 상기 입력-감응형 디스플레이의 각각의 터치 영역과 관련됨 - 수신하도록 구성되고, 상기 복수의 사용자 입력들은 상기 키보드 어플리케이션 이외의 상기 시스템상에서 실행되는 어플리케이션의 사용자에 의한 사용 동안에 수신된다. 또한, 상기 키보드 어플리케이션은 상기 복수의 사용자 입력들로부터의 각 입력이 상기 키의 상기 제 1 표현과 관련됨을 결정함에 응답하여, 상기 관련된 터치 영역들 중 하나 이상이 상기 키의 상기 제 1 표현과 관련된 상기 타겟 영역과 실질적으로 정렬되지 않는 지를 결정한다. 상기 입력-감응형 디스플레이는 상기 키의 제 2 표현을 포함하는 제 2 그래픽 키보드 배열을 출력하고, 상기 키의 제 2 표현의 적어도 하나의 속성은 상기 터치 영역들 중 하나 이상을 상기 키의 제 2 표현과 관련된 타겟 영역과 실질적으로 정렬하도록 상기 키의 제 1 표현에 대하여 그래픽적으로 수정된다.
다른 양상에서, 컴퓨터-판독 가능 저장 매체는 컴퓨팅 시스템의 하나 이상의 프로세서들에 의해 실행되는 경우 상기 컴퓨팅 시스템으로 하여금 동작들을 수행하도록 하는 명령어들을 포함하고, 상기 동작들은 디스플레이를 위한 제 1 그래픽 키보드 배열 - 상기 제 1 그래픽 키보드 배열은 입력-감응형 디스플레이의 타겟 영역에 관련된 키의 제 1 표현을 포함 - 을 출력하는 동작, 복수의 사용자 입력들-상기 복수의 사용자 입력들로부터의 각 사용자 입력은 상기 입력 - 감응형 디스플레이의 각각의 터치 영역에 관련됨 - 을 나타내는 데이터를 수신하는 동작, 및 상기 복수의 사용자 입력들로부터의 각 사용자 입력이 상기 키의 상기 제 1 표현과 관련됨을 결정함에 응답하여, 상기 관련된 터치 영역들 중 하나 이상이 상기 키의 제 1 표현과 관련된 상기 타겟 영역과 실질적으로 정렬되지 않는 지를 결정하는 동작을 포함한다. 상기 동작들은 또한 상기 터치 영역들 중 하나 이상이 상기 키의 상기 제 1 표현과 관련된 상기 타겟 영역과 실질적으로 정렬되지 않음을 결정한 다음으로, 디스플레이를 위해 상기 키의 제 2 표현을 포함하는 제 2 그래픽 키보드 배열을 출력하는 것을 포함하고, 상기 키의 제 2 표현의 적어도 하나의 속성은 상기 터치 영역들 중 하나 이상을 상기 키의 상기 제 2 표현과 관련된 타겟 영역과 실질적으로 정렬되로록 상기 키의 제 1 표현에 대하여 그래픽적으로 수정된다.
첨부된 도면들과 하기의 설명에서 하나 이상의 예들의 세부 사항이 제시된다. 다른 특징들, 목적들, 및 이점들은 설명과 도면들로부터 및 청구항들로부터 자명할 것이다.
도 1은 키보드 어플리케이션을 실행하도록 구성된 컴퓨팅 디바이스의 예를 나타내는 개념도이다.
도 2는 도 1에 도시된 컴퓨팅 디바이스의 예의 세부사항을 나타내는 블럭도이다.
도 3은 키보드 어플리케이션의 예를 나타내는 개념도이다.
도 4a 내지 4d는 그래픽 키보드의 예시적인 부분들을 나타내는 블럭도들이다.
도 5는 그래픽 키보드상에서 키의 표현과 관련된 사용자 입력들의 예시적인 분포 예를 나타내는 개념도이다.
도 6은 키보드 어플리케이션을 실행하도록 구성된 컴퓨팅 디바이스의 예시적인 동작을 나타내는 흐름도이다.
일반적으로, 본 발명은 컴퓨팅 디바이스 상에서 그래픽 키보드의 속성들을 커스터마이징하는 것에 관한 것이다. 예를 들어, 컴퓨팅 디바이스가 키보드 어플리케이션을 실행하거나 그렇지 않으면, 키보드 어플리케이션을 구현할 수 있는데, 상기 키보드 어플리케이션은 사용자의 그래픽 키보드의 사용으로부터 수집된 데이터에 근거하여 그래픽 키보드의 배열을 자동으로 커스터마이징하고, 사용자에게 커스터마이징된 그래픽 키보드를 제시한다. 그래픽 키보드는, 예를 들어, 컴퓨팅 디바이스의 입력-감응형 디스플레이 상에 제시될 수 있다.
예시적인 양상에서, 키보드 어플리케이션은 그래픽 키보드를 커스터마이징하기 위해 사용자에게 트레이닝 프로그램을 제시할 수 있다. 예를 들어, 트레이닝 프로그램은 컴퓨팅 디바이스의 디폴트 그래픽 키보드의 초기 사용시에 따라 사용자에게 제시될 수 있다. 하나의 예시적인 양상에 따르면, 트레이닝 프로그램은 디스플레이에 의해 샘플 트레이이닝 텍스트를 사용자에게 제시할 수 있으며, 상기 사용자가 디폴트 그래픽 키보드를 사용하여 트레이닝 텍스트를 타이핑하도록 지시받을 수 있다. 상기 키보드 어플리케이션은 사용자가 트레이닝 텍스트를 타이핑할 때 발생하는 사용자에 의한 오타의 사례들을 기록한다. 키보드 어플리케이션은 잘못 이용된 키 누름들로부터 발생하지 않은 다른 타입의 실수들-철자가 틀린 단어 또는 키들 상에서 손가락들의 변위-을 무시하도록 구성될 수 있다.
다른 예시적인 양상에서, 트레이닝 프로그램 모드에 추가하여 또는 대신에, 키보드 어플리케이션은 지속적인 키보드 학습 모드(learning mode)에서 동작할 수 있다. 지속적인 키보드 학습 모드에서, 키보드 어플리케이션은 사용자가 컴퓨팅 디바이스를 사용하고 있는 동안에 백그라운드에서 실행될 수 있으며, 컴퓨팅 디바이스의 다른 어플리케이션들과 관련된 사용자의 타이핑에 근거하여 데이터를 모은다.
몇몇 양상들에서, 그래픽 키보드 상에 나타나는 각 키의 경우, 키보드 어플리케이션은 사용자가 입력-감응형 표면에 입력한 정확한 위치들을 로그(log)할 수 있고, 각 키와 관련된 영역 내의 터치들의 위치들의 분포를 시간이 지나면서 발전시킬 수 있다. 몇몇 예들에서, 키보드 어플리케이션은 사용자의 그래픽 키보드의 사용으로부터 수집된 데이터에 근거하여 그래픽 키보드를 자동으로 커스터마이징하고, 커스터마이징된 그래픽 키보드를 사용자에게 제시한다. 키보드 어플리케이션은 터치 영역들과 타겟 영역을 비교할 수 있고, 예를 들어, 터치들의 최대량과 관련된 부분이 키의 내부 터치 영역의 외부에 위치하고, 터치들의 양이 임계값을 초과할 때 그래픽 키보드를 수정(또는 사용자에게 수정 제안)할 수 있다. 키보드 어플리케이션은, 예를 들어, 그래픽 키보드 상에서 키들의 모양, 크기, 및 상대 위치를 수정할 수 있다.
이러한 방식으로 그래픽 키보드를 사용자 개개인의 타이핑 습관들에 커스터마이징하는 것은, 예를 들어, 사용자에 의해 생성된 에러들 및 정정들의 양을 감소시킴으로써, 그래픽 키보드를 사용할 때 사용자의 경험의 질을 향상시키는데 도움이 될 수 있다. 키보드 어플리케이션은 커스터마이징된 그래픽 키보드 레이아웃을 사용자 로그인에 관련시킴으로써 컴퓨팅 디바이스의 다수의 사용자가 서로 다른 커스터마이징된 그래픽 키보드를 각각 가지게 할 수 있다.
도 1은 키보드 어플리케이션을 실행하도록 구성된 컴퓨팅 디바이스의 예를 나타내는 개념도이다. 도 1에서 도시된 바와 같이, 컴퓨팅 디바이스(2)는 입력 디바이스(4)와 출력 디바이스(6)을 포함할 수 있다. 컴퓨팅 디바이스(2)는 출력 디바이스(6)로 하여금 그래픽 키보드(10)를 디스플레잉하게 할 수 있는 키보드 어플리케이션(8)을 실행하도록 구성될 수 있다. 키보드 어플리케이션(8)은 그래픽 키보드 배열들을 생성하기 위해 컴퓨팅 디바이스(2)를 포함하는 컴퓨팅 시스템의 적어도 하나의 프로세서에 의해 동작될 수 있다. 컴퓨팅 디바이스(2)의 예들은 휴대용 또는 모바일 디바이스들, 예를 들어, 핸드폰들, 태블릿 컴퓨터들, PDA(personal digital assistance)들, 휴대용 게임 디바이스들, 휴대용 미디어 플레이어들, 및 전자책(e-book) 판독기들, 뿐만 아니라 데스크톱 컴퓨터들과 같은 비-휴대용 디바이스들을 포함할 수 있지만, 이에 한정되지 않는다.
몇몇 예들에서, 입력 디바이스(4)는 촉감, 오디오, 또는 비디오 피드백을 통해 사용자로부터 입력을 수신하도록 구성된다. 입력 디바이스(4)의 예들은 입력-감응형 디스플레이, 예들 들어, 터치-감응형 및/또는 프리젠스-감응형 스크린, 마우스, 키보드, 음성 반응 시스템, 또는 사용자로부터 명령어(command)를 검출하는 임의의 다른 타입의 디바이스를 포함할 수 있다. 몇몇 예들에서, 입력 디바이스(4)는 터치-감응형 디스플레이, 마우스, 키보드, 마이크, 또는 비디오 카메라를 포함할 수 있다.
특정 예들에서, 출력 디바이스(6)는 촉감, 오디오, 또는 비디오 자극을 사용하여 출력을 사용자에게 제공하도록 구성될 수 있다. 일 예에서, 출력 디바이스(6)는 입력-감응형 디스플레이(예를 들어, 터치-감응형 디스플레이 또는 프리젠스-감응형 디스플레이), 사운드 카드, 비디오 그래픽 어댑터(adapter) 카드, 또는 신호를 사람 또는 기계들에게 이해가능한 적절한 폼으로 전환하는 임의의 다른 타입의 디스플레이를 포함한다. 출력 디바이스(6)의 추가적인 예들은 스피커, 음극선관(CRT) 모니터, 액정 디스플레이(LCD), 유기 발광 다이오드(OLED), 또는 사용자에게 알기 쉬운 출력을 생성할 수 있는 임의의 다른 타입의 디바이스를 포함할 수 있다. 출력 디바이스(6)는 컴퓨팅 디바이스(2)의 컨텐츠를 사용자에게 제시할 수 있다. 예를 들어, 출력 디바이스(6)는 웹 브라우저 또는 사용자에게 제시될 필요가 있을 수 있는 다른 출력을 제시할 수 있다. 몇몇 예들에서, 출력 디바이스(6)는 사용자로 하여금 컴퓨팅 디바이스(2)와 인터렉팅하도록 하나 이상의 사용자 입력들을 제공하게 할 수 있는 터치 스크린일 수 있다.
컴퓨팅 디바이스(2) 상에서 실행되는 키보드 어플리케이션(8)은 출력 디바이스(6)(예를 들어, 터치-감응형 디스플레이)로 하여금 그래픽 키보드(10)를 디스플레잉하도록 하기 위해 하나 이상의 신호들을 제공할 수 있다. 몇몇 예들에서, 사용자는 컴퓨팅 디바이스(2)로 하여금 그래픽 키보드(10)의 문자 키를 디스플레잉하는 출력 디바이스(6)의 영역을 터칭함으로써 그래픽 키보드(10)의 상기 하나 이상의 문자 키들을 선택하도록 하기 위해 사용자 입력을 제공할 수 있다. 예를 들어, 사용자는 그래픽 키보드(10)의 디스플레잉된 문자 키, 예를 들어, 문자 키(9)에서 탭(tap) 제스처를 수행할 수 있다. 이 탭 제스처는 디스플레잉된 문자 키를 터칭하는 것과 상기 문자 키를 릴리징(releasing)하는 것을 포함할 수 있다.
몇몇 예들에서, 출력 디바이스(6)가 프리젠스-감응형 디스플레이를 포함할 때와 마찬가지로, 출력 디바이스(6)를 터칭하는 것은 출력 디바이스(6)로 하여금 입력 디바이스의 프리젠스를 검출할 수 있도록 하기에 충분히 가까운 출력 디바이스의 접근 내에 손가락, 스타일러스, 펜, 등과 같은 입력 디바이스를 가져옴으로써 달성될 수 있다. 이와 같이, 몇몇 예들에서, 그래픽 키보드(10)의 디스플레잉된 문자 키를 터칭하는 것은 입력 디바이스와 그래픽 키보드(10) 사이의 실제 물리적 접촉을 포함할 수 없다. 유사하게, 특정 예들에서, 출력 디바이스(6)가 프리젠스-감응형 디스플레이를 포함할 때와 마찬가지로, 그래픽 키보드(10)의 디스플래잉된 문자 키를 릴리징하는 것은 출력 디바이스(6)의 검출가능한 범위로부터 입력 디바이스를 제거함으로써 달성될 수 있다.
예시적인 양상에서, 키보드 어플리케이션(8)은 그래픽 키보드(10)을 커스터마이징하기 위해 사용자에게 트레이닝 프로그램을 제시할 수 있다. 예를 들어, 트레이닝 프로그램은 컴퓨팅 디바이스(2)의 디폴트 그래픽 키보드의 초기 사용시 사용자에게 제시될 수 있다. 일 예시적 양상에 따르면, 트레이닝 프로그램은 (예를 들어, 출력 디바이스(6)에 의해 제시된)디스플레이에 의해 사용자에게 샘플 트레이닝 텍스트를 제시할 수 있으며, 상기 사용자는 디폴트 그래픽 키보드 배열을 사용하여 미리 정의된 일련의 문자들을 타이핑하게 될 수 있다. 키보드 어플리케이션(8)의 트레이닝 프로그램에 의해 제시된 샘플 트레이닝 텍스트는 다양한 문자들을 포함할 수 있고, 각 문자가 여러번 나타나도록 그리고 문자들의 순서가 변하도록 선택될 수 있다.
키보드 어플리케이션(8)은 사용자가 트레이닝 텍스트를 타이핑할 때 일어나는 사용자에 의한 오타의 사례들을 기록할 수 있다. 예를 들어, 키보드 어플리케이션(8)은 터치-감응형 디스플레이 상에 키 누름들을 등록할 수 있고, 상기 키 누름들과 관련된 터치 영역이 타겟 키와 관련된 터치-감응형 디스플레이의 타겟 영역에 실질적으로 정렬되지 않는 때를 결정할 수 있다. 키보드 어플리케이션(8)은 사용자 입력들의 순서와 트레이닝 프로그램에 의해 제시된 미리 정해진 일련의 문자들의 순서의 비교에 근거하여 사용자 입력이 키에 대한 어떤 타겟 영역에 관련되는 지를 결정할 수 있다. 키보드 어플리케이션(8)은 사용자가 특정 실수들이 의도된 타겟 키를 놓치고 대신에 그래픽 키보드(10)의 가까운 영역을 눌렀기 때문인지를 결정할 수 있다. 키보드 어플리케이션(8)은 잘못 이용된 키 누름들에 기인하지 않는 철자가 틀린 단어들과 같은 다른 타입의 실수들을 무시하도록 구성될 수 있다.
몇몇 양상들에서, 그래픽 키보드(10) 상에 나타난 각 키의 경우, 키보드 어플리케이션(8)은 사용자가 터치-감응형 표면상에 터칭한 정확한 위치들을 기록하고, 각 키와 관련된 영역 내의 터치들의 위치들의 분포를 시간이 지남에 따라 발전시킬 수 있다. 일 예시적인 양상에서, 위치 분포의 최대점이 키와 관련된 특정 내부 영역의 밖에 위치될 때, 및 상기 최대점의 값이 임계값 초과일때, 키보드 어플리케이션(8)은 최대점의 위치, 즉, 사용자가 실제로 키를 누르는 곳에 더 잘 정렬되도록 키의 경계선을 움직일 것을 제안할 수 있다. 예를 들어, 키보드 어플리케이션(8)은 위치 분포의 최대점이 임계값을 초과하고 키와 관련된 현 중앙 영역(current center area)으로부터 떨어져 적어도 일정 거리에 위치할 때 특정 키에 대한 키 경계선을 움직일 수 있다. 예를 들어, 키보드 어플리케이션(8)은 그래픽 키보드(10) 상에서 키들의 모양, 크기, 및 상대 위치와 같은 그래픽 키보드(10)의 속성들을 변경할 수 있다.
다른 예시적인 양상에서, 트레이닝 프로그램 모드에 추가로 또는 대신에, 키보드 어플리케이션(8)은 지속적인 키보드 학습 모드에서 동작할 수 있다. 지속적인 키보드 학습 모드에서, 키보드 어플리케이션(8)은 사용자가 컴퓨팅 디바이스(2)를 사용하는 동안 백그라운드(background)에서 실행되며, 컴퓨팅 디바이스(2)의 다른 어플리케이션들(미도시)와 관련된 사용자의 타이핑에 근거하여 데이터를 모은다. 상기에 기술된 바와 같이, 키보드 어플리케이션(8)은 키 터치 위치 분포 데이터를 모을 수 있다. 다른 예와 같이, 키보드 어플리케이션(8)은 사용자가 되돌아가서 그들의 타이핑을 정정한 사례들에 근거한 것과 같은 사용자가 타이핑 실수들을 만들 수 있는 곳을 학습할 수 있다.
예를 들어, 키보드 어플리케이션(8)은 새롭게 제안된 그래픽 키보드 레이아웃을 보여주는 디스플레이를 사용자에게 가끔 제시함으로써, 사용자로 하여금 새로운 그래픽 키보드 레이아웃을 사용하기 위해 또는 현 레이아웃에 머무르기 위해 선출되도록 할 수 있다. 키보드 어플리케이션(8)은 이전의 그래픽 키보드 배열과 새로운 그래픽 키보드를 동시에 출력할 수 있어서, 사용자는 제안된 변화들을 볼 수 있으며 요망하는 배열을 선택할 수 있다. 키보드 어플리케이션(8)은 미래 사용을 위해 첫 번째 그래픽 키보드 배열 및 두 번째 그래픽 키보드 중 하나의 사용자 선택을 요청할 수 있다. 새로운 그래픽 키보드 배열은 첫 번째 그래픽 키보드 배열과는 상이한 전체 크기 및 모양을 가질 수 있으며, 여기서 두 번째 그래픽 키보드 배열의 전체 크기 및 모양은 터치 영역들 중 하나 이상이 키의 두 번째 표현(representation)과 관련된 타겟 영역에 실질적으로 정렬되도록 키보드 어플리케이션(8)에 의해 선택된다. 키보드 어플리케이션(8)은 또한, 예를 들어, 미래 사용을 위해 첫 번째 그래픽 키보드 배열의 키들의 하나 이상의 표시들의 속성들의 하나 이상의 수정들의 사용자 선택을 요청(solicit)함으로써, 사용자에게 키 별(key-by-key) 방식으로 키 레이아웃 변경을 수락, 거절, 또는 수정하기 위한 옵션을 제공할 수 있다. 예를 들어, 사용자는 키를 움직이거나 키보드의 크기를 조절함으로써 제안된 레이아웃을 변경하기 위한 옵션들을 가질 수 있다. 몇몇 예들에서, 키보드 어플리케이션(8)은 사용자 승인 요청 없이 그래픽 키보드(10)의 레이아웃을 자동으로 변경할 수 있다. 이러한 방식으로, 본 발명의 기법들은 컴퓨팅 디바이스로 하여금 사용자에게 사용자의 특정 타이핑 스타일에 맞는 커스터마이징된 그래픽 키보드를 제공하도록 할 수 있다.
키보드 어플리케이션(8)은 커스터마이징된 그래픽 키보드 레이아웃을 사용자 로그인과 관련시켜, 컴퓨팅 디바이스의 다수의 사용자들로 하여금 서로 다른 커스터마이징된 그래픽 키보드를 각각 사용하도록 할 수 있다. 사용자는 예를 들어, 백그라운드 태스크로서 키보드 커스텀화(customization) 어플리케이션의 실행을 중단하도록 디스플레이 상에 표시된 옵션을 선택함으로써 지속적인 키보드 학습 모드를 턴오프할 수 있게 할 수 있다. 키보드 어플리케이션(8)은 예를 들어, 컴퓨팅 디바이스(2) 상에서 실행되는 다운로드가능한 또는 미리-설치된 어플리케이션일 수 있다. 다른 예에서, 키보드 어플리케이션(8)은 컴퓨팅 디바이스의 하드웨어 유닛의 부분일 수 있다.
도 2는 도 1에서 도시된 컴퓨팅 디바이스의 일 예의 더 자세한 사항들을 나타내는 블럭도이다. 도 2는 컴퓨팅 디바이스(2)의 한 특정 예만을 나타내며, 컴퓨팅 디바이스(2)의 많은 다른 예시적인 실시예들은 다른 사례들에서 사용될 수 있다. 도 2의 구체적인 예에 도시된 바와 같이, 컴퓨팅 디바이스(2)는 입력 디바이스(4), 출력 디바이스(6), 하나 이상의 어플리케이션들(19), 하나 이상의 프로세서들(20), 하나 이상의 저장 디바이스들(26), 및 네트워크 인터페이스(24)를 포함한다. 또한, 컴퓨팅 디바이스(2)는 컴퓨팅 디바이스(2)에 의해 실행가능한 모듈들을 포함할 수 있는 운영 체제(16)를 포함한다. 일 예에서, 컴퓨팅 디바이스(2)는 컴퓨팅 디바이스(2)에 의해 또한 실행가능한 키보드 어플리케이션(8)을 더 포함한다. 키보드 어플리케이션(8)은 제스처 결정 모듈(12), 트레이닝 모듈(14), 및 키보드 커스텀화 모듈(18)을 포함한다. 컴포넌트(4, 6, 8, 12, 14, 18, 20, 24 및 26)의 각각은 컴포넌트간 통신(inter-componenet communication)을 위해 (물리적으로, 통신적으로, 및/또는 작용적으로)서로 연결될 수 있다. 몇몇 예들에서, 통신 체널(22)들은 시스템 버스, 네트워크 연결, 프로세스간 통신 데이터 구조, 또는 데이터를 통신하기 위한 임의의 다른 채널을 포함할 수 있다. 도 2의 일 예와 같이, 컴포넌트(4, 6, 20, 24, 및 26)들은 하나 이상의 통신 채널(22)들에 의해 연결될 수 있다.
컴퓨팅 디바이스(2)는 명확성을 위해 도 2에 도시되지 않은 추가적인 컴포넌트들을 포함할 수 있다. 예를 들어, 컴퓨팅 디바이스(2)는 전력을 컴퓨팅 디바이스(2)의 컴포넌트들에게 제공하는 배터리를 포함할 수 있다. 유사하게, 도 2에 도시된 컴퓨팅 디바이스(2)의 컴포넌트들은 컴퓨팅 디바이스(2)의 모든 예들에서 반드시 필요한 것은 아닐 수 있다. 예를 들어, 컴퓨팅 디바이스(2)는 모든 예들에서 네트워크 인터페이스(24)를 포함하지 않을 수 있다.
비록 도 2에서 개별 컴포넌트들로서 도시되어 있을지라도, 몇몇 예들에서, 키보드 어플리케이션(8), 제스처 결정 모듈(12), 트레이닝 모듈(14), 및 키보드 커스텀화 모듈(18) 중 하나 이상은 동일한 모듈의 부분일 수 있다. 몇몇 예들에서, 키보드 어플리케이션(8), 제스처 결정 모듈(12), 트레이닝 모듈(14), 키보드 커스텀화 모듈(18), 및 하나 이상의 프로세서들(20) 중 하나 이상은 공통 하드웨어 유닛에서 형성될 수 있다. 특정 예들에서, 키보드 어플리케이션(8), 제스처 결정 모듈(12), 트레이닝 모듈(14), 및 키보드 커스텀화 모듈(18) 중 하나 이상은 하나 이상의 프로세서(20)들 상에서 실행되는 또는 하나 이상의 프로세서(20)들에 의해 동작가능한 소프트웨어 및/또는 펌웨어일 수 있다.
특정 예들에서, 하나 이상의 프로세서(20)들은 마이크로프로세서, 제어기, DSP(digital signal processor), ASIC(application specific integrated circuit), FPGA(field-programmable gate array), 또는 등가의 이산 또는 집적 논리 회로 중 임의의 하나 이상을 포함할 수 있다. 하나 이상의 프로세서(20)들은 컴퓨팅 디바이스(2) 내에서 실행을 위한 기능성을 구현 및/또는 명령어들을 프로세싱하도록 구성될 수 있다. 예를 들어, 하나 이상의 프로세서(20)들은 하나 이상의 저장 디바이스(26)들에서 저장된 명령어들을 프로세싱할 수 있게 할 수 있다.
일 예에서, 하나 이상의 저장 디바이스(26)들은 동작 동안에 컴퓨팅 디바이스(2) 내의 정보를 저장하도록 구성된다. 몇몇 예들에서, 저장 디바이스(26)는 컴퓨터-판독가능 저장 매체로 기술된다. 몇몇 예들에서, 저장 디바이스(46)는 일시성 메모리로서, 저장 디바이스(46)의 주된 목적이 장기 저장이 아니라는 것을 의미한다. 몇몇 실시예에서, 저장 디바이스(46)는 휘발성 메모리로 기술되며, 컴퓨터가 턴오프될 때 저장된 컨텐츠를 유지하지 않는다는 것을 의미한다. 휘발성 메모리들의 예들은 RAM(random access memories), DRAM(dynamic random aceess memories), SRAM(static random access memories), 및 본 기술 분야에서 알려진 휘발성 메모리들의 다른 형태들을 포함한다. 몇몇 예들에서, 저장 디바이스(46)는 하나 이상의 프로세서(20)들에 의한 실행을 위해 프로그램 명령어들을 저장하는데 사용된다. 일 예에서, 저장 디바이스(26)는 프로그램 실행 동안에 정보를 임시로 저장하기 위해 컴퓨팅 디바이스(2) 상에서 동작하는 소프트웨어 또는 어플리케이션에(예를 들어, 키보드 어플리케이션(8)) 의해 사용된다.
몇몇 예들에서, 하나 이상의 저장 디바이스(26)들은 또한 하나 이상의 컴퓨터-판독가능 저장 매체를 포함한다. 하나 이상의 저장 디바이스(26)들은 휘발성 메모리보다 더 많은 양의 정보를 저장하도록 구성될 수 있다. 하나 이상의 저장 디바이스(26)들은 더욱이 정보의 장기 저장을 위해 구성될 수 있다. 몇몇 예들에서, 하나 이상의 저장 디바이스(26)들은 비-휘발성 저장 요소들을 포함한다. 이러한 비-휘발성 저장 요소들의 예들은 하드 디스크들, 광 디스크들, 플로피 디스크들, 플래시 메모리들, 또는 EPROM(electrically programmable memories) 또는 EEPROM(electrically erasable and programmable memories)의 형태들을 포함한다.
도 2에 도시된 바와 같이, 저장 디바이스(26)들은 사용자 설정(28)들, 트래이닝 프로그램(30)들, 키 영역(32)들, 임계값(34)들, 및 터치 데이터(36)를 포함한다. 사용자 설정(28)들, 트레이닝 프로그램(30)들, 키 영역(32)들, 임계값(34)들 및 터치 데이터(36)는 각각 데이터베이스, 플랫 파일(flat file), 테이블, 트리(tree), 또는 컴퓨팅 디바이스의 저장 디바이스(26)들 내에 저장된 다른 데이터 구조로서 구성될 수 있다. 몇몇 예들에서, 사용자 설정(28), 트레이닝 프로그램(30)들, 키 영역(32)들, 임계값(34)들 및 터치 데이터(36)는 별도의 데이터 저장소로서 구성될 수 있는 반면에, 다른 예들에서 그들은 단일 데이터 저장소의 일 부분일 수 있다.
도 2의 예에서, 컴퓨팅 디바이스(2)는 네트워크 인터페이스(24)를 포함한다. 일 예에서, 컴퓨팅 디바이스(2)는 하나 이상의 네트워크들, 예를 들어, 하나 이상의 무선 네트워크들을 통해 외부 기기와 통신하기 위해 네트워크 인터페이스(24)를 사용한다. 네트워크 인터페이스(24)는 이더넷 카드(Ethernet card), 광 송수신기, 무선 주파수 송수신기, 또는 정보를 송신하고 수신할 수 있는 디바이스의 다른 타입과 같은 네트워크 인터페이스 카드일 수 있다. 이러한 네트워크 인터페이스들의 다른 예들은 모바일 컴퓨팅 디바이스들의 블루투스(Bluetooth), 3G, 및 WiFi 무선 장치들뿐만 아니라 USB를 포함할 수 있다. 몇몇 예들에서, 컴퓨팅 디바이스(2)는 서버, 모바일 폰, 또는 다른 네트워킹된 컴퓨팅 디바이스와 같은 외부 기기(미도시)와 무선으로 통신하기 위해 네트워크 인터페이스(24)를 사용한다.
컴퓨팅 디바이스(2)는 운영 체제(16)를 포함할 수 있다. 몇몇 예들에서, 운영 체제(16)는 컴퓨팅 디바이스(2)의 컴포넌트들의 동작을 제어한다. 예를 들어, 일 예에서, 운영 체제(16)는 프로세서(20)들, 네트워크 인터페이스(24), 저장 디바이스(26), 입력 디바이스(4), 및 출력(6)과 키보드 어플리케이션(8)의 인터렉션(interaction)을 용이하게 한다.
컴퓨팅 디바이스(2)는 컴퓨팅 디바이스(2), 예를 들어, 하나 이상의 프로세서(20)들에 의해 실행가능한 키보드 어플리케이션(8)을 포함한다. 도 2에서 도시된 바와 같이, 키보드 어플리케이션(8)은 제스처 결정 모듈(12), 트레이닝 모듈(14), 및 키보드 커스텀화 모듈(18)을 포함할 수 있다. 키보드 어플리케이션(8)을 포함하는 어플리케이션(19)들은 컴퓨팅 디바이스(2)에 의해 실행 가능한 프로그램 명령어 및/또는 데이터를 각각 포함할 수 있다. 예를 들어, 제스처 결정 모듈(12), 트레이닝 모듈(14), 및 키보드 커스텀화 모듈(18)은 컴퓨팅 디바이스(2) 상에서 실행되는 키보드 어플리케이션(8)로 하여금 본 발명에서 기술된 하나 이상의 동작들 및 행위(action)들을 수행하도록 하는 명령어들을 포함할 수 있다. 제스처 결정 모듈(12)는 예를 들어, 입력 디바이스(4) 또는 출력 디바이스(6)(예를 들어, 터치 감응형 디스플레이)로부터 하나 이상의 입력들을 수신할 수 있고, 하나 이상의 입력들이 제스처를 구성하는 것을 결정할 수 있다. 제스처들의 예들은 탭 제스처들, 슬라이딩 제스처들, 원형(circular) 제스처들, 등을 포함할 수 있지만 이에 한정되지 않는다.
일 예로서, 하나 이상의 프로세서(20)들 상에서 실행되는 키보드 어플리케이션(8)은 출력 디바이스(6)과 같은 컴퓨팅 디바이스(2)의 터치-감응형 디스플레이로 하여금 그래픽 키보드를 디스플레잉하도록 할 수 있다. 제스처 결정 모듈(12)은 그래픽 키보드의 디스플레잉된 문자가 예를 들어, 손가락, 스타일러스, 펜, 등으로 터칭된 것을 나타내는 출력 디바이스(6)로부터 입력을 수신할 수 있다. 제스처 결정 모듈(12)은 선택된 문자가 릴리징되었을 때 탭 제스처가 수행됨을 결정할 수 있다. 다른 예로서, 디스플레잉된 문자가 터칭된 것을 표시하는 출력 디바이스(6)으로부터 입력을 수신한 후에, 제스처 결정 모듈(12)은 출력 디바이스(6)와 접촉을 유지하면서 선택된 문자가 입력 디바이스를 선택된 문자에서 멀리 슬라이딩함으로써 릴리징될 때 슬라이딩 제스처가 수행됨을 결정할 수 있다.
몇몇 예시적인 양상들에서, 컴퓨팅 디바이스(2)는 트레이닝 프로그램 모드에 따라 동작할 수 있다. 트레이닝 프로그램 모드에서, 트레이닝 모듈(14)은 사용자에게 디스플레잉하기 위해 트레이닝 텍스트의 블럭을 출력 디바이스(6)에 제공하도록 트레이닝 프로그램(30)들 중 하나의 트레이닝 프로그램을 실행할 수 있다. 트레이닝 모듈(14)은 예를 들어, 컴퓨팅 디바이스(2)의 사용자에 의해 그래픽 키보드의 초기 사용시 트레이닝 프로그램(30)을 동작시킬 수 있다. 트레이닝 프로그램(30)은 다양한 샘플 트레이닝 텍스트들을 포함할 수 있다. 트레이닝 텍스트들은 그래픽 키보드(10) 상의 문자들에 해당하는 글자들, 숫자들, 및 다른 심볼들을 포함하는 일련의 문자들을 제공할 수 있다. 트레이닝 텍스트들은 각 문자가 적어도 한 번 또는 여러 번 나타나는 것을 보장하도록 선택될 수 있다. 예를 들어, 트레이닝 텍스트들은 공통 단어들, 공통 문자 조합(combination)들, 및/또는 다양한 상이한 문자 조합들을 포함하도록 선택될 수 있다.
제스처 결정 모듈(12)은 사용자에 의한 터치-감응형 디스플레이 상의 키 누름들을 등록하고, 각 키 누름과 관련된 터치 영역을 결정할 수 있다. 제스처 결정 모듈(12)은 손가락, 스타일러스와 같은 입력 유닛 또는 다른 입력 유닛과 접촉하는 터치-감응형 디스플레이(예를 들어, 출력 디바스(6))의 일 부분과 관련된 터치 영역을 결정할 수 있다. 몇몇 예들에서, 출력 디바이스(6)는 입력 유닛과 출력 디바이스(6) 사이의 접촉 면적(area)의 반경을 표시할 수 있다. 예를 들어, 상기 접촉 면적은 터치-감응형 디스플레이의 검출된 커패시턴스가 입력 유닛(예를 들어, 손가락)의 표면적에 즉각적으로 변하는 터치-감응형 디스플레이의 면적일 수 있다. 이러한 예들에서, 제스처 결정 모듈(12)은 출력 디바이스(6)에 의해 표시되는 반경을 이용하여 입력 유닛과 접촉하는 출력 디바이스(6)의 부분의 터치 영역을 결정할 수 있다. 특정 예들에서, 출력 디바이스(6)는 입력 유닛과 접촉하는 출력 디바이스(6)의 알려진 면적의 많은 픽셀(pixel)들의 수 또는 다른 유닛들의 수를 나타낼 수 있다. 제스처 결정 모듈(12)은 알려진 면적의 유닛의 수에 근거하여 추정에 의해 입력 유닛과 접촉하는 출력 디바이스(6)의 부분의 중심(center)을 결정할 수 있다.
몇몇 예들에서, 제스처 결정 모듈(12)은 다수의 제스처들이 동시에 수행되고 있음을 나타낼 수 있다. 예를 들어, 사용자는 다수의 디스플레잉된 문자들을 동시에 터칭 또는 릴리징하는 것을 제공할 수 있다. 이러한 예들에서, 제스처 결정 모듈(12)은 다수의 제스처들을 개별적으로 트래킹(track)할 수 있으며, 키보드 커스텀화 모듈(18)은 각각의 제스처를 위한 결정을 할 수 있다.
키보드 커스텀화 모듈(18)은 각각의 사용자 입력이 키와 관련된다는 것, 즉, 사용자 입력이 그래픽 키보드 상에서 키의 표현(representation)과 접촉을 위해 의도됨을 결정한다. 하기에 더 자세히 기술된 바와 같이, 키보드 커스텀화 모듈(18)은 터치 영역들과 디스플레이 상에서 키의 표현과 관련된 예상 타겟 영역들을 비교하여, 특정 터치 영역 및 관련된 타겟 영역이 실질적으로 정렬되는 지를 결정할 수 있다.
트레이닝 프로그램 모드의 예에서, 키보드 커스텀화 모듈(18)은 트레이닝 모듈(14)로부터의 예상 타겟 영역들 및 키 영역(32)들을 얻는다. 키 영역(32)들은 그래픽 키보드 상에서 타겟 영역들의 경계들을 지정하는 데이터를 저장할 수 있다. 키보드 커스텀화 모듈(18)은 사용자가 누르려고 정했던 키가 어떤 키 인지를 결정할 수 있고, 키 영역(32)들로부터 이러한 키의 키 경계를 얻는다. 예를 들어, 트레이닝 텍스트의 키 문자들의 예상 순서는 트레이닝 모듈(14)로부터 키보드 커스텀화 모듈(18)에 의해 알려질 수 있고, 키보드 커스텀화 모듈(18)은 이것을 제스처 결정 모듈(12)에 의해 등록된 사용자 입력들의 순서 및 아이덴티티(identity)와 비교할 수 있다. 키보드 커스텀화 모듈(18)은 잘못 이용된 키 누름들, 예를 들어, 철자 에러들 또는 변위된 손가락들에 관련되지 않은 외부 타이핑 실수들을 확인하도록 구성된다. 예를 들어, 키보드 커스텀화 모듈(18)은 잘못 이용된 키 누름이 의도되는 키와 매우 가까이에 위치될 수 있는 한편, 철자 에러와 관련된 키 누름이 의도되는 키로부터 더 멀리 위치될 수 있다는 것을 주목할 수 있다. 다른 예로서, 키보드 커스텀화 모듈(18)은 사용자의 손가락들이 사용자의 인지 없이 원래의 위치로부터 약간 드리프팅(drift)할 때 일어날 수 있는 것과 같은, 그래픽 키보드 상에서의 사용자의 손가락의 변위로 인한 에러들을 인식하고 수정할 수 있다. 키보드 커스텀화 모듈(18)은 터치영역들과 그래픽 키보드의 예상 타겟 영역들을 비교할 때 외부 타이핑 실수들 또는 손가락 변위를 무시할 수 있다.
몇몇 예시적인 양상들에서, 컴퓨팅 디바이스(2)의 키보드 커스텀화 모듈(18)은 그래픽 키보드에 있어서의 수정들이 사용자를 위해 제안될 수 있는지를 결정하기 위해 지속적인 학습 모드에서 동작할 수 있다. 컴퓨팅 디바이스(2)는 상기에 기술된 바와 같은 트레이닝 프로그램 모드에 대안적으로 또는 추가적으로 지속적인 학습 모드에 따라 동작할 수 있다. 상기 지속적인 학습 모드에서, 키보드 커스텀화 모듈(18)은 사용자가 컴퓨팅 디바이스(2)를 이용하는 동안에 백그라운드 태스크로써 실행될 수 있다. 예를 들어, 사용자는 컴퓨팅 디바이스(2)의 운영 체제(16) 상에서 실행되는 하나 이상의 다른 어플리케이션(들)(19)을 이용할 수 있는데, 여기서 다른 어플리케이션(19)들은 키보드 어플리케이션(8) 이외의 어플리케이션들이다. 키보드 커스텀화 모듈(18)은 그래픽 키보드(10)를 이용하여 컴퓨팅 디바이스(2)로 사용자의 입력들에 근거한 데이터를 모을 수 있으며, 예를 들어, 저장 디바이스(들)(26)의 터치 데이터(36)에 모아진 데이터를 저장할 수 있다. 일 예로서, 사용자가 어플리케이션(19)들의 이메일 어플리케이션을 이용하여 그래픽 키보드(10)를 이용하는 타이핑 동안에, 키보드 커스텀화 모듈(18)은 이메일 어플리케이션의 사용 동안에 사용자 입력들과 관련된 데이터를 기록하고 상기 사용자 입력과 관련된 터치 영역들을 산출하기 위해 지속적인 학습 모드에서 동작할 수 있다.
키보드 커스텀화 모듈(18)은 각 터치 영역과 관련된 타겟 영역을 확인할 수 있다. 다시 말해서, 각 사용자 입력을 위해, 키보드 커스텀화 모듈(18)은 사용자 입력에 의해 눌러지도록 의도되었던 키가 어떤 키인지를 확인하고, 그 후 눌러지도록 의도되는 키를 위한 해당 타겟 영역을 확인할 수 있다. 예를 들어, 타겟 영역은 의도되는 키의 표현의 경계와 일치할 수 있다. 키보드 커스텀화 모듈(18)은 사용자가 몇몇 텍스트를 삭제하고 다시 타이핑할 때와 같은 사용자 타이핑 자기-수정들(self-corrections), 자동-수정 제안의 선택, 및/또는 기타 사용자 타이핑 수정들에 근거한 사용자 입력에 의해 눌러지도록 의도되었던 키가 어떤 키인지를 확인할 수 있고, 따라서 해당 타겟 영역들을 식별할 수 있다. 즉, 키보드 커스텀화 모듈(18)은 사용자에 의해 원래 타이핑되었던 것을 대신하도록 사용자가 선택한 키 문자(들)가 무엇인지를 식별할 수 있다.
키보드 커스텀화 모듈(18)은 특정 사용자 입력에 해당하는 터치 영역이 그래픽 키보드의 관련된 타겟 영역과 실질적으로 정렬되는지 결정할 수 있으며, 키보드 커스텀화 모듈(18)은 터치 영역들이 해당하는 예상 키 영역(32)과 실질적으로 정렬되지 않는 사례들을 식별한다. 예를 들어, 키보드 커스텀화 모듈(18)은 터치 영역의 중심과 해당 타겟 영역의 중심을 비교할 수 있다. 키보드 커스텀화 모듈(18)은 예를 들어, 터치 영역 및 타겟 영역의 중심들이 서로 일정한 구성 거리 내에 있을 때 터치 영역이 해당 타겟 영역과 실질적으로 정렬함을 결정할 수 있다. 몇몇 예들에서, 심지어 터치 영역의 일부 또는 전체가 키의 표현의 경계 내에 있더라도, 터치 영역의 중심이 키 경계의 가장자리와 너무 가까우면, 실질적으로 정렬되지 않음을 결정할 수 있다. 몇몇 예시적인 양상들에서, 키보드 커스텀화 모듈(18)은 각 사용자를 위해 사용자 터치들의 누적되는 기록을 터치 데이터(36)에 쌓을 수 있고, 누적되는 사용자 터치들의 분포가 타겟 영역과 실질적으로 정렬되는지를 결정할 수 있다. 다른 예들에서, 키보드 커스텀화 모듈(18)은 터치 영역의 표면적의 임계 초과량이 타겟 영역의 외부에 위치될 때 터치 영역이 해당 타겟 영역과 실직적으로 정렬하지 않음을 결정할 수 있다.
사용자 터치 데이터(36) 및/또는 임계값(34)들에 근거하여, 키보드 커스텀화 모듈(18)은 그래픽 키보드의 하나 이상의 파라미터들이 사용자 경험을 향상시키도록 수정될 수 있음을 결정할 수 있다. 예를 들어, 키보드 커스텀화 모듈(18)은 그래픽 키보드 상의 키들의 모양, 크기, 및 상대 위치와 같은 하나 이상의 속성들을 수정하도록 제안할 수 있다. 또 다른 예로서, 키보드 커스텀화 모듈(18)은 전체 그래픽 키보드의 크기를 수정하는 것을 포함하여 그래픽 키보드의 전체 레이아웃과 같은 속성을 수정하도록 제안할 수 있다. 예를 들어, 키보드 커스텀화 모듈(18)은 예를 들어, 그래픽 키보드의 하나 이상의 키들의 크기를 증가시킴으로써 그래픽 키보드의 전체 크기를 증가시킬 수 있다.
키보드 커스텀화 모듈(18)이 그래픽 키보드의 하나 이상의 파라미터들이 수정되야 함을 결정할 때, 키보드 커스텀화 모듈(18)은 예를 들어, 출력 디바이스(6)의 디스플레이 상에 제안된 수정들을 보여줌으로써 사용자에게 그래픽 키보드에 제안된 수정들을 제의할 수 있다. 키보드 커스텀화 모듈(18)은 때때로 예를 들어, 새롭게 제안된 그래픽 키보드 레이아웃을 보여주는 디스플레이를 사용자에게 제시할 수 있다. 키보드 커스텀화 모듈(18)은 단일 디스플레이 상에서 그래픽 키보드의 현 레이아웃 및 그래픽 키보드의 제안된 수정 레이아웃 둘 다를 동시에 디스플레이할 수 있다.
몇몇 예들에서, 키보드 커스텀화 모듈(18)은 새로운 그래픽 키보드 레이아웃을 사용하거나 현 레이아웃에 머물것을 선출하도록 사용자에게 옵션을 제공할 수 있다. 키보드 커스텀화 모듈(18)은 또한 키 별(key-by-key) 방식으로 키 레이아웃 변경들을 수락하도록 사용자에게 옵션을 제공할 수 있다. 몇몇 예들에서, 키보드 커스텀 모듈(18)은 사용자 승인을 요청함 없이 그래픽 키보드의 레이아웃을 자동으로 변경할 수 있다. 사용자는 예를 들어, 컴퓨팅 디바이스(2)에 의해 제시되는 사용자 메뉴를 통해 지속적인 키보드 학습 모드를 턴온 또는 턴 오프할 수 있다. 또한, 사용자는 키보드 커스텀화 트레이닝 프로그램의 참여를 연기할 수 있다.
다수의 서로 다른 사용자들이 컴퓨팅 디바이스(2)를 사용하고, 예를 들어, 컴퓨팅 디바이스(2) 상에서 서로 다른 사용자 이름들 및 관련된 프로필들을 가질 때, 트레이닝 모듈(14)은 각 사용자를 위해 하나 이상의 트레이닝 프로그램(30)들을 동작시킬 수 있다. 키보드 커스텀화 모듈(18)은 각 사용자를 위해 서로 다른 커스터마이징된 그래픽 키보드들을 생성할 수 있다. 키보드 커스텀화 모듈(18)은 사용자 설정(28)들에 서로 다른 커스터마이징된 그래픽 키보드들과 관련된 데이터를 저장할 수 있다. 예를 들어, 키보드 커스텀화 모듈(18)은 사용자들과 각각 커스터마이징된 그래픽 키보드 레이아웃들 간의 맵핑(mapping)을 표시하는 사용자 설정(28)들에 데이터를 저장할 수 있다. 사용자 설정(28)들은 커스터마이징된 그래픽 키보드들에 관련된 설정들에 추가하여 각 사용자를 위한 다양한 사용자 설정들을 포함할 수 있다.
일 예에서, 키보드 커스텀화 모듈(18)은 터치 영역들과 타겟 영역들의 비교들에 근거하여 그래픽 키보드(10)의 전체 크기를 확대하는 것을 제의할 수 있다. 예를 들어, 만약 사용자의 타이핑에 근거하여 수집된 터치 데이터(36)가 사용자가 종종 현 그래픽 키보드의 경계 너머의 위치들을 터치하는 것을 표현하면, 그 후 키보드 커스텀화 모듈(18)은 그래픽 키보드(10)의 전체 크기를 확대할 것을 제안할 수 있다.
도 3은 키보드 어플리케이션의 예를 예시하는 개념도이다. 예시의 목적으로, 예시적인 키보드 어플리케이션은 도 1 및 도 2의 컴퓨팅 디바이스(2)의 맥락에서 하기에 기술된다. 하나 이상의 프로세서(20)들 상에서 실행되는 키보드 어플리케이션(8)은 출력 디바이스(6)와 같은 터치-감응형 디스플레이로 하여금 그래픽 키보드(40)를 디스프레잉하도록 하기 위해 하나 이상의 신호들을 제공할 수 있다. 도 3에서 예시된 바와 같이, 사용자는 그래픽 키보드의 문자들 중 하나 이상을 디스플레잉하는 터치-감응형 디스플레이(예를 들어, 출력 디바이스(6))의 위치에서 탭 제스처와 같은 제스처를 수행할 수 있다. 탭 제스처는 입력 유닛(예시된 예에서, 손가락)으로 디스플레잉된 문자들 중 하나 이상에서 터치-감응형 디스플레이를 터칭하는 것과 터치-감응형 디스플레이로부터 입력 유닛을 제거함으로써 문자를 릴리징하는 것으로 정의될 수 있다. 특정 예들에서, 사용자는 예를 들어, 입력 유닛과 터치-감응형 디스플레이 사이의 접촉을 유지하면서 선택된 문자로부터 입력 유닛을 제거하여 문자를 릴리징함으로써 슬라이딩 제스처(미도시)를 수행할 수 있다.
도 3의 예시된 예에서, 탭 제스처는 제스처(42)로 시작하는데, 여기서 사용자는 디스플레잉된 문자"k"에서 그래픽 키보드(40)를 터칭함을 개시하기 시작한다. 제스처(44)에서, 사용자는 그래픽 키보드(40)의 디스플레잉된 글자"k"와 접촉하였다. 제스처 결정 모듈(12)은 입력 디바이스가 터치-감응형 디스플레이에 접촉했음을 표현하는 하나 이상의 신호를 출력 디바이스(6)가 제공할 때 상기 예시된 탭 제스처와 같은 제스처가 시작됨을 결정할 수 있다. 특정 예들에서, 출력 디바이스(6)가 프리젠스-감응형 디스플레이를 포함할 때와 마찬가지로, 제스처 결정 모듈(12)은 입력 디바이스가 프리젠스프리젠스형 디바이스의 검출 가능한 범위에 들어감을 표현하는 하나 이상의 신호들을 출력 디바이스(6)가 제공할 때 제스처가 시작됨을 결정할 수 있다.
제스처(46)에서, 사용자는 터치-감응형 디스플레이로부터 그의 손가락을 제거함으로써 디스플레잉된 문자"k"를 릴리징하였다. 제스처 결정 모듈(12)은 입력 유닛(예시된 예에서, 손가락)이 터치-감응형 디스플레이로부터 입력 유닛을 제거함으로써 선택된 문자로부터 제거되었기 때문에 탭 제스처가 수행됨을 결정할 수 있다.
탭 제스처가 수행됨을 결정할 시, 제스처 결정 모듈(12)은 예를 들어, 위치 데이터 및 출력 디바이스(6)에 의해 표시되는 터치 영역의 반경을 이용함으로써, 입력 유닛과 접촉하고 있는 출력 디바이스(6)의 부분의 터치 영역을 결정할 수 있다. 제스처 결정 모듈(12)은 사용자 터치 데이터, 예를 들어, 그래픽 키보드 상의 탭 제스처의 위치, 상기 위치와 관련된 키 문자, 및 상기 탭 제스처와 관련된 터치 영역의 반경을 터치 데이터(36)에 저장할 수 있다.
도 4a 내지 4d는 그래픽 키보드의 예시적인 부분들을 나타내는 블럭도들이다. 도 4a는 3개의 타겟 영역들(50a-50c)("타겟 영역들(50)")을 포함한다. 도 4의 예에서, 타겟 영역(50a)은 "H" 키의 표현과 관련되고, 타겟 영역(50b)은 "J" 키의 표현과 관련되며, 및 타겟 영역(50c)은 "N" 키의 표현과 관련된다. 도 4a는 또한 "H" 키의 표현과 관련된 터치 영역(52)을 포함한다. 이 예에서, 타겟 영역(50)들은 그래픽 키보드 상에서 각각의 키들의 표현의 외곽 경계들과 같은 공간을 차지한다. 다른 예들에서, 타겟 영역(50)들은 키들의 표현들의 외곽 경계들과 같을 공간을 차지하지 않을 수 있다. 예를 들어, 타겟 영역(50)은 예를 들어, 키의 표현의 내부 영역을 기술(delineate)함으로써, 각각의 키와 관련된 서로 다른 영역으로 구성될 수 있다.
몇몇 양상들에서, 타겟 영역(52)은 단일 사용자 입력에 근거하여 제스처 결정 모듈(12)에 의해 결정될 수 있거나, 혹은 다수의 사용자 입력들, 예를 들어, 도 5의 그래프(60)의 분포에 의해 표현된 것들과 같은 사용자 입력들의 세트에 근거하여 키보드 커스텀화 모듈(18)에 의해 결정될 수 있다. 타겟 영역(50)이 단일 사용자 입력에 해당하는 예에서, 키보드 커스텀화 모듈(18)은 키보드 커스텀화 모듈(18)이 터치 영역(52)과 관련된 사용자 입력이 발생되었을 때 사용자가 "H"를 타이핑했다고 예상함을 결정한다는 점에서, 터치 영역(52)이 타겟 영역(50a)과 관련됨을 결정할 수 있다. 키보드 커스텀화 모듈(18)은 트레이닝 프로그램(30) 또는 다른 방법으로부터의 데이터에 근거하여 관련성을 결정할 수 있다.
도 4a의 예에서, 키보드 커스텀화 모듈(18)은 터치 영역(52)이 타겟 영역(50a)과 실질적으로 정렬됨을 결정할 수 있다. 예를 들어, 키보드 커스텀화 모듈(18)은 타겟 영역(52)의 중심이 타겟 영역(50a)의 중심의 임계 거리(threshold distance) 내에 있음을 결정할 수 있다. 도 4b의 예에서, 키보드 커스텀화 모듈(18)은 또한 터치 영역(54)이 타겟 영역(50a)과 관련됨을 결정할 수 있다. 제스처 결정 모듈(12)은 터치 영역(54)의 반경(55)을 컴퓨팅할 수 있고, 터치 영역(54)을 결정하기 위해 상기 반경(55)을 사용할 수 있다.
키보드 커스텀화 모듈(18)은 예를 들어, 터치 영역의 중심과 타겟 영역의 중심들이 서로 일정한 구성 거리 내에 있을 때 터치 영역이 해당 타겟 영역과 실질적으로 정렬함을 결정할 수 있다. 몇몇 예들에서, 터치 영역의 일부 또는 전체가 키의 표현의 경계 내에 있더라도, 만약 터치 영역의 중심이 키 경계의 가장자리에 매우 가깝다면, 키보드 커스텀화 모듈(18)은 터치 영역이 실질적으로 타겟 영역과 정렬되지 않음을 결정할 수 있다. 도 4c는 하나의 이러한 예를 도시한다. 도 4c의 예에서, 키보드 커스텀화 모듈(18)은 터치 영역(56)의 중심(57)이 타겟 영역(50a)의 중심(59)로부터 멀리 떨어져 임계 거리를 초과하기 때문에 터치 영역(56)이 타겟 영역(50a)과 실질적으로 정렬되지 않음을 결정할 수 있다. 도 4d는 터치 영역(58)이 문자"H"에 해당하는 키의 표현과 관련된 타겟 영역(50a)과 실질적으로 정렬되지 않음을 나타낸 또 다른 예일 수 있다.
도 5는 그래픽 키보드 상에서 키의 표현과 관련된 사용자 입력들의 예시적인 분포를 나타내는 개념도이다. 도 5는 표현 키(63a-63c)들을 포함하는 그래픽 키보드의 부분(61)을 도시한다. 키(63a)는 "H"키의 표현이고, 키(63b)는 "J"키의 표현과 관련되며, 키(63c)는 "N"키의 표현과 관련된다. 도 5의 예에서, 3-차원 그래프(60)는 그래픽 키보드(10)의 평면에서 1차원에 따른 위치를 나타내는 x-축(62), 및 그래픽 키보드(10)의 평면에서 2차원에 따른 위치를 나타내는 y-축(64)을 포함한다. 3-차원 그래프(60)는 그래픽 키보드 상의 특정 키의 위치에서 발생된 터치들의 누적 양 N을 나타내는 z-축(66)을 더 포함한다. 키보드 커스텀화 모듈(18)은 각 사용자에 대한 그래픽 키보드 상의 표현된 각 키(예를 들어, 글자"H"에 관한 키)에 대한 3-차원 그래프(60)에 의해 표현되는 데이터를 포함하는 분포 데이터(36)를 유지할 수 있다.
도 5의 예는 특정 키-예를 들어, 글자"H"와 관련된 키-와 관련된 그래픽 키보드 상의 위치를 표시하는 키 경계(68)를 포함한다. 도 5는 또한 키"H"의 표현과 관련된 타겟 영역(72)을 포함한다. 도 5의 예에서, 타겟 영역(72)은 키 경계(68)와 동일한 공간을 차지하지 않고, 키 경계(68)에 의해 둘러싸인 영역보다 더 적은 표면적을 가진 내부 영역을 나타낸다.
사용자 터치가 그래픽 키보드(10)의 평면에서 특정(x,y) 위치와 관련되는 것으로서 제스처 결정 모듈(12)에 의해 등록될 때, 키보드 커스텀화 모듈(18)은 예를 들어, 그 (x,y) 위치와 관련된 카운터를 증분시킴으로써 터치의 사례를 로그 기록(log record)할 수 있다. 키"H"를 위한 키 경계 내의 각 (x,y)위치에서 특정 시간 지점까지의 터치들의 누적 양은 3-차원 그래프(60)에 의해 도시된다. 키보드 커스텀화 모듈(18)은 실제 타이핑 에러들(예를 들어, 철자 실수들)인 것으로 결정된 이러한 터치들을 기록하는 것이 아니라, 대신에 "H"를 위한 키의 표현에서 타이핑을 하기 위한 시도인 것으로 결정된 이러한 터치들만을 기록할 수 있다.
컴퓨팅 디바이스(2)는 터치들의 임계량을 특정하는 임계값(70)으로 구성될 수 있다. 만약 사용자가 "H"를 위한 키를 터치하도록 시도 중일 때 사용자에 의해 대부분 터치되는 키 경계(68) 내의 (x,y)위치가 키 경계(68)의 가장자리와 너무 가깝다면, 키보드 커스텀화 모듈(18)은 사용자의 타이핑 습관들에 더 잘 맞도록 키의 위치, 모양, 또는 다른 파라미터 또는 특성을 수정하도록 결정할 수 있다.
키보드 커스텀화 모듈(18)은 키"H"와 관련된 터치 영역이 키"H"와 관련된 타겟 영역(72)과 실질적으로 정렬되고 있지 않음을 결정할 시 그래픽 키보드의 하나 이상의 파라미터들의 수정을 개시할 수 있다. 예를 들어, 키보드 커스텀화 모듈(18)은 키"H"와 관련된 대부분의 터칭된 위치가 키의 구성된 내부 영역(72)의 외부에 위치될 때 그래픽 키보드의 수정을 개시할 수 있다. 대부분의 터칭된 위치는 3-차원 그래프(60)에서 표시되는 분포의 최대값(74)에 의해 표시된다. 몇몇 양상들에서, 키보드 커스텀화 모듈(18)은 오직 몇 개의 터치들만이 내부 영역(72)의 외부에서 발생했을 때 그래픽 키보드를 수정하지 않도록 구성될 수 있지만, 대신에 타겟 영역(72)의 외부 위치에서 터치들의 양이 터치들(70)의 임계량을 초과할 때만 그래픽 키보드를 수정할 수 있다. 키보드 커스텀화 모듈(18)의 민감도(sensitivity)는 임계값(70) 및/또는 타겟 영역(72)을 위한 설정들을 조정함으로써 구성될 수 있다.
대안적으로 또는 추가적으로, 상기에 기술된 바와 같이, 키보드 커스텀화 모듈(18)은 터치 영역의 중심이 타겟 영역(72)의 중심으로부터 구성된 거리 보다 멀리 위치될 때 그래픽 키보드의 수정을 개시할 수 있는데, 여기서 상기 터치 영역은 그래프(60)에 의해 표시된 누적되는 사용자 입력들에 근거하여 결정될 수 있다. 키보드 커스텀화 모듈(18)은 터치 영역이 해당 타겟 영역과 실질적으로 정렬된 지를 결정하기 위한 다른 기법들을 사용할 수 있다. 터치 영역이 해당 타겟 영역과 실질적으로 정렬되지 않음을 결정함에 응답하여, 키보드 커스텀화 모듈(18)은 사용자의 타이핑 습관에 보다 적합하도록 키의 위치, 모양, 또는 다른 파라미터 또는 특징을 수정하도록 제안할 수 있다. 이러한 방식으로, 키보드 커스텀화 모듈(18)은 예를 들어, 사용자에 의해 만들어진 에러들 및 수정들의 양을 감소시킴으로써 그래픽 키보드를 사용할 때 사용자의 경험의 질을 향상시키도록 도울 수 있다.
도 6은 키보드 어플리케이션을 실행하도록 구성된 컴퓨팅 디바이스 또는 컴퓨팅 시스템(예를 들어, 도 1-2의 컴퓨팅 디바이스(2))의 예시적인 프로세스를 나타내는 흐름도이다. 도 6의 예에서, 입력-감응형 디스플레이를 포함하는 컴퓨팅 디바이스는 입력-감응형 디스플레이의 타겟 영역과 관련된 키의 제 1 표현을 포함하는 제 1 그래픽 키보드 배열을 출력함으로써 동작한다(80). 상기 동작은 입력-감응형 디스플레이에서의 복수의 사용자 입력들을 수신하는 것을 포함하는데, 복수의 사용자 입력들로부터의 각 사용자 입력은 입력-감응형 디스플레이의 각각의 터치 영역과 관련된다(82). 복수의 사용자 입력들로부터의 각 입력이 키의 제 1 표현과 관련됨을 결정함에 응답하여, 동작은 관련된 터치 영역들 중 하나 이상이 키의 제 1 표현과 관련된 타겟 영역과 실질적으로 정렬되지 않는지를 결정하는 것을 포함한다(84). 동작은 타겟 영역과 실질적으로 정렬되지 않는 터치 영역들의 양을 식별하고(86), 그 후에 상기 양이 타겟 영역과 실질적으로 정렬되지 않은 터치 영역들의 임계량을 초과함을 결정함에 후속하여, 입력-감응형 디스플레이에서 키의 제 2 표현을 포함하는 제 2 그래픽 키보드 배열을 출력하는 것을 포함한다(88). 여기서, 키의 제 2 표현의 적어도 하나의 속성은 터치 영역들 중 하나 이상을 키의 제 2 표현과 관련된 타겟 영역과 실질적으로 정렬하도록 키의 제 1 표현에 대하여 그래픽적으로 수정되었다.
일 예에서, 상기 프로세스는 사용자로 하여금 제 1 그래픽 키보드 배열을 사용하여 미리 정의된 일련의 문자들을 타이핑하게 하는 컴퓨팅 디바이스에 의해 제시된 트레이닝 프로그램에 응답하여 복수의 사용자 입력들을 수신하는 것, 및 복수의 사용자 입력으로부터의 각각의 사용자 입력은 사용자 입력들의 순서와 트레이닝 프로그램에 의해 제시된 미리 정의된 일련의 문자들의 순서의 비교에 근거하여 키의 제 1 표현과 관련됨을 결정하는 것을 더 포함할 수 있다. 대안적으로 또는 추가적으로, 상기 프로세서는 컴퓨팅 디바이스의 백그라운드 태스크로써 키보드 커스텀화 어플리케이션을 실행하는 것, 및 키보드 커스텀화 어플리케이션 이외의 컴퓨팅 디바이스 상에서 실행되는 어플리케이션의 사용자에 의한 사용 동안에 복수의 사용자 입력들을 수신하는 것을 포함할 수 있다. 몇몇 예들에서, 상기 프로세서는 예를 들어, 복수의 사용자 입력들로부터의 각 사용자 입력은 사용자로부터 수신된 타이핑 정정들에 적어도 부분적으로 근거하여 키의 제 1 표현과 관련됨을 결정하는 것을 포함할 수 있다. 상기 프로세스는 컴퓨팅 디바이스의 입력-감응형 디스플레이에서 백그라운드 태스크로서 키보드 커스텀화 어플리케이션의 실행을 중지하도록 옵션의 표시를 출력하는 것을 포함할 수 있다.
대안적으로 또는 추가적으로, 몇몇 예들에서, 상기 프로세스는 컴퓨팅 디바이스의 입력-감응형 디스플레이에서 제 1 그래픽 키보드 배열 및 제 2 그래픽 키보드를 동시에 출력하는 것, 및 미래 사용을 위해 제 1 그래픽 키보드 배열 및 제 2 그래픽 키보드 중 하나의 사용자 선택을 요청하는 것 및/또는 미래 사용을 위해 제 1 그래픽 키보드 배열의 키들의 하나 이상의 표현들의 수정들의 하나 이상의 속성들의 사용자 선택을 요청하는 것을 포함할 수 있다. 프로세스는 제 2 그래픽 키보드 배열을 컴퓨팅 디바이스의 사용자의 프로필과 관련짓는 것을 포함할 수 있다. 프로세스는 또한 키의 제 1 표현에 대하여 그래픽적으로 수정하도록 키의 제 2 표현의 하나 이상의 속성들, 예를 들어 모양, 크기, 또는 다른 속성을 수정하는 것을 포함할 수 있다.
몇몇 예들에서, 상기 프로세스는 적어도 터치 영역의 중심이 타겟 영역의 중심으로부터 임계 거리 보다 멀리 떨어져 위치됨을 결정하는 것에 근거하여 관련된 터치 영역들 중 하나 이상이 키의 제 1 표현과 관련된 타겟 영역과 실질적으로 정렬되지 않음을 결정하는 것을 포함할 수 있다. 몇몇 예들에서, 프로세스는 적어도 터치 영역의 표면적의 임계량 보다 큰 양이 타겟 영역의 외부에 위치됨을 결정하는 것에 근거하여 관련된 터치 영역들 중 하나 이상이 키의 제 1 표현과 관련된 타겟 영역과 실질적으로 정렬되지 않음을 결정하는 것을 포함할 수 있다.
본원에 기술된 기법들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 적어도 부분적으로 구현될 수 있다. 예를 들어, 기술된 실시예들의 다양한 양상들은 하나 이상의 마이크로프로세서들, DSPs(digital signal processors),ASICs(application specific integrated circuits), FPGAs(field programmable gate arrays), 또는 임의의 다른 등가의 집적 또는 개별 논리 회로뿐만 아니라 이러한 컴포넌트들의 임의의 조합들을 포함하는 하나 이상의 프로세서들 내에서 구현될 수 있다. 용어 "프로세서" 또는 "프로세싱 회로"는 일반적으로 전술한 논리 회로, 다른 논리 회로, 단독 또는 다른 논리 회로와의 조합, 또는 임의의 다른 등가 회로 중 임의의 것을 지칭할 수 있다. 하드웨어를 포함하는 제어 유닛은 또한 본 발명의 하나 이상의 기법들을 수행할 수 있다.
이러한 하드웨어, 소프트웨어, 및 펌웨어는 본원에 기술된 다양한 기법들을 지원하도록 동일한 디바이스 내에서 또는 개별적인 디바이스들 내에서 구현될 수 있다. 또한, 기술된 유닛들, 모듈들, 또는 컴포넌트들 중 어느 것이든지 별개의 하지만 상호 운용적인 로직 디바이스들로써 함께 또는 별도로 구현될 수 있다. 모듈들 또는 유닛들로서 서로 다른 특징들의 기술은 서로 다른 기능적 양상들을 강조하도록 의도되며, 반드시 그러한 모듈 또는 유닛들이 별도의 하드웨어, 펌웨어 또는 소프트웨어 컴포넌트에 의해 실현된다는 것을 의미하지는 않는다. 오히려, 하나 이상의 모듈들 또는 유닛들과 관련된 기능은 별도의 하드웨어, 펌웨어, 또는 소프트웨어 컴포넌트들에 의해 수행되거나, 공통 또는 별개의 하드웨어, 펌웨어 또는 소프트웨어 컴포넌트 내에 집적될 수 있다.
본원에 기술된 기법들은 또한 명령어들로 인코딩된 컴퓨터-판독 가능 저장 매체를 포함하는 제조물(article of manufacture)에서 구현되거나 인코딩될 수 있다. 인코딩된 컴퓨터-판독 가능 기억 매체를 포함하는 제조물에 내장되거나 인코딩되는 명령어들은 컴퓨터-판독 가능 저장 매체에 포함되거나 인코딩된 명령어들이 하나 이상의 프로세서들에 의해 실행될 때와 마찬가지로, 컴퓨팅 시스템의 하나 이상의 프로그래머블(programmable) 프로세서들 또는 다른 프로세서들로 하여금 본원에 기술된 기법들 중 하나 이상을 구현하도록 할 수 있다. 컴퓨터 판독-가능 저장 매체는 RAM(random access memory), ROM(read only memory), PROM(programmable read only memory), EPROM(erasable programmable read only memory), EEPROM(electronically erasable programmable read only memory), 플래시 메모리, 하드 디스크, 컴팩트 디스크 ROM(CD-ROM), 플로피 디스크, 카세트, 자기 매체, 광 매체, 또는 다른 컴퓨터 판독가능 매체를 포함할 수 있다. 몇몇 예들에서, 제조물은 하나 이상의 컴퓨터-판독 가능 저장 매체를 구성할 수 있다.
몇몇 예들에서, 컴퓨터-판독 가능 저장 매체는 비-일시적인(non-transitory) 매체를 구성할 수 있다. 용어 "비-일시적인"은 저장 매체가 가시적이며 반송파 또는 전파 신호(propagated signal)에서 구현되지 않는다는 것을 나타낼 수 있다. 특정 예들에서, 비-일시적인 저장 매체는 (예를 들어, RAM 또는 캐시에서) 시간에 따라 변경할 수 있는 데이터를 저장할 수 있다.
다양한 예들이 기술되었다. 이러한 및 다른 예들은 하기의 청구항의 범위 내에 있다.

Claims (21)

  1. 방법으로서,
    컴퓨팅 디바이스에 의해 및 입력-감응형 디스플레이에서의 디스플레이를 위해, 상기 입력-감응형 디스플레이의 타겟 영역에 해당하는 키의 제 1 표현을 포함하는 제 1 그래픽 키보드 배열을 출력하는 단계;
    상기 컴퓨팅 디바이스에 의해, 상기 입력-감응형 디스플레이에서 수신된 복수의 사용자 입력들의 표시를 수신하는 단계, 상기 복수의 사용자 입력들로부터의 각 사용자 입력은 상기 입력-감응형 디스플레이의 각각의 터치 영역에 위치됨;
    상기 컴퓨팅 디바이스에 의해 및 상기 복수의 사용자 입력들 중 하나 이상에 적어도 부분적으로 근거하여, 상기 복수의 사용자 입력들로부터의 각 사용자 입력이 상기 키에 해당함을 결정하는 단계;
    각 사용자 입력이 상기 키에 해당함을 결정함에 응답하여, 컴퓨팅 디바이스에 의해, 상기 키의 상기 제 1 표현에 해당하는 타겟 영역과 실질적으로 정렬되지 않는 사용자 입력들을 위한 터치 영역들의 양을 식별하는 단계; 및
    상기 양이 상기 타겟 영역과 실질적으로 정렬되지 않는 터치 영역들의 임계량을 초과함을 결정함에 응답하여, 상기 컴퓨팅 디바이스에 의해 및 상기 입력-감응형 디스플레이에서의 디스플레이를 위해, 상기 키의 제 2 표현을 포함하는 제 2 그래픽 키보드 배열을 출력하는 단계를 포함하고, 상기 키의 제 2 표현의 적어도 하나의 속성은 상기 키의 상기 제 2 표현에 해당하는 타겟 영역을 상기 터치 영역들 중 하나 이상과 실질적으로 정렬하도록 상기 키의 상기 제 1 표현에 대하여 그래픽적으로 수정되는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 입력-감응형 디스플레이에서 상기 복수의 사용자 입력들의 상기 표시를 수신하는 단계는 사용자로 하여금 상기 제 1 그래픽 키보드 배열을 사용하여 미리 정의된 일련의 문자들을 타이핑하도록 프롬프트(prompt)하는 상기 컴퓨팅 디바이스에 의해 제시된 트레이닝 프로그램에 응답하여 상기 복수의 사용자 입력들의 상기 표시를 수신하는 단계를 포함하고,
    상기 복수의 사용자 입력들로부터의 각 사용자 입력이 상기 키에 해당함을 결정하는 단계는 사용자 입력들의 순서와 상기 트레이닝 프로그램에 의해 제시된 상기 미리 정의된 일련의 문자들의 순서의 비교에 적어도 부분적으로 근거하여 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    키보드 커스텀화 어플리케이션을 컴퓨팅 디바이스의 백그라운드 태스크(background task)로서 실행하는 단계를 더 포함하고,
    상기 입력-감응형 디스플레이에서 상기 복수의 사용자 입력들의 상기 표시를 수신하는 단계는 상기 키보드 커스텀화 어플리케이션 이외의 상기 컴퓨팅 디바이스 상에서 실행되는 어플리케이션의 사용자에 의한 사용 동안에 상기 복수의 사용자 입력들의 상기 표시를 수신하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 키보드 커스텀화 어플리케이션에 의해, 상기 복수의 사용자 입력들로부터의 각 사용자 입력은 상기 사용자로부터 수신된 타이핑 수정들에 적어도 부분적으로 근거하여 상기 키에 해당함을 결정하는 단계를 더 포함하는 방법.
  5. 제3항에 있어서,
    상기 컴퓨팅 디바이스에 의해 및 상기 컴퓨팅 디바이스의 상기 입력-감응형 디스플레이에서의 디스플레이를 위해, 백그라운드 태스크로서의 상기 키보드 커스텀화 어플리케이션의 실행을 중단시키는 옵션의 표시를 출력하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 컴퓨팅 디바이스에 의해 및 상기 컴퓨팅 디바이스의 상기 입력-감응형 디스플레이에서의 디스플레이를 위해, 상기 제 1 그래픽 키보드 배열 및 상기 제 2 그래픽 키보드를 동시에 출력하는 단계; 및
    미래 사용을 위해 상기 제 1 그래픽 키보드 배열 및 제 2 그래픽 키보드 중 하나의 사용자 선택을 요청(solicit)하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 컴퓨팅 디바이스에 의해 및 상기 입력-감응형 디스플레이에서의 디스플레이를 위해, 상기 제 1 그래픽 키보드 배열 및 상기 제 2 그래픽 키보드 둘 다를 동시에 출력하는 단계; 및
    미래 사용을 위해 상기 제 1 그래픽 키보드 배열의 키들의 하나 이상의 표현들의 속성들의 하나 이상의 수정들의 사용자 선택을 요청하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    상기 제 2 그래픽 키보드 배열과 상기 컴퓨팅 디바이스의 사용자의 프로필을 관련짓는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 키의 상기 제 1 표현에 대하여 그래픽적으로 수정하기 위해 상기 키의 상기 제 2 표현의 상기 적어도 하나의 속성을 선택하는 단계를 더 포함하고, 상기 선택된 속성은 상기 키의 상기 제 2 표현의 모양을 포함하는 것을 특징으로 하는 방법.
  10. 제1항에 있어서,
    상기 키의 상기 제 1 표현에 대하여 그래픽적으로 수정하기 위해 상기 키의 상기 제 2 표현의 상기 적어도 하나의 속성을 선택하는 단계를 더 포함하고, 상기 선택된 속성은 상기 키의 상기 제 2 표현의 크기를 포함하는 것을 특징으로 하는 방법.
  11. 제1항에 있어서,
    상기 키의 상기 제 1 표현에 대하여 그래픽적으로 수정하기 위해 상기 키의 상기 제 2 표현의 상기 적어도 하나의 속성을 선택하는 단계를 더 포함하고, 상기 선택된 속성은 상기 키의 상기 제 2 표현의 위치를 포함하는 것을 특징으로 하는 방법.
  12. 제1항에 있어서,
    상기 제 1 그래픽 키보드 배열은 복수의 각 키들의 복수의 표현들을 포함하고,
    상기 제 2 그래픽 키보드 배열은 각 키들의 제 2 복수의 표현들을 포함하고,
    상기 제 2 그래픽 키보드 배열은 상기 제 1 그래픽 키보드 배열과 서로 다른 전체 크기 및 모양을 갖고, 및
    상기 제 2 그래픽 키보드 배열의 상기 전체 크기 및 모양은 상기 키의 상기 제 2 표현에 해당하는 타겟 영역을 하나 이상의 상기 터치 영역들과 실질적으로 정렬하도록 선택되는 것을 특징으로 하는 방법.
  13. 제1항에 있어서,
    상기 입력-감응형 디스플레이는 상기 컴퓨팅 디바이스의 프리젠스-감응형 디스플레이를 포함하며, 상기 프리젠스-감응형 디스플레이는 입력 유닛과 프리젠스-감응형 디스플레이 사이의 물리적 접촉을 요구함이 없이 상기 입력 유닛의 프리젠스에 적어도 부분적으로 근거하여 상기 복수의 사용자 입력들의 각 각을 등록하는 것을 특징으로 하는 방법.
  14. 제1항에 있어서,
    상기 입력-감응형 디스플레이는 상기 컴퓨팅 디바이스의 터치-감응형 디스플레이를 포함하고, 상기 복수의 사용자 입력들은 상기 터치-감응형 디스플레이의 복수의 사용자 터치들을 포함하는 것을 특징으로 하는 방법.
  15. 제1항에 있어서,
    상기 관련된 터치 영역들 중 하나 이상은, 상기 터치 영역의 중심이 상기 타겟 영역의 중심으로부터 임계거리보다 멀리 떨어져 위치됨을 결정함에 적어도 부분적으로 근거하여, 상기 키의 상기 제 1의 표현에 해당하는 상기 타겟 영역과 실질적으로 정렬되지 않음을 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  16. 제1항에 있어서,
    상기 관련된 터치 영역들 중 하나 이상은, 상기 터치 영역의 표면적의 임계량 보다 큰 양이 상기 타겟 영역의 외부에 위치됨을 결정함에 적어도 부분적으로 근거하여, 상기 키의 상기 제 1의 표현에 해당하는 상기 타겟 영역과 실질적으로 정렬되지 않음을 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  17. 제1항에 있어서,
    상기 복수의 사용자 입력들로부터의 각 사용자 입력이 상기 키에 해당함을 결정하는 단계는 각각의 터치 영역이 상기 키의 상기 제 1 표현에 해당하는 상기 타겟 영역 내에 적어도 부분적으로 위치됨을 결정하는 것을 포함하는 것을 특징으로 하는 방법.
  18. 시스템으로서,
    적어도 하나의 프로세서;
    그래픽 키보드 배열들을 생성하도록 적어도 하나의 프로세서에 의해 동작가능한 키보드 어플리케이션; 및
    디스플레이를 위해, 입력-감응형 디스플레이의 타겟 영역에 해당하는 키의 제 1 표현을 포함하는 제 1 그래픽 키보드 배열을 출력하는 상기 입력-감응형 디스플레이를 포함하고,
    상기 입력-감응형 디스플레이는 복수의 사용자 입력들 - 각각의 사용자 입력은 상기 입력-감응형 디스플레이의 각 터치 영역에 위치됨 - 의 표시를 수신하도록 구성되고, 상기 복수의 사용자 입력들의 표시는 상기 키보드 어플리케이션 이외의 상기 시스템상에서 실행되는 어플리케이션의 사용자에 의한 사용 동안에 수신되며,
    상기 키보드 어플리케이션은 상기 복수의 사용자 입력들 중 하나 이상에 적어도 부분적으로 근거하여 상기 복수의 사용자 입력들로부터의 각 사용자 입력이 상기 키에 해당함을 결정하고,
    상기 키보드 어플리케이션은, 각 사용자 입력이 상기 키에 해당함을 결정함에 응답하여, 상기 키의 상기 제 1 표현에 해당하는 타겟 영역과 실질적으로 정렬되지 않는 사용자 입력들을 위한 터치 영역들의 양을 식별하고, 및
    상기 입력-감응형 디바이스는 상기 키의 제 2 표현을 포함하는 제 2 그래픽 키보드 배열을 출력하고, 상기 키의 상기 제 2 표현의 적어도 하나의 속성은 상기 키의 상기 제 2 표현에 해당하는 타겟 영역을 상기 터치 영역들 중 하나 이상과 실질적으로 정렬하도록 상기 키의 상기 제 1 표현에 대하여 그래픽적으로 수정되는 것을 특징으로 하는 시스템.
  19. 제18항에 있어서,
    상기 키보드 어플리케이션은 상기 양이 상기 타겟 영역과 실질적으로 정렬되지 않은 터치 영역들의 임계량을 초과함을 결정함에 응답하여 상기 제 2 그래픽 키보드 배열을 생성하는 것을 특징으로 하는 방법.
  20. 컴퓨팅 시스템의 하나 이상의 프로세서들에 의해 실행되는 경우 상기 컴퓨팅 시스템으로 하여금 동작들을 수행하도록 하는 명령어들을 포함하는 컴퓨터-판독 가능 저장 매체로서,
    상기 동작들은,
    입력-감응형 디스플레이에서의 디스플레이를 위한 제 1 그래픽 키보드 배열을 출력하는 동작, 상기 제 1 그래픽 키보드 배열은 상기 입력-감응형 디스플레이의 타겟 영역에 해당하는 키의 제 1 표현을 포함함;
    복수의 사용자 입력들을 나타내는 데이터를 수신하는 동작,상기 복수의 사용자 입력들로부터의 각 사용자 입력은 상기 입력-감응형 디스플레이의 각각의 터치 영역에 위치됨;
    상기 복수의 사용자 입력들 중 하나 이상에 적어도 부분적으로 근거하여 상기 복수의 사용자 입력들로부터의 각 사용자 입력이 상기 키에 해당함을 결정하는 동작;
    각 사용자 입력이 상기 키에 해당함을 결정함에 응답하여, 상기 키의 상기 제 1 표현에 해당하는 타겟 영역과 실질적으로 정렬되지 않는 사용자 입력들을 위한 터치 영역들의 양을 식별하는 것; 및
    상기 터치 영역들 중 하나 이상이 상기 키의 상기 제 1 표현과 관련된 상기 타겟 영역과 실질적으로 정렬되지 않음을 결정함에 응답하여, 상기 입력-감응형 디스플레이에서의 디스플레이를 위해, 상기 키의 제 2 표현을 포함하는 제 2 그래픽 키보드 배열을 출력하는 동작을 포함하고,
    상기 키의 제 2 표현의 적어도 하나의 속성은 상기 키의 상기 제 2 표현에 해당하는 타겟 영역을 상기 터치 영역들 중 하나 이상과 실질적으로 정렬하도록 상기 키의 상기 제 1 표현에 대하여 그래픽적으로 수정되는 것을 특징으로 하는 컴퓨터-판독가능 저장 매체.
  21. 제20항에 있어서,
    상기 복수의 사용자 입력들을 나타내는 상기 데이터를 수신하는 동작은 사용자로 하여금 상기 제 1 그래픽 키보드 배열을 사용하여 미리 정의된 일련의 문자들을 타이핑하도록 하는 상기 컴퓨팅 디바이스에 의해 제시된 트레이닝 프로그램에 응답하여 상기 복수의 사용자 입력들을 나타내는 데이터를 수신하는 것을 포함하고,
    상기 복수의 사용자 입력들로부터의 각 사용자 입력이 상기 키에 해당함을 결정하는 동작은 사용자 입력들의 순서와 상기 트레이닝 프로그램에 의해 제시된 상기 미리 정의된 일련의 문자들의 순서의 비교에 적어도 부분적으로 근거하여 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨터-판독가능 저장 매체.
KR1020147031199A 2012-04-06 2013-03-11 스마트 사용자 커스터마이징된 가상 키보드 KR101602840B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/441,489 2012-04-06
US13/441,489 US8850349B2 (en) 2012-04-06 2012-04-06 Smart user-customized graphical keyboard
PCT/US2013/030258 WO2013151676A2 (en) 2012-04-06 2013-03-11 Smart user-customized graphical keyboard

Publications (2)

Publication Number Publication Date
KR20140136066A true KR20140136066A (ko) 2014-11-27
KR101602840B1 KR101602840B1 (ko) 2016-03-11

Family

ID=48014305

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147031199A KR101602840B1 (ko) 2012-04-06 2013-03-11 스마트 사용자 커스터마이징된 가상 키보드

Country Status (6)

Country Link
US (2) US8850349B2 (ko)
KR (1) KR101602840B1 (ko)
CN (1) CN104350449B (ko)
AU (1) AU2013243959B2 (ko)
DE (1) DE112013001474T5 (ko)
WO (1) WO2013151676A2 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10048860B2 (en) 2006-04-06 2018-08-14 Google Technology Holdings LLC Method and apparatus for user interface adaptation
US9367085B2 (en) 2012-01-26 2016-06-14 Google Technology Holdings LLC Portable electronic device and method for controlling operation thereof taking into account which limb possesses the electronic device
WO2014076258A1 (en) * 2012-11-15 2014-05-22 Schönleben Oliver Method and device for typing on mobile computing devices
US9411510B2 (en) * 2012-12-07 2016-08-09 Apple Inc. Techniques for preventing typographical errors on soft keyboards
US9996213B2 (en) * 2012-12-24 2018-06-12 Nokia Technology Oy Apparatus for a user interface and associated methods
JP2015041845A (ja) * 2013-08-21 2015-03-02 カシオ計算機株式会社 文字入力装置及びプログラム
US10303295B2 (en) * 2014-05-30 2019-05-28 Apple Inc. Modifying an on-screen keyboard based on asymmetric touch drift
US9477653B2 (en) * 2014-06-26 2016-10-25 Blackberry Limited Character entry for an electronic device using a position sensing keyboard
CN115048007B (zh) * 2014-12-31 2024-05-07 创新先进技术有限公司 调整界面操作图标分布范围的装置、方法及触摸屏设备
US9791942B2 (en) * 2015-03-31 2017-10-17 International Business Machines Corporation Dynamic collaborative adjustable keyboard
CN104915104B (zh) * 2015-06-29 2019-02-12 小米科技有限责任公司 键盘界面的显示方法及装置
US10140017B2 (en) * 2016-04-20 2018-11-27 Google Llc Graphical keyboard application with integrated search
CN109491782B (zh) * 2017-09-11 2023-07-18 中兴通讯股份有限公司 一种云桌面智能管理的方法及装置
CN109782994A (zh) * 2017-11-10 2019-05-21 英业达科技有限公司 虚拟键盘的调整方法及触控装置
US10503391B2 (en) * 2017-11-17 2019-12-10 Motorola Solutions, Inc. Device, system and method for correcting operational device errors
US20200183531A1 (en) * 2018-12-11 2020-06-11 Bennet Karl Langlotz Touchscreen keyboard system
CN114830071A (zh) * 2020-10-25 2022-07-29 谷歌有限责任公司 基于动态空间模型的虚拟键盘错误校正
US11347352B2 (en) * 2020-10-25 2022-05-31 Google Llc Virtual keyboard error correction based on a dynamic spatial model

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1153093A (ja) * 1997-08-04 1999-02-26 Hitachi Ltd 入力装置
US20040178994A1 (en) * 2003-03-10 2004-09-16 International Business Machines Corporation Dynamic resizing of clickable areas of touch screen applications
KR20080106265A (ko) * 2006-02-16 2008-12-04 에프티케이 테크놀로지스 리미티드 컴퓨팅 시스템에 데이터를 입력하는 시스템 및 방법
US20110074692A1 (en) * 2009-09-30 2011-03-31 At&T Mobility Ii Llc Devices and Methods for Conforming a Virtual Keyboard

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01153093A (ja) 1987-12-10 1989-06-15 Sanraku Inc Fc結合性蛋白質の生産に関与する遺伝子DNA
US6614422B1 (en) 1999-11-04 2003-09-02 Canesta, Inc. Method and apparatus for entering data using a virtual input device
US7477240B2 (en) 2001-09-21 2009-01-13 Lenovo Singapore Pte. Ltd. Input apparatus, computer apparatus, method for identifying input object, method for identifying input object in keyboard, and computer program
US7653883B2 (en) * 2004-07-30 2010-01-26 Apple Inc. Proximity detector in handheld device
CA2591808A1 (en) 2007-07-11 2009-01-11 Hsien-Hsiang Chiu Intelligent object tracking and gestures sensing input device
CN101266520B (zh) * 2008-04-18 2013-03-27 上海触乐信息科技有限公司 一种可实现灵活键盘布局的系统
US8300023B2 (en) * 2009-04-10 2012-10-30 Qualcomm Incorporated Virtual keypad generator with learning capabilities
US20100315266A1 (en) 2009-06-15 2010-12-16 Microsoft Corporation Predictive interfaces with usability constraints
US8456445B2 (en) * 2010-04-30 2013-06-04 Honeywell International Inc. Touch screen and method for adjusting screen objects
US20120144337A1 (en) * 2010-12-01 2012-06-07 Verizon Patent And Licensing Inc. Adjustable touch screen keyboard
US9448724B2 (en) * 2011-07-11 2016-09-20 International Business Machines Corporation Dynamically customizable touch screen keyboard for adapting to user physiology
US10673691B2 (en) * 2012-03-24 2020-06-02 Fred Khosropour User interaction platform

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1153093A (ja) * 1997-08-04 1999-02-26 Hitachi Ltd 入力装置
US20040178994A1 (en) * 2003-03-10 2004-09-16 International Business Machines Corporation Dynamic resizing of clickable areas of touch screen applications
KR20080106265A (ko) * 2006-02-16 2008-12-04 에프티케이 테크놀로지스 리미티드 컴퓨팅 시스템에 데이터를 입력하는 시스템 및 방법
US20110074692A1 (en) * 2009-09-30 2011-03-31 At&T Mobility Ii Llc Devices and Methods for Conforming a Virtual Keyboard

Also Published As

Publication number Publication date
WO2013151676A2 (en) 2013-10-10
CN104350449B (zh) 2017-09-05
AU2013243959B2 (en) 2014-11-27
US8850349B2 (en) 2014-09-30
DE112013001474T5 (de) 2014-12-04
KR101602840B1 (ko) 2016-03-11
US20140380224A1 (en) 2014-12-25
WO2013151676A3 (en) 2014-01-16
CN104350449A (zh) 2015-02-11
AU2013243959A1 (en) 2014-10-16
US20130268879A1 (en) 2013-10-10

Similar Documents

Publication Publication Date Title
KR101602840B1 (ko) 스마트 사용자 커스터마이징된 가상 키보드
US11416142B2 (en) Dynamic soft keyboard
US9678943B2 (en) Partial gesture text entry
KR101704549B1 (ko) 문자 입력 인터페이스 제공 방법 및 장치
US9035883B2 (en) Systems and methods for modifying virtual keyboards on a user interface
US10282090B2 (en) Systems and methods for disambiguating intended user input at an onscreen keyboard using dual strike zones
KR101110501B1 (ko) 휴대 전자 장치용 키보드
KR101376286B1 (ko) 터치스크린 텍스트 입력
KR101633842B1 (ko) 연속적인 제스쳐 입력을 위한 복수의 그래픽 키보드들
US20130002562A1 (en) Virtual keyboard layouts
US20140317547A1 (en) Dynamically-positioned character string suggestions for gesture typing
CN105229574A (zh) 减少基于触摸的键盘的错误率
US9009624B2 (en) Keyboard gestures for character string replacement
US20150193011A1 (en) Determining Input Associated With One-to-Many Key Mappings
US20140115521A1 (en) Decoding imprecise gestures for gesture-keyboards
US20150091836A1 (en) Touch control input method and system, computer storage medium
US9804777B1 (en) Gesture-based text selection
KR101919515B1 (ko) 터치스크린을 구비하는 단말에서 데이터 입력 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200226

Year of fee payment: 5