RU2504820C2 - Динамическая программная клавиатура - Google Patents

Динамическая программная клавиатура Download PDF

Info

Publication number
RU2504820C2
RU2504820C2 RU2010132641/08A RU2010132641A RU2504820C2 RU 2504820 C2 RU2504820 C2 RU 2504820C2 RU 2010132641/08 A RU2010132641/08 A RU 2010132641/08A RU 2010132641 A RU2010132641 A RU 2010132641A RU 2504820 C2 RU2504820 C2 RU 2504820C2
Authority
RU
Russia
Prior art keywords
user
key
keyboard
keys
information describing
Prior art date
Application number
RU2010132641/08A
Other languages
English (en)
Other versions
RU2010132641A (ru
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 RU2010132641A publication Critical patent/RU2010132641A/ru
Application granted granted Critical
Publication of RU2504820C2 publication Critical patent/RU2504820C2/ru

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/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/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
    • G06F3/0412Digitisers structurally integrated in a display
    • 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
    • G06F3/0482Interaction with lists of selectable items, e.g. 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/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/04845Interaction 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 for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • 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/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • 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/042Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means
    • G06F3/0425Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means using a single imaging device like a video camera for tracking the absolute position of a single or a plurality of objects with respect to an imaged reference surface, e.g. video camera imaging a display or a projection screen, a table or a wall surface, on which a computer generated image is displayed or projected
    • G06F3/0426Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means using a single imaging device like a video camera for tracking the absolute position of a single or a plurality of objects with respect to an imaged reference surface, e.g. video camera imaging a display or a projection screen, a table or a wall surface, on which a computer generated image is displayed or projected tracking fingers with respect to a virtual keyboard projected or printed on the surface
    • 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

Abstract

Изобретение относится к компьютерной технике, а именно к динамической программной клавиатуре. Техническим результатом является увеличение скорости ввода. Система, реализующая динамическую программную клавиатуру, содержит: предсказывающий механизм клавиатуры; один или более модулей, связанных, чтобы предоставить предсказывающему механизму клавиатуры информацию, описывающую текущую среду ввода для программной клавиатуры; и упомянутый предсказывающий механизм клавиатуры сконфигурирован на основании, по меньшей мере, частично, информации, описывающей текущую среду ввода, с возможностью: изменять области нажатия множества клавиш программной клавиатуры, уменьшая размер области нажатия одной из множества клавиш, в то же время, увеличивая размер области нажатия смежной клавиши из множества клавиш так, чтобы область нажатия смежной клавиши из множества клавиш проходила над участком отображения упомянутой одной клавиши, причем измененная область нажатия упомянутой смежной клавиши включает в себя одно или более положений, в которых отображается упомянутая смежная клавиша, а также одно или более положений, в которых отображается упомянутая одна клавиша, а не упомянутая смежная клавиша, и для каждой из множества клавиш область нажатия для клавиши содержит положения на программной клавиатуре, которые соответствуют клавише; и использовать измененные области нажатия множества клавиш. 3 н. и 17 з.п. ф-лы, 5 ил.

Description

УРОВЕНЬ ТЕХНИКИ
В настоящий момент доступны много различных типов мобильных вычислительных устройств, как правило, обеспечивающих большое количество вычислительной мощности в маленьком корпусе. Одной проблемой, с которой столкнулись мобильные устройства, однако, является ввод данных. Пользователи приучены к вводу данных через клавиатуры, которые могут быть большими и громоздкими, часто более крупными, чем непосредственно мобильное вычислительное устройство. Некоторые мобильные вычислительные устройства решают эту проблему при использовании программной клавиатуры, которая является клавиатурой, отображаемой на дисплее мобильного устройства и которая позволяет пользователю выбирать клавиши, которые выводятся на экран (например, используя стилус, палец пользователя и т.д.). К сожалению, вследствие отсутствия физически разделенных клавиш и часто небольшого размера программных клавиатур, для пользователей остается трудным выбирать клавиши на программных клавиатурах.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Эта сущность изобретения приводится, чтобы ознакомить в упрощенной форме с набором принципов, которые далее описываются ниже в Подробном Описании. Эта сущность изобретения не предназначена, чтобы идентифицировать главные особенности или существенные особенности заявленного объекта изобретения, и при этом оно не предназначено быть использованным, чтобы ограничить контекст заявленного объекта изобретения.
Здесь обсуждается динамическая программная клавиатура. В соответствии с одним или более аспектами, ввод пользователем принимается через программную клавиатуру; программная клавиатура включает в себя множественные клавиши. Информация, описывающая текущую среду ввода для программной клавиатуры, получается, и производится определение, какая одна или более клавиш из множественных клавиш имелась в виду, чтобы быть выбранной вводом пользователя. Это определение делается, основываясь, по меньшей мере, частично на текущей среде ввода.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Одинаковые числа используются на всем протяжении чертежей, чтобы ссылаться на одинаковые признаки.
Фиг.1 - блок-схема, иллюстрирующая пример вычислительного устройства, реализующего динамическую программную клавиатуру в соответствии с одним или более воплощениями.
Фиг.2 иллюстрирует пример устройства отображения, отображающего программную клавиатуру в соответствии с одним или более воплощениями.
Фиг.3 иллюстрирует пример системы, реализующей динамическую программную клавиатуру в соответствии с одним или более воплощениями.
Фиг.4 - блок-схема, иллюстрирующая пример процесса для динамической программной клавиатуры в соответствии с одним или более воплощениями.
Фиг.5 иллюстрирует пример вычислительного устройства, которое может быть сконфигурировано, чтобы реализовать динамическую программную клавиатуру в соответствии с одним или более воплощениями.
ПОДРОБНОЕ ОПИСАНИЕ
Здесь обсуждается динамическая программная клавиатура. Пользовательский интерфейс программной клавиатуры отображается для пользователя. Также получается различная информация, описывающая текущую среду ввода для пользовательского интерфейса программной клавиатуры. Эта информация, описывающая текущую среду ввода, может включать в себя, например, информацию, описывающую текущий тип данных, вводимый пользователем (например, адрес электронной почты, почтовый индекс, город и т.д.); информацию, описывающую язык, обычно используемый пользователем; данные, обычно вводимые пользователем; материальная операционная среда (например, на столе, при ходьбе, в движущемся автомобиле и т.д.); символы и/или слова вблизи поля ввода данных и т.д. Эта информация, описывающая текущую среду ввода данных пользователем, используется, чтобы обнаружить, какая клавиша(и) программной клавиатуры имелась в виду, чтобы быть выбранной пользователем, когда принимается ввод данных пользователем. Динамическая программная клавиатура может таким образом помочь скорости ввода данных пользователем и удовлетворенности пользователя.
Фиг.1 - блок-схема, иллюстрирующая в качестве примера вычислительное устройство 100, реализующее динамическую программную клавиатуру в соответствии с одним или более воплощениями. Вычислительное устройство 100 может быть любым из множества различных устройств. Например, вычислительное устройство 100 может быть настольным компьютером, мобильной станции, устройством развлечения, абонентской установкой, коммуникативно-связанной с устройством отображения, телевизором, беспроводным телефоном, цифровой камерой, игровой приставкой, автомобильным компьютером и т.д. Таким образом, вычислительное устройство 100 может варьироваться от полноресурсного устройства с значительной памятью и процессорными ресурсами (например, персональные компьютеры, игровые приставки) до малоресурсного устройства с ограниченными памятью и/или ресурсами обработки данных (например, традиционные абонентские установки, переносные игровые приставки).
Вычислительное устройство 100 включает в себя модуль управления 102 программной клавиатурой и предсказывающий модуль 104 клавиатуры. Модуль управления 102 программной клавиатурой генерирует программную клавиатуру 108 для отображения пользователю. Программная клавиатура 108 является пользовательским интерфейсом, отображенным на устройстве отображения. Программная клавиатура 108 включает в себя множественные клавиши, которые могут быть выбраны пользователем, как более подробно обсуждено ниже. Вычислительное устройство 100 может включать в себя компонент отображения, через который программная клавиатура 108 может быть отображена, или альтернативно может вывести сигнал или данные на другое устройство или компонент, через который программная клавиатура 108 может быть отображена.
Программная клавиатура 108 включает в себя множественные клавиши, которые могут быть расположены в любом множестве различных раскладок и могут соответствовать любому множеству различных буквенно-цифровых символов, иероглифов, групп символов или слов (например, "http://", "www." и т.д.), других символов и т.д. Одной примерной раскладкой для клавиш является раскладка QWERTY, хотя другие раскладки могут быть альтернативно обеспечены. Кроме того, программная клавиатура 108 является динамической. Эта динамическая сущность относится к свойству предсказывающего модуля 104 клавиатуры, меняющегося с течением времени, и/или пользовательскому интерфейсу, отображаемому как программная клавиатура 108, меняющаяся с течением времени. Как более подробно обсуждено ниже, это изменение может включать в себя изменение расположения клавиатуры; изменения в различных буквенно-цифровых символах или символах, соответствующих клавишам, изменение в чьем расположении на программной клавиатуре 108 соответствуют каким клавишам, изменениям логики области нажатия и т.д.
Программная клавиатура 108 отображается на устройство отображения, и ввод пользователя также вводится через это устройство отображения. В одном или более воплощениях дисплей, выводящий на экран программную клавиатуру 108, представляет сам или соединяется с сенсорным экраном или сенсорной панелью, через которую вводы пользователя могут быть введены касанием пользователя, или приближением в непосредственной близости к областям дисплея, которые отображают клавиши программной клавиатуры 108. Это касание или непосредственная близость могут делаться, используя стилус, перо, палец и т.д. В других вариантах осуществления используются другие указывающие устройства, а не сенсорный экран или сенсорная панель. Может использоваться любое множество других указывающих устройств, чтобы перемещать указатель и вводить ввод, используя программную клавиатуру 108, включая соответственные указывающие устройства, такие как мышь, ползунок, сенсорная панель, шаровой манипулятор и т.д. Другие типы указывающих устройств также могут использоваться, включая абсолютно разъединенные указывающие устройства, такие как перьевые планшеты. Эти различные указывающие устройства обычно включают в себя одну или более кнопок или другой механизм(ы) выбора, который может быть приведен в действие пользователем, чтобы выбрать определенное расположение программной клавиатуры 108 (например, пользователь может нажать кнопку мыши, когда указатель располагается на требуемой области программной клавиатуры 108). Не нужна никакая отдельная материальная клавиатура с материальными клавишами, которые соответствуют программной клавиатуре 108, через которую вводится ввод пользователя.
Фиг.2 иллюстрирует в качестве примера устройство отображения 200, отображающее программную клавиатуру 202 в соответствии с одним или более воплощениями. Программная клавиатура 202 может быть, например, программной клавиатурой 108 из Фиг.1. Нужно принимать во внимание, что примерная компоновка и буквенно-цифровые символы, соответствующие клавишам программной клавиатуры 202, являются только примером, и что может использоваться любое множество различных компоновок и/или соответствующих символов или обозначений, как обсуждено выше. В примере Фиг.2 программная клавиатура 202 не занимает всю область отображения устройства 200 отображения, оставляя место для другой информации, которая будет отображена пользователю устройства 200. Кроме того, программная клавиатура 202 может занять всю (или почти всю) область отображения устройства 200 отображения. Программная клавиатура 202 может также дополнительно включать в себя механизм пользовательского интерфейса для скрытия и показа выполняемых функций, позволяя клавиатуре 202 быть скрытой от представления в определенные моменты.
Как обсуждено выше, любой из множества различных указывающих устройств может использоваться, чтобы ввести ввод на программной клавиатуре 202. Как пример указывающего устройства Фиг.2 иллюстрирует стилус 204, который пользователь может использовать для касания или нависания над определенной клавишей клавиатуры 202. Когда пользователь касается определенной области клавиатуры 202 (со стилусом 204 или указателем, которым управляет другое указывающее устройство) или перемещает стилус 204 (или другой указатель) по определенной области клавиатуры 202, то автоматически обнаруживается определенная клавиша, которую пользователь намеревался выбрать касанием или перемещением стилуса или другого указывающего устройства. Способ, которым выполняется это автоматическое обнаружение, базируется, по меньшей мере, частично на текущей среде ввода, как обсуждено более подробно ниже.
В одном или более воплощениях устройство 200 отображения включает в себя сенсорный экран или сенсорную панель, разрешающую пользователю касаться или близко перемещать стилус, различные области устройства 200 отображения, чтобы позволить пользователю вводить ввод пользователя. Такой сенсорный экран или сенсорная панель могут быть электромагнитным устройством ввода данных, емкостным устройством ввода данных, резистивным устройством ввода данных, устройством ввода данных поверхностной акустической волны, оптическим устройством ввода данных обработки изображений и т.д. Такие сенсорные экраны или сенсорные панели известны специалистам в данной области техники. Нужно иметь в виду, что, если используются другие указывающие устройства (такие как мышь, перьевой планшет и т.д.), то устройство 200 отображения не должен включать в себя сенсорный экран или сенсорную панель.
Возвращаясь к Фиг.1, модуль управления 102 программной клавиатуры также получает вводные данные 110 пользователя. Ввод 110 пользователя ссылается на выбор определенного расположения(й) программной клавиатуры 108. Этот выбор может быть сделан, используя стилус, перо, палец, указатель, которым управляет указывающее устройство и т.д., как обсуждено выше. Ввод данных 110 пользователя обычно представлен модулем 102 как набор из одной или более координат (например, координат X-Y, координат X-Y-Z и т.д.), идентифицирующих расположение(я) программной клавиатуры 108, которые были выбраны пользователем. Как обсуждалось выше, этот выбор может включать в себя касание или перемещение в непосредственной близости от сенсорного экрана или сенсорной панели или другие вводы от других указывающих устройств. Координаты X и Y относятся соответственно к горизонтальному и вертикальному расположениям поверхности ввода (например, поверхности сенсорного экрана, сенсорной панели, перьевого планшета и т.д.). Координата Z представляет расстояние от поверхности ввода и может использоваться, чтобы определить, завис ли пользователь над частью поверхности ввода.
В одном или более воплощениях ввод 110 пользователя является потоком данных (например, потоком координат X-Y, потоком координат X-Y-Z и т.д.). Этот поток данных включает в себя одну или более входную траектории, одну или более траекторию спуска пера и выходную траекторию. Входная траектория обращается к потоку координат прежде, чем манипулятор достигнет поверхности (или прежде, чем механизм выбора будет приведен в действие пользователем). Траектория спуска пера обращается к месту на поверхности, которую достигает указывающее устройство (или где располагается указатель, когда механизм выбора приводится в действие пользователем). Часто есть единственная траектория спуска пера, хотя могут быть получены множественные траектории спуска пера (например, если пользователь возвращает перо в тот момент, когда оно достигает поверхности). Выходная траектория обращается к потоку координат в тот момент, когда манипулятор покидает поверхность (или после того, как механизм выбора приводится в действие пользователем).
Предсказывающий модуль 104 клавиатуры получает ввод 110 пользователя от модуля управления 102 программной клавиатурой. Предсказывающий модуль 104 клавиатуры определяет, основываясь и на вводе 110 пользователя, и на информации, описывающей текущую среду ввода для программной клавиатуры 108, какую именно одну или более клавиш программной клавиатуры 108 пользователь намеревался выбрать с вводом 110 пользователя. Как обсуждено более подробно ниже, эта текущая среда ввода описывает различные аспекты среды, в которой программная клавиатура 108 выводится на экран, такие как текущий тип данных, вводимых пользователем (например, адрес электронной почты, почтовый индекс, город и т.д.), язык, обычно используемый пользователем программной клавиатуры 108, данные, обычно вводимые пользователем программной клавиатуры 108 и т.д.
В одном или более воплощении предсказывающий модуль 104 клавиатуры также определяет, основываясь на вводе 110 пользователя и/или информации, описывающей текущую среду ввода для программной клавиатуры 108, изменения, которые нужно сделать с программной клавиатурой 108. Эти изменения могут быть изменением в расположении клавиатуры и/или изменением в различных буквенно-цифровых знаках или обозначениях, соответствующих клавишам, как обсуждено более подробно ниже.
Фиг.3 иллюстрирует в качестве примера систему, реализующую динамическую программную клавиатуру в соответствии с одним или более воплощениями. Система 300 может быть, например, вычислительным устройством 100 из Фиг.1. Система 300 включает в себя модуль управления 302 программной клавиатуры (который может быть модулем управления 102 программной клавиатуры из Фиг.1) и предсказывающий модуль 304 клавиатуры (который может быть предсказывающим модулем 104 клавиатуры из Фиг.1). Модули 302 и 304 могут быть реализованы как часть того же самого устройства или могут быть реализованы как различные устройства. Кроме того, каждый из модулей 302 и 304 непосредственно может быть реализован единственным устройством или, как вариант, множественными устройствами.
Модуль управления 302 программной клавиатурой генерирует программную клавиатуру 308 и принимает ввод 310 пользователя (аналогично программной клавиатуре 108 и вводу 110 пользователя из Фиг.1). Ввод 310 пользователя являются выбором, сделанным пользователем программной клавиатуры 308, выбором, являющимся выбором определенного одного или большего количества положений программной клавиатуры 308. Этот выбор может быть сделан различными способами, такими как касание дисплея пальцем, пером, стилусом и т.д., перемещением указателя по расположению программной клавиатуры, перемещением пера или стилуса близко к дисплею и т.д. Этот выбор включает в себя одну или более входную траекторию, одну или более траекторию спуска пера, и выходную траекторию, как обсуждено выше. Модуль управления 302 программной клавиатуры может представить ввод 310 пользователя любым множеством различных способов.
В одном или более воплощениях ввод 310 пользователя представлены как набор одного или большего количества координат X-Y. Набор координат X-Y идентифицирует определенное расположение программной клавиатуры 308 в 2-мерном пространстве. Определенное расположение программной клавиатуры 308 определено быть исходным положением (например, нижний левый угол программной клавиатуры 308, центр программной клавиатуры 308 и т.д.), и значения X-Y представляют собой расположения вдоль оси X и оси Y относительно исходного положения.
Кроме того, в одном или более воплощениях дисплей, на котором выводится на экран программная клавиатура 308, поддерживает ось Z. Эта ось Z перпендикулярна 2-мерному пространству координат X-Y. Такие дисплеи могут обнаружить, например, стилус, близко расположенный, но не касающийся дисплея. Расстояние между стилусом и дисплеем записывается как значение Z. Таким образом, при использовании с такими дисплеями, ввод 310 пользователя представлен как набор из одной или более координат X-Y-Z.
Кроме того, в одном или более воплощениях значение дополнительного времени T записывается для ввода пользователя. Значение времени T ссылается на продолжительность выбора пользователя, такую как количество времени, которое стилус пользователя касался определенного места X-Y клавиатуры 308, количество времени, которое стилус пользователя был на определенном расстоянии Z от определенного места X-Y клавиатуры 308, количество времени, которое указатель был отведен (парил) над определенным местом X-Y клавиатуры 308, и т.д. Таким образом, в таких воплощениях ввод 310 пользователя представлен как набор из одного или более X-Y-T или координат X-Y-Z-T. Значение времени T - ввод в предсказывающий механизм 320 клавиатуры и может использоваться, чтобы сделать лучшие прогнозы для текстового ввода, требуемого пользователем, как обсуждено более подробно ниже.
Кроме того, в одном или более воплощениях, множественные положения клавиатуры 308 могут быть выбраны одновременно. Эти множественные положения могли быть, например, двумя или больше положениями, выбранными одновременно (например, используя два пальца), такие как клавиша "Shift" плюс клавиша буквы, клавиша "Control" плюс клавиша буквы и т.д. Эти множественные положения могли также быть перемещением из одного положения в другое (например, сенсорная клавиатура 308 со стилусом в одном положении, сдвинуть стилус через дисплей и затем поднять стилус в другом положении), и т.д. В таких ситуациях ввод 310 пользователя представлен как набор нескольких координат (например, X-Y, X-Y-Z, X-Y-T, X-Y-Z-T и т.д.). Одна или более координат дополнительно также включают в себя параметр траектории, который идентифицирует направление, в которое стилус (или палец, перо и т.д.) перемещается вдоль устройства отображения, или когда в контакте с устройством отображения, или располагался близко к устройству отображения (например, расстояние Z от устройства отображения). В некоторых воплощениях, установив подобное оборудование, пользователи обычно имеют больше погрешностей в наведении на цель в вертикальном направлении и более точны в горизонтальном направлении.
Предсказывающий модуль 304 клавиатуры получает ввод 310 пользователя от модуля управления 302 программной клавиатурой и определяет, основываясь и на вводе 310 пользователя, и на информации, описывающей текущую среду ввода для программной клавиатуры 308, какую одну или более клавиш программной клавиатуры 308 намеревался выбрать пользователь с вводом 310 пользователя. В одном или более воплощениях предсказывающий модуль 304 клавиатуры также определяет изменения, чтобы сделать их в программной клавиатуре 308, базируясь, по крайней мере, частично на текущей среде ввода. Индикация этих изменений отправляется модулю управления 302 программной клавиатуры, который соответственно изменяет отображение программной клавиатуры 308.
Предсказывающий модуль 304 клавиатуры включает в себя предсказывающий механизм 320 клавиатуры, модуль 322 определения режима работы, модуль 324 словарей языка, модуль 326 определенной пользователем лексики, модуль 328 отображения контекста, модуль 330 определения языка, модуль 332 n-грамм статистики слова и фразы. Каждый из модулей 322-332 обеспечивает предсказывающему механизму 320 клавиатуры различную информацию относительно текущей среды ввода для программной клавиатуры 308. Предсказывающий механизм 320 клавиатуры поочередно использует эту информацию относительно текущей среды ввода, чтобы изменить программную клавиатуру 308 (например, раскладку, или символы, или обозначения, соответствующие определенным клавишам) и также определить, которую именно одну или более клавиш программной клавиатуры 308 пользователь намеревался выбрать с вводом 310 пользователя.
Предсказывающий механизм 320 клавиатуры выводит показания 340 о том, какую клавишу пользователь предполагает выбрать с определенным вводом пользователя. Эти показания 340 обычно используются, чтобы обновить пользовательский интерфейс программной клавиатуры 308, и могут также быть представлены для другого компонента (не показан) для использования как ввода символа(ов). Эти показания 340 могут также быть возвращены одному или более из модулей 322-332, чтобы помочь в определении текущей среды ввода. Например, как обсуждено более подробно ниже, модуль 326 определенной пользователем лексики может контролировать слова, которые вводятся пользователем.
Кроме того, в одном или более воплощений предсказывающий механизм 340 клавиатуры также выводит предсказанную строку ввода 360, которая является прогнозом механизмом 340 из определенного слова или фразы, которую вводит пользователь. Вывод этого предсказания позволяет пользователю выбирать опцию "автозаполнение", где предсказанное слово или фраза вводятся без пользователя, уже не должного больше вводить символы слова или фразы. Предсказанная строка 360 ввода обеспечивается для модуля управления 302 программной клавиатурой или какого-либо другого компонента системы (не показан) так, чтобы предсказанное слово или фраза могли быть показаны пользователю. Пользователь может выбрать это показанное предсказанное слово или фразу различными способами через программную клавиатуру 308, такими как, выбор клавиши "Ввод", выбор клавиши "автозаполнение", выбор определенного символа в предсказанном слове или фразе и т.д. Нужно отметить, что пользователь может также дополнительно выбрать только часть предсказанного слова или фразы.
Модуль 322 определения режима работы определяет режим работы устройства, в котором выводится на экран программная клавиатура 308. Режим работы может включать в себя, например, материальное положение и/или географическое положение устройства. Материальное положение ссылается на физическое описание того, как используется устройство. Это описание физических свойств может включать в себя, например, является ли устройство стационарным или движущимся, ориентируется ли устройство в определенном направлении и т.д. Материальное положение может быть определено различными способами, например, быть указанным пользователем устройства, используя датчики движения в устройстве, основанном на периферийных устройствах или других компонентах, основанном на связи с беспроводной базой или точкой доступа и т.д.
Географическое положение ссылается на географическое описание того, где располагается устройство. Географическое расположение может быть определено различными способами, такими как заданные пользователем устройства, используя устройства глобальной системы позиционирования (GPS), основываясь на адресе (например, адресе протокола Интернет (IP)), присвоенного устройству и т.д.
Информация, описывающая режим работы устройства из модуля 322 определения режима работы, может использоваться предсказывающим механизмом 320 клавиатуры множеством различных способов. Например, предсказывающий механизм 320 клавиатуры может предполагать, что более трудно точно идентифицировать определенную клавишу, когда устройство перемещается, а не является стационарным, таким образом, механизм 320 может присвоить большие области программной клавиатуры 308 определенным клавишам, когда устройство перемещается скорее, чем когда устройство является стационарным. Эти большие области могли соответствовать более крупным клавишам, отображающимся на программной клавиатуре 308, или большим областям нажатия для определенных клавиш, как обсуждено более подробно ниже.
Модуль 324 словарей языка делает один или больше специфичных для языка словарей доступным для предсказывающего механизма 320 клавиатуры. Предсказывающий механизм 320 клавиатуры может автоматически попытаться идентифицировать определенные слова или фразы, которые вводятся пользователем так, чтобы мог быть определен следующий знак (или другой символ), который, вероятно, будет введен пользователем. Например, если пользователь вводит "uni", предсказывающий механизм 320 клавиатуры может автоматически идентифицировать, что пользователь пытается ввести слово "unit", таким образом, следующий вводимый символ пользователем, вероятно, будет буквой "t". Предсказывающий механизм 320 клавиатуры может использовать различную информацию от различных модулей 322-332, чтобы попытаться идентифицировать определенные слова или фразы, которые вводятся пользователем, одним из которых обычно является определенный язык, используемый пользователем. Одна порция информации обеспечивается для предсказывающего механизма 320 клавиатуры модулем 324 словарей языка, чтобы помочь в создании определения, является ли словарь слов и/или фраз для языка(ов), обычно используемого пользователем.
Язык(и), обычно используемый пользователем, может быть идентифицирован различными способами. Например, язык(и) может быть указан пользователем, может быть язык по умолчанию, основанный на местоположении, где продается система 300 (например, если бы система 300 была продана во Франции, то язык по умолчанию был бы французским), может быть основан на предыдущих вводах пользователем (например, если бы большая часть предыдущих вводов была на английском языке, то язык был бы английским), может быть получен из другого модуля (такого как модуль 330 определения языка, обсужденный более подробно ниже) и т.д.
Модуль 326 определенной пользователем лексики собирает и поддерживает информацию относительно слов (или других данных, таких как числа, символы и т.д.), которые обычно вводятся пользователем. Эта информация может собираться и храниться множеством различных способов. В одном или более воплощений сохраняются слова, вводимые пользователем, и соответствующая частота, указывающая, как часто те слова вводятся. Эта частота может быть, например, счетчиком слов, который постепенно увеличивается каждый раз, когда слово вводится, коэффициентом, указывающим, как часто слово встречается относительно других слов, сохраняемых модулем 326 и т.д. Кроме того, пользователь или администратор (например, для корпорации, в которой работает пользователь) могут дополнительно установить новый пользовательский словарь, добавляющий их слова, как они вводятся пользователем (и/или дополнительно включая в себя слова по умолчанию и частоты для пользователя).
Кроме того, слова, которые отслеживаются или сохраняются модулем 326, могут устаревать с течением времени так, чтобы слова, используемые с той же самой частотой, но более давно, были идентифицированы как реже использующиеся пользователем, чем слова, которые вводились совсем недавно. Это устаревание может быть выполнено различными способами, таким как, поддержка записи того, когда определенное слово использовалось (например, в минутах, часах, днях и т.д.), изменяя (например, уменьшая) частоту, соответствующую слову, которое не использовалось для, по меньшей мере, порогового количества времени и т.д.
Как обсуждено выше, предсказывающий механизм 320 клавиатуры может автоматически попытаться идентифицировать определенные слова или фразы, которые вводятся пользователем. Одна порция информации, обеспеченная для предсказывающего механизма 320 клавиатуры модулем 326 определенной пользователем лексики, является информацией относительно слов (или других данных), которые обычно вводятся пользователем.
Модуль 328 отображения контекста поддерживает отображение определенных полей, в которых пользователь может ввести данные в типы данных, которые допустимы для каждого определенного поля. Например, если поле - поле почтового индекса, то достоверные данные могли бы быть числами, но не буквами. Посредством другого примера, если поле - поле адреса электронной почты, то достоверные данные могли быть буквами, числами и некоторыми символами (таким как "@"), но не другими символами (такими как"!" или "#").
Модуль 328 отображения контекста может идентифицировать определенные поля, выводимые на экран для пользователя наряду с программной клавиатурой 308 в любом множестве различных способов. Например, данные, выводимые на экран, могут анализироваться, и определенные поля идентифицироваться (например, поле с меткой "почтовый индекс" или "код почтового индекса", поле с меткой "электронная почта" или "адрес электронной почты" и т.д.). В другом примере различные теги или идентификаторы могут быть включены в данные, выводимые на экран наряду с программной клавиатурой 308, эти теги или идентификаторы указывают модулю 328 отображения контекста на определенные выводимые на экран поля. В другом примере, входные поля могут явно объявить свое существование как свой "тип" или законные входные ограничения через прикладной программный интерфейс (API) операционной системы в системе 300.
Допустимые типы данных для определенных полей могут быть идентифицированы различными способами. В одном или воплощениях допустимые типы данных для определенных полей предварительно запрограммированы или иначе идентифицированы для модуля 328 отображения контекста. Например, различные теги, идентификаторы или другие метаданные, соответствующие данным, выводимым на экран наряду с программной клавиатурой, могут идентифицировать допустимые типы данных для определенных полей, или другие удаленные устройства можно получить доступ, чтобы получить допустимые типы данных для определенных полей. Посредством другого примера API операционной системы в системе 300 может быть вызван, чтобы получить допустимые типы данных для определенных полей. В других воплощениях один или более допустимых типов данных для определенных полей могут быть автоматически идентифицированы модулем 328 отображения контекста. Например, модуль 328 отображения контекста может узнать, что определенный тип данных не допустим для определенного поля, если пользователь пытается ввести данные этого типа, и погрешность возвращается пользователю программой или другим компонентом, обрабатывающим ввод.
Информация об отображении контекста от модуля 328 отображения контекста может использоваться предсказывающим механизмом 320 клавиатуры множеством различных способов. В одном или более воплощений предсказывающий механизм 320 клавиатуры решает, что определенные типы данных, которые не допустимы для определенного поля, не предназначены, чтобы быть выбранными с вводом 310 пользователя. Например, если определенное поле признает только числа, то предсказывающий механизм 302 клавиатуры может решить, что клавиша, которую намеревался выбрать пользователь, будет цифровой клавишей на программной клавиатуре 308, который является самой близкой к вводу 310 пользователя. Как другой пример, если определенное поле признает только числа, то предсказывающий механизм 320 клавиатуры может указать модулю управления 302 программной клавиатуры, что программная клавиатура 308 должна включать в себя только числа и никаких букв.
Как вариант, предсказывающий механизм 320 клавиатуры может решить, что определенные типы данных, которые допустимы, пользователю легче выбрать, чем другие типы данных. Например, если обозначение является допустимым обозначением для определенного поля, но обозначения "!" и "#" не допустимы для того поля, тогда логика нажатия, реализованная предсказывающим механизмом 320 клавиатуры, может увеличить вероятность, что будет выбран символ "@". Эта вероятность может быть увеличена различными способами, таким как, делая нажатие для символа "@" больше, чем для символов "!" и "#". Область нажатия на программной клавиатуре 308 для определенной клавиши обращается к положениям программной клавиатуры 308, которые соответствуют определенной клавише. Так как символы "!" и "#" расположены по обе стороны от символа "@" на многих клавиатурах, то изменение размера нажатия облегчает для пользователя выбор символа "@" касанием программной клавиатуры 308 или вблизи с символом "@". Использование нажатий и логики нажатий, реализованные предсказывающим механизмом 320 клавиатуры, обсуждаются более подробно ниже.
Модуль 330 определения языка идентифицирует язык, используемый пользователем системы 300. Язык может быть идентифицирован различными способами, такими как указание языка пользователем или модулем 330, автоматически идентифицирующим язык. Модуль 330 может автоматически идентифицировать язык, например, получая доступ к языку по умолчанию для системы 300 (например, как записано операционной системой), получая доступ к модулю 328 отображения контекста, чтобы идентифицировать типы данных и их соответствующего языка (например, если обозначения иероглифов - допустимый тип данных, то язык может быть автоматически идентифицирован как японский язык) и т.д.
Язык, идентифицированный модулем 330 определения языка, может быть языком, обычно используемым пользователем системы 300, или либо может быть языком, используемым пользователем системы 300 для определенной записи, сделанной пользователем. Например, если пользователь ввел частичное слово (например, "uni"), то модуль 330 определения языка может автоматически обнаружить язык, вводимый пользователем. Это может быть самостоятельным определением (например, базируемый только на частичном слове) или как вариант может быть в соединении с другой информацией (например, языком(ми), обычно используемым пользователем системы 300).
Модуль 332 n-грамм статистики слова и фразы идентифицирует слова или фразы, которые более вероятны, чем другие, основанные на частичных вводах. Он может включать в себя, например, идентификацию слова, основанного на частичном вводе слова, и идентификацию фразы, основанной на единственном (или многократном) вводе слова. В одном или более воплощениях эта идентификация основана на фактических словах (например, из словаря, предоставленного модулем 324 словарей языка). Например, если вводится слово "соединенные", то модуль 332 может указать, что слово "штаты" более вероятно, чем слово "работа".
В других воплощениях эта идентификация модулем 332 основана на правилах грамматики или других правилах. Например, два глагола обычно не примыкают друг к другу, поэтому, если глагол вводится как первое слово, модуль 332 может указать, что следующее слово во фразе вряд ли будет глаголом. Как другой пример, модуль 332 может решить, что фраза "Соединенные Штаты Америки" часто вводится пользователем системы 300, таким образом, модуль 332 может решить, что, если "Соединенные Штаты" были введены пользователем, то затем "Америки" более вероятно во фразе, чем другие словосочетания.
Информация, идентифицирующая вероятные слова или фразы от слова и модуля 332 n-грамм статистики слова и фразы, может использоваться предсказывающим механизмом 320 клавиатуры множеством различных способов. Аналогично обсуждению выше модуля 328 отображения контекста, информация, идентифицирующая вероятные слова или фразы, может использоваться, чтобы решить, что определенные слова, буквы или другие символы не имеются в виду, чтобы быть выбранными с вводом 310 пользователя и таким образом не разрешить запись таких слов, букв или других символов, или альтернативно могут изменить нажатия, облегчающие для пользователя выбор определенных слов, букв или других символов.
Предсказывающий механизм 320 клавиатуры принимает информацию, описывающую текущую среду ввода от различных модулей 322-332, как обсуждено выше. Предсказывающий механизм 320 клавиатуры использует эту информацию, описывающую текущую среду ввода, чтобы изменить расположение и/или буквенно-цифровой знаки или символы, соответствующие клавишам программной клавиатуры 308, и/или определить, какую клавишу пользователь намеревался выбрать с конкретным вводом пользователя. Предсказывающий механизм 320 клавиатуры повторяет это изменение и/или определение после каждого выбора клавиши(ей), сделанного пользователем. Текущая среда ввода может измениться после каждого выбора клавиши(ей) пользователем, и новая текущая среда ввода может быть принята во внимание предсказывающим механизмом 320 клавиатуры после каждого выбора клавиши(ей) пользователем.
Как обсуждено выше, информация, описывающая текущую среду ввода, может указать, что определенные вводы более вероятны, чем другие. В одном или более воплощений эта информация используется, чтобы изменить раскладку программной клавиатуры 308. Например, информация может использоваться, чтобы изменить раскладку программной клавиатуры 308 от раскладки QWERTY к раскладке цифровой клавиатуры, включать в себя только определенные клавиши из раскладки QWERTY и т.д.
В других воплощениях информация, описывающая текущую среду ввода, используется, чтобы изменить какой-либо буквенно-цифровой знак или другие символы, соответствующие клавишам программной клавиатуры 308. В ответ на такое изменение программная клавиатура 308 показывает новые соответствующие знаки или символы для тех ключей, а не ранее выведенные на экран знаки или символы, и выбор одной из тех клавиш имеет результатом ввод данных пользователем выведенного на экран соответствующего знака или символа. Например, строка клавиш программной клавиатуры 308 может быть изменена от соответствия числам на соответствие символам. В другом примере определенные клавиши могут быть изменены, чтобы соответствовать определенным специфическим знакам и/или символам языка.
В других воплощениях информация, описывающая текущую среду ввода, используется, чтобы изменить поверхности клавиш программной клавиатуры 308. В ответ на такое изменение, программная клавиатура 308 показывает различные поверхности для клавиш. Например, клавиши, которые являются вероятными и/или возможными будущими буквами слов, которые вводятся, могут быть выделены. Как другой пример, клавиши для букв, которые не имели бы результатом слово (основанное на уже введенных буквах), могут быть недоступны, чтобы помочь в визуальном наведении и уменьшить усилие пользователя.
В других воплощениях информация, описывающая текущую среду ввода, используется, чтобы определить, какую клавишу пользователь намеревался выбрать с определенным вводом пользователя. Предсказывающий механизм 320 клавиатуры, включая в себя логику нажатия, использует текущую среду ввода наряду с вводом 310 пользователя, чтобы идентифицировать, какую определенную клавишу на программной клавиатуре 308 пользователь намеревался выбрать.
Один способ, которым предсказывающий механизм клавиатуры может использовать текущую среду ввода и ввод 310 пользователя, должен изменить размеры нажатых целей для определенных клавиш. Как обсуждено выше, каждая клавиша на программной клавиатуре 308 может иметь соответствующую область нажатия, и предсказывающий механизм 320 клавиатуры может присвоить область нажатия каждой клавише. Эта область нажатия для определенной клавиши обращается к местам на программной клавиатуре 308, которые соответствуют этой определенной клавише. Область нажатия для определенной клавиши может быть изменена - область нажатия может быть увеличена в размере предсказывающим механизмом 320 клавиатуры так, чтобы больше мест на программной клавиатуре 308 соответствовало этой определенной клавише, или может быть уменьшена в размере предсказывающим механизмом 320 клавиатуры так, чтобы меньше мест на программной клавиатуре 308 соответствовало этой определенной клавише. Увеличение области нажатия для клавиши, таким образом, обычно облегчает для пользователя выбор этой клавиши, в то время как уменьшение области нажатия для клавиши обычно делает более трудным для пользователя выбор этой клавиши.
Нужно отметить, что это может дать результат в ситуациях, когда область нажатия для одной клавиши больше чем прилегающая клавиша и фактически распространяется на часть дисплея, занятую прилегающей клавишей. Например, предположим, что предсказывающий механизм 320 клавиатуры решает, что буква "d", вероятно, будет следующим вводимым пользователем символом. Область нажатия для буквы "d" может быть увеличена, в то время как область нажатия для прилегающей буквы "f" может быть уменьшена. Область нажатия для буквы "d" может включать в себя места, в которых клавиша для буквы "f" фактически выводится на экран на программной клавиатуре 308. Таким образом, в этом примере, если пользователь должен был нажать место с краю клавиши для буквы "f", предсказывающий механизм 320 клавиатуры решает, что буква "d" - клавиша, которая имелась в виду, чтобы быть выбранной пользователем. Такие места могут встречаться по множеству различных причин, таких, как ходьба пользователя, делающего вводы (когда пользователю более трудно точно нажать требуемую клавишу).
Кроме того, предсказывающий механизм 320 клавиатуры может сделать некоторые клавиши на программной клавиатуре 308 недействительными. Таким образом, предсказывающий механизм 320 клавиатуры не указывает, что недействительная клавиша имелась в виду, чтобы быть выбранной из определенного ввода пользователя независимо от того, каков этот определенный ввод пользователя. Например, если символ "!" определен быть недопустимым, то предсказывающий механизм 320 клавиатуры не указывает, что символ "!" имелся в виду, чтобы быть выбранным из определенного ввода пользователя независимо от того, какой этот определенный ввод пользователя.
Предсказывающий механизм клавиатуры 320 может определить, как изменить раскладку и/или буквенно-цифровые знаки или символы, соответствующие клавишам программной клавиатуры 308, и/или определить, какую клавишу пользователь намеревался выбрать из определенного ввода пользователя множеством различных способов. В одном или более воплощениях предсказывающий механизм 320 клавиатуры является обучаемой системой, которая обучается с различными вводами (сочетания ввода 310 пользователя и всевозможной информации, описывающей текущую среду ввода). Эта тренировка предполагает обеспечение механизма 320 различными вводами и правильным ответом так, чтобы механизм 320 мог изучить то, какие ответы должны быть даны в ответ на различные вводы. Начальная тренировка обычно выполняется разработчиками предсказывающего механизма 320 клавиатуры, и дополнительная тренировка может быть выполнена во время работы системы 300. Эта дополнительная тренировка может быть выполнена, например, основываясь на обратной связи, дающей механизму 320 указания, был ли определенный вывод 340 правильным. Любая из множества различных обучающих систем может использоваться, включая системы искусственного интеллекта и другие системы, основанные на статистике. Например, такие обучающие системы могут включать в себя искусственную нейронную сеть, систему байесовского вывода, алгоритм k-ближайших соседей и т.д.
Кроме того, предсказывающий механизм 320 клавиатуры может быть реализован как другие системы. Например, механизм 320 может быть реализован, используя любое множество систем статистического анализа, чтобы оценить ввод 310 пользователя, и всевозможную информацию, описывающую текущую среду ввода. Как другой пример, механизм 320 мог быть реализован, используя другие различные правила, критерии или коэффициенты, примененные к вводу 310 пользователя, и всевозможную информацию, описывающую текущую среду ввода.
Таким образом, можно видеть, что программная клавиатура 308 является динамической. В одном или более воплощениях программная клавиатура 308 меняет раскладки и/или буквенно-цифровые знаки или символы, соответствующие клавишам, образуя при этом динамическую программную клавиатуру. Кроме того, в одном или более воплощений то, какую клавишу пользователь намеревался выбрать из определенного ввода, может изменяться, образуя при этом динамическую программную клавиатуру. Такие изменения, относительно того, какую клавишу пользователь намеревался выбрать из определенного ввода, могут быть выполнены с выводом или без вывода индикации пользователю относительно таких изменений.
Фиг.4 - блок-схема, поясняющая в качестве примера процесс 400 для динамической программной клавиатуры в соответствии с одним или более воплощениями. Процесс 400 выполняется системой, такой как система 300 из Фиг.3, и может быть реализован в программном обеспечении, встроенном микропрограммном обеспечении, аппаратных средствах или сочетаниях перечисленного. Процесс 400 показан как ряд действий, которые указывают операции, выполняемые одним или более устройствами, и не обязательно ограничиваются режимами, показанными для того, чтобы выполнить операции соответствующими действиями. Процесс 400 является примером процесса для динамической программной клавиатуры; дополнительные обсуждения динамической программной клавиатуры включены здесь со ссылкой на другие чертежи.
Первоначально, ввод пользователя принимается через программную клавиатуру (действие 402). Этот ввод пользователя является определенным одним или более положений программной клавиатуры, как обсуждено выше. Кроме того, получается информация, описывающая текущую среду ввода (действие 404). Эта информация может быть любым множеством различных типов информации, таких как информация, обсужденная выше в отношении модулей 322-332 из Фиг.3.
Конкретная одна или более клавиш, которые имелись в виду, чтобы быть выбранным вводом пользователя, определяются (действие 406), основываясь, по крайней мере, частично на информации, полученной в действии 404. Индикация одной или более клавиш, которые было решено выбрать пользователем, выводится (действие 408). Индикация предсказанной строки ввода также дополнительно выводится (действие 410). Кроме того, в одном или более воплощениях программная клавиатура изменяется (действие 412), основываясь, по крайней мере, частично на информации, полученной в действии 404. Это изменение может, например, изменять раскладку и/или изменять буквенно-цифровые знаки или символы, соответствующие клавишам программной клавиатуры, как обсуждено выше.
Фиг.5 иллюстрирует пример вычислительного устройства 500, которое может быть сконфигурировано, чтобы реализовать динамическую программную клавиатуру в соответствии с одним или более воплощениями. Вычислительное устройство 500 может быть, например, вычислительным устройством 100 из Фиг.1.
Вычислительное устройство 500 включает в себя один или более процессоров или процессорных блоков 502, один или более читаемых компьютером носителей 504, который может включать в себя один или более компонентов 506 памяти и/или хранилища, одно или более устройств 508 ввода-вывода (I/O), через которое получается ввод 110 пользователя из Фиг.1 (или ввод 310 пользователя из Фиг.3), и шина 510, которая позволяет различным компонентам и устройствам связываться друг с другом. Читаемые компьютером носители 504 и/или устройство(а) 508 ввода-вывода могут быть включены в вычислительное устройство 500 как его часть либо могут быть связаны с ним. Шина 510 представляет собой один или больше из нескольких типов структур шины, включая шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт, и процессорную или локальную шину, использующую любую из множества шинных архитектур. Шина 510 может включать в себя проводные и/или беспроводные шины.
Компонент 506 памяти/хранилища представляет собой один или более компьютерных носителей информации. Компонент 506 может включать в себя энергозависимые носители (такие как оперативная память (RAM)) и/или энергонезависимые носители (такие как постоянная память (ROM), флэш-память, оптические диски, магнитные диски и т.д.). Компонент 506 может включать в себя фиксированные носители (например, RAM, ROM, фиксированный жесткий диск и т.д.), так же как и съемные носители (например, карта флэш-памяти, съемный жесткий диск, оптический диск и т.д.).
Методы, обсуждаемые здесь, могут быть реализованы в программном обеспечении, с инструкциями, выполняемыми процессором(ми) 502. Нужно принимать во внимание, что различные инструкции могут быть сохранены в различных компонентах вычислительного устройства 500, таких как процессор 502, в различной кэш-памяти процессора 502, в другой кэш-памяти устройства 500 (не показано), на других компьютерных носителях информации и т.д. Кроме того, нужно принимать во внимание, что место, где инструкции хранятся в вычислительном устройстве 500, может меняться с течением времени.
Одно или более устройств 508 ввода-вывода позволяют пользователю вводить команды и информацию в вычислительное устройство 500 и также позволяют информации быть представленной пользователю и/или другим компонентам или устройствам. Эта информация, представленная пользователю, может включать в себя программную клавиатуру 108 из Фиг.1 или программную клавиатуру 308 из Фиг.3. Примеры устройств ввода данных включают в себя клавиатуру, устройство, управляющее курсором или указателем (например, мышь, сенсорная панель, ползунок, перьевой планшет и т.д.), микрофон, сканер, сенсорный экран, сенсорная панель и т.д. Примеры устройств вывода включают в себя дисплей (например, монитор или проектор), динамики, принтер, сетевую плату и т.д.
Различные методы могут быть описаны здесь в общем контексте программного обеспечения или программных модулей. Обычно, программное обеспечение включает в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют определенные задачи или реализуют определенные типы абстрактных данных. Реализация этих модулей и методов может быть сохранена на читаемых компьютером носителях или передаваться через них. Читаемый компьютером носитель может быть любым доступным носителем или носителями, к которым может получить доступ вычислительное устройство. Как пример и, не ограничиваясь им, читаемый компьютером носитель может содержать "компьютерные запоминающие устройства" и "средства связи".
"Компьютерные запоминающие устройства" включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым методом или технологией для хранения информации, таким как читаемые компьютером инструкции, структуры данных, программные модули или другие данные. Компьютерные запоминающие устройства включают в себя, но не ограничиваются, RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, цифровые универсальные диски (DVD) или другие оптические накопители, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитных дисках или другие устройства магнитного хранения, или любой другой носитель, который может использоваться, чтобы хранить требуемую информацию и к которому компьютер может получить доступ.
"Средства связи" обычно воплощают читаемые компьютером инструкции, структуры данных, программные модули или другие данные в модулированном сигнале, такие как несущая волна или другой транспортный механизм. Средства связи также включают в себя любые носители доставки информации. Термин "модулированный сигнал" означает сигнал, который имеет одну или больше его характеристик, установленную или измененную таким способом, чтобы закодировать информацию в сигнале. Как пример и, не ограничиваясь им, средства связи включают в себя соединенные проводом носители, такие как проводная сеть или прямое соединение проводом, и беспроводные носители, такие как акустические, радиочастотные, инфракрасные и другие беспроводные носители. Сочетания любого вышеупомянутого также включены в область читаемых компьютером носителей.
Обычно, любая из функций или методик, описанных здесь, может быть реализована, используя программное обеспечение, встроенное микропрограммное обеспечение, аппаратные средства (например, фиксированную логическую компоновку), ручную обработку или сочетание этих реализаций. Термины "модуль", "функциональность" и "логика", использующиеся здесь, обычно представляют собой программное обеспечение, встроенное микропрограммное обеспечение, аппаратные средства или их сочетания. В случае программной реализации модуль, функциональность или логика представляют собой программный код, который исполняет указанные задачи, когда выполняется на процессоре (например, центральном процессоре или центральных процессорах). Программный код может быть сохранен в одном или более читаемых компьютером запоминающих устройств, дальнейшее описание которых может быть найдено со ссылкой на Фиг.5. Функции методов динамической программной клавиатуры, описанные здесь, независимы от платформы, означая, что методы могут быть реализованы на множестве коммерческих вычислительных платформ, имеющих множество процессоров.
Хотя содержание было описано на языке, определенном для конструктивных деталей и/или методологических действий, нужно понимать, что содержание, определенное в прилагаемой формуле изобретения, не обязательно ограничивается определенными функциями или действиями, описанными выше. Скорее, определенные функции и действия, описанные выше, раскрываются как формы в качестве примера реализации формулы изобретения.

Claims (20)

1. Компьютерный носитель информации, хранящий множество команд, которые, при выполнении одним или более процессорами устройства, заставляют один или более процессоров:
принимать ввод пользователя через программную клавиатуру, причем программная клавиатура включает в себя множество клавиш, каждая из которых имеет соответствующую область нажатия, содержащую положения на программной клавиатуре, которые соответствуют клавише;
получать информацию, описывающую текущую среду ввода для программной клавиатуры;
определять, основываясь, по меньшей мере, частично на текущей среде ввода, какая одна или более клавиш из множества клавиш предполагалась быть выбранной вводом пользователя; и
изменять, основываясь, по меньшей мере, частично на текущей среде ввода и вводе пользователя, область нажатия одной из множества клавиш, увеличивая размер области нажатия одной клавиши, чтобы она проходила над участком отображения смежной клавиши из множества клавиш, в то же время уменьшая размер области нажатия смежной клавиши из множества клавиш, причем измененная область нажатия упомянутой одной клавиши включает в себя одно или более положений, в которых отображается упомянутая одна клавиша, а также одно или более положений, в которых отображается упомянутая смежная клавиша из множества клавиш, а не упомянутая одна клавиша.
2. Компьютерный носитель информации по п.1, причем ввод пользователя представляется набором из одной или более координат, указывающих одно или более положений программной клавиатуры, выбранной пользователем.
3. Компьютерный носитель информации по п.1, причем информация, описывающая текущую среду ввода, содержит информацию, описывающую режим работы устройства.
4. Компьютерный носитель информации по п.3, причем информация, описывающая режим работы устройства, содержит географическое положение устройства.
5. Компьютерный носитель информации по п.1, причем информация, описывающая текущую среду ввода, содержит специфичный для языка словарь.
6. Компьютерный носитель информации по п.1, причем информация, описывающая текущую среду ввода, содержит информацию относительно слов, которые обычно вводятся пользователем устройства.
7. Компьютерный носитель информации по п.1, причем информация, описывающая текущую среду ввода, содержит информацию, устанавливающую соответствие поля, для каждого из одного или более полей, в которые пользователь может ввести данные, типам данных, которые являются действительными для поля.
8. Компьютерный носитель информации по п.3, причем информация, описывающая режим работы устройства, содержит физическое описание того, как используется устройство.
9. Компьютерный носитель информации по п.1, в котором информация, описывающая текущую среду ввода, содержит информацию, описывающую определенные слова или фразы, которые более вероятны, чем другие слова или фразы, основанную на частичных вводах.
10. Компьютерный носитель информации по п.1, причем информация, описывающая текущую среду ввода, содержит:
информацию, описывающую режим работы устройства;
словарь, специфичный для языка;
информацию относительно слов, которые обычно вводятся пользователем устройства;
информацию, устанавливающую соответствие поля, для каждого из одного или более полей, в которые пользователь может ввести данные, типам данных, которые являются действительными для поля;
информацию, описывающую язык, используемый пользователем; и
информацию, описывающую определенные слова или фразы, которые более вероятны, чем другие слова или фразы, на основе частичных вводов.
11. Компьютерный носитель информации по п.1, в котором инструкции дополнительно заставляют один или более процессоров изменять программную клавиатуру, на основе, по меньшей мере, частично информации, описывающей текущую среду ввода.
12. Компьютерный носитель информации по п.1, в котором определение того, какая одна или более клавиш из множества клавиш предполагалась быть выбранной вводом пользователя, необходимо, чтобы идентифицировать конкретную клавишу на программной клавиатуре, которая является недействительной, и не указывать, что эта конкретная клавиша программной клавиатуры предполагалась быть выбранной вводом пользователя независимо от ввода пользователя.
13. Система, реализующая динамическую программную клавиатуру, содержащая:
предсказывающий механизм клавиатуры;
один или более модулей, связанных, чтобы предоставить предсказывающему механизму клавиатуры информацию, описывающую текущую среду ввода для программной клавиатуры; и
упомянутый предсказывающий механизм клавиатуры сконфигурирован на основании, по меньшей мере частично, информации, описывающей текущую среду ввода, с возможностью:
изменять области нажатия из множества клавиш программной клавиатуры, уменьшая размер области нажатия одной из множества клавиш, в то же время увеличивая размер области нажатия смежной клавиши из множества клавиш так, чтобы область нажатия смежной клавиши из множества клавиш проходила над участком отображения упомянутой одной клавиши, причем измененная область нажатия упомянутой смежной клавиши включает в себя одно или более положений, в которых отображается упомянутая смежная клавиша, а также одно или более положений, в которых отображается упомянутая одна клавиша, а не упомянутая смежная клавиша, и для каждой из множества клавиш область нажатия для клавиши содержит положения на программной клавиатуре, которые соответствуют клавише; и
использовать измененные области нажатия множества клавиш, чтобы определить, какая одна или более из множества клавиш программной клавиатуры были выбраны пользователем системы.
14. Система по п.13, в которой предсказывающий механизм клавиатуры содержит систему искусственного интеллекта.
15. Система по п.13, в которой предсказывающий механизм клавиатуры дополнительно сконфигурирован, чтобы определить, как изменить раскладку программной клавиатуры, основываясь, по меньшей мере, частично на информации, описывающей текущую среду ввода.
16. Система по п.13, в которой один или более модулей, включает в себя:
модуль определения режима работы, чтобы предоставить информацию, описывающую режим работы системы; и
модуль определенной пользователем лексики, чтобы предоставить информацию относительно слов, которые обычно вводятся пользователем системы.
17. Способ, реализующий динамическую программную клавиатуру в вычислительном устройстве, содержащий этапы, на которых:
принимают набор из одной или более координат, указывающих одно или более положений программной клавиатуры, выбранной пользователем устройства, причем программная клавиатура имеет множество клавиш и каждая из множества клавиш имеет соответствующую область нажатия, содержащую положения программной клавиатуры, которые соответствуют клавише, причем, по меньшей мере, одна из множества клавиш имеет соответствующую область нажатия, измененную путем увеличения размера области нажатия, по меньшей мере, одной клавиши, в то же время уменьшая размер области нажатия смежной клавиши из множества клавиш, причем измененная область нажатия, по меньшей мере, одной клавиши проходит за пределами отображения, по меньшей мере, одной клавиши и включает в себя как одно или более положений, в которых отображается, по меньшей мере, одна клавиша, так и одно или более положений, в которых отображается упомянутая смежная клавиша из множества клавиш, а не упомянутая одна клавиша; и
определяют на основе, по меньшей мере частично, как набора из одной или более координат, так и логики области нажатий, с использованием текущей среды ввода для программной клавиатуры, какая одна или более из множества клавиш предполагалась быть выбранной пользователем.
18. Способ по п.17, дополнительно содержащий изменение, какие именно знаки, числа или символы соответствуют каким из множества клавиш, на основе, по меньшей мере, частично текущей среды ввода.
19. Способ по п.17, в котором текущая среда ввода включает в себя информацию относительно слов, которые обычно вводятся пользователем устройства, и информацию, устанавливающую соответствие поля, для каждого из одного или более полей, в которые пользователь может ввести данные, типам данных, которые являются действительными для поля.
20. Способ по п.17, в котором текущая среда ввода включает в себя информацию, описывающую язык, используемый пользователем, и информацию, описывающую определенные слова или фразы, которые более вероятны, чем другие слова или фразы, на основе частичных вводов.
RU2010132641/08A 2008-02-04 2009-01-09 Динамическая программная клавиатура RU2504820C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/025,721 US9552155B2 (en) 2008-02-04 2008-02-04 Dynamic soft keyboard
US12/025,721 2008-02-04
PCT/US2009/030539 WO2009099704A2 (en) 2008-02-04 2009-01-09 Dynamic soft keyboard

Publications (2)

Publication Number Publication Date
RU2010132641A RU2010132641A (ru) 2012-02-10
RU2504820C2 true RU2504820C2 (ru) 2014-01-20

Family

ID=40931193

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010132641/08A RU2504820C2 (ru) 2008-02-04 2009-01-09 Динамическая программная клавиатура

Country Status (8)

Country Link
US (5) US9552155B2 (ru)
EP (1) EP2240842B1 (ru)
JP (1) JP5611838B2 (ru)
KR (1) KR101541271B1 (ru)
CN (1) CN101932990B (ru)
BR (1) BRPI0906882B1 (ru)
RU (1) RU2504820C2 (ru)
WO (1) WO2009099704A2 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2577221C2 (ru) * 2014-06-18 2016-03-10 Андрей Александрович Баяджан Способ осуществления музыкального, в том числе нотного, письма и записи музыкальных текстов (варианты)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7614008B2 (en) 2004-07-30 2009-11-03 Apple Inc. Operation of a computer with touch screen interface
US7587611B2 (en) 2003-05-30 2009-09-08 Privaris, Inc. In-circuit security system and methods for controlling access to and use of sensitive data
CN104200145B (zh) 2007-09-24 2020-10-27 苹果公司 电子设备中的嵌入式验证系统
TWI360061B (en) * 2007-12-31 2012-03-11 Htc Corp Electronic device and method for operating applica
US9552155B2 (en) 2008-02-04 2017-01-24 Microsoft Technology Liecsnsing, LLC Dynamic soft keyboard
US8570279B2 (en) 2008-06-27 2013-10-29 Apple Inc. Touch screen device, method, and graphical user interface for inserting a character from an alternate keyboard
US8452337B2 (en) * 2008-08-19 2013-05-28 Lg Electronics Inc. Navigation method and apparatus for mobile terminal
US8671357B2 (en) * 2008-11-25 2014-03-11 Jeffrey R. Spetalnick Methods and systems for improved data input, compression, recognition, correction, and translation through frequency-based language analysis
US20100293457A1 (en) * 2009-05-15 2010-11-18 Gemstar Development Corporation Systems and methods for alphanumeric navigation and input
US9122393B2 (en) * 2009-09-30 2015-09-01 At&T Mobility Ii Llc Predictive sensitized keypad
US8812972B2 (en) * 2009-09-30 2014-08-19 At&T Intellectual Property I, L.P. Dynamic generation of soft keyboards for mobile devices
US20110074692A1 (en) * 2009-09-30 2011-03-31 At&T Mobility Ii Llc Devices and Methods for Conforming a Virtual Keyboard
US9128610B2 (en) * 2009-09-30 2015-09-08 At&T Mobility Ii Llc Virtual predictive keypad
US8816965B2 (en) * 2009-09-30 2014-08-26 At&T Mobility Ii Llc Predictive force sensitive keypad
US8810516B2 (en) 2009-09-30 2014-08-19 At&T Mobility Ii Llc Angular sensitized keypad
US9465532B2 (en) * 2009-12-18 2016-10-11 Synaptics Incorporated Method and apparatus for operating in pointing and enhanced gesturing modes
US8806362B2 (en) * 2010-01-06 2014-08-12 Apple Inc. Device, method, and graphical user interface for accessing alternate keys
JP5594652B2 (ja) * 2010-01-27 2014-09-24 日本電気株式会社 携帯情報端末及びそのキー配置変更方法
US8782556B2 (en) * 2010-02-12 2014-07-15 Microsoft Corporation User-centric soft keyboard predictive technologies
US8471814B2 (en) 2010-02-26 2013-06-25 Microsoft Corporation User interface control using a keyboard
US20120005592A1 (en) * 2010-06-30 2012-01-05 Joshi Shrinivas B Method and Apparatus for Providing Metadata-Based User Interfaces
US9122318B2 (en) 2010-09-15 2015-09-01 Jeffrey R. Spetalnick Methods of and systems for reducing keyboard data entry errors
US8773676B2 (en) 2011-03-07 2014-07-08 Sharp Kabushiki Kaisha Multifunction peripheral, multifunction peripheral control system, and multifunction peripheral control method for preparing information display screen including changing default conditions
JP5399438B2 (ja) * 2011-04-08 2014-01-29 シャープ株式会社 複合機、複合機制御システム、複合機の制御方法、プログラムおよびその記録媒体
JP5516473B2 (ja) * 2011-03-24 2014-06-11 コニカミノルタ株式会社 画像形成装置、表示方法および表示プログラム
US8914275B2 (en) 2011-04-06 2014-12-16 Microsoft Corporation Text prediction
WO2012167397A1 (en) * 2011-06-07 2012-12-13 Intel Corporation Dynamic soft keyboard for touch screen device
JP5834529B2 (ja) * 2011-06-23 2015-12-24 ブラザー工業株式会社 入力装置および入力制御プログラム
JP5544335B2 (ja) * 2011-07-26 2014-07-09 京セラドキュメントソリューションズ株式会社 文字入力装置およびそれを備えた画像形成装置
US10140011B2 (en) 2011-08-12 2018-11-27 Microsoft Technology Licensing, Llc Touch intelligent targeting
US9176944B1 (en) 2011-08-23 2015-11-03 Google Inc. Selectively processing user input
US9262076B2 (en) * 2011-09-12 2016-02-16 Microsoft Technology Licensing, Llc Soft keyboard interface
US8897398B2 (en) * 2012-01-27 2014-11-25 Apple Inc. Methods and apparatus for error rate estimation
US9838226B2 (en) 2012-01-27 2017-12-05 Apple Inc. Methods and apparatus for the intelligent scrambling of control symbols
ES2434101B1 (es) 2012-04-02 2014-11-25 Telefónica, S.A. Método y sistema para gestionar teclados virtuales para dispositivo informático
JP6023879B2 (ja) 2012-05-18 2016-11-09 アップル インコーポレイテッド 指紋センサ入力に基づくユーザインタフェースを操作するための機器、方法、及びグラフィカルユーザインタ−フェース
US9471220B2 (en) * 2012-09-18 2016-10-18 Google Inc. Posture-adaptive selection
US9600167B2 (en) * 2012-09-28 2017-03-21 Facebook, Inc. Systems and methods for a user-adaptive keyboard
US9450790B2 (en) 2013-01-31 2016-09-20 Apple Inc. Methods and apparatus for enabling and disabling scrambling of control symbols
US9348429B2 (en) * 2013-03-15 2016-05-24 Blackberry Limited Method and apparatus for word prediction using the position of a non-typing digit
US9210010B2 (en) 2013-03-15 2015-12-08 Apple, Inc. Methods and apparatus for scrambling symbols over multi-lane serial interfaces
CN104423614B (zh) * 2013-09-11 2017-08-25 联想(北京)有限公司 一种键盘布局方法、装置及电子设备
US9529528B2 (en) 2013-10-22 2016-12-27 International Business Machines Corporation Accelerated data entry for constrained format input fields
CN104615262A (zh) * 2013-11-01 2015-05-13 辉达公司 一种用于虚拟键盘的输入方法和输入系统
US20150261312A1 (en) 2014-03-15 2015-09-17 Hovsep Giragossian Talking multi-surface keyboard
CN105450583B (zh) 2014-07-03 2019-07-05 阿里巴巴集团控股有限公司 一种信息认证的方法及装置
CN105446992A (zh) 2014-07-08 2016-03-30 阿里巴巴集团控股有限公司 建立商品对象回收信息数据库、确定价值信息方法及装置
CN105450411B (zh) 2014-08-14 2019-01-08 阿里巴巴集团控股有限公司 利用卡片特征进行身份验证的方法、装置及系统
CN105447378B (zh) * 2014-08-27 2018-07-13 阿里巴巴集团控股有限公司 一种密码生成方法和装置
CN105392057B (zh) * 2014-09-03 2019-04-02 中国科学院声学研究所 一种软键盘布局动态调优实现方法
CN107077221A (zh) * 2014-09-29 2017-08-18 惠普发展公司有限责任合伙企业 虚拟键盘
CN105719183A (zh) 2014-12-03 2016-06-29 阿里巴巴集团控股有限公司 定向转账方法及其装置
CN105869043A (zh) 2015-01-19 2016-08-17 阿里巴巴集团控股有限公司 分散热点的数据库账户转入、转出的记账方法及装置
US10282089B2 (en) * 2015-02-03 2019-05-07 Google Llc User state-adaptive text input
CN105989467A (zh) 2015-02-03 2016-10-05 阿里巴巴集团控股有限公司 无线支付方法与装置及交通工具乘坐费检验方法与系统
CN104883597A (zh) * 2015-05-20 2015-09-02 福建新大陆通信科技股份有限公司 一种基于输入优先级的机顶盒软键盘输入方法及其系统
CN106570009B (zh) 2015-10-09 2020-07-28 阿里巴巴集团控股有限公司 导航类目更新方法及装置
DE102015119609A1 (de) * 2015-11-13 2017-05-18 Endress + Hauser Process Solutions Ag Tastaturapplikation für eine Gerätezugriffssoftware
US10627948B2 (en) * 2016-05-25 2020-04-21 Microsoft Technology Licensing, Llc Sequential two-handed touch typing on a mobile device
CN106201016A (zh) * 2016-07-18 2016-12-07 深圳芯智汇科技有限公司 带有多个实体按键的终端
WO2019000153A1 (en) * 2017-06-26 2019-01-03 Orange METHOD FOR DISPLAYING A VIRTUAL KEYBOARD ON A MOBILE TERMINAL SCREEN
CN108734371A (zh) 2018-02-12 2018-11-02 阿里巴巴集团控股有限公司 一种针对风控指令的处理方法、装置及设备
CN108632348B (zh) 2018-03-19 2020-02-18 阿里巴巴集团控股有限公司 一种业务校验方法和装置
KR102592044B1 (ko) 2018-06-29 2023-10-23 삼성전자 주식회사 전자 장치에서 물리적 키보드의 레이아웃 설정 방법 및 장치
CN109521889B (zh) * 2018-09-29 2021-02-09 咪咕音乐有限公司 一种输入方法及装置、终端及存储介质
US11099664B2 (en) 2019-10-11 2021-08-24 Hovsep Giragossian Talking multi-surface keyboard
WO2021112491A1 (en) * 2019-12-04 2021-06-10 Samsung Electronics Co., Ltd. Methods and systems for predicting keystrokes using a unified neural network

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6359572B1 (en) * 1998-09-03 2002-03-19 Microsoft Corporation Dynamic keyboard
US20020149569A1 (en) * 2001-04-12 2002-10-17 International Business Machines Corporation Touchscreen user interface
US20030088410A1 (en) * 2001-11-06 2003-05-08 Geidl Erik M Natural input recognition system and method using a contextual mapping engine and adaptive user bias
US6573844B1 (en) * 2000-01-18 2003-06-03 Microsoft Corporation Predictive keyboard
KR20040034915A (ko) * 2002-10-17 2004-04-29 삼성전자주식회사 펜 컴퓨팅 시스템에서의 동적 키보드 구현 장치
US20040230912A1 (en) * 2003-05-13 2004-11-18 Microsoft Corporation Multiple input language selection
RU2298822C2 (ru) * 2002-08-30 2007-05-10 Кацузо ТАНАКА Устройство сверхскоростного ввода букв для сотового телефона

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5128672A (en) 1990-10-30 1992-07-07 Apple Computer, Inc. Dynamic predictive keyboard
US5963671A (en) 1991-11-27 1999-10-05 International Business Machines Corporation Enhancement of soft keyboard operations using trigram prediction
JPH08221169A (ja) 1995-02-14 1996-08-30 Matsushita Electric Ind Co Ltd ソフトウェアキーボード表示方法とその装置
JPH08272789A (ja) 1995-03-30 1996-10-18 Mitsubishi Electric Corp 言語情報変換装置
US5797098A (en) 1995-07-19 1998-08-18 Pacific Communication Sciences, Inc. User interface for cellular telephone
US7844914B2 (en) * 2004-07-30 2010-11-30 Apple Inc. Activating virtual keys of a touch-screen virtual keyboard
US6169538B1 (en) * 1998-08-13 2001-01-02 Motorola, Inc. Method and apparatus for implementing a graphical user interface keyboard and a text buffer on electronic devices
US6004049A (en) 1998-10-29 1999-12-21 Sun Microsystems, Inc. Method and apparatus for dynamic configuration of an input device
US8938688B2 (en) 1998-12-04 2015-01-20 Nuance Communications, Inc. Contextual prediction of user words and user actions
GB2388938B (en) 1999-02-22 2004-03-17 Nokia Corp A communication terminal having a predictive editor application
AU3546200A (en) 1999-03-29 2000-10-16 Now See Hear Interactive Inc. A method for mobile text entry
US6654733B1 (en) 2000-01-18 2003-11-25 Microsoft Corporation Fuzzy keyboard
KR100726582B1 (ko) 2000-10-25 2007-06-11 주식회사 케이티 무선통신 단말기의 위치 확인에 의한 다국 문자 자판의제공 방법
JP2002132447A (ja) 2000-10-27 2002-05-10 Alpine Electronics Inc タッチパネル入力装置
US7318019B1 (en) * 2000-11-17 2008-01-08 Semantic Compaction Systems Word output device and matrix keyboard for use therein
US7168046B2 (en) * 2001-04-26 2007-01-23 Lg Electronics Inc. Method and apparatus for assisting data input to a portable information terminal
US20090040184A9 (en) * 2001-10-04 2009-02-12 Infogation Corporation Information entry mechanism
US6744423B2 (en) 2001-11-19 2004-06-01 Nokia Corporation Communication terminal having a predictive character editor application
SG125895A1 (en) 2002-04-04 2006-10-30 Xrgomics Pte Ltd Reduced keyboard system that emulates qwerty-type mapping and typing
US7177859B2 (en) * 2002-06-26 2007-02-13 Microsoft Corporation Programming model for subscription services
US7159191B2 (en) 2003-03-03 2007-01-02 Flextronics Sales & Marketing A-P Ltd. Input of data
US7230607B2 (en) * 2003-06-12 2007-06-12 Katsuyasu Ono 6-key keyboard for touch typing
KR100537280B1 (ko) * 2003-10-29 2005-12-16 삼성전자주식회사 휴대용 단말기에서 터치스크린을 이용한 문자 입력 장치및 방법
JP2005215728A (ja) 2004-01-27 2005-08-11 Dainippon Printing Co Ltd ソフトキーボード機能付電子フォームシステム
US7218249B2 (en) 2004-06-08 2007-05-15 Siemens Communications, Inc. Hand-held communication device having navigation key-based predictive text entry
US7616191B2 (en) * 2005-04-18 2009-11-10 Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. Electronic device and method for simplifying text entry using a soft keyboard
US20060256139A1 (en) 2005-05-11 2006-11-16 Gikandi David C Predictive text computer simplified keyboard with word and phrase auto-completion (plus text-to-speech and a foreign language translation option)
US9606634B2 (en) 2005-05-18 2017-03-28 Nokia Technologies Oy Device incorporating improved text input mechanism
US7886233B2 (en) * 2005-05-23 2011-02-08 Nokia Corporation Electronic text input involving word completion functionality for predicting word candidates for partial word inputs
KR100706313B1 (ko) 2005-06-02 2007-04-13 엘지전자 주식회사 이동통신 단말기에서 메시지 입력 중 문자입력방법
EP1908051A4 (en) * 2005-07-22 2012-01-25 Matthew G Pallakoff SYSTEM AND METHOD FOR A THUMB-OPTIMIZED USER INTERFACE OF A TOUCH SCREEN
US7443316B2 (en) * 2005-09-01 2008-10-28 Motorola, Inc. Entering a character into an electronic device
JP2007299198A (ja) 2006-04-28 2007-11-15 Toyota Motor Corp 入力装置、入力制御方法及び入力制御プログラム。
US8161395B2 (en) * 2006-11-13 2012-04-17 Cisco Technology, Inc. Method for secure data entry in an application
US20090051661A1 (en) * 2007-08-22 2009-02-26 Nokia Corporation Method, Apparatus and Computer Program Product for Providing Automatic Positioning of Text on Touch Display Devices
US8232973B2 (en) * 2008-01-09 2012-07-31 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
US9552155B2 (en) 2008-02-04 2017-01-24 Microsoft Technology Liecsnsing, LLC Dynamic soft keyboard
US20110298723A1 (en) * 2010-06-07 2011-12-08 Christopher Brian Fleizach Devices, Methods, and Graphical User Interfaces for Accessibility via a Touch-Sensitive Surface

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6359572B1 (en) * 1998-09-03 2002-03-19 Microsoft Corporation Dynamic keyboard
US6573844B1 (en) * 2000-01-18 2003-06-03 Microsoft Corporation Predictive keyboard
US20020149569A1 (en) * 2001-04-12 2002-10-17 International Business Machines Corporation Touchscreen user interface
US20030088410A1 (en) * 2001-11-06 2003-05-08 Geidl Erik M Natural input recognition system and method using a contextual mapping engine and adaptive user bias
RU2298822C2 (ru) * 2002-08-30 2007-05-10 Кацузо ТАНАКА Устройство сверхскоростного ввода букв для сотового телефона
KR20040034915A (ko) * 2002-10-17 2004-04-29 삼성전자주식회사 펜 컴퓨팅 시스템에서의 동적 키보드 구현 장치
US20040230912A1 (en) * 2003-05-13 2004-11-18 Microsoft Corporation Multiple input language selection

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2577221C2 (ru) * 2014-06-18 2016-03-10 Андрей Александрович Баяджан Способ осуществления музыкального, в том числе нотного, письма и записи музыкальных текстов (варианты)

Also Published As

Publication number Publication date
KR101541271B1 (ko) 2015-08-03
US20170147204A1 (en) 2017-05-25
CN101932990A (zh) 2010-12-29
US20090195506A1 (en) 2009-08-06
BRPI0906882A2 (pt) 2015-07-07
US11199966B2 (en) 2021-12-14
JP2011511370A (ja) 2011-04-07
WO2009099704A2 (en) 2009-08-13
US10394446B2 (en) 2019-08-27
RU2010132641A (ru) 2012-02-10
JP5611838B2 (ja) 2014-10-22
US20220342539A1 (en) 2022-10-27
KR20100102191A (ko) 2010-09-20
CN101932990B (zh) 2014-03-05
BRPI0906882B1 (pt) 2019-08-20
US9552155B2 (en) 2017-01-24
EP2240842A2 (en) 2010-10-20
US20190278476A1 (en) 2019-09-12
EP2240842B1 (en) 2018-03-21
US20220083219A1 (en) 2022-03-17
EP2240842A4 (en) 2013-02-13
WO2009099704A3 (en) 2009-10-15
US11416142B2 (en) 2022-08-16
US11868609B2 (en) 2024-01-09

Similar Documents

Publication Publication Date Title
US11868609B2 (en) Dynamic soft keyboard
US9977595B2 (en) Keyboard with a suggested search query region
CN108700951B (zh) 图形键盘内的图标符号搜索
US10140017B2 (en) Graphical keyboard application with integrated search
CN110083254B (zh) 多手势文本输入预测
US8060841B2 (en) Method and device for touchless media searching
US9946773B2 (en) Graphical keyboard with integrated search features
KR102402397B1 (ko) 다중 입력 관리를 위한 시스템 및 방법
US20140351760A1 (en) Order-independent text input
US20140108992A1 (en) Partial gesture text entry
KR20130001261A (ko) 이동 전화의 터치 스크린과 함께 사용하기 위한 다중 모드 문자 입력 시스템
US20170336969A1 (en) Predicting next letters and displaying them within keys of a graphical keyboard
US20190034080A1 (en) Automatic translations by a keyboard
CN104123012A (zh) 使用替代评分的非字典字符串的姿态键盘输入
JP6599504B2 (ja) タッチエラー校正方法およびそのシステム
US10048771B2 (en) Methods and devices for chinese language input to a touch screen
Bhatti et al. Mistype resistant keyboard (NexKey)

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150526