CN107533380A - 用于键盘输入解码的神经网络 - Google Patents

用于键盘输入解码的神经网络 Download PDF

Info

Publication number
CN107533380A
CN107533380A CN201680018860.5A CN201680018860A CN107533380A CN 107533380 A CN107533380 A CN 107533380A CN 201680018860 A CN201680018860 A CN 201680018860A CN 107533380 A CN107533380 A CN 107533380A
Authority
CN
China
Prior art keywords
input
computing device
gesture
output
character
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN201680018860.5A
Other languages
English (en)
Inventor
翟树民
托马斯·布罗伊尔
奥艾斯·阿尔沙里夫
欧阳瑜
弗朗索瓦丝·博费
约翰·沙尔克威克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN107533380A publication Critical patent/CN107533380A/zh
Pending legal-status Critical Current

Links

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/0202Constructional details or processes of manufacture of the input device
    • G06F3/0219Special purpose keyboards
    • 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
    • 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/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/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F3/04895Guidance during keyboard input operation, e.g. prompting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Abstract

在一些示例中,计算设备包括至少一个处理器;以及至少一个模块,其可由至少一个处理器操作以:输出用于在输出设备处显示的图形键盘;接收在存在感知输入设备的位置处检测到的手势的指示,所述存在感知输入设备的位置对应于输出图形键盘的输出设备的位置;基于由计算设备使用神经网络处理的手势的至少一个空间特征确定至少一个字符串,其中至少一个空间特征指示手势的至少一个物理属性;并且至少部分地基于使用神经网络处理手势的至少一个空间特征来输出用于在输出设备处显示的至少一个字符串。

Description

用于键盘输入解码的神经网络
背景技术
一些计算设备提供图形键盘作为用于文本键入的用户界面的一部分。例如,包括在计算设备中或耦合到计算设备的存在感知显示器可以输出图形键盘,其使得用户能够通过指示在存在感知显示器处显示的键来键入数据。在一些情况下,计算设备可以呈现图形键盘,用户可以通过点击键盘的各个键或通过在与想要的键相关联的连续区域上滑动手指来与图形键盘进行交互。以这种方式,图形键盘提供输入方法,其允许用户通过键入一个或多个手势来键入字符、单词或单词组。因此,图形键盘可以允许用户快速且准确地将文本键入到计算设备中。
从图形键盘接收手势输入的计算设备可以采用词预测、自动校正和/或建议技术来确定由手势输入指示的单词。这样的技术可以使用户能够加速文本键入并减少拼写错误,但也可能导致输入错误。因此,用户可能需要执行附加动作以校正错误解释的输入,从而减慢用户输入并降低基于手势的文本输入的效率。
发明内容
在一个示例中,计算设备包括:至少一个处理器;以及至少一个模块,其可由至少一个处理器操作以:输出用于在可操作地耦合到计算设备的输出设备处显示的图形键盘;接收在存在感知输入设备的位置处检测到的手势的指示,其中存在感知输入设备的位置对应于输出图形键盘的输出设备的位置;基于由计算设备使用神经网络处理的手势的至少一个空间特征确定至少一个字符串,其中至少一个空间特征指示手势的至少一个物理属性;并且至少部分地基于使用神经网络的手势的至少一个空间特征的处理输出用于在所述输出设备处显示的至少一个字符串。
在一个示例中,编码有指令的计算机可读存储介质,当执行指令时使得至少一个处理器:输出用于在可操作地耦合到计算设备的输出设备处显示的图形键盘;接收在存在感知输入设备的位置处检测到的手势的指示,其中存在感知输入设备的位置对应于输出图形键盘的输出设备的位置;基于至少由计算设备使用神经网络处理的特征确定至少一个字符串;并且至少部分地基于由计算设备使用神经网络处理的至少特征的处理,输出用于在输出设备处显示的至少一个字符串。
在一个示例中,一种方法包括:由计算设备输出并用于在可操作地耦合到计算设备的输出设备处显示图形键盘;由计算设备接收在存在感知输入设备的位置处检测到的手势的指示,其中存在感知输入设备的位置对应于输出图形键盘的输出设备的位置;基于由计算设备使用神经网络处理的手势确定至少一个字符串;并且至少部分地基于由计算设备使用神经网络处理的手势的处理,由计算设备输出并在输出设备处显示至少一个字符串。
一个或多个示例的细节在附图和下面的描述中阐述。从说明书和附图以及权利要求书中,本公开的其它特征、目的和优点将是显而易见的。
附图说明
图1是示出根据本公开的一个或多个方面被配置为使用神经网络来解码在图形键盘处提供的用户输入的示例计算设备的概念图。
图2是示出根据本公开的一个或多个方面的示例计算设备的框图。
图3是示出根据本公开的一个或多个技术输出用于在远程设备处显示的图形内容的示例计算设备的框图。
图4是示出根据本公开的一个或多个方面用于解码在图形键盘处提供的用户输入的长短期记忆(LSTM)的存储器块的概念图。
图5是示出根据本公开的一个或多个方面用于对由神经网络输出的字符序列的概率进行建模的有限状态转换器的概念图。
图6是示出根据本公开的一个或多个方面用于解码在图形键盘处提供的用户输入的短期存储器(LSTM)的多个存储器块的概念图。
图7是示出根据本公开的一个或多个方面被配置为使用神经网络来解码在图形键盘处提供的用户输入的计算设备的示例操作的流程图。
具体实施方式
一般来说,本公开的技术涉及使用一个或多个神经网络来解码在图形键盘键入的用户输入。在一些示例中,输出用于显示的图形键盘的计算设备可以接收对应于在图形键盘的不同位置处或跨越图形键盘的不同位置键入的手势(诸如点击和/或连续手势)的用户输入的指示。计算设备可以确定与用户输入的指示相关联的各种特征的输入值(例如,在存在感知输入设备处的用户输入的位置坐标,由用户输入遍历的特定键,计算设备确定用户输入的时间值和用户输入的类型)。在计算设备随时间检测用户输入(例如,随后的点击和/或连续手势的部分)时,计算设备可以生成由计算设备随时间采样的各种特征的输入值的“帧”序列。然后计算设备可以提供每个帧作为一个或多个神经网络的输入,该神经网络可以被配置为确定一个或多个字符和/或字符串的一个或多个概率。基于所确定的一个或多个概率,计算设备可以执行各种操作中的一个或多个操作,包括但不限于词预测、自动校正和/或建议技术。在一些示例中,计算设备可以基于由一个或多个神经网络提供的解码来输出用于显示的一个或多个字符或字符串。
因此,本公开的技术可以更精确地确定图形键盘的用户想要键入的字符和/或字符串。因此,本公开的技术可以减少使用图形键盘实现准确的文本键入所需的附加用户输入的数量。在一些情况下,这些改进还可以通过减少在其他情况下需要校正错误解释输入的用户输入的数量来改善计算设备的电池寿命。
图1是示出根据本公开的一个或多个方面被配置为使用神经网络来解码在图形键盘处提供的用户输入的示例计算设备的概念图。在图1的示例中,计算装置10可以是移动电话。然而,在其他示例中,计算设备10可以是平板计算机、个人数字助理(PDA)、膝上型计算机、便携式游戏设备、便携式媒体播放器、电子书阅读器、智能手表、电视平台或另一种类型的计算设备。
如图1所示,计算设备10包括与计算设备10的壳体物理地集成的存在感知显示器12。在一些示例中,壳体可以由塑料、铝、钢或任何其它合适的材料构成。壳体可以是刚性壳体,其包围并以其他方式保护提供计算设备10的功能的电部件。
计算设备10的存在感知显示器12可以用作计算设备10的输入设备和输出设备。在一些示例中,存在感知显示器12可以包括集成的存在感知输入设备和显示设备。例如,存在感知显示器12可以使用存在感知的屏幕,例如电阻式触摸屏、表面声波触摸屏、电容式触摸屏、投影电容触摸屏、压力感知屏幕、声脉冲识别触摸屏,或另一种存在感知屏幕技术,用作存在感知输入设备。存在感知显示器12可以使用液晶显示器(LCD)、点阵显示器、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、电子墨水或能够向计算设备10的用户输出可见信息的类似的单色或彩色显示器中的任何一个或多个来用作诸如显示设备的输出设备。存在感知显示器12的进一步细节包括在图2的描述中。
存在感知显示器12可以通过检测一个或多个点击和/或非点击手势、连续手势或从计算设备10的用户接收到的其他任何触摸手势(例如,多点触摸手势)来接收用户输入的指示(例如,用户用手指或触控笔触摸或指向存在感知显示器12的一个或多个位置)。基于用户输入的指示,存在感知显示器12的显示设备可以向用户呈现输出。例如,存在感知显示器12的显示设备可以呈现在计算设备10处执行的应用(例如,电子消息应用、因特网浏览器应用)的各种用户界面。计算设备10的用户可以在存在感知显示器12的存在感知输入设备处提供用户输入以与这些应用中的一个或多个进行交互。
计算设备10可以包括应用模块18、用户界面模块20和键盘模块22。模块18、20和22可以使用软件、硬件、固件或硬件、软件的混合以及在计算设备10上驻留和执行或在一个或多个其他远程计算设备上驻留并执行的固件执行在此描述的操作。在一些示例中,模块18、20和22可以被实现为硬件、软件和/或硬件和软件的组合。计算设备10可以用一个或多个处理器来执行模块18、20和22。作为在底层硬件上执行的虚拟机或在底层硬件上执行的虚拟机内,计算设备10可以执行模块18、20和22中的任何一个。模块18、20和22可以以各种方式实现。例如,模块18、20和22中的任何一个可以被实现为可下载的或预先安装的应用或“应用”。在另一示例中,模块18、20和22中的任何一个可被实现为计算设备10的操作系统的一部分。
如图1所示,在一些示例中,计算设备10包括一个或多个应用模块18。应用模块18可以包括在计算设备10上执行各种操作的功能。例如,应用模块18可以包括电子邮件应用、文本消息应用、即时消息应用、天气应用、视频会议应用、社交网络应用、天气应用、股票市场应用、紧急警报应用、体育应用、办公生产应用、多媒体播放器等。虽然示为可由计算设备10操作,但是一个或多个应用模块18可以由通信地耦合到计算设备10的远程计算设备来操作。在这样的示例中,在远程计算设备处执行的应用模块可以使得远程计算设备使用任何适当的数据通信形式(例如,有线或无线网络、短程无线通信,诸如近场通信或蓝牙等)发送内容和意图信息。在一些示例中,远程计算设备可以是与计算设备10分离的计算设备。例如,远程计算设备可以通过网络可操作地耦合到计算设备10。远程计算设备的示例可以包括但不限于服务器、智能电话、平板计算设备、智能手表和台式计算机。在一些示例中,远程计算设备可能不是计算设备10的集成组件。
计算设备10还可以包括UI模块20。计算设备10的UI模块20可以从存在感知显示器12接收在存在感知显示器12处检测到的用户输入的一个或多个指示。通常,每次存在感知显示器12接收在存在感知显示器12的特定位置处检测到的用户输入的指示,UI模块20可以从存在感知显示器12接收关于用户输入的信息。UI模块20可以将从存在感知显示器12接收的信息组合成为指示诸如一个或多个触摸事件的序列的手势的时间排序的事件集合。序列中的每个触摸事件可以包括表示在存在感知屏幕处表征输入的存在和/或移动的参数(例如,何时、何地、发起方向)的数据或组件。序列中的每个触摸事件可以包括对应于存在感知显示器12的位置的位置组件、与何时存在感知显示器12检测到在该位置处的用户输入有关的时间组件和/或与是否触摸事件对应于该位置的提升或按下的动作组件。此外,事件中的一个或多个可以具有并发时间组件,并且这些事件被描述为触摸事件仅仅是为了示例的目的,并且可以指示任何形式的存在感知输入设备的手势。
UI模块20可以基于触摸事件的序列来确定用户输入的一个或多个特征,并且包括关于触摸事件序列中每个触摸事件内的这些一个或多个特征的信息。例如,UI模块20可以确定用户输入的开始位置、用户输入的结束位置、用户输入的一部分的密度、用户输入的一部分的速度、用户输入的一部分的方向以及用户输入的一部分的曲率。触摸事件序列中的一个或多个触摸事件可以(除了如上所述的时间、位置和动作组件)包括关于用户输入的一个或多个特征的信息的特征组件(例如,密度、速度等)。UI模块20可以发送包括与每个触摸事件相关联的组件或参数化数据的触摸事件序列作为键盘模块22输出。
UI模块20可以充当计算设备10的各个组件之间的中介,以基于由存在感知显示器12检测到的输入做出确定并生成由存在感知显示器12呈现的输出。例如,UI模块20可以接收包括在图形键盘16B中的键的键盘布局的表示作为来自键盘模块22的输入。UI模块20可以接收从由存在感知显示器12检测到的关于用户输入的信息生成的触摸事件序列作为来自UI模块20的输入。UI模块20可以基于序列中的位置组件,即接近一个或多个键的选择的一个或多个位置组件(例如,UI模块20可以确定触摸事件中的一个或多个的位置对应于呈现图形键盘16B的存在感知显示器12的区域),来确定触摸事件。UI模块20可以发送存在感知显示器12呈现每个键的触摸事件和/或位置的序列作为对键盘模块22的输出。UI模块20还可以从键盘模块22接收一个或多个字符串,其可被输出以在存在感知显示器12处显示。UI模块20可以更新图形用户界面14(“GUI 14”)以包括一个或更多字符串。UI模块20可以使存在感知显示器12显示包括一个或多个字符串作为文本的更新的用户界面。
在图1的示例中,键盘模块22向UI模块20发送数据,该UI模块20使存在感知显示器12呈现示例用户界面14。在该示例中,用户界面14包括在存在感知显示器12的各个位置处显示的图形元素。图1示出了用户界面14的编辑区域16A和用户界面14的图形键盘16B。编辑区域16A可以包括诸如图像、对象、超链接、文本字符等的图形元素。图形键盘16B包括显示为键的图形元素。用户界面14包括建议的字符串区域38A-38C,其包括可选择的拼写修正或字符串建议以替换包括在编辑区域16A中的字符串。在图1的示例中,编辑区域16A包括作为文本的字符显示的图形元素(例如,字符串)。计算设备10的用户可以通过在显示图形键盘16B的键的存在感知显示器12的位置处提供用户输入来在编辑区域16A中键入文本。响应于诸如此的用户输入,计算设备10可以在建议的字符串区域38A-38C中输出一个或多个建议的字符串。
在一些示例中,计算设备10的键盘模块22可以发送包括与一种或多种书面语言(例如英语,西班牙语等)相关的多个键的键盘布局作为UI模块20的输出(包含作为GUI 8的图形键盘16B)。键盘模块22可以为键盘布局中的多个键的每个键分配一个或多个字符或操作。例如,键盘模块22可以生成QWERTY键盘布局,其包括表示在键入英语时使用的字符的键。QWERTY键盘布局还可以包括表示在键入英语(例如,退格、删除、空格键、键入等)时使用的操作的键。
键盘模块22可以从UI模块20接收表示由UI模块20生成的触摸事件序列的数据。键盘模块22还可以从UI模块20接收表示存在感知显示器12的位置的数据,其中存在感知显示器12呈现图形键盘16B的每个键。键盘模块22可以基于键的位置来确定触摸事件序列表示一个或多个键的选择。如在本公开中进一步描述的,键盘模块22可以使用一个或多个神经网络来基于对一个或多个键的选择来确定一个或多个字符串。键盘模块22可以向UI模块20发送指示一个或多个字符串的数据,以包括在用户界面14中。
在一些示例中,键盘模块22可以使用语言模型(例如,如图2中进一步描述的语言模型28)来预测一个或多个单词。键盘模块14可以在语言模型中执行查找以识别一个或多个字符串,例如语言模型中的单词,其包括与对应于一个或多个用户输入的键相关联的一组字符的一部分或全部,例如连续手势和/或离散点击输入。语言模型可以实现一个或多个n-gram语言模型。n-gram语言模型可以基于序列中的先前项目(即,P(xi|xi-(n-1),...,xi-1))来为项目的连续序列中的项目xi(字母、单词、标点符号或其他定界符)提供概率分布。例如,字符级双语组语言模型(n-gram模型,其中n=2)可以提供字母“o”在字母“n”之后的概率。在另一个示例中,单词级三角语言模型可以提供“fox(狐狸)”在单词序列“quick brown(快速棕色)”之后的概率。
计算设备10的语言模型可以包括在书面语言词汇表内的字符串列表,例如单词。在一些示例中,语言模型可以基于和/或包括基于存储在计算设备10处的字典(例如,包括单词的词汇)或可由计算设备访问的远程计算设备的字符串集合。在一些示例中,字典可以包括单词的词汇。单词的词汇可能是用书面和/或口语使用的单词的主体。字典可以被实现为以结构化的方式存储词汇的一个或多个单词的数据结构。语言模型可以基于在给定语言环境中出现字符串的频率来指示每个相应字符串的概率。例如,字符串“door”可以在字符串“the”之后的英文中更频繁地使用,因此与比例如字符串“the”之后的字符串“run”的更大的概率相关联。
键盘模块14可以使用语言模型来基于语言场境来确定字符串的语言模型成本,语言场境可以包括但不限于例如与用户执行的手势的指示相对应的字符,字典中的字符串和/或先前输入的字符串等。例如,键盘模块22可以确定与对应于手势的键相关联的一组字符。该组字符可以是字符串的前缀或部分。字符串可以包括在语言模型中。在一些示例中,键盘模块22可以搜索或“look ahead”以确定分别对应于前缀的语言模型中一个或多个字符串。例如,给定字符串u-t-a,键盘模块22可以使用语言模型来确定字符串Utah的概率。键盘模块22可以基于概率确定语言模型成本。以这种方式,在给定语言环境中具有较高概率的语言模型22中的字符串可能具有较低的语言模型成本。
键盘模块22可以实现本公开的技术,其包括使用神经网络来解码在图形键盘处提供的用户输入。不是使用可能当输入手势嘈杂或当输入被分割成多个手势时表现不佳的技术,本公开的技术可以使用神经网络,其可以提供对噪声和/或不良分段输入的改进的识别。特别地,键盘模块22可以使用递归神经网络来实现本公开的技术,这可以允许在由神经网络表示的计算图中循环。这些循环可能允许神经网络具有动态场境窗口,而不是标准前馈模型在解决顺序问题时使用的固定大小的窗口。该动态窗口可以有助于提高解码在诸如图形键盘16B的图形键盘处提供的用户输入的准确性。
通常,由键盘模块22实现的神经网络可以包括多个互连的节点。每个节点可以将一个或多个函数应用于对应于一个或多个特征的输入值集合,并且提供一个或多个对应的输出值。在一些示例中,节点可以是如图4所示的LSTM存储器块100。特征可以是神经网络可用于解码在图形键盘上提供的用户输入的数据的任何数据源。在一些示例中,特征可以与用于图形键盘16B的存在感知显示器12检测到的用户输入相关联。在一些示例中,可能存在不同类型的特征,包括但不限于:空间特征、时间特征和词法特征以及场境特征等。空间特征可以指示手势的空间属性。空间特征的示例可以包括:手势的位置、手势的速度、手势的方向、方向的曲率、由手势穿过的图形键盘的键、用户输入的类型(例如,下触动作或上触动作)等。时间特征可以指示手势的时间属性。时间特征的示例可以包括手势的纪元时间或手势的国际标准符号时间等。词法特征可以指示语言或字符集合数据。词法特征的示例可以包括一个或多个字符、字符串和/或多字符串短语等。场境特征可以指示输入场境的属性,其中输入场境可以是在确定手势之前、期间和/或之后的信息的设置或状态。场境特征的示例可以包括计算设备的用户的身份、计算设备的地理定位、计算设备的环境和/或气候、由计算设备确定的音频和/或视觉信息、由计算设备检测到的传感器信息、用户键入文本的输入字段的类型、用户键入文本的应用、用户键入的文本的接收者等。
在一些示例中,神经网络的一个或多个相应的输出值可以包括一个或多个字符和/或字符串。在一些示例中,一个或多个输出值可以包括一个或多个字符或字符串的概率。因此,键盘模块22可以使用神经网络来基于用户输入的特征来确定字符和/或字符串的概率,并且基于相应的概率来确定用户最可能想要的字符和/或字符串。如在本公开中进一步描述的,神经网络可以由键盘模块12训练,以基于对应于由存在感知显示器12检测到的用户输入的特征更准确地确定一个或多个字符和/或字符串。例如,神经网络可以包括应用于特征的一个或多个可学习参数或“权重”。键盘模块22可以在训练期间调整这些可学习参数,以提高神经网络确定用户想要的字符和/或字符串的准确性。例如,基于由神经网络提供的实际输出值偏离训练集合的预期输出值的程度,键盘模块22可以调整可学习参数。在一些示例中,实际输出值与训练集合的预期值之间的偏差程度越大,键盘模块22将适用于可学习参数的调整越大。
尽管键盘模块22可以使用任何合适的神经网络,但是一些递归神经网络可以比其他神经网络更好地执行。例如,一些递归神经网络可能会遇到梯度消失和/或爆炸问题。作为递归神经网络的示例的长短期记忆(LSTM)可以通过包含存储器单元的存储器块来解决这些潜在问题,存储器单元具有存储网络的时间状态的自连接。LSTM的示例在图2-7中进一步描述。LSTM可以通过在训练期间允许稳定的梯度来提高键盘模块22基于图形键盘的用户输入来确定字符和/或字符串的准确性。
为了示例的目的,参考图1进一步详细描述了使用神经网络解码用户输入的技术。在图1的示例中,计算设备10输出用于显示包括多个键的图形键盘16B。例如,键盘模块22可以生成包括图形键盘16B的表示的数据。UI模块20可以基于表示图形键盘16B的数据来生成用户界面14并且在用户界面14中包括图形键盘16B。UI模块20可以将信息发送到存在感知显示器12,其包括用于在存在感知显示器12的存在感知屏幕处显示用户界面14的指令。存在感知显示器12可以接收该信息并且使得存在感知显示器12的存在感知屏幕呈现包括编辑区域16A、图形键盘16B和建议的字符串区域38A-38C的用户界面14。
计算设备10可以接收在存在感知输入设备的位置处检测到的手势的指示,其中存在感知输入设备的位置对应于输出图形键盘16B的存在感知输入设备的位置。在一些示例中,手势可以是单击手势,其中存在感知显示器12的特定位置检测到用户手指,并且在用户从存在感知显示器12的检测移除手指之后随后通过存在感知显示器12不再检测到手势,并且在相同的手势中没有用户的手指穿过存在感知显示器12的不同位置。在一些示例中,手势可以是连续手势,其中存在第一位置检测到用户的手指,并且当由存在感知显示器12检测到用户的手指保持时,在用户将手指从存在感知显示器12的检测移除之前,在与第一位置不同的一个或多个位置处检测到用户的手指(例如,用户的手指滑动或以其他方式穿过存在感知显示器12的多个位置)。在一些示例中,手势可以是更大的连续手势的一部分。在一些示例中,从用户的手指被存在感知显示器12检测到直到用户的手指不再被存在感知显示器12检测到的时刻为止,手势可以是整个完整的连续手势。
例如,当存在感知显示器12在存在感知屏幕处呈现用户界面14时,用户可以在呈现图形键盘16B的存在感知显示器12的区域处提供手势用户输入30(或简单地“手势”30)。图1示出穿过存在感知显示器12的位置34A-34H的手势30的路径。例如,位置34A表示手势30的开始位置,并且位置34B-34H表示由手势30穿过的存在感知显示器12的附加位置。每个位置34由图1中的虚线圆界定用于示例目的,尽管存在感知显示器12在一些示例中可能不输出这样的虚线圆,但是在各种不同的示例中,这样的位置可以更大和/或更小。
当由存在感知显示器12检测到手势30时,UI模块20可以从存在感知显示器12接收指示手势30的信息,并将该信息组合成时间排序的触摸事件序列(例如,包括位置组件、时间组件和动作组件的每个触摸事件)。UI模块20可以将触摸事件发送到键盘模块22。键盘模块22可以从UI模块20接收与每个触摸事件相关联的触摸事件序列以及信息(例如,位置、时间、动作等)。即,在手势30被检测到时UI模块20可以同时生成触摸事件并将触摸事件发送到键盘模块22。因此,在一些示例中,键盘模块22可以接收代表触摸事件的时间采样数据。
根据本公开的技术,键盘模块22可以基于由计算设备10使用神经网络处理的手势的至少一个空间特征来确定至少一个字符串。在一些示例中,键盘模块22可以生成对应于空间特征的输入值的“帧”。例如,在图1的示例中,空间特征可以包括:由手势30穿过的位置的(x,y)坐标,包括位置的图形键盘16B的键,穿过位置的时间(例如,当包括(x,y)坐标触摸事件被生成时)和特定类型的手势。空间特征的输入值可以包括(x,y)坐标的值、键的标识符(例如,与键相关联的字符)、表示穿过位置的时间的值以及手势类型的标识符。特定时间点上的空间特征的输入值可以被构造在“帧”中,“帧”可以是输入矩阵的列向量(例如,列矩阵)。例如,输入矩阵的每列可以表示随时间采样的空间特征的输入值集合,输入矩阵的行可以表示不同的空间特征,并且输入矩阵中的单元可以包括在特定时间的特定特征的输入值。在一些示例中,本公开中的矩阵可以被实现为多维阵列或其他合适的数据结构。
在键盘模块22响应于在手势20被执行时而随着时间的生成的触摸事件而生成用于空间特征的输入值的帧,键盘模块22可以将每个帧的输入值输入到由键盘模块22使用的神经网络中。在一些示例中,响应于相应的触摸事件,以时间排序的序列每个帧输入到神经网络中,其中由键盘模块22生成该帧。因此,在键盘模块22生成帧时,键盘模块22可连续地输入输入神经网络的帧。
在键盘模块22使用的神经网络接收输入值时,神经网络可以至少部分地基于输入的帧的输入值来计算一个或多个函数,并且提供一个或多个相应的输出值。函数计算的更多细节在图2-7中描述。在一些示例中,键盘模块22使用的神经网络可以基于一个或多个输入值来生成一个或多个字符的一个或多个概率。为了说明参考图1,特定帧可以对应于响应于在位置34H处检测到手势30生成的触摸事件。特定帧的输入值可以包括位置34H的(x,y)坐标,识别图形键盘16B的“I”键的“I”值,触摸事件被生成的时间以及在位置43H处的手势30的输入类型的标识符。基于该特定帧的输入值,由键盘模块22使用的神经网络可以生成一个或多个字符的一个或多个概率。例如,神经网络可以指示字符“I”的概率为0.8,字符“U”的概率为0.05,字符“O”的概率为0.05,字符“J”的概率为0.05,以及字符“K”的概率为0.05。神经网络的输出值可以以输出矩阵的列向量(例如,列矩阵)构成。例如,输出矩阵的每列可以基于输入到神经网络的相应的帧来表示相应字符的概率集合。矩阵的行可以表示字符集合的不同字符,并且矩阵中的单元可以包括输入到神经网络中的相应的帧的特定字符的概率。
在键盘模块22将空间特征的输入值的帧输入到神经网络中时,键盘模块22可以输出每个相应的输入帧的字符概率。在一些示例中,输出矩阵的每个列向量以时间排序的序列从神经网络中生成,其中响应于相应的触摸事件通过键盘模块22相应的各个帧被输入神经网络中。因此,在帧被输入到由键盘模块22使用的神经网络中时,键盘模块22可以连续输出输出矩阵的列向量作为神经网络。
键盘模块22可以基于神经网络的输出来确定一个或多个字符串。例如,键盘模块22可以对数据结构中的输出矩阵的每个相应列向量的字符的概率建模,并且确定哪些字符串具有比其他字符串更高的概率。如图5进一步描述的,键盘模块22可以生成图,其中输出矩阵的列向量中的字符的概率由图的边表示。因此,在键盘模块22生成输出列向量时,字符的概率在图的连续边上被建模,并且通过图从起始节点到终端节点的路径可以表示字符串。在一些示例中,键盘模块22可以使用语言模型,其将概率包含进特定输入场境的字符串的图,如图5中进一步描述的。通过确定源自起始节点并且在终端节点结束的不同路径的总体概率或“成本”,键盘模块22可以确定对应于相应路径的哪些字符串比其他路径更可能。以这种方式,更可能或具有较低“成本”的路径可以指示执行手势30的用户更可能想要的字符串。
键盘模块22可以确定基于神经网络的输出确定的一个或多个字符串的组合成本或组合概率。组合成本或组合概率可以指示字符串对应于手势30的相应可能性。例如,在图1的示例中,键盘模块22可以分别确定字符串“saying”、“satin”和“sarin”的组合成本或组合概率。键盘模块22还可以确定除了“saying”、“satin”和“sarin”之外的字符串的组合成本或组合概率。基于确定的一个或多个组合成本或组合概率,键盘模块22可以执行各种操作中的一个或多个操作,包括但不限于单词预测、自动校正和/或建议技术。
在一些示例中,计算设备10可以基于由神经网络提供的解码来输出用于显示的一个或多个字符或字符串。例如,键盘模块22至少部分地基于使用神经网络处理手势的至少一个空间特征,向UI模块20发送数据,该UI模块20使存在感知显示器12输出至少一个字符串。在一些示例中,键盘模块22可以在字符串建议区域38A-38C中输出一个或多个字符串。如图1所示,可以输出具有最高组合概率的三个字符串,以便在建议的字符串区域38A-38C中显示。在图1的示例中,与字符串“satin”相关联的组合成本可以是最低的组合成本,随后是“sarin”,然后是“saying”。在一些示例中,可以输出一个或多个字符串用于在编辑区域16A和/或在图形键盘16B中显示。
在一些示例中,在用户正在执行手势30时,UI模块20可以通过将三个最高排名的候选字符串包括为建议的字符串来更新建议的字符串区域38A-38C。从用户界面14中,用户可以通过在存在感知显示器12输出建议的字符串区域38A-38C的存在感知显示器12的位置处点击或提供输入来选择建议的字符串38中的一个。例如,用户可以通过在存在感知显示器12呈现建议的字符串(例如“satin”)的存在感知显示器12的位置上点击或做手势来选择建议的字符串区域。选择建议的字符串区域38A可以导致UI模块20更新用户界面14并且在编辑区域16A中包括字符串“satin”。
以这种方式,当使用图形键盘14时,本公开的技术可以更准确地确定用户想要的字符和/或字符串。因此,本公开的技术可以减少附加用户输入的数量,并且因此在设备上的磨损,否则用户将需要校正错误解释的输入。在一些情况下,本公开的技术可以提高图形键盘处的文本输入的效率,这也可以通过减少另外需要校正错误解释输入的用户输入的数量来改善电池寿命。
图2是示出根据本公开的一个或多个方面的示例计算设备的框图。图2仅示出计算设备10的一个特定示例(也如图1所示),并且计算设备10的许多其他示例可以在其他实例中使用,并且可以包括在示例计算设备10和计算设备10中包括的组件的子集或者可以包括图2中未示出的附加组件。
如图2的示例所示,计算设备10包括一个或多个处理器40、一个或多个输入设备42、一个或多个通信单元44、一个或多个输出设备46、一个或多个存储设备48和存在感测显示器12。计算设备10的存储设备48还包括UI模块20、应用模块24A-24N、操作系统26、语言模块28和键盘模块22。键盘模块22还可以包括一个或多个神经网络52和一个或多个有限状态转换器54。神经网络52可以包括用于在图形键盘处解码用户输入的一个或多个神经网络,并且可以包括图4的存储器块100。FST 54可以包括用于解码在图形键盘处的用户输入的一个或多个FST,并且可以包括图5的FST 150。通信信道50可以互连组件12、40、42、44、46、48、56、58、70和72中的每一个,用于组件间通信(物理地,通信地和/或可操作地)。在一些示例中,通信信道50可以包括系统总线、网络连接、一个或多个进程间通信数据结构或用于在硬件和/或软件之间传送数据的任何其它组件。
一个或多个处理器40可以在计算设备10内实现功能和/或执行指令。例如,计算设备10上的处理器40可以接收和执行由存储设备48存储的提供UI模块20、应用模块24、操作系统26、语言模型28和键盘模块22(包括神经网络52和有限状态转换器54)的功能的指令。由处理器40执行的这些指令可以使得计算设备10在程序执行期间在存储设备48内存储和/或修改信息。处理器40可以执行UI模块20、应用模块24、操作系统26、语言模型28和键盘模块22(包括神经网络52和有限状态转换器54)的指令以执行一个或多个操作。也就是说,UI模块20、应用模块24、操作系统26、语言模型28和键盘模块22(包括神经网络52和有限状态转换器54)可由处理器40操作以执行本文所述的各种功能。
计算设备10的一个或多个输入设备42可以接收输入。输入的示例是触觉、音频、动力学和光学输入等。在一个示例中,计算设备10的输入设备42包括鼠标、键盘、语音响应系统、摄像机、按钮、控制盘、麦克风或用于检测来自人或机器的输入的任何其他类型的设备。在一些示例中,输入设备42可以是存在感知输入设备,其可以包括存在感知屏幕、触摸感知屏幕等。
计算设备10的一个或多个输出设备46可以生成输出。输出示例是触觉、音频和视频输出。在一个示例中,计算设备10的输出设备46包括存在感知屏幕、声卡、视频图形适配器卡、扬声器、阴极射线管(CRT)监视器、液晶显示器(LCD)或用于生成到人或机器的输出任何其他类型的设备。输出设备46可以包括诸如阴极射线管(CRT)监视器、液晶显示器(LCD)、发光二极管(LED)或用于生成触觉、音频和/或视觉输出的任何其它类型的设备的显示设备。
在一些示例中,计算设备10的存在感知显示器12可以包括输入设备42和/或输出设备46的功能。在图2的示例中,存在感知显示器12可以包括存在感知的输入设备72,诸如存在感知屏幕或触摸感知屏幕。在一些示例中,存在感知输入设备72可以检测存在感知输入设备处和/或附近的对象。作为一个示例范围,存在感知输入设备72可以检测存在感知输入设备72的2英寸或更小内的诸如手指或触控笔的对象。存在感知输入设备72可以确定检测对象的存在感知输入设备的位置(例如,(x,y)坐标)。在另一示例范围中,存在感知输入设备72可以检测来自存在感知输入设备72的6英寸或更小的对象,并且其他范围也是可能的。存在感知输入设备72可以使用电容、电感和/或光学识别技术来确定由用户的手指选择的存在感知输入设备72的位置。
在一些示例中,存在感知显示器12还可以使用如关于输出设备46所描述的触觉、音频或视频刺激向用户提供输出。例如,存在感知显示器12可以包括显示设备70,其呈现图形用户界面。显示设备70可以是提供视觉输出的任何类型的输出设备,例如关于输出设备46所描述的。尽管被示为计算设备10的集成组件,但在一些示例中,存在感知显示器12可以是外部组件,其与计算设备10的其他组件共享用于发送和/或接收输入和输出的数据路径。例如,存在感知显示器12可以是位于计算设备10的封装内并且物理连接到计算设备10的封装的计算设备10的内置组件(例如,移动电话上的屏幕)。在另一个示例中,存在感知显示器12可以是位于计算设备10的封装外并且与计算设备10的封装物理分离的计算设备10的外部组件(例如,与平板电脑共享有线和/或无线数据的监视器、投影仪等)。在一些示例中,存在感知显示器12当位于计算设备10的封装外并且与计算设备10的封装物理分离时可以由两个单独的组件来实现:用于接收输入的存在感知输入设备72和用于提供输出的显示设备70。
计算设备10的一个或多个通信单元44可以通过发送和/或接收数据与外部设备进行通信。例如,计算设备10可以使用通信单元44在诸如蜂窝无线电网络的无线电网络上发送和/或接收无线电信号。在一些示例中,通信单元44可以在诸如全球定位系统(GPS)网络的卫星网络上发送和/或接收卫星信号。通信单元44的示例包括网络接口卡(例如,以太网卡)、光收发器、射频收发器、GPS接收器或可以发送和/或接收信息的任何其他类型的设备。通信单元44的其他示例可以包括在移动设备以及通用串行总线(USB)控制器等中发现的蓝牙、GPS、3G、4G和Wi-Fi无线电。
计算设备10内的一个或多个存储设备48可以存储用于在计算设备10的操作期间进行处理的信息。在一些示例中,存储设备48是临时存储器,这意味着存储设备48的主要目的不是长期存储。计算设备10上的存储设备48可以配置为作为易失性存储器短期存储信息,因此如果停用,则不保留存储的内容。易失性存储器的示例包括本领域已知的随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)以及其它形式的易失性存储器。
在一些示例中,存储设备48还包括一个或多个计算机可读存储介质。存储设备48可被配置为存储比易失性存储器更大量的信息。还可以将存储设备48配置为作为非易失性存储器空间长期存储信息并且在激活/关闭周期之后保留信息。非易失性存储器的示例包括磁性硬盘、光盘、软盘、闪存或电可编程存储器(EPROM)或电可擦除和可编程(EEPROM)存储器的形式。存储设备48可以存储与UI模块20、应用模块24、操作系统26、语言模型28和键盘模块22相关联的程序指令和/或数据。
如图2所示,计算设备10可以包括一个或多个传感器56。传感器56可以包括生成加速度计数据的加速度计。加速度计数据可以指示计算设备10的加速度和/或加速度的变化。传感器56可以包括生成陀螺仪数据的陀螺仪。陀螺仪数据可以指示计算设备10的物理取向和/或物理取向的变化。在一些示例中,取向可以是相对于一个或多个参考点。传感器56可以包括生成磁力计数据的磁力计。磁力计数据可以指示正在接触或接近计算设备10的对象的磁化。磁力计数据可以指示地球的磁场,并且在一些示例中,提供指南针的定向功能。传感器56可以包括生成环境光数据的环境光传感器。环境光数据可以指示计算设备10暴露于的光的强度。传感器56可以包括生成接近数据的接近传感器。接近数据可以指示对象是否在计算设备56附近。在一些示例中,接近数据可以指示对象对于计算设备10的接近程度。在一些示例中,传感器56可以包括生成日期和时间的时钟。日期和时间可能是当前日期和时间。
如图2所示,计算设备10可以包括电源58。在一些示例中,电源58可以是电池。电源58可以为计算设备10的一个或多个组件提供电力。电源58的示例可以包括但不一定限于具有锌-碳、铅酸、镍镉(NiCd)、镍金属氢化物(NiMH)、锂离子(Li-ion)和/或锂离子聚合物(Li-ion polymer)化学物质的电池。在一些示例中,电源58可以具有有限的容量(例如,1000-3000mAh)。
根据本公开的技术,计算设备10可以包括一个或多个处理器40和至少一个键盘模块22,其由一个或多个处理器40可操作以输出在显示设备70处显示的图形键盘。一个或多个处理器40可以接收在存在感知输入设备72的位置处检测到的手势的指示,其中存在感知输入设备72的位置对应于输出图形键盘的显示设备70的位置。一个或多个处理器40可以基于由计算设备10使用神经网络48的神经网络处理的手势的至少一个空间特征来确定至少一个字符串,其中至少一个空间特征至少指示手势的一个物理属性。一个或多个处理器40可以至少部分地基于使用神经网络48的神经网络处理手势的至少一个空间特征,输出用于在显示设备70处的显示的至少一个字符串。
在一些情况下,在触摸屏键盘上可能有多种输入模式。一个是逐个字符地的点击(或触摸键入),以单词完成、下一个单词预测和纠错来增强。另一模式可以是手势键入(也称为单词手势键盘、滑动键盘或形状写入)。替代逐个字符点击,手势键入可让用户在触摸屏键盘上滑动手指或触控笔,以便一次键入一个单词(或多个或子单词)。在这两种模式下,容错可能改善用户体验。当输入文字时,越容错用户可以越快速、轻松和容易。本公开的技术可以提供更多的容错,以进一步放松用户的输入准确性以及行为。例如,用户可能能够做诸如“it is”的多个短单词的手势,如果用户选择这样做,则因为它们很短所以两者可能倾向于容易出错。在一些示例中,本公开的技术可以使得用户能够将长单词自由地分离成多个部分,每个部分以不同的笔划键入。在一些示例中,每个不同的笔划可以是不相交的。本公开的技术还可以使得用户能够用两个拇指来做手势,以利用Qwerty布局的交替性质。在一些示例中,本公开的技术可以使得用户能够将手势键入与单词内的触摸键混合。
不是使用具有显式特征的模型来计算单词候选概率,本公开的技术可以使用在键盘空间输入数据及其对应文本以及其他可能数据上训练的一个或多个人工神经网络。配对的输入数据和文本可以通过计算设备10通过产品记录或数据收集试验来获得。配对可以是单词、字符(包括中文汉字)、短语或段落级别。
在一些示例中,键盘解码可被理解为从可能具有一个或多个噪声源的空间和/或词法输入推断用户预期文本的过程。例如,一个噪声源是由于用户无法针对预期单词中的每个字母精确触摸或在屏幕上做手势导致的空间-马达噪声。用户也可能无意表达了其他字母或省略了一些字母。噪音的第二个来源可能是由于例如错误拼写预期单词而导致的认知错误。可以针对语言模型预测计算这两种类型的错误或成本。诸如空间输入的时间和节奏的其他因素也可以在计算中考虑。由键盘22实现的公开内容的技术可以通过使处理对这种噪声源更加容错而改善键盘解码过程。
在一些示例中,根据本公开的技术的人工神经网络可以是针对包含所有这些因素的数据训练的直接模型,包括但不限于在键入自然句子时的时间、空间、拼写(因此,拟合常规语言表达式的程度包含在数据中)。当数据有限时,用于时空建模、用于拼写建模和用于语言建模的单独的人工神经网络可以在不同的语料库上进行训练,然后组合。这种人工神经网络方法可以提供更加集成和/或更优化的触摸屏键盘解码方法。
由键盘模块22实现的人工神经网络架构对于键盘解码可以改变。如本公开所述的递归神经网络(例如,LSTM递归神经网络)可以由键盘模块22来实现用于键盘输入解码。神经网络48可以具有单个或多个隐藏层,如图6中进一步讨论的。神经网络48可以是单向的(早期场境影响后续结果)或双向(后续场境影响早期结果)。
在一些示例中,LSTM人工神经网络可以将空间输入映射到随后与传统语言模型相连接的字符串,诸如图4-5中进一步描述的。在一些示例中,作为触摸点击序列或手势笔画的空间输入可以包含认知拼写错误,因此由键盘22实现的神经网络可以学习常见的拼写错误。如图5进一步描述的,本公开的技术可以将语言模块28实现为诸如LSTM人工神经网络的人工神经网络。LSTM语言模型可以捕获比前N(例如2)单词更广泛的场境。
在一些示例中,键盘模块22可以实现在对应于短语和句子的较长输入序列上训练的深层网络。深层网络可以是包括满足阈值(例如,大于阈值)的层数的网络。这样一个深层网络可能会反映语言和空间模型。
如本公开所述,键盘模块22可以基于训练数据来训练神经网络48。键盘模块22可以通过记录或通过键盘模块22提供的更专用的数据收集练习来收集训练数据,其中人类用户通过触摸或通过做手势来键入所提示的文本(单词、短语或句子),从而自然地包含前面提到的各种出现的错误的自然的人类空间输入与提示(标记)的文本相关联。在一些示例中,当数据有限时,特别是对于同时建模时空规律和语言规律的较大的神经网络48的人工神经网络进行训练,合成数据可用于训练。由键盘模块22实现的触摸或手势合成器可以将更少数量的人类空间数据建模和外推到更大数量的和未知的单词,而这些单词又可以与反映键盘的目标应用(诸如,电子邮件、短信、社交网络和博客帖子)的真实记录文本相结合。
本公开的技术可以提供更灵活和更准确的键盘解码。例如,对于未设计的常规技术/实施方式,本公开的技术可以针对未预见或未预料到的用户输入场景更准确地执行。例如,一些用户可以用一个笔画来做手势“it is”,而其他用户可以将长单词分解成多个笔画。本公开的技术可以更灵活地确定用户想要的单词或多个单词。作为另一个示例,用户可以混合手势和点击,或者可替代地通过两个拇指做手势和点击。虽然常规技术可能必须被特别设计用于这样的用户场景,但是可以训练使用一个或多个人工神经网络的本公开的技术来学习这些情况,从而为用户输入技术提供更大的适应性。这样的训练数据可以由如本公开所描述的键盘模块22收集或生成。使用人工神经网络,键盘模块22还可以解码许多不同的输入模式(例如双手势键入模式)。因此,键盘模块22可以使用基于训练中的示例的特征而不是通过硬编码的特征工程来实现人工神经网络功能。
图3是示出根据本公开的一个或多个技术的输出用于在远程设备处显示的图形内容的示例计算设备的框图。通常,图形内容可以包括可以输出用于显示的任何视觉信息,例如文本、图像、一组运动图像等。图3所示的示例包括计算设备60、存在感知显示器64、通信单元70、投影仪80、投影仪屏幕82、移动设备86和视觉显示设备90。在一些示例中,存在感知显示器64可以是在图1和图2中所示的存在感知的显示器。尽管示出了图1和图2的示例作为独立的计算设备10的目的,但是诸如计算设备60的计算设备通常可以是包括用于执行软件指令的处理器或其他合适的计算环境的任何组件或系统,并且例如不需要包括存在感知显示器。
如图3的示例所示,计算设备60可以是包括关于图2中的处理器40所描述的功能的处理器。在这样的示例中,计算设备60可以通过通信信道62A可操作地耦合到存在感知显示器64,通信信道62A可以是系统总线或其他合适的连接。计算设备60还可以通过通信信道62B可操作地耦合到以下进一步描述的通信单元70,通信信道62B也可以是系统总线或其他合适的连接。尽管单独示出了图3的示例,但是计算设备60可以通过任何数量的一个或多个通信信道可操作地耦合到存在感知显示器64和通信单元70。
在其他示例中,例如先前通过图1-2中的计算设备10所示,计算设备可以是指便携式或移动设备,例如移动电话(包括智能电话)、膝上型计算机等。在一些示例中,计算设备可以是台式计算机、平板计算机、智能电视平台、相机、个人数字助理(PDA)、服务器或大型机。
存在感知显示器64可以包括显示设备66和存在感知输入设备68。显示设备66可以例如从计算设备60接收数据并显示图形内容。在一些示例中,存在感知输入设备68可以使用电容、电感和/或光学识别技术来确定在存在感知显示器64处的一个或多个用户输入(例如,连续手势、多触摸手势、单触摸手势)并使用通信信道62A向计算设备60发送这样的用户输入的指示。在一些示例中,存在感知输入设备68可以物理地定位在显示设备66的顶部,使得当用户将输入单元放置在由显示设备66显示的图形元素上时,存在感知输入设备68的位置对应于显示图形元素的显示设备66的位置。
如图3所示,计算设备60还可以包括和/或可操作地耦合于通信单元70。通信单元70可以包括如图2所描述的通信单元44的功能。通信单元70的示例可以包括网络接口卡、以太网卡、光收发器、射频收发器或可以发送和接收信息的任何其他类型的设备。这种通信单元的其他示例可以包括蓝牙、3G和WiFi无线电、通用串行总线(USB)接口等。计算设备60还可以包括和/或可操作地与一个或多个其他设备耦合(例如,输入设备、输出设备、存储器、存储设备),为了简洁和说明的目的其在图3中未示出。
图3还示出了投影仪80和投影仪屏幕82。投影设备的其它这样的示例可以包括电子白板、全息显示设备以及用于显示图形内容的任何其它合适的设备。投影仪80和投影仪屏幕82可以包括一个或多个通信单元,其使各个设备能够与计算设备60通信。在一些示例中,一个或多个通信单元可以实现投影仪80与投影仪屏幕82之间的通信。投影仪80可以接收来自包括图形内容的计算设备60的数据。投影仪80响应于接收数据,可以将图形内容投影到投影仪屏幕82上。在一些示例中,投影仪80可以使用光学识别或其他合适的技术确定在投影仪屏幕处的一个或多个用户输入(例如,连续手势、多触摸手势、单触摸手势),并且使用一个或多个通信单元向计算设备60发送这样的用户输入的指示。在这样的示例中,投影仪屏幕82可以是不必要的,并且投影仪80可以在任何合适的介质上投影图形内容,并且使用光学识别或其他这种合适的技术检测一个或多个用户输入。
在一些示例中,投影仪屏幕82可以包括存在感知显示器84。存在感知显示器84可以包括如本文所述公开的存在感知显示器4和/或64的功能的子集或所有功能。在一些示例中,存在感知显示器84可以包括附加功能。投影仪屏幕82(例如,电子白板)可以从计算设备60接收数据并显示图形内容。在一些示例中,存在感知显示器84可以使用电容、电感和/或光学识别技术来确定投影仪屏幕82处的一个或多个用户输入(例如,连续手势、多触摸手势、单触摸手势)并使用一个或多个通信单元向计算设备60发送这种用户输入的指示。
图3还示出了移动设备86和视觉显示设备90。移动设备86和视觉显示设备90可以各自包括计算和连接能力。移动设备86的示例可以包括电子读取器设备、可转换笔记本设备、混合平板设备等。视觉显示设备90的示例可以包括诸如电视机、计算机监视器等的其他半固定设备。如图3所示,移动设备86可以包括存在感知显示器88。视觉显示设备90可以包括存在感知显示器92。存在感知显示器88、92可以包括本公开所述的存在感知显示器4和/或64的功能的子集或所有功能。在一些示例中,存在感知显示器88、92可以包括附加功能。在任何情况下,存在感知显示器92例如可以从计算设备60接收数据并显示图形内容。在一些示例中,存在感知显示器92可以使用电容、电感和/或光学识别技术确定投影仪屏幕处一个或多个用户输入(例如,连续手势、多触摸手势、单触摸手势),并使用一个或多个通信单元向计算设备60发送这样用户输入的指示。
如上所述,在一些示例中,计算设备60可以输出用于在通过系统总线或其他合适的通信信道耦合到计算设备60的存在感知显示器64处显示的图形内容。计算设备60还可以输出用于在一个或多个远程设备(诸如投影仪80、投影仪屏幕82、移动设备86和视觉显示设备90)处显示的图形内容。例如,计算设备60可以根据本公开的技术来执行一个或多个指令以生成和/或修改图形内容。计算设备60可以将包括图形内容的数据输出到诸如通信单元70的计算设备60的通信单元。通信单元70可将数据发送到一个或多个远程设备,诸如投影仪80、投影仪屏幕82、移动设备86和/或视觉显示设备90。以这种方式,计算设备60可以输出用于在一个或多个远程设备处显示的图形内容。在一些示例中,一个或多个远程设备可以在包括在和/或可操作地耦合到相应远程设备的存在感知显示器处输出图形内容。
在一些示例中,计算设备60可能不会输出用于在可操作地耦合到计算设备60的存在感知显示器64处的图形内容。在其他示例中,计算设备60可以输出用于在通过通信信道62A和在一个或多个远程设备耦合到计算设备60的存在感知显示器64处显示的图形内容。在这样的示例中,图形内容可以在每个相应设备基本处同时显示。例如,可能通过将包括图形内容的数据发送到远程设备的通信延迟引入一些延迟。在一些示例中,由计算设备60生成并用于在存在感知显示器64处显示的图形内容可以不同于用于在一个或多个远程设备处显示的图形内容显示输出。
计算设备60可以使用任何合适的通信技术发送和接收数据。例如,计算设备60可以使用网络链路72A可操作地耦合到外部网络74。图3中示出的每个远程设备可以通过相应网络链路72B、72C或72D中的一个可操作地耦合到网络外部网络74。外部网络74可以包括网络集线器、网络交换机、网络路由器等,这些网络集线器、网络交换机、网络路由器等可操作地相互耦合,由此提供图3所示的计算设备60与远程设备之间的信息交换。在一些示例中,网络链路72A-72D可以是以太网、ATM或其他网络连接。这种连接可以是无线和/或有线连接。
在一些示例中,计算设备60可以可操作地耦合到图3中包括的一个或多个远程设备。直接设备通信78可以包括计算设备60使用有线或无线通信直接与远程设备一起发送和接收数据的通信。也就是说,在直接设备通信78的一些示例中,计算设备60发送的数据在远程设备处被接收之前可能不被一个或多个附加设备转发,反之亦然。直接设备通信78的示例可以包括蓝牙、近场通信、通用串行总线、WiFi、红外线等。图3中示出的一个或多个远程设备可以通过通信链路76A-76D与计算设备60可操作地耦合。在一些示例中,通信链路76A-76D可以是使用蓝牙、近场通信、通用串行总线、红外线等的连接。这种连接可以是无线和/或有线连接。
根据本公开的技术,计算设备60可以输出图形键盘,用于在视觉显示设备90的存在感知显示器92处显示。例如,计算设备60可以将表示图形键盘的数据发送到通信通信单元70。通信单元70可以经由外部网络74或直接设备通信78将数据发送到视觉显示设备90。视觉显示设备90可以使存在感知显示器92输出用于显示的图形键盘。
计算设备60可以接收在输出图形键盘的存在感知输入92的位置处检测到的手势的指示。例如,视觉显示设备90可以接收在存在感知显示器92处检测到的用户输入的指示。视觉显示设备可以经由外部网络74或直接设备通信78将表示用户输入的指示的数据发送到通信单元70。通信单元70可以将数据发送到计算设备60。
计算设备60可以基于由计算设备使用神经网络处理的手势的至少一个空间特征来确定至少一个字符串,其中至少一个空间特征指示手势的至少一个物理属性。例如,计算设备60可以将对应于手势指示的输入值的列向量应用于神经网络。计算设备60可以确定由神经网络提供的表示一个或多个字符和/或字符串的概率的输出值。在一些示例中,计算设备60可以确定由神经网络提供的表示至少一个字符串的概率的输出值。
至少部分地基于使用神经网络的手势的至少一个空间特征的处理,计算设备60可以输出用于在存在感知显示设备92处的显示的至少一个字符串。例如,计算设备60可以将表示至少一个字符串的数据发送到通信单元70。通信单元70可以经由外部网络74或直接设备通信78将数据发送到视觉显示设备90。视觉显示设备90可以引起存在感知显示设备92以输出一个字符串以进行显示。
图4是示出根据本公开的一个或多个方面的用于解码在图形键盘处提供的用户输入的长短期记忆(LSTM)的存储器块100的概念图。在一些示例中,存储器块100可以被实现为硬件、软件和/或硬件和软件的组合。例如,在一些示例中,存储器块100可以被实现为可由一个或多个处理器执行的软件组件或模块。虽然为了说明的目的示出了单个存储器块100,但是实现为用于解码在图形键盘处提供的用户输入的LSTM的神经网络可以包括任何数量的存储器块。在一些示例中,存储器块100可以在键盘模块22的神经网络48中实现,如图2所示。
如图4所示,存储器块11可以接收输入矩阵102。如图1所示,特定时间点上的空间特征的输入值可以被构造成“帧”,其可以是输入矩阵102的列向量(例如,列矩阵)。例如,输入矩阵102的每一列可以表示随时间和/或顺序采样的空间特征的输入值集合,输入矩阵的行可以表示不同的特征,并且输入矩阵中的单元可以包括序列中的特定时间或地点处的特定特征的输入值。在一些示例中,输入矩阵102可以表示为等式(1),其中d表示与手势相关联的特征,T表示手势的长度:
如图4所示,存储器块100实现激活函数104A和104B(“激活函数104”),其可以各自将非线性函数应用于其各自的输入,例如xt,yt-1和ct,其导致输入的非线性变换,其中t表示特定的时间点。激活函数104的示例可以包括但不限于逻辑函数、整流器函数和软激活函数等。存储器块100还实现门函数gi106A(例如,输入门)、gf106B(例如,遗忘门)和go106C(例如,输出门)(统称为“门函数106”)。激活门函数106的实例可以包括但不限于sigmod函数、双曲正切函数、整流线性函数、线性函数和归一化指数函数等。门函数104可以控制存储器块100内的值的线性或者另外在存储器块100内对该值进行缩放,其中这些值包括但不限于xt,st,ct,ct-1,ot,it,yt,yt-1,ft等。存储器块100还包括自环108,其可以表示基于在本公开中进一步描述的输出矩阵yt-1的先前输出信息保持状态信息的存储器单元。在一些示例中,存储器块100的自环108使得能够对随时间接收的多字符序列和/或输入值的矩阵训练存储器块100。例如,自环108可以保持状态ct,其可以在从先前状态到新状态的转变中改变。
当键盘模块22接收或以其他方式生成诸如帧xt110(其可以是输入矩阵102的列向量)的输入值的帧时,将帧输入到存储器块100。对于输入样本诸如包括帧xt110,存储器块100计算由等式2-7表示的以下函数以生成输出矩阵yt
st=hs(Ws(yt-1+xt)) (2)
it=gi(Wi(yt-1+xt+ct-1)) (3)
ft=gf(Wf(yt-1+xt+ct-1)) (4)
ot=go(Wo(xt+yt-1+ct)) (6)
等式2-7将Ws说明为与yt-1和xt的尺寸相同。然而,在一些示例中,不同参数矩阵和/或不同尺寸的矩阵可以单独应用于yt-1和xt。例如,Ws1可以应用于yt-1,并且Ws2可以应用于xt
在上述等式中,可以是输入矩阵x 102的第t列。Ws、Wi、Wf、Wo可以被称为存储单元108或存储器块100的可学习参数。在上述等式中,it、ft、ot分别是输入、遗忘和输出门的输出。另外,gi,gf和go可以是输入、遗忘和输出门激活函数。在一些示例中,hs和ho是输入和输出激活,is是元素方式积(element wise product)。在通过此函数传递整个序列之后,LSTM生成输出其中C是允许的字符集合,例如字符集合中的字符。
存储器块100可以基于一个或多个输入值来生成一个或多个字符的一个或多个概率作为输出。神经网络的输出值可以以诸如输出矩阵112的列向量yt114(例如,列矩阵)的列向量来构造。例如,输出矩阵112的每列可以基于输入到存储器块100的相应帧xt110表示相应字符的概率集合。输出矩阵112的行可以表示字符集合的不同字符,并且输出矩阵112中的单元可以包括用于输入到存储器块100的相应帧的特定字符的概率。列向量yt-1116可以是在计算帧xt110的列向量yt114时由存储器块100使用的输出值的先前列向量。在等式6中,存储器块100确定通过计算输出门值ot和将存储器单元108的当前状态ct的列向量点积作为激活函数的输入的激活函数104B的输出来计算列向量yt114。
在一些示例中,输出矩阵112的列向量可以包括“空白字符”和/或空白字符的概率。例如,输出矩阵112的行可以对应于空白字符。用于空白字符的列向量行中的单元可以包括在多个帧上重复相同字符的概率。作为示例,如果用户想要键入单词“look”,并且存储器块100生成包括转录“loook”的输出矩阵,则输出矩阵的列2(例如,列向量)可以包括对应于空白字符的单元中的概率。与空白字符对应的单元中的概率可能高于一个或多个其他字符的列向量中的概率,或者可以指示一个或多个其他字符的列向量中的概率的最高概率。
存储器块100通过计算激活函数104B的输出和输出门值ot的列向量点积来生成列向量yt114,其对激活函数104B的输出进行缩放。在一些示例中,输出门值ot可以是整数值或浮点值。在一些示例中,输出门值ot可以由用户设置,可以是由计算设备硬编码的预定值,或者可以由存储器块100基于训练存储器块100或响应于实现存储器块100的计算设备的用户的实际使用而改变。在一些示例中,存储器块100应用输出门值ot来缩放激活函数104B的异常值。如等式5所述,存储器块100可以确定Wo和xt,Wo和yt-1以及Wo和ct的矩阵列向量点积。存储器块100可以对这些矩阵列向量点积中的每一个求和,并将和作为输入提供给门函数106C,从而生成输出门值ot
如上所述,在接收到诸如帧xt110的每个帧之后,存储器块100可以计算由等式2-7表示的函数以生成输出矩阵yt。在等式2中,存储器块100计算激活函数104A。特别地,存储器块100计算Ws和yt-1的矩阵列向量点积,并进一步计算Ws和xt的矩阵列向量点积。存储器块100对等式2中生成的两个矩阵列矢量点积进行求和,并将和作为输入提供给激活函数104A。存储器块100将激活104A的输出确定为st,其乘以在等式3中计算的it。st与it的乘积与存储器单元108的ct-1相加以生成ct,其中ct是帧xt110的存储器单元108的当前状态,并且其中ct-1是由先前帧xt-1的存储器单元108维持的先前状态。
在等式3中,存储器块100确定Wf和yt-1,Wf和xt以及Wf和ct-1的矩阵列向量点积。存储器块100可以对这些矩阵列向量点积进行求和,并将和作为输入提供给门函数106B,该函数生成遗忘门输出ft。遗忘门输出ft可以乘以存储单元108的先前状态ct-1,其乘积与st和it的乘积相加以生成存储器单元108的当前状态ct,如图4所示。存储器单元108的当前状态ct由存储器块100计算,如上面等式4和本段所述。
如图4所示,每个门函数106A、106B和106C获取多个输入值以生成其相应的输出值。例如,门函数106A获取存储单元108的输入帧xt110、先前输出列向量yt-1161和先前状态ct-1作为输入值,以便生成it。门函数106B获取输入帧xt110、先前输出列向量yt-1116和存储器单元108的先前状态ct-1作为输入值,以便生成ft。门函数106A获取存储单元108的输入帧xt110、前一个输出列向量yt-1116和先前状态ct-1作为输入值,以便生成ot
门函数106和激活函数可以共同学习函数
其中T是手势的长度,d是在每个输入帧中的特征的数量并且是通过修改可学习的参数Ws、Wi、Wf、Wo允许的单词集合。例如,存储器块100可以随时间更新可学习参数Ws、Wi、Wf、Wo,以提高存储器块100确定用于正确的手势的一个或多个字符或字符串的准确性。在一些示例中,与输入x相关联的d特征可以包含数据,其包括但不限于手指触摸的键、来自最后手势的当前时间和手势的类型(手指的向下按压或向上提升)。
在一些示例中,存储器块100通过使用反向传播一定量的误差到激活函数104和门函数106,通过可学习参数Ws、Wi、Wf、Wo进行修改。误差量可以是由存储器块100提供的实际的输出值和想要输出值、给定特定输入值之间的差。例如,当训练存储器块100时,输入值的训练集合可以被应用为存储器块100的帧。训练集合可以包括输入值和相应的预期输出值。基于存储器块100提供的实际输出值与训练集合的预期输出值之间的差异程度,存储器块100可以修改可学习参数Ws、Wi、Wf、Wo中的一个或多个。例如,存储器块100提供的实际输出值与训练集合的预期输出值之间的差异程度(例如,误差量)越大,对可学习参数Ws、Wi、Wf、Wo中的一个或多个的修改越大。
在一些示例中,存储器块100可以基于差异程度增加可学习参数Ws、Wi、Wf、Wo中的一个或多个的值。在一些示例中,存储器块100可以基于差异程度来减小可学习参数Ws、Wi、Wf、Wo中的一个或多个的值。在一些示例中,对可学习参数Ws、Wi、Wf、Wo中的一个或多个的修改的大小可以与存储器块100提供的实际输出值和训练集合的想要输出值之间的差异程度成线性比例。在一些示例中,对可学习参数Ws、Wi、Wf、Wo中的一个或多个的修改的大小可以与存储器块100提供的实际输出值和训练集合的预期输出值之间的差异程度成非线性比例。
可以使用一个或多个函数来训练用于解码在图形键盘处提供的用户输入的神经网络。在图4的示例中,存储器块100可以实现连接机制时间分类(CTC)损失函数,以训练不对准目标上的递归网络。例如,给定来自训练集合的特定输入值,CTC损失函数可以确定由存储器块100提供的实际输出值与预期输出值之间的差异程度。存储器块100可以通过使与目标序列对应的所有逐帧序列的概率之和最大化来执行训练。例如,存储器块100可以使用以下计算来确定损耗:
其中x是输入序列,z是目标转录(例如,一个或多个字符或字符串),A(z)是目标转录物的所有CTC转录的集合(例如,对于单词数据,π是特定的转录,并且转录可能包括“daata”、“datta”、“dddata”等)。在等式8-10中,y是LSTM的输出,或更一般地,是递归网络的输出。等式10和9为计算等式8提供了基础。以这种方式,等式8的输出,即,可以用于修改如上所述的可学习参数Ws、Wi、Wf、Wo中的一个或多个,提供例如增加、减少或以其它方式修改可学习参数Ws、Wi、Wf、Wo中的一个或多个。
在一些示例中,存储器块100可以通过实施根据等式11的向前-向后算法来计算等式8中描述的损失:
其中α和β分别是Alex Graves、Santiago Fern'andez、Faustino Gomez和J¨urgenSchmidhuber的“Connectionist temporal classification:labellingunsegmented sequence data with recurrent neural networks(连接机制时间分类:标签未细分序列数据与递归神经网络)”,第23届机器学习国际会议.ACM,2006,pp.369-376中描述的向前和向后变量,并且可以通过动态编程技术来计算。在一些示例中,与序列z相同,其中空格插入到开头、结尾和符号之间。在一些示例中,zs是包含z的首先s个帧的序列。
等式11可以提供给定帧序列的字符或单词的概率。因此,可以基于从等式8和/或11计算的损失来训练存储器块100,以最大化转录(例如,基于输入帧序列由存储器块100输出的字符序列)的概率,或转录集合表示包括在定义的字符和单词的语料库中的字符或单词。定义的字符或单词的语料库可能是用于书面和/或口语的一个或多个字典。这样的字典的示例可以包括英文字典、中文字典和西班牙字典等。
在训练期间,可以训练存储器块100以通过基于从等式8和/或11计算的损失修改可学习的参数Ws、Wi、Wf、Wo中的一个或多个来最大化每个对应于单词“data”的转录“daata”、“datta”、“dddata”的一个或多个可能性。因此,存储器块100可以实现等式11以基于输出矩阵y 112确定给定导致转录“daata”的输入矩阵的单词“data”的概率。在一些示例中,存储器块100可以实现等式11以确定给定导致可能的转录(“daata”、“datta”、“dddata”)的输入矩阵的单词“data”的概率。在一些示例中,存储器块100通过将给定输入矩阵的集合{“daata”、“datta”、“dddata”)中的每个转录的相应概率相加,确定给定输入矩阵的单词“data”的概率。在一些示例中,在训练期间使用CTC损失函数可以允许计算设备10训练网络直接输出字符,而不需要隐马尔可夫模型(HMM)状态。
如上所述,给定导致各种转录的输入矩阵,可以训练存储器块100,以将定义的语料库中的字符和单词的概率最大化。因此,可以使用如上所述的训练集合来训练存储器块100,以修改来自训练集合的输入值的一个或多个经处理的帧的可学习参数Ws、Wi、Wf、Wo的值以基于图形键盘处的手势输入提供更准确的字符和单词识别。在一些示例中,一旦存储器块100已被训练以基于图形键盘处的手势输入更准确地确定字符和单词,则用户可以使用计算设备10使用至少包括存储器块100的训练的神经网络来输入文本。在图5中进一步描述了使用包括存储器块100的训练的神经网络使用输入进行解码的技术。
尽管图4的示例示出了单个存储器块100,但是计算设备10可以实现如关于存储器块100所描述的那样操作的多个存储器块。集体地,多个存储器块可以作为对在图形键盘处提供的用户输入进行解码的一个或多个神经网络进行操作。在一些示例中,多个存储器块可以被组织和/或互连为一层或多层存储器块。图6还描述了根据本公开的技术可以被组织和/或互连为一层或多层存储器块的多个存储器块的示例。
如本公开中所描述的人工神经网络架构可以具有不同的深度、宽度和方向性。在一些示例中,键盘模块22可以确定除了撇号、逗号和点字符之外还包括一组小写英文字符的集合C。在一些示例中,键盘模块22可以设置键盘模块22可以将所有权重或可学习的参数初始化为高斯分布,其中平均值为0,并且标准偏差为0.01。使用存储器块100的LSTM可以使用用于单元输入和输出的双曲正切激活单元和用于所有门的逻辑单元。键盘模块22可以实施梯度限幅以避免梯度激增。在一些示例中,键盘模块22训练具有设置为0.01的学习速率的神经网络。
图5是示出根据本公开的一个或多个方面的用于对由神经网络输出的字符序列的概率进行建模的有限状态转换器150的概念图。在一些示例中,FST 150可以被实现为硬件、软件和/或硬件和软件的组合。例如,在一些示例中,FST 150可以被实现为可由一个或多个处理器执行的软件组件或模块。虽然为了说明的目的示出了FST 150,但是为了解码在图形键盘处提供的用户输入而实现的神经网络可以使用任何数量的FST。在一些示例中,FST150可以在键盘模块22的FST 54中实现,如图2所示。
在训练之后,LSTM网络可以生成一个或多个矩阵或形式为了将解码的结果约束为有限单词的集合键盘模块22可以使用三角形词汇表FST 150。在一些示例中,键盘模块22生成FST 150,其中另一个FST将CTC空白,或如图4所述的空白字符,映射进入FST艾普西隆(ε)。FST艾普西隆可以代表从另一个状态转换的成本,并且空白字符可以具有由FST艾普西隆表示的特定成本。
在一些示例中,键盘模块22基于定义的字符和单词的语料库(例如一个或多个口语和/或书面语言的一个或多个字典)生成FST 150。在图5的示例中,仅通过FST150中的键盘模块22对来自语料库的“go”和“forth”两个单词进行建模。然而,来自语料库的任何数量的单词和/或字符串可以在FST 150中建模。键盘模块22可以使用有向图来实现FST 150,其可以包括一些示例中的循环。从一个节点到下一个节点的每个边表示特定的字符,并且每个边可以具有对应的成本。边的成本可以是与边相关联的特定字符的负对数概率,其中字符的概率是根据神经网络的输出矩阵的列向量来确定的,如先前在图4中所描述的。
如先前在图1和图4中所描述的,神经网络可以输出给定输入值的一个或多个相应字符的概率。在LSTM的示例中,存储器块可以输出给定输入值的输入矩阵的输出矩阵。如本文前面所述,输出矩阵的每个列向量可以包括一个或多个相应字符的一个或多个概率。键盘模块22可以顺序地处理输出矩阵的每个列向量,并且对FST 150的相应边上的各个字符的概率进行建模。例如,键盘模块22可以确定列向量yt和输出矩阵y。列向量yt包括给定输入框xt的字符的概率。在图5的示例中,键盘模块22确定起始节点152包括边154和156到相应的下一个节点158和160。特别地,键盘模块22确定边154对应于字符“g”。因此,键盘模块22从列向量yt确定对应于字符“g”的概率。在一些示例中,键盘模块12确定等于“g”概率的负对数的字符成本并将该字符成本与边154相关联。以类似的方式,键盘模块22确定边156对应于字符“f”。因此,键盘模块22从列向量yt确定对应于字符“f”的概率。在一些示例中,键盘模块12确定等于“f”概率的负对数的字符成本,并将该字符成本与边156相关联。
键盘模块22然后确定输出矩阵y的列向量yt+1以及输出矩阵y。列向量yt+1包括给定输入帧xt+1的字符的概率。在图5的示例中,键盘模块22确定下一个节点158和160包括边166和168到相应的下一个节点162和164。特别地,键盘模块22确定边166对应于字符“o”。因此,键盘模块22从列向量yt+1确定对应于字符“0”的概率。在一些示例中,键盘模块12确定等于“o”概率的负对数的字符成本并将该字符成本与边166相关联。以类似的方式,键盘模块22确定边168对应于字符“o”。因此,键盘模块22确定对应于列向量yt+1的字符“o”的概率。在一些示例中,键盘模块12确定等于“o”概率的负对数的字符成本,并将该字符成本与边168相关联。键盘模块22可以继续处理输出矩阵的每个列向量yt+1,将每个列向量中的字符的每个概率与FST 150的后续边相关联。以这种方式,FST 150的每个路径可以表示字符序列,其中每个字符序列包括等于路径中的每个边的成本的总和的总成本。如在本公开中进一步描述的,键盘模块22可以确定具有最低成本的一个或多个路径,其表示对应于一个或多个手势的最可能的字符串。
在一些示例中,键盘模块22可以使用语言模型,诸如图2的语言模型28,以在FST150中应用附加成本。例如,键盘模块22可以将语言模型成本170与表示定义的字符或单词的语料库中的字符或单词的边序列之后的边相关联。语言模型成本170可以指示在给定输入场境中路径中的字符序列表示的单词的可能性。在一些示例中,输入场境可以包括计算设备的用户的身份、计算设备的地理位置、计算设备的环境和/或气候、由计算设备确定的音频和/或视觉信息、由计算设备检测到的传感器信息、用户键入文本的输入字段的类型、用户键入文本的应用、用户键入文本的接收者等。
键盘模块22可以使用检测到的输入场境和语言模型28来确定语言模型成本170。在一些示例中,语言模型成本170可以是给定特定的输入场境由语言模型28为单词“go”提供的概率的负对数。键盘模块22可以将语言模型成本170与表示在定义的字符和单词的语料库(诸如存储在计算设备处的英文单词字典)中的单词“go”的边154、156集合之后的边172相关联。以这种方式,FST 150中的路径(诸如包括边154、166和172的路径)的组合成本可以认为是输入场境,以改善由用户输入想要的字符或单词的确定。因此,FST 150可以确定从起始节点152到终止节点174的一个或多个路径的总成本。终止节点174可以表示定义的单词和字符的语料库的字符或单词之间的边界。
在一些示例中,键盘模块22可以确定包括最低成本的通过FST 150的一个或多个路径的集合。路径集合的大小可以是用户定义的,也可以是在计算机10中硬编码的值,或者可以基于学习一个或多个参数来自动确定。在任何情况下,具有最低成本的路径集合可以表示用户在图形键盘处提供的用户输入最可能想要的字符和/或单词。例如,具有最低成本的路径可以表示对应于手势的最可能的单词(例如,用户最可能想要的单词)。具有下一个最低成本的路径可以表示对应于手势的第二个最可能的单词等等。在一些示例中,键盘模块22可以通过维持与最低组合成本相关联的有限路径集合(或字符序列)使用探索FST 150的束搜索来确定一个或多个路径的总体成本。在一些示例中,相应字符的FST 150中的边转换成本是来自输出矩阵y的与场境无关的对数概率。键盘模块22可以使用具有束搜索的FST150解码所得到的输出矩阵,其中弧转换成本是来自输出矩阵的与场境无关的对数概率。在一些示例中,键盘模块22可以进一步扩展本公开的技术以通过执行包括语言模型数据的另一FST的FST 150的组合来使用语言模型。
在一些示例中,计算设备10可以输出具有最低组合成本的用于显示的一个或多个字符或字符串。例如,如关于图1所述,键盘模块22可以在字符串建议区域38A-38C中输出一个或多个字符串。如图1所示,可以输出具有最低组合成本(或最高组合概率)的三个字符串,以便在建议的字符串区域38A-38C中显示。在图1的示例中,与字符串“satin”相关联的组合成本可以是最低的组合成本,随后是“sarin”、然后是“saying”。在一些示例中,可以输出一个或多个字符串用于在编辑区域16A中和/或在图形键盘16B处显示。
在一些示例中,随着用户正在执行手势30,UI模块20可以通过将至少一个最高排名的候选字符串包括为建议的字符串来更新建议的字符串区域38A-38C。从用户界面14中,用户可以通过在存在感知显示器12输出建议的字符串区域38A-38C的存在感知显示器12的位置处点击或提供输入来选择建议的字符串38中的一个。例如,用户可以通过在存在感知显示器12呈现建议的字符串(例如“satin”)的存在感知显示器12的位置上点击或做手势来选择建议的字符串区域。选择建议的字符串区域38A可以导致UI模块20更新用户界面14并且在编辑区域16A中包括字符串“satin”。
如上文在图5的示例中所描述的,键盘模块22可以基于所定义的字符和单词语料库(例如一个或多个口语和/或书面语言的一个或多个字典)生成FST 150。虽然语料库中只有两个单词“go”和“forth”是在FST 150中由键盘模块22建模为例,但是来自语料库的任何数量的单词和/或字符串都可以在FST 150中建模。在某些示例中,可以以与图5中对“go”和“forth”进行建模相同或相似的方式沿着路径建模表示可能的转录的一个或多个字符串。例如,诸如“forrrth”、“foorth”、“forttth”等各种转录可以在字典中映射到单词“forth”。键盘模块22可以沿着FST 150的相应路径映射每个相应转录的字符。例如,可以在FST 150中的单独的路径上建模诸如“forrrth”、“foorth”、“forttth”的每个转录。在一些示例中,将值(例如,成本或字符)映射到边或节点可以包括将该值与边相关联。
转录的每个字符(例如“forrrth”)可以对应于输出矩阵的特定列向量中的字符。例如,键盘模块22可以生成包括列向量集合的输出矩阵,其中该列向量集合随时间呈顺序序列。随着键盘模块22处理每个列向量,如关于“go”和“forth”的示例所述,键盘模块22可以将字符的相应概率分配到对应于相应字符的在FST 150中的每个边。例如,在用于转录“forrrth”的路径上,起始节点和第二节点之间的第一个边可以对应于字符“f”,并且键盘模块22可以确定包括在输出矩阵的第一列向量中的“f”的概率。键盘模块22可以将“f”的概率分配到第一边。FST 150中的第二节点和第三节点之间的第二边可以对应于字符“o”,并且键盘模块22可以确定在输出矩阵的第二列向量中包括的“o”的概率。键盘模块可以将“o”的概率分配到第二边。键盘模块22可以对输出矩阵的每个列向量重复该过程,以在FST 150中沿着对与转录(例如,“forrrth”)对应的路径建模字符的概率。
用于诸如“forrrth”的转录的FST 150中的路径还可以包括转录成本,其与在终端节点之前的路径的末端处的边相关联。键盘模块22可以存储将转录(其可能不是书面或口头词汇的实际单词)映射到作为书面或口头词汇的实际单词的字符串的数据。例如,键盘模块22可以存储将转录“forrrth”映射到来自英语的单词“forth”的数据。键盘模块22可以进一步存储与转录“forrrth”映射到单词“forth”相关联的转录成本。键盘模块22可将该转录成本与终端节点之前的路径末端处的边相关联。在一些示例中,转录成本可以基于语言模型成本。在一些示例中,用于FST 150中的转录的路径可以包括用于转录成本的第一边和用于语言模型成本的第二边,每个边在路径的末端并且在终端节点之前,其中语言模型成本指示给定输入场境映射到转录的单词的可能性。
如上所述,键盘模块22可以使用FST 150来确定从起始节点152到终止节点174的一个或多个路径的总成本。例如,键盘模块22可以确定通过包括最低成本的FST 150的一个或多个路径的集合。如果键盘模块22选择或以其他方式确定与用于转录的路径相关联的总成本(例如“forrrth”)是最低成本或满足阈值(例如,小于阈值)的成本,则键盘模块22可以确定映射到转录“forrrth”的单词“forth”。键盘模块22然后可以输出用于显示的单词“forth”,或以其他方式使用单词“forth”用于诸如自动预测、自动校正和/或自动建议等的其他操作。
在一些示例中,图4-5的技术可以扩展以确定语言模型成本,例如语言模型成本170。特别地,本公开的技术可以通过使用基于每字符、每单字和/或每多字词训练的LSTM或神经网络来定义或以其他方式确定语言模型28的语言模型成本。例如,键盘模块22可以将来自训练集合的一个或多个字符串作为神经网络的特征输入,并且确定实际输出值,该实际输出值可以是与也是作为字符串的预期输出值进行比较的字符串。作为示例,键盘模块22可以从训练集合输入作为神经网络的特征的字符串“dog”,并且确定实际的输出值,其可以是与也是作为字符串“went”的预期输出值比较的字符串“was”。键盘模块22可以确定字符串“was”和字符串“went”之间的差异程度(例如,确定字符位置之间的字符或在字符位置之间不同的程度等)。键盘模块22可以通过例如增加、减少或以其他方式修改一个或多个可学习参数来修改可学习参数中的一个或多个,如图4-5所述。因此,语言模型28可被实现为被训练为给定输入场境为单词提供概率的神经网络。因此,给定包括但不限于一个或多个输入字符串的输入场境,神经网络可以输出一个或多个单词和一个或多个单词的相应概率。如图5所示,从语言模型28确定的概率可用于生成与FST 150的边相关联的语言模型成本。
图6是示出根据本公开的一个或多个方面的用于解码在图形键盘处提供的用户输入的短期记忆(LSTM)200的多个存储器块的概念图。在一些示例中,LSTM 200可以被实现为硬件、软件和/或硬件和软件的组合。例如,在一些示例中,LSTM 200可以被实现为可由一个或多个处理器执行的软件组件或模块。在一些示例中,LSTM 200可以被实现如图2所示的键盘模块22的神经网络48。
如图6所示的LSTM 200包括可以被组织和/或互连为一层或多层存储器块的多个存储器块204A-204N(存储器块“204A-204N”)。为了说明的目的,示出了存储器块204的单层210;然而,在图6中可以实现任何数量的存储器块层。如图6所示的存储器块可以实现如图4所示的存储器块100的功能。例如,存储器块的第二层(未示出)可以在层210和操作块208之间实现。第二层可以具有与层210不同数量的存储器块,或者可以具有与层210相同数量的存储器块。在一些示例中,第二层的每个存储器块可以接收第一层210的一个或多个存储器块的一个或多个输出作为输入。在一些示例中,层210的一个或多个存储器块可以与层210内的一个或多个其他存储器块不同地操作。在一些示例中,层210的一个或多个存储器块可以与LSTM 200的第二层中的一个或多个存储器块不同地操作。
在图6的示例中,每个存储器块204可以接收输入矩阵202,如图1-5所述。在一些示例中,一个或多个存储器块204与存储器块204的其它存储器块不同地初始化。例如,可以针对一个或多个存储器块204不同地初始化一个或多个可学习参数Ws、Wi、Wf、Wo在一些示例中,存储器块可以被随机初始化。例如,一个或多个可学习参数Ws、Wi、Wf、Wo被随机初始化。在一些示例中,每个存储器块204可以对应于字符集合的不同字符。在这样的示例中,可以基于特定字符的初始化数据来初始化每个相应块,例如初始化数据是特定于特定字符的。在任何情况下,在初始化每个存储器块204时,键盘模块22可以训练每个存储器块204,如图4-5所述。
响应于提供用户输入的用户,键盘模块22可以提供对应于每个存储器块204的用户输入的输入矩阵202。每个存储器块204可以如图4-5中所描述的处理输入矩阵以生成各自的输出矩阵206A-206N(输出矩阵206A-206N)。每个输出矩阵可以作为输入提供给运算器块208。在一些示例中,运算器块208可以实现一个或多个函数。一个或多个函数可以提供输入到运算器块208的数据的聚合、选择和/或变换等这样的示例函数。这种函数的示例可以包括softmax函数或sigmoid函数等这样的示例。在图6的示例中,运算器块208可以实现softmax函数来确定输出矩阵206的特定索引处的每个列向量中的哪个字母具有最高概率。例如,运算器块208可以针对输出矩阵206的索引i处的每个列向量确定具有最高概率。在一些示例中,键盘模块22然后可以对诸如FST 150的FST中的字符的概率进行建模。例如,键盘模块22可以将来自运算器块208的字符输出的概率与FST 150的一个或多个边相关联,如图4所示。在一些示例中,运算器块208可以在相应输出矩阵206的索引i处输出相应列向量集合的超过一个概率。
图7是示出根据本公开的一个或多个方面的被配置为使用神经网络来解码在图形键盘处提供的用户输入的计算设备的示例操作的流程图。为了说明的目的,下面在计算设备10的场境内描述示例操作,如图1和图2所示。计算装置10可以初始地。
计算设备10可以初始地输出用于在可操作地耦合到计算设备的输出设备处显示的图形键盘(250)。例如,如图1所示,计算设备10可以在用户界面14中输出图形键盘16B。计算设备10可以接收在存在感知输入设备(252)的位置处检测到的手势的指示。在一些示例中,存在感知输入设备的位置对应于输出图形键盘16B的输出设备的位置。
计算设备10可以基于由计算设备使用神经网络处理的手势的至少一个空间特征来确定至少一个字符串,其中至少一个空间特征指示手势的至少一个物理属性(254)。例如,计算设备10可以将对应于手势的输入值的列向量作为输入应用于神经网络。计算设备10可以确定由神经网络提供的表示一个或多个字符和/或字符串的概率的输出值。在一些示例中,计算设备10可以确定由神经网络提供的表示至少一个字符串的概率的输出值。
计算设备10至少部分地基于使用神经网络的手势的至少一个空间特征的处理,输出用于在输出设备处显示的至少一个字符串(256)。例如,计算设备10可以输出至少一个字符串作为字符串建议。在一些示例中,至少一个字符串可以具有满足阈值的概率,使得当满足阈值时,字符串被输出以供计算设备10显示。
在一些示例中,为了确定触摸事件的序列表示一个或多个键的选择,计算设备10可以包括空间模型。然而,在一些示例中,计算设备10可以不包括空间模型。在一些示例中,计算设备10可以不包括语言模型。在一些示例中,计算设备10可以不包括语言模型和空间模型。
通常,空间模型可以基于与用户输入相关联的位置数据来生成图形键盘的特定键已被选择的一个或多个概率。在一些示例中,空间模型包括用于每个键的双变量高斯模型。用于键的双变量高斯模型可以包括对应于呈现给定键的存在感知输入设备的位置的坐标(例如,(x,y)坐标对)的分布。更具体地,在一些示例中,用于键的双变量高斯模型可以包括对应于当用户打算选择给定键时由用户最频繁选择的存在感知输入设备的位置的坐标分布。用户输入的位置数据与空间模型的较高密度区域之间的距离越短,与空间模型相关联的密钥被选择的概率越高。用户输入的位置数据与空间模型的较高密度区域之间的距离越大,与空间模型相关联的键被选择的概率越低。
在一些示例中,计算设备10可以使用空间模型来将触摸事件序列中的一个或多个触摸事件的位置组件(例如,坐标)与图形键盘的一个或多个键的相应位置进行比较,以及基于这些比较生成选择键的发生的概率。在一些示例中,计算设备10可以使用空间模型生成空间模型得分。空间模型得分可以至少部分地基于由手势穿过的存在感知输入设备的位置来指示所选择的键的概率。在一些示例中,空间模型得分可以至少部分地基于通过手势穿过的存在感知输入设备的位置来指示一组所选择的键的组合概率。
例如,计算设备可以使用空间模型来将触摸事件序列中的一个或多个触摸事件的位置组件与图形键盘的特定键的键位置进行比较。序列中每个触摸事件的位置组件可以包括存在感知输入设备的一个位置。图形键盘中的键的关键位置(例如,键的质心)可以包括存在感知输入设备的不同位置。计算设备10可以使用空间模型来确定两个位置之间的欧几里德距离,并且基于选择键的欧几里德距离生成概率。计算设备10可以指示与一个或多个触摸事件共享较小的欧几里德距离的键的可能性高于与一个或多个触摸事件共享更大的欧几里德距离的键。基于与每个键相关联的空间模型概率,计算设备可以将具有最高空间模型概率的单独键选择组合成计算设备然后可以确定表示字符串的时间排序的键序列。每个键的组合概率可以表示字符串的空间模型得分。在一些示例中,计算设备10可以结合神经网络使用空间模型概率,诸如映射到图的边和/或并入到在图上建模的字符成本中。
实施例1:一种计算设备,包括:至少一个处理器;以及至少一个模块,其可由至少一个处理器操作以:输出用于在可操作地耦合到计算设备的输出设备处显示的图形键盘;接收在存在感知输入设备的位置处检测到的手势的指示,其中存在感知输入设备的位置对应于输出图形键盘的输出设备的位置;基于由计算设备使用神经网络处理的手势的至少一个空间特征确定至少一个字符串,其中至少一个空间特征指示手势的至少一个物理属性;并且至少部分地基于使用神经网络的手势的至少一个空间特征的处理来输出用于在输出设备处显示的至少一个字符串。
实施例2:实施例1的计算设备,其中至少一个模块可由至少一个处理器操作以:向神经网络输入多个特征的多个输入值,其中多个特征包括至少一个空间特征;将神经网络的一个或多个函数应用于多个输入值;并且至少部分地基于神经网络确定一个或多个输出值,其中至少一个字符串由计算设备至少部分地基于一个或多个输出值中的至少一个来确定。
实施例3:实施例1-2中任一项的计算设备,其中一个或多个输出值是一个或多个第一输出值,其中多个输入值是多个第一输入值,其中一个或多个输出值是一个或多个第一输出值,其中至少一个模块可由至少一个处理器操作以:在神经网络中存储状态信息,所述状态信息至少部分地基于一个或多个第一输出值;向神经网络输入多个特征的多个第二输入值,其中在多个第一输入值之后确定多个第二输入值;将神经网络的一个或多个函数应用于多个第二输入值;至少部分地基于状态信息来确定一个或多个第二输出值;并且至少部分地基于一个或多个第二输出值中的至少一个确定第二字符串。
实施例4:实施例1-3中任一项的计算设备,其中多个输入值被包括在输入矩阵的单元中,其中输入矩阵的每个相应列向量包括多个输入值的相应输入值集合,其中相应输入值集合对应于特定手势或特定手势的部分中的至少一个,并且其中多个输出值被包括在输出矩阵的单元中,其中输出矩阵的每个相应列向量包括多个输出值的相应输出值集合,其中相应的输出值集合表示至少一个或多个字符或一个或多个字符串的一个或多个概率。
实施例5:实施例1-4中任一项的计算设备,其中一个或多个输出值指示至少一个或多个字符或一个或多个字符串的一个或多个概率,其中至少一个模块是可由至少一个处理器操作以:存储包括多个节点和多个边的图,其中每个边耦合到多个节点中的一个或多个;将字符和至少部分地基于字符的概率的字符成本映射到多个边中的至少一个相应边,其中概率被包括在一个或多个概率中,其中在图中包括互连多个节点中的节点集合的多个边的边集合的路径表示字符串。
实施例6:实施例1-5中任一项的计算设备,其中至少一个模块可由至少一个处理器操作以:至少部分地基于语言模型确定由所述路径表示的字符串的概率;将语言模型成本映射到多个边的边集合的至少一个相应边,并且至少部分地基于字符串的概率。
实施例7:实施例1-6中任一项的计算设备,其中神经网络包括包括至少一个存储器块的长短期记忆。
实施例8:实施例1-7中任一项的计算设备,其中神经网络包括包括多个存储器块器层的长短期记忆。
实施例9:实施例1-8中任一项的计算设备,其中至少一个模块可由至少一个处理器操作以执行自动预测、自动校正或自动完成中的至少一个以生成至少一个字符串。
实施例10:实施例1-9中任一项的计算设备,其中至少一个模块可由至少一个处理器操作以:在接收在存在感知输入设备的位置处检测到的手势的指示之前,至少部分地基于训练集合来训练神经网络。
实施例11:实施例1-10中任一项的计算设备,其中计算设备不包括语言模型和空间模型。
实施例12:实施例1-11中任一项的计算设备,其中手势是点击手势、连续手势或点击手势和连续手势的组合中的至少一个。
实施例13:一种用指令编码的计算机可读存储介质,所述指令在被执行时使得至少一个处理器:输出用于在可操作地耦合到计算设备的输出设备上显示的图形键盘;接收在存在感知输入设备的位置处检测到的手势的指示,其中存在感知输入设备的位置对应于输出图形键盘的输出设备的位置;基于至少由计算设备使用神经网络处理的特征确定至少一个字符串;并且输出用于在输出设备处显示的基于使用神经网络的手势的至少一个空间特征的神经网络处理确定的至少一个字符串。
实施例14:一种方法,包括:由计算设备输出并在可操作地耦合到计算设备的输出设备处显示图形键盘;由计算设备接收在存在感知输入设备的位置处检测到的手势的指示,其中存在感知输入设备的位置对应于输出图形键盘的输出设备的位置;基于由计算设备使用神经网络处理的手势确定至少一个字符串;并且至少部分地基于计算设备使用神经网络处理的手势的处理,由计算设备输出并在输出设备处显示至少一个字符串。
实施例15:实施例14的方法,还包括:向神经网络输入多个特征的多个输入值,其中多个特征包括至少一个空间特征;将神经网络的一个或多个函数应用于多个输入值;以及至少部分地基于神经网络确定一个或多个输出值,其中至少一个字符串由计算设备至少部分地基于一个或多个输出值中的至少一个来确定。
实施例16:实施例14-15中任一项的方法,其中一个或多个输出值是一个或多个第一输出值,其中多个输入值是多个第一输入值,其中一个或多个输出值是一个或多个第一输出值,其中方法包括:在神经网络中存储至少部分地基于一个或多个第一输出值的状态信息;向神经网络输入多个特征的多个第二输入值,其中在多个第一输入值之后确定多个第二输入值;将神经网络的一个或多个函数应用于多个第二输入值;至少部分地基于状态信息确定一个或多个第二输出值;以及至少部分地基于一个或多个第二输出值中的至少一个确定第二字符串。
实施例17:实施例14-16中任一项的方法,其中多个输入值包括在输入矩阵的单元中,其中输入矩阵的每个相应列向量包括多个输入矩阵的相应输入值集合,其中相应输入值集合对应于特定手势或特定手势的部分中的至少一个,并且其中多个输出值被包括在输出矩阵的单元中,其中输出矩阵的每个相应列向量包括多个输出值的相应输出值集合,其中相应输出值集合指示至少一个或多个字符或一个或多个字符串的一个或多个概率。
实施例18:实施例14-17中任一项的方法,其中一个或多个输出值指示至少一个或多个字符或一个或多个字符串的一个或多个概率,其中方法包括:存储包括多个节点和多个边的图,其中每个边耦合到多个节点中的一个或多个;将字符和至少部分地基于字符的概率的字符成本映射到多个边中的至少一个相应边,其中概率被包括在一个或多个概率中,其中在图中包括互连多个节点中的节点集合的多个边的边集合的路径表示字符串。
实施例19:实施例14-18中任一项的方法,还包括:至少部分地基于语言模型确定由路径表示的字符串的概率;以及将语言模型成本映射到多个边的边集合的至少一个相应边,并且至少部分地基于字符串的概率。
实施例20:实施例14-19中任一项的方法,其中神经网络包括包括至少一个存储器块的长短期记忆。
实施例21:实施例14-20中任一项的方法,其中神经网络包括包括多个存储器块层的长短期记忆。
实施例22:实施例14-21中任一项的方法,其中神经网络包括包括多个存储器块层的长短期记忆。
实施例23:实施例14-22中任一项的方法,还包括:在接收在存在感知输入设备的位置处检测到的手势的指示之前,至少部分地基于训练集合训练神经网络。
实施例24:实施例14-23中任一项的方法,其中计算设备不包括语言模型和空间模型。
实施例25:实施例14-24中任一项的方法,其中手势是点击手势、连续手势或点击手势和连续手势的组合中的至少一个。
实施例26:一种装置,包括:由计算设备输出并在可操作地耦合到计算设备的输出设备处显示图形键盘的器件;由计算设备接收在存在感知输入设备的位置处检测到的手势的指示的器件,其中存在感知输入设备的位置对应于输出图形键盘的输出设备的位置;基于由计算设备使用神经网络处理的手势确定至少一个字符串的器件;以及至少部分地基于由计算设备使用神经网络处理的手势的处理,由计算设备输出并在输出设备处显示至少一个字符串的器件。
实施例27:实施例26的装置包括用于执行实施例14-25的任何方法的器件。
在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合来实现。如果在软件中实现,则功能可以作为一个或多个指令或代码在计算机可读介质上存储或传输和通过基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质的有形介质,或包括有助于例如根据通信协议将计算机程序从一个地方传送到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)有形计算机可读存储介质,其是非暂时的,或(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以检索用于实现本公开中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这样的计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器、磁盘存储器或其他磁存储设备、闪存或可用于以指令或数据结构的形式存储所需程序代码并且可由计算机访问的任何其他介质。此外,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术(例如红外线、无线电和微波)从网站、服务器或其他远程源发送指令,则同轴电缆、光纤电缆、双绞线、DSL或无线技术(例如红外线、无线电和微波)都包含在媒体的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂时介质,而是指向非暂时有形存储介质。所使用的磁盘和光盘包括光盘(CD)、激光盘、光盘、数字通用光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘通过激光光学再现数据。以上的组合也应包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或离散逻辑电路。因此,所使用的术语“处理器”可以指上述任何结构或适于实现所述技术的任何其它结构。此外,在一些方面,所描述的功能可以在专用硬件和/或软件模块内提供。而且,这些技术可以在一个或多个电路或逻辑元件中完全实现。
本公开的技术可以在各种各样的设备或装置中实现,包括无线手持机、集成电路(IC)或IC集合(例如,芯片集合)。在本公开中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但不一定需要由不同硬件单元实现。相反,如上所述,各种单元可以组合在硬件单元中,或者由包括如上所述的一个或多个处理器的合作的硬件单元的集合结合合适的软件和/或固件来提供。
应当认识到,根据实施例,本文描述的任何方法的某些动作或事件可以以不同的顺序执行,可以一起添加、合并或排除(例如,没有全部描述的行为或事件对于该方法的实践是必需的)。此外,在某些实施例中,动作或事件可以例如通过多线程处理,中断处理或多个处理器同时执行而不是依次执行。
在一些示例中,计算机可读存储介质包括非暂时介质。在一些示例中,术语“非暂时性”表示存储介质没有体现在载波或传播信号中。在某些示例中,非暂时存储介质存储随时间变化(例如,在RAM或高速缓存中)的数据。
已经描述了各种实施例。这些和其他示例在所附权利要求的范围内。

Claims (15)

1.一种方法,包括:
由计算设备输出并在可操作地耦合到所述计算设备的输出设备处显示图形键盘;
由所述计算设备接收在存在感知输入设备的位置处检测到的手势的指示,其中所述存在感知输入设备的位置对应于输出所述图形键盘的所述输出设备的位置;
基于由所述计算设备使用神经网络处理的所述手势,确定至少一个字符串;和
至少部分地基于由所述计算设备使用所述神经网络处理的所述手势的处理,由所述计算设备输出并在所述输出设备处显示所述至少一个字符串。
2.根据权利要求1所述的方法,还包括:
向所述神经网络输入用于多个特征的多个输入值,其中所述多个特征包括至少一个空间特征;
将所述神经网络的一个或多个函数应用于所述多个输入值;和
至少部分地基于所述神经网络确定一个或多个输出值,其中所述至少一个字符串由所述计算设备至少部分地基于所述一个或多个输出值中的至少一个来确定。
3.根据权利要求2所述的方法,其中,所述一个或多个输出值是一个或多个第一输出值,其中所述多个输入值是多个第一输入值,其中所述一个或多个输出值是一个或多个第一输出值,其中所述方法包括:
在所述神经网络中存储至少部分地基于所述一个或多个第一输出值的状态信息;
向所述神经网络输入用于所述多个特征的多个第二输入值,其中在所述多个第一输入值之后确定所述多个第二输入值;
将所述神经网络的所述一个或多个函数应用于所述多个第二输入值;
至少部分地基于所述状态信息确定一个或多个第二输出值;和
至少部分地基于所述一个或多个第二输出值中的至少一个确定第二字符串。
4.根据权利要求2-3中任一项所述的方法,
其中所述多个输入值被包括在输入矩阵的单元中,其中所述输入矩阵的每个相应列向量包括所述多个输入值的相应输入值集合,其中所述相应输入值集合对应于特定手势或特定手势的部分中的至少一个,以及
其中所述多个输出值被包括在输出矩阵的单元中,其中所述输出矩阵的每个相应列向量包括所述多个输出值的相应输出值集合,其中所述相应输出值集合指示至少一个或多个字符或一个或多个字符串的一个或多个概率。
5.根据权利要求2-4中任一项所述的方法,其中,所述一个或多个输出值指示至少一个或多个字符或一个或多个字符串的一个或多个概率,其中所述方法包括:
存储包括多个节点和多个边的图,其中每个边耦合到所述多个节点中的一个或多个;
将字符和至少部分地基于所述字符的概率的字符成本映射到所述多个边中的至少一个相应边,其中所述概率被包括在所述一个或多个概率中,
其中在所述图中包括互连所述多个节点中的节点集合的所述多个边的边集合的路径表示字符串。
6.根据权利要求5所述的方法,还包括:
至少部分地基于语言模型确定由所述路径表示的字符串的概率;和
将语言模型成本映射到所述多个边的所述边集合的至少一个相应边,并且至少部分地基于所述字符串的概率。
7.根据权利要求1-6中任一项所述的方法,其中,所述神经网络包括含有至少一个存储器块的长短期记忆。
8.根据权利要求1-7中任一项所述的方法,其中,所述神经网络包括含有多层存储器块的长短期记忆。
9.根据权利要求1-8中任一项所述的方法,还包括:
执行自动预测、自动校正或自动完成中的至少一个以生成所述至少一个字符串。
10.根据权利要求1-9中任一项所述的方法,还包括:
在接收在所述存在感知输入设备的位置处检测到的所述手势的指示之前,至少部分地基于训练集合训练所述神经网络。
11.根据权利要求1-10中任一项所述的方法,其中,所述计算设备不包括语言模型和空间模型。
12.根据权利要求1-11中任一项所述的方法,其中,所述手势是点击手势、连续手势或点击手势和连续手势的组合中的至少一个。
13.一种计算设备,包括:
至少一个处理器;和
至少一个模块,所述至少一个模块可由所述至少一个处理器操作以:
输出用于在可操作地耦合到所述计算设备的输出设备处显示的图形键盘;
接收在存在感知输入设备的位置处检测到的手势的指示,其中所述存在感知输入设备的位置对应于输出所述图形键盘的所述输出设备的位置;
基于所述手势的至少一个空间特征的神经网络处理,确定至少一个字符串,其中所述至少一个空间特征指示所述手势的至少一个物理属性;和
输出用于在所述输出设备处显示的、基于使用所述神经网络的所述手势的所述至少一个空间特征的所述神经网络处理确定的所述至少一个字符串。
14.根据权利要求13所述的计算设备,其中,所述至少一个模块可由所述至少一个处理器进一步操作以执行根据权利要求1-12中任一项所述的方法。
15.一种装置,包括用于执行根据权利要求1-12中任一项所述的方法的部件。
CN201680018860.5A 2015-04-10 2016-03-16 用于键盘输入解码的神经网络 Pending CN107533380A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/683,861 US9678664B2 (en) 2015-04-10 2015-04-10 Neural network for keyboard input decoding
US14/683,861 2015-04-10
PCT/US2016/022659 WO2016164151A1 (en) 2015-04-10 2016-03-16 Neural network for keyboard input decoding

Publications (1)

Publication Number Publication Date
CN107533380A true CN107533380A (zh) 2018-01-02

Family

ID=55637492

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680018860.5A Pending CN107533380A (zh) 2015-04-10 2016-03-16 用于键盘输入解码的神经网络

Country Status (4)

Country Link
US (5) US9678664B2 (zh)
EP (1) EP3281123A1 (zh)
CN (1) CN107533380A (zh)
WO (1) WO2016164151A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110554780A (zh) * 2018-05-30 2019-12-10 北京搜狗科技发展有限公司 一种滑行输入的方法和装置
CN111445542A (zh) * 2020-03-31 2020-07-24 中国科学院自动化研究所 基于弹性突触门的跨受试者神经解码系统、方法、装置
CN114879852A (zh) * 2022-04-22 2022-08-09 常州市金坛碳谷新材料科技有限公司 一种键盘电量控制方法与系统

Families Citing this family (188)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
CN104969289B (zh) 2013-02-07 2021-05-28 苹果公司 数字助理的语音触发器
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
MX2015013077A (es) 2013-03-15 2016-09-29 Forbes Holten 3Rd Norris Metodo y aparato para optimizacion de espacio de micro teclado.
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
KR101959188B1 (ko) 2013-06-09 2019-07-02 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
WO2015157474A1 (en) 2014-04-08 2015-10-15 Norris Forbes Holten 3Rd Virtual keyboard text entry method optimized for ergonomic thumb typing
WO2015181162A1 (en) * 2014-05-28 2015-12-03 Thomson Licensing Method and system for touch input
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
EP3051469A1 (en) 2015-01-28 2016-08-03 Philip Morris Products S.A. Method and apparatus for unit and container identification and tracking
ES2728680T3 (es) 2015-01-31 2019-10-28 Inexto Sa Identificación y verificación seguras de productos
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9678664B2 (en) 2015-04-10 2017-06-13 Google Inc. Neural network for keyboard input decoding
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10515307B2 (en) * 2015-06-05 2019-12-24 Google Llc Compressed recurrent neural network models
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
GB201511887D0 (en) 2015-07-07 2015-08-19 Touchtype Ltd Improved artificial neural network for language modelling and prediction
JP6825199B2 (ja) * 2015-07-16 2021-02-03 富士ゼロックス株式会社 表示制御装置及びプログラム
US20180205543A1 (en) 2015-08-13 2018-07-19 Inexto Sa Enhanced obfuscation or randomization for secure product identification and verification
US10594494B2 (en) 2015-08-25 2020-03-17 Inexto Sa Multiple authorization modules for secure production and verification
CN108140076B (zh) * 2015-08-25 2022-04-05 英艾克斯图股份有限公司 用于安全产品标识符的具有容错的验证
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US11010550B2 (en) * 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) * 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
JP6545633B2 (ja) * 2016-03-17 2019-07-17 株式会社東芝 単語スコア計算装置、単語スコア計算方法及びプログラム
JP6605997B2 (ja) * 2016-03-17 2019-11-13 株式会社東芝 学習装置、学習方法及びプログラム
US10176802B1 (en) * 2016-03-21 2019-01-08 Amazon Technologies, Inc. Lattice encoding using recurrent neural networks
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
KR20180003123A (ko) * 2016-06-30 2018-01-09 삼성전자주식회사 메모리 셀 유닛 및 메모리 셀 유닛들을 포함하는 순환 신경망
KR102648770B1 (ko) 2016-07-14 2024-03-15 매직 립, 인코포레이티드 홍채 식별을 위한 딥 뉴럴 네트워크
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10748057B1 (en) * 2016-09-21 2020-08-18 X Development Llc Neural network modules
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
JP6713903B2 (ja) * 2016-10-17 2020-06-24 日本電信電話株式会社 学習装置、学習方法および学習プログラム
CN106569618B (zh) * 2016-10-19 2019-03-29 武汉悦然心动网络科技股份有限公司 基于循环神经网络模型的滑动输入方法及系统
US11205110B2 (en) * 2016-10-24 2021-12-21 Microsoft Technology Licensing, Llc Device/server deployment of neural network data entry system
US10621747B2 (en) 2016-11-15 2020-04-14 Magic Leap, Inc. Deep learning system for cuboid detection
US10872203B2 (en) * 2016-11-18 2020-12-22 Microsoft Technology Licensing, Llc Data input system using trained keypress encoder
US10558750B2 (en) * 2016-11-18 2020-02-11 Salesforce.Com, Inc. Spatial attention model for image captioning
US11550751B2 (en) * 2016-11-18 2023-01-10 Microsoft Technology Licensing, Llc Sequence expander for data entry/information retrieval
GB201620235D0 (en) * 2016-11-29 2017-01-11 Microsoft Technology Licensing Llc Neural network data entry system
KR102531542B1 (ko) 2016-12-05 2023-05-10 매직 립, 인코포레이티드 혼합 현실 환경의 가상 사용자 입력 콘트롤들
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US10241684B2 (en) * 2017-01-12 2019-03-26 Samsung Electronics Co., Ltd System and method for higher order long short-term memory (LSTM) network
JP6859711B2 (ja) * 2017-01-13 2021-04-14 オムロン株式会社 文字列入力装置、入力文字列推定方法、および入力文字列推定プログラム
US11609692B2 (en) * 2017-04-07 2023-03-21 Hewlett-Packard Development Company, L.P. Cursor adjustments
IT201700047044A1 (it) * 2017-05-02 2018-11-02 St Microelectronics Srl Rete neurale, dispositivo, apparecchiatura e procedimento corrispondenti
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10846477B2 (en) 2017-05-16 2020-11-24 Samsung Electronics Co., Ltd. Method and apparatus for recommending word
US11188158B2 (en) 2017-06-02 2021-11-30 Samsung Electronics Co., Ltd. System and method of determining input characters based on swipe input
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
KR102474245B1 (ko) * 2017-06-02 2022-12-05 삼성전자주식회사 스와이프 입력에 기초하여 입력 문자를 판단하는 시스템 및 방법
CN107330446B (zh) * 2017-06-05 2020-08-04 浙江工业大学 一种面向图像分类的深度卷积神经网络的优化方法
AT520031A1 (de) * 2017-06-07 2018-12-15 Caretec Int Gmbh Vorrichtungen und Verfahren des maschinellen Schreibens und virtuellen Lesens flüchtiger taktiler Zeichen und akustischer Laute
US10970481B2 (en) * 2017-06-28 2021-04-06 Apple Inc. Intelligently deleting back to a typographical error
US10714076B2 (en) * 2017-07-10 2020-07-14 Sony Interactive Entertainment Inc. Initialization of CTC speech recognition with standard HMM
US11455094B2 (en) 2017-07-11 2022-09-27 Thumba Inc. Interactive virtual keyboard configured for gesture based word selection and having a plurality of keys arranged approximately radially about at least one center point
US10922583B2 (en) 2017-07-26 2021-02-16 Magic Leap, Inc. Training a neural network with representations of user interface devices
US11237691B2 (en) * 2017-07-26 2022-02-01 Microsoft Technology Licensing, Llc Intelligent response using eye gaze
US10706840B2 (en) * 2017-08-18 2020-07-07 Google Llc Encoder-decoder models for sequence to sequence mapping
CN111033524A (zh) 2017-09-20 2020-04-17 奇跃公司 用于眼睛跟踪的个性化神经网络
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
CN107728478B (zh) * 2017-09-27 2020-10-27 吉林大学 燃料电池氧气过剩系数神经网络预测控制方法
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
IL273991B2 (en) 2017-10-26 2023-11-01 Magic Leap Inc Gradual normalization systems and methods for adaptive loss balancing in deep multitasking networks
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US11416503B2 (en) 2018-02-09 2022-08-16 Microsoft Technology Licensing, Llc Mining data for generating consumable collaboration events
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US20190303821A1 (en) * 2018-03-28 2019-10-03 International Business Machines Corporation Supply chain risk management system and method
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US10719173B2 (en) * 2018-04-04 2020-07-21 Facebook Technologies, Llc Transcribing augmented reality keyboard input based on hand poses for improved typing accuracy
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US10496705B1 (en) 2018-06-03 2019-12-03 Apple Inc. Accelerated task performance
US10943059B2 (en) * 2018-06-27 2021-03-09 Microsoft Technology Licensing, Llc Document editing models and management
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US11694062B2 (en) 2018-09-27 2023-07-04 Nec Corporation Recurrent neural networks having a probabilistic state component and state machines extracted from the recurrent neural networks
US10978051B2 (en) * 2018-09-28 2021-04-13 Capital One Services, Llc Adversarial learning framework for persona-based dialogue modeling
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
JP7263857B2 (ja) * 2019-03-14 2023-04-25 オムロン株式会社 文字入力装置、文字入力方法、及び、文字入力プログラム
EP3709511B1 (en) 2019-03-15 2023-08-02 STMicroelectronics (Research & Development) Limited Method of operating a leaky integrator, leaky integrator and apparatus comprising a leaky integrator
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11455496B2 (en) 2019-04-02 2022-09-27 Synthesis Ai, Inc. System and method for domain adaptation using synthetic data
US11554322B2 (en) * 2019-04-26 2023-01-17 Sony Interactive Entertainment LLC Game controller with touchpad input
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
CN111860086A (zh) * 2019-06-26 2020-10-30 广州凡拓数字创意科技股份有限公司 基于深度神经网络的手势识别方法、装置及系统
US11029845B2 (en) * 2019-07-11 2021-06-08 Microsoft Technology Licensing, Llc Virtual keyboard engagement
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
CN116075838A (zh) * 2019-10-15 2023-05-05 爱思唯尔股份有限公司 用于在saas应用程序中对用户情感进行预测的系统和方法
WO2021112491A1 (en) * 2019-12-04 2021-06-10 Samsung Electronics Co., Ltd. Methods and systems for predicting keystrokes using a unified neural network
CN111090338B (zh) * 2019-12-11 2021-08-27 心医国际数字医疗系统(大连)有限公司 医疗文书的hmm输入法模型的训练方法、输入法模型和输入方法
CN111063306A (zh) 2019-12-16 2020-04-24 深圳市华星光电半导体显示技术有限公司 一种像素电路及其驱动方法、显示面板
KR20210087335A (ko) * 2020-01-02 2021-07-12 엘지전자 주식회사 로컬 장치의 성능 향상
US11043220B1 (en) 2020-05-11 2021-06-22 Apple Inc. Digital assistant hardware abstraction
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
US11829720B2 (en) 2020-09-01 2023-11-28 Apple Inc. Analysis and validation of language models
US20220214801A1 (en) * 2021-01-06 2022-07-07 Typewise Ltd. Methods and systems for modifying user input processes
CN112560451B (zh) * 2021-02-20 2021-05-14 京华信息科技股份有限公司 一种自动生成训练数据的错别字校对方法及装置
US11899852B2 (en) 2021-05-06 2024-02-13 Samsung Electronics Co., Ltd. Electronic device and operation method thereof
KR20220151483A (ko) * 2021-05-06 2022-11-15 삼성전자주식회사 전자 장치 및 전자 장치의 동작 방법
CN113641292B (zh) * 2021-07-09 2022-08-12 荣耀终端有限公司 在触摸屏上进行操作的方法和电子设备
US11726657B1 (en) 2023-03-01 2023-08-15 Daniel Pohoryles Keyboard input method, system, and techniques

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7042442B1 (en) * 2000-06-27 2006-05-09 International Business Machines Corporation Virtual invisible keyboard
CN101689245A (zh) * 2007-06-27 2010-03-31 微软公司 识别输入姿势
CN101730898A (zh) * 2005-06-23 2010-06-09 微软公司 采用神经网络的手写识别
US20110210850A1 (en) * 2010-02-26 2011-09-01 Phuong K Tran Touch-screen keyboard with combination keys and directional swipes
CN102378951A (zh) * 2009-03-30 2012-03-14 符号技术有限公司 用于观察符号映射的组合语音和触摸输入

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903454A (en) * 1991-12-23 1999-05-11 Hoffberg; Linda Irene Human-factored interface corporating adaptive pattern recognition based controller apparatus
US5953541A (en) * 1997-01-24 1999-09-14 Tegic Communications, Inc. Disambiguating system for disambiguating ambiguous input sequences by displaying objects associated with the generated input sequences in the order of decreasing frequency of use
US7030863B2 (en) * 2000-05-26 2006-04-18 America Online, Incorporated Virtual keyboard system with automatic correction
US7453439B1 (en) 2003-01-16 2008-11-18 Forward Input Inc. System and method for continuous stroke word-based text input
US7382358B2 (en) * 2003-01-16 2008-06-03 Forword Input, Inc. System and method for continuous stroke word-based text input
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
US7475072B1 (en) 2005-09-26 2009-01-06 Quintura, Inc. Context-based search visualization and context management using neural networks
US8074172B2 (en) * 2007-01-05 2011-12-06 Apple Inc. Method, system, and graphical user interface for providing word recommendations
US8504361B2 (en) 2008-02-07 2013-08-06 Nec Laboratories America, Inc. Deep neural networks and methods for using same
WO2010147611A1 (en) 2009-06-16 2010-12-23 Intel Corporation Adaptive virtual keyboard for handheld device
KR101477530B1 (ko) * 2010-03-12 2014-12-30 뉘앙스 커뮤니케이션즈, 인코포레이티드 이동 전화의 터치 스크린과 함께 사용하기 위한 다중 모드 문자 입력 시스템
US8462131B2 (en) * 2010-06-23 2013-06-11 John CHACHO Electronic device having virtual keyboard with predictive key and related methods
US8918734B2 (en) * 2010-07-28 2014-12-23 Nuance Communications, Inc. Reduced keyboard with prediction solutions when input is a partial sliding trajectory
US20130002556A1 (en) * 2011-07-01 2013-01-03 Jason Tyler Griffin System and method for seamless switching among different text entry systems on an ambiguous keyboard
ES2611177T3 (es) 2012-03-15 2017-05-05 Cortical.Io Gmbh Procedimientos, aparatos y productos para el procesamiento semántico de texto
US9046917B2 (en) * 2012-05-17 2015-06-02 Sri International Device, method and system for monitoring, predicting, and accelerating interactions with a computing device
US8484573B1 (en) * 2012-05-23 2013-07-09 Google Inc. Predictive virtual keyboard
WO2014047161A2 (en) * 2012-09-18 2014-03-27 Google Inc. Posture-adaptive selection
US9021380B2 (en) * 2012-10-05 2015-04-28 Google Inc. Incremental multi-touch gesture recognition
US8843845B2 (en) * 2012-10-16 2014-09-23 Google Inc. Multi-gesture text input prediction
US8713433B1 (en) * 2012-10-16 2014-04-29 Google Inc. Feature-based autocorrection
US9557818B2 (en) * 2012-10-16 2017-01-31 Google Inc. Contextually-specific automatic separators
US8819574B2 (en) * 2012-10-22 2014-08-26 Google Inc. Space prediction for text input
US8832589B2 (en) * 2013-01-15 2014-09-09 Google Inc. Touch keyboard using language and spatial models
US9454240B2 (en) * 2013-02-05 2016-09-27 Google Inc. Gesture keyboard input of non-dictionary character strings
US8825474B1 (en) * 2013-04-16 2014-09-02 Google Inc. Text suggestion output using past interaction data
US9081500B2 (en) * 2013-05-03 2015-07-14 Google Inc. Alternative hypothesis error correction for gesture typing
US9176668B2 (en) 2013-10-24 2015-11-03 Fleksy, Inc. User interface for text input and virtual keyboard manipulation
US10282089B2 (en) * 2015-02-03 2019-05-07 Google Llc User state-adaptive text input
US9703394B2 (en) * 2015-03-24 2017-07-11 Google Inc. Unlearning techniques for adaptive language models in text entry
US9678664B2 (en) 2015-04-10 2017-06-13 Google Inc. Neural network for keyboard input decoding
US20170336969A1 (en) * 2016-05-17 2017-11-23 Google Inc. Predicting next letters and displaying them within keys of a graphical keyboard
US20180173692A1 (en) * 2016-12-19 2018-06-21 Google Inc. Iconographic symbol predictions for a conversation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7042442B1 (en) * 2000-06-27 2006-05-09 International Business Machines Corporation Virtual invisible keyboard
CN101730898A (zh) * 2005-06-23 2010-06-09 微软公司 采用神经网络的手写识别
CN101689245A (zh) * 2007-06-27 2010-03-31 微软公司 识别输入姿势
CN102378951A (zh) * 2009-03-30 2012-03-14 符号技术有限公司 用于观察符号映射的组合语音和触摸输入
US20110210850A1 (en) * 2010-02-26 2011-09-01 Phuong K Tran Touch-screen keyboard with combination keys and directional swipes

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
卫晓欣: "基于长短型记忆递归神经网络的英文手写识别", 《中国优秀硕士学位论文全文数据库-信息科技辑》 *
陈新: "《交通工程系统分析方法》", 30 April 2014 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110554780A (zh) * 2018-05-30 2019-12-10 北京搜狗科技发展有限公司 一种滑行输入的方法和装置
CN111445542A (zh) * 2020-03-31 2020-07-24 中国科学院自动化研究所 基于弹性突触门的跨受试者神经解码系统、方法、装置
CN111445542B (zh) * 2020-03-31 2022-07-29 中国科学院自动化研究所 基于弹性突触门的跨受试者神经解码系统、方法、装置
CN114879852A (zh) * 2022-04-22 2022-08-09 常州市金坛碳谷新材料科技有限公司 一种键盘电量控制方法与系统
CN114879852B (zh) * 2022-04-22 2024-03-05 常州市金坛碳谷新材料科技有限公司 一种键盘电量控制方法与系统

Also Published As

Publication number Publication date
US20210405868A1 (en) 2021-12-30
US20160299685A1 (en) 2016-10-13
EP3281123A1 (en) 2018-02-14
US11150804B2 (en) 2021-10-19
WO2016164151A1 (en) 2016-10-13
US10671281B2 (en) 2020-06-02
US20200257447A1 (en) 2020-08-13
US20190155504A1 (en) 2019-05-23
US10248313B2 (en) 2019-04-02
US20170199665A1 (en) 2017-07-13
US9678664B2 (en) 2017-06-13
US11573698B2 (en) 2023-02-07

Similar Documents

Publication Publication Date Title
CN107533380A (zh) 用于键盘输入解码的神经网络
CN110490213B (zh) 图像识别方法、装置及存储介质
Deng et al. Deep learning in natural language processing
CN105431809B (zh) 用于国际语言的虚拟键盘输入
CN105009064B (zh) 使用语言和空间模型的触摸键盘
CN107836000B (zh) 用于语言建模和预测的改进的人工神经网络方法、电子设备
US10423874B2 (en) Intelligent image captioning
CN105378606B (zh) 用于手势键入的备选假设错误修正
CN110036399A (zh) 神经网络数据录入系统
CN108062388A (zh) 人机对话的回复生成方法和装置
CN109003601A (zh) 一种针对低资源土家语的跨语言端到端语音识别方法
CN107358951A (zh) 一种语音唤醒方法、装置以及电子设备
Alsharif et al. Long short term memory neural network for keyboard gesture decoding
CN107430448A (zh) 针对文本录入中的自适应语言模型的反学习技术
CN109036391A (zh) 语音识别方法、装置及系统
Xu et al. Exploiting shared information for multi-intent natural language sentence classification.
CN108700996A (zh) 用于多输入管理的系统和方法
CN107209577A (zh) 用户状态自适应文本输入
CN110431553A (zh) 多语言数据输入系统
CN108665055A (zh) 一种图说生成方法及装置
CN110162789A (zh) 一种基于汉语拼音的词表征方法及装置
EP3215981A1 (en) Nonparametric model for detection of spatially diverse temporal patterns
CN107850950A (zh) 基于时间的分词
Yang et al. A residual bilstm model for named entity recognition
Zhang et al. Write, attend and spell: Streaming end-to-end free-style handwriting recognition using smartwatches

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.