识别联系人的制作方法

文档序号:13674166阅读:187来源:国知局


背景技术:
关于诸如Skype和XboxLive之类服务的联系人标识常常包括类似用户名、游戏标签、昵称、名字、姓氏或其组合的元数据。某些用户团体实际上鼓励在联系人姓名中实现一定程度的“数字匿名性(digitalanonymity)”。例如,绰号为“S0meG1rl”意在被拼读为“SomeGirl”,但是如果按字面上阅读的话其是无法被正确拼读的。这对于尝试在没有高度(无关紧要的)用户交互的情况下使用话音辨识来容易地识别联系人的软件而言是一个挑战。通信系统尝试通过进行以下各项中的一项(或多项)来解决以上问题:强制用户键入额外的可拼读的元数据;忽略看起来困难的名字或什么都不做使得被键入为例如“Chr1s”的名字在语音辨识命令中完全不可用。

技术实现要素:
本主题关于一种方法。该方法是一种使用语音输入来识别通信系统中的联系人的方法。该方法包括接收具有字符的输入字符串,该输入字符串表征联系人并且如果按照字面拼读的话无法通过人声正常拼读。该方法还包括进行至少一个变换步骤以对输入字符串中的至少一个字符进行变换,从而生成该联系人的可拼读的名字。输出该可拼读的名字以用于使用语音输入与该联系人建立通信事件。本主题还关于对应的计算机可读介质和用户设备。提供该发明内容,以用简化的形式介绍下文在具体实施方式中进一步描述的一系列概念。该发明内容既不旨在标识所要求的主题的关键特征,也不旨在被用来限制所要求的主题的范围。附图说明出于更好地理解本公开内容并且为了示出可以如何实施本公开内容,现在将通过示例的方式来对下面的附图进行参考,其中:图1示出了通信系统的示意图;图2示出了用户设备的可操作性组件的示意图;图3示出了用户设备中的用于使用语音输入来识别联系人的功能模块的示意图;图4示出了使用语音输入来识别联系人的方法的流程图;以及图5示出了用户设备中的用于使用语音输入来识别联系人的功能模块的示意图。具体实施方式在本公开内容中,名称数据和绰号向名字、姓氏和昵称(当合适时)的变换实现了使用语音输入的对联系人的更自然的识别。通过在变换中保持针对每个步骤的分数(质量参数),可以推知所得数据的可信度。变换过程是一系列的离散的清理操作(sanitizationoperation),该清理操作修改表征名称数据(比如全名、名字、绰号等等)的输入字符串源,以尝试移除常见的复杂图案和模糊的字符串成分,以便生成可拼读的名称。该变换过程可以实现在表征联系人的名称数据/绰号的输入字符串上执行的变换步骤,以尝试解译“网络语言(leetspeak)”。“网络语言”是用数字和符号替换联系人名称中的字母的形式。例如,目标是将“S0meG1rl”变换为可拼读的词语“SomeGirl”。每个变换步骤返回包含源名称数据、经变换的数据和经历的字符改变或移除的数量的结果。之后,每个变换的输出被链接(chain)到下一个变换的输入,直到所有步骤完成并且确定最终结果为止。之后,该结果可以用于基于原始文本的大小以及对其已经进行的累积的变换来计算分数(质量参数),以实现对质量阈值的估算。该方法将不会完全地克服对复杂绰号(诸如,例如,XboxLive游戏标签)的不正确的拼读的问题,但将会在某种程度上提高其似然度。在一种实施方式中,这些步骤的输出旨在被用作话音辨识系统的语法单元的部分,因此将不会有可视的成分(用户将会在显示器上感受原始的源文本)。然而,在其它实施方式中,可拼读的名称被输出至显示器并且被显示为与输入字符串相关联。在某些实施方式中,可拼读的名称可以以可编辑的形式被输出至显示器作为对输入字符串的自动建议替换。可选地,该变换过程的清理操作是基于联系人的地区的。这可以允许在例如“网络语言”、联系人头衔、和/或尊称中的文化差异。应注意的是变换过程的每个步骤可以执行地区性清理。图1示出了包括与第一用户(用户A,未示出)相关联的第一用户终端102和与第二用户(用户B,未示出)相关联的第二用户终端104的常规通信系统100。为了简单起见,虽然在图1中示出了仅仅两个用户终端,但是通信系统100可以包括任何数量的用户和相关联的用户设备。用户终端102和104在通信系统100中可以通过网络108进行通信,由此使用户A和B得以通过网络108与彼此通信。网络108可以是具有用于在第一用户终端102和第二用户终端104之间提供通信信道的能力的任何合适的网络。例如,网络106可以是互联网或者诸如高数据速率移动网络(诸如第三代(“3G”)移动网络)之类的另一种类型的网络。例如,用户终端102可以是移动电话、个人数字助理(“PDA”)、个人计算机(“PC”)(包括例如WindowTMPC、MacOSTMPC和LinuxTMPC)、游戏设备或者能够连接至网络108的其它嵌入式设备。安排用户终端102从用户终端102的用户接收信息,以及向用户终端102的用户输出信息。在一个实施例中,用户终端102包括诸如屏幕之类的显示器和诸如小键盘、触摸屏和/或麦克风之类的输入设备。用户终端102被连接至网络108。每个用户终端102和104可以使用联系人列表来存储与其他用户相关联的其它用户终端的联系人详情。例如,在图1示出的常规通信系统中,与用户A相关联的用户终端102使用联系人列表106。联系人列表106可以存储其它用户的联系人信息,利用该联系人信息,用户A可以希望建立通信事件,例如,联系人列表可以存储与用户B相关联的用户终端104的联系人详情。联系人信息可以例如是电话号码、电子邮件地址、IP地址等等。联系人列表106将联系人的标识与其联系人信息相关联。联系人的标识可以例如是联系人的名字、用户名、其游戏标签、昵称或这些的组合。联系列表可由用户A访问以便使得用户A能够与存储在该列表中的用户建立通信事件。例如,联系人列表可以能够被显示在用户终端的图形用户界面上。之后,用户可以从所显示的联系人列表中选择相关的联系人,以便建立与被选中的联系人的终端的通信事件。还可以经由来自用户的语音输入来访问联系人列表。例如,用户可以读出联系人列表上的联系人的名称,用户终端可以处理该语音输入,以从联系人列表中选择相关的联系人,并建立与该相关联用户终端的通信事件。图2示出了用户终端102的可操作性组件的示图。应注意的是,本文使用的相同的附图标记标示相同的组件/元件。用户终端包括连接到诸如屏幕或触摸屏的显示器205的微处理器204。处理器还连接至音频输入设备206(例如,麦克风)和音频输出设备207(例如,扬声器)。显示器205、音频输入设备和音频输出设备可以被整合到如图2所示的用户终端102中。在可替代的用户终端中,显示器、音频输入和音频输出中的一项或多项可以不被整合到用户终端102中,并且可以经由相应的接口连接到微处理器。微处理器连接到网络接口208,诸如用于与网络105通信的调制解调器。网络接口208可以被整合到用户终端102中,如图2所示。在可替代的用户终端中,网络接口208未被整合到用户终端102中。微处理器还被连接到自动话音辨识(ASR)引擎209。用户终端102包括其上存储有语法单元(grammar)202、变换逻辑203和联系人列表106的存储器201。该语法单元被连接到ASR引擎209。该存储器201可以是永久性存储器,诸如ROM,或可以可选地是暂时性存储器,诸如RAM。该ASR引擎209被耦合到麦克风206,并且被配置为从麦克风接收输入音频信号,诸如从用户向麦克风讲话生成的语音信号。该ASR引擎被配置为分析输入音频信号以确定是否能够辨识话音以及是否该话音表征来自用户的指令。该ASR引擎通过访问语法单元202来确定话音是否能够被辨识。例如,用户可以向麦克风讲话来指示用户终端呼叫联系人列表106中的联系人,诸如,用户B。麦克风将根据用户的指令生成音频信号。ASR引擎将通过访问语法单元来分析该信号,并且如果其辨识出用户所说出的联系人的名字(在这个例子中,是用户B),ASR引擎将输出信号以触发用户终端102来呼叫与用户B相关联的终端104。在一些例子中,联系人列表包含这样的联系人:该联系人的标识当由人按照字面阅读时无法拼读。这样的例子是上面描述的“网络语言”。按照“网络语言”写出的联系人的名字可以被写成这样一种方式:尽管当按照字面阅读时无法拼读,但由人阅读时能够被理解。关于上面的之前的例子,绰号“S0meG1rl”当被人阅读时可以被理解为“SomeGirl”,即使该绰号本身是无法拼读的。保持该例子,如果用户A向终端102的麦克风讲话,以要求终端呼叫“SomeGirl”(旨在需要终端102呼叫与联系人“S0meG1rl”相关联的终端),则ASR引擎将辨识该话音,但将无法触发用户终端102呼叫期望的终端,因为在联系列表106上在“SomeGirl”名下没有联系人标识符。在这些例子中,ASR引擎可能无法成功地使用话音辨识来识别任何联系人。参照图3和图4,其中描述了用于将输入字符串变换成人可读的词语或名字的方法。输入字符串可以是例如,名称数据或绰号,或被写成“网络语言”。输入字符串可以表征用于在联系人列表内使用的联系人的标识。图3示出了在变换逻辑203的输入端和存储模块302处接收的输入字符串301。变换逻辑具有被配置为输出经变换的数据303的输出,该输出可以是可通过人声可拼读的词语。该变换逻辑203被配置为进行从输入字符串到经变换的数据的变换过程。如将在下面更详细地描述的,变换过程将包括多个变换步骤,这些变换步骤修改输入字符串,以尝试移除常见的复杂图案和模糊的字符串成分。这些步骤中的每个步骤可以由变换逻辑203实现。在一个实施例中,变换逻辑是在诸如处理器204之类的用户终端中的本地处理器上执行的软件程序。变换逻辑可具有被配置为接收输入字符串的输入和被配置为输出经变换的数据的输出。从变换逻辑中输出的还有质量指示符(QI)304,该QI是用于评估变换质量的分数。可基于原始输入字符串的大小和为了产生经变换的数据而在该原始输入字符串上进行的变换来计算分数。如果变换处理包括多个变换步骤,则该QI可以被计算为变换步骤中的每个步骤的计算结果的函数。例如,每个变换步骤可以返回这样的结果:该结果包含(针对该步骤的)输入字符串和与针对该步骤的输入字符串和经变换的数据之间的变换程度有关的信息(诸如为了将输入字符串变换成经变换的数据而经历的字符改变的数量和/或从输入字符串移除的字符的数量)。之后,每个变换步骤的输出被链接到下一变换步骤的输入,直到所有变换步骤完成并且计算出最终结果为止。然后根据最终结果来计算QI。评分模块305被配置为接收输出的经变换的数据和QI。基于QI的值,评分模块可以确定是放弃该经变换的数据303还是输出该经变换的数据以用于添加到语法单元202中。例如,评分模块可以对比所计算的分数QI与质量阈值。如果分数在阈值以下,则经变换的数据被丢弃;如果分数在阈值以上,该经变换的数据被添加到语法单元202。在一个实施例中,评分模块是在设备的本地处理器(诸如处理器204)上执行的软件程序。图3中还示出了ASR引擎209,该ASR引擎209被配置为能够访问语法单元202。该ASR引擎被配置为接收音频信号306(诸如从麦克风206输出的音频信号)作为输入并且输出命令函数307以用于触发用户设备基于该输入的音频信号来执行操作。音频信号可以是命令,例如,用于呼叫、电子邮件联系或消息联系联系人列表106中的联系人。在一个实施例中,源输入字符串是存储在用户终端102上的用户联系人列表106中的联系人的标识。在本实施例中,输出的经变换的数据303可以是与联系人标识相关联的人可拼读的名称或词语。参照之前的例子,联系人的标识可以是绰号“S0meG1rl”。在该例子中,源输入字符串是表征该绰号的数据,而输出的经变换的数据可以是表征可拼读名称“SomeGirl”的数据。如果经变换的数据具有足够的质量,则名称“SomeGirl”将被添加至语法单元202以与绰号“S0meG1rl”进行关联。参照图4,其中描述了使用语音输入来识别联系人列表中的联系人的方法。在步骤401,在变换逻辑203接收源输入字符串301。输入字符串是联系人列表106中的联系人的标识。变换逻辑可被配置为从用户设备的存储有联系人列表106的存储器201接收输入字符串。联系人的标识可以被写为网络语言或者是绰号并且因此如果书面读出的话无法由人声来拼读。在步骤402,对输入字符串执行至少一个变换步骤,以变换输入字符串的至少一个字符。该至少一个变换步骤由变换逻辑203执行。在每个变换步骤期间,通过例如替换或删除来变换输入字符串的字符,以便移除输入字符串中的致使该输入字符串无法由人声来拼读的字符。在完成该至少一个变换步骤后,无法拼读的输入字符串已经被变换为针对该联系人的标识的可拼读的名称。将该可拼读的名称在步骤403中从变换逻辑203输出作为经变换的数据。在一个实施例中,该经变换的数据被输入到评分模块305,以评估该经变换的数据的质量,如上所述。在该实施例中,如果评分模块确定该经变换的数据(例如,相比于阈值质量)具有足够的质量,那么该经变换的数据被输入到用户终端的语法单元202中。如果该经变换的数据不具有足够的质量,那么其被丢弃并且不被输入到语法单元中。在可替换的实施例中,将经变换的数据从变换逻辑输出到语法单元中而不评估其质量。即,从变换逻辑输出的所有的经变换的数据将被输入到语法单元中。之后,通过输入经变换的数据到语法单元202中,联系人的标识与可拼读名称进行关联。如果用户终端接收到来自用户的包含联系人的标识的可拼读版本的语音输入,则ASR引擎将能够访问语法单元202以辨识可拼读的名称并确定该可拼读的名称与联系人列表中的联系人的标识相关联。之后,基于由用户输入的命令,该ASR引擎可以输出消息来触发用户终端采取合适的动作。例如,如果语音输入命令是“呼叫‘SomeGirl’”,那么ASR引擎将访问语法单元来辨识名称“SomeGirl”并且识别到该名称与联系人列表106中的标识“S0meG1rl”相关联。之后,从ASR引擎输出的消息将触发用户终端来呼叫联系人“S0meG1rl”。在一个实施例中,标识联系人列表中的联系人的源输入字符串被输出到用户终端的显示器205。例如,消息可以被输出到显示器以向用户通知所显示的源输入字符串将被变换为可拼读的名称。可选地,消息可以被输出为询问用户是否希望将所显示的源输入字符串变换为可拼读的名称,并且向用户提供如果不愿意这么做就不进行变换的选项。替代地或额外地,一旦对源输入字符串执行了至少一个变换步骤,那么消息可以被输出至用户终端的显示器,以将经变换的数据显示给用户。该消息可以包含源输入字符串和相关联的经变换的数据二者。例如,消息可以被输出为向用户通知源输入字符串已经被变换为人可拼读的词语。这将使得用户获知该可拼读的词语已经被添加到语法单元中,并且可由ASR引擎辨识。在另一个实施例中,经变换的数据将以可编辑的自动建议的形式输出到用户终端的显示器。这可以允许用户在输入字符串未被正确变换的情况下(例如,因为该经变换的数据无法拼读)能够编辑经变换的数据。如上所述,由变换逻辑203执行的将源输入字符串变换为经变换的输出数据的变换可以包括多于一个变换步骤。在一个实施例中,在变换中由变换逻辑执行的操作如下:替换口音:该步骤将带口音的字符改变为其地域可接受的基本等价字符(例如,在英国英语中将á改变为a的变换是可接受的变换,但在法语中却不行)。去除符号:移除不合适的符号,诸如例如和TM。将分隔符改变为空格:该步骤移除输入字符串中的、诸如破折号、下划线、连字符和其它连接符号之类的字符。整理开头/末尾的数字和符号:该步骤从输入字符串中移除任何开头或末尾的数字(例如,将Mark23改变为Mark)。替换双元音网络字符(leetcharacter):该步骤将双元音网络字符变换为其合适的等价字符,例如,00变成oo,33变成ee等等。替换单元音网络字符:该步骤改变在一连串字符内存在的网络字符,可选地评估其之前的字符。例如,该步骤会将S1mon变换为Simon,A1an变换成Alan,Michel变换成Michael,等等。去除首字母缩略词(initial):该步骤移除以句号或空格结尾的单个字符,例如,将JoeMBloggs变换为JoeBloggs。规范化大写形式:该步骤检测其中名称的片段被组合起来仅以大写来区分的一连串字符。这可以发生在,例如,游戏标签。一旦检测到,该步骤插入空格以分开名称片段,例如JohnPaulSmith变换成JohnPaulSmith。解析后缀、头衔、昵称和全名:该步骤解析任何后缀或头衔(例如,Mr.、Mrs.、PhD等等),并将它们针对已知的列表进行分类。然后余下的字符被解析为名字(该字符串中的第一个表征(token),即第一个没有换行符的连续的字符系列)和全名(整个字符串,一旦空格被压缩)。图5是示出了用户设备中的用于使用语音输入在通信系统中识别联系人的模块的示意图。图5示出了联系人列表106,该联系人列表存储末端用户502的联系人的详情。联系人列表可以被存储在可由末端用户502操作的用户终端上,诸如终端102。联系人列表中的每个联系人将具有相关联的联系人名称和联系人信息(例如,电话号码、电子邮件地址、IP地址或这些的组合)。联系人501的联系人名称可以是当按照字面读出时无法由人声进行拼读的。这样的联系人名称的例子是绰号“Chr1s”,这里将仅出于示例的目的将其相关于图5进行使用。联系人列表可以是可由用户502访问的,例如,通过在用户终端的图形用户界面上进行显示。以源输入字符串301的形式将联系人501的联系人名称输入到变换逻辑203中。变换逻辑被配置为在输入字符串上执行至少一个变换步骤。由变换逻辑执行的变换步骤可以包括上面所描述的任何和所有的操作。变换逻辑输出的是经变换的数据303。该经变换的数据303是经变换版本的联系人名称,该经变换版本的联系人名称当被按照字面读出时是可由人拼读的。例如,对于联系人名称“Chr1s”,经变换的数据可以是名称“Chris”。经变换的数据被输入到语法单元202中,以使得可拼读的名称“Chris”与联系人名称“Chr1s”相关联。在一个实施例中,联系人列表106中的联系人名称可以被自动输入变换逻辑模块,也就是说,无需用户输入。例如,用户可以将联系人的详情键入联系人列表106。当键入详情时,联系人名称被输入到变换逻辑模块中。在替代的实施例中,联系人名称可以基于用户的请求而被输入到变换逻辑模块中以被变换为可拼读的名称。在另一个可选的实施例中,用户终端可以请求来自用户的许可以将联系人列表106中的联系人名称变换为可拼读的名称。如果用户不许可,则联系人列表中的名称不被输入到变换逻辑模块203中。一旦联系人名称已经由逻辑模块203变换并且存储在语法单元202中,联系人可以由用户502通过语音输入503识别出来。例如,用户可以说出包含词语“Chris”的命令。自动话音辨识(ASR)引擎309被配置为接收语音输入并且访问语法单元202。通过访问语法单元,ASR引擎可以辨识词语“Chris”,并且确定其与联系人名称“Chr1s”相关联。之后,ASR引擎输出命令504以触发与联系人名称“Chr1s”相关联的动作,诸如触发用户终端建立与用户的联系人“Chr1s”的通信事件。将理解的是变换过程可以包含任意数量的上述步骤。对于包含多于一个步骤的过程来说,输入字符串顺序地经过每个步骤,以使得一个步骤的输出被供应为下一个步骤的输入。在一个实施例中,变换过程包括上述的所有操作。该步骤可以按照其被描述的顺序执行,例如,第一个步骤是替换口音,第二个步骤(在第一个步骤的输出上执行)是去除符号,以此类推。通常地,本文描述的功能中的任何功能可以使用软件、固件、硬件(例如,固定的逻辑电路)或者这些实现方式的组合来实现。如本文使用的术语“模块”、“功能”、“部件”和“逻辑”通常表示软件、固件、硬件或者其组合。在软件实现方式的情况下,模块、功能或者逻辑表示当在处理器(例如,微处理器、CPU或者数个CPU)上被执行时执行指定的任务的程序代码。程序代码可以被存储在一个或多个计算机可读存储器设备中。下文描述的技术的特征是独立于平台的,意味着这些技术可以在具有各种各样的处理器的各种各样的商用计算平台上实现。例如,用户设备还可以包括使得用户设备的硬件执行操作(例如,处理器功能框等等)的实体(例如,软件)。例如,用户设备可以包括计算机可读介质,其可以被配置为保存用于使得用户设备执行操作的指令。因此,指令用于配置操作系统和相关联的硬件以执行操作并且以该方式导致操作系统和相关联的硬件的转变以执行功能。计算机可读介质可以通过各种各样不同的配置向用户设备提供该指令。计算机可读介质的一种这样的配置是信号承载介质,并且因此被配置为诸如经由网络向计算设备发送指令(例如,作为载波)。计算机可读介质还可以被配置为计算机可读存储介质,并且因此不是信号承载介质。计算机可读存储介质的示例包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪存、硬盘存储器和可以使用磁的、光学的和其它技术来存储指令和其它数据的其它存储器设备。尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解的是,在所附权利要求中限定的主题不一定被限制为上面描述的具体的特征或者动作。更确切地说,上面描述的具体的特征和动作被公开是作为实现权利要求的示例形式。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1