为字母-声音转换生成有互信息标准的大文法音素单元的制作方法

文档序号:2821276阅读:200来源:国知局
专利名称:为字母-声音转换生成有互信息标准的大文法音素单元的制作方法
技术领域
本发明涉及字母-声音转换系统,尤其涉及生成用于字母-声音转换的文法音素(graphoneme)。
背景技术
在字母-声音转换中,字母序列被转换成表征该字母序列的发音的音素序列。
在近几年中,基于n字母组(n-gram)的系统已经被用于字母-声音转换。n字母组系统使用“文法音素(graphoneme)”,它是表征字母和那些字母的语音发音两者的联合单元。在每个文法音素中,在文法音素的字母部分中可以有零个或多个字母,而在文法音素的音素部分中可以有零个或多个音素。一般而言,文法音素用l*:p*表示,其中l*表示零个或多个字母,而p*表示零个或多个音素。例如,“tion:sh&ax&n”表示有四个字母(tion)和三个音素(sh、ax、n)的文法音素。定界符“&”被加到音素之间,因为音素名可能比一个字符长。
文法音素n字母组模型是基于具有单词的拼写条目和每个单词的音素发音的词典来训练的。该词典被称为训练词典。如果给定训练词典中字母-音素映射,则该训练词典可以被转换成文法音素发音词典。例如,假定phone ph:f o:ow n:n e:#以某种方式被给出。每个单词的文法音素定义就被用来估算“n”文法音素序列的似然性。例如,在文法音素三字母组中,三个文法音素序列的概率Pr(g3|g1g2),是根据有文法音素发音的训练词典来估算的。
在使用文法音素的现有技术的许多系统中,当新单词被提供给字母-声音转换系统时,最佳第一搜索算法被用来基于n字母组得分寻找最佳或n-最佳发音。要完成这个搜索,从包含文法音素n字母组模型的起始符号的根节点开始,该起始符号通常被表示为<s>。<s>指示文法音素序列的开始。与根节点相关联的得分(对数概率)是log(Pr(<s>)=1)=0。另外,搜索树中的每个节点跟踪输入单词中的字母位置。我们称它为“输入位置”。<s>的输入位置是0,因为输入单词中还没有字母被使用。概括地说,搜索树中的节点包含最佳第一搜索的下列信息struct node{int score,input_position;node*parent;int graphoneme_id;};同时,堆结构被维护,其中搜索节点的最高得分在堆的顶部出现。最初在堆中只有一个元素。这个元素指向搜索树的根节点。在搜索的任一迭代中,堆的顶部元素被除去,它给出到目前为止搜索树中的最佳节点。然后通过在文法音素库(inventory)中查找其字母部分是输入单词中从最佳节点的输入位置开始的剩余字母的前缀的那些文法音素,从这个最佳节点延伸子节点。每个这样的文法音素生成当前最佳节点的子节点。子节点的得分是父节点(即当前最佳节点)的得分加上到该子节点的n字母组音素得分。子节点的输入位置被前进到父节点的输入位置加上子节点中相关联的文法音素的字母部分的长度。最后,子节点被插入到堆中。
在所有输入字母被用完后必须特别注意。如果当前最佳节点的输入位置已经到达输入单词的末端,将到n字母组模型的终止符号的过渡</s>添加到搜索树和堆上。
如果从堆中除去的最佳节点包含</s>作为其文法音素id,就得到了对应于输入单词的完整拼写的语音发音。为了标识该发音,从最后的最佳节点</s>一路回到根节点<s>的路径被跟踪,而沿着这条路径的文法音素单元的音素部分就是输出。
按照文法音素n字母组模型,有</s>的第一最佳节点是最佳发音,因为剩余的搜索节点的得分比这个得分差,而从剩余的搜索节点的任一个到</s>的已有或将有的路径只会得到更差的得分(因为log(概率)<0)。如果元素继续从堆中被除去,第二最佳、第三最佳等等发音可以被标识,直到堆中没有元素,或者第n最佳发音比顶部第一发音差一个阈值。然后n最佳搜索停止。
有多种方法来训练n字母组音素模型,例如最大似然、最大熵等等。文法音素本身也可以用不同方式生成。例如,一些已有技术使用隐型马尔可夫模型来生成训练词典的字母和音素的初始对齐,随后把这些l:p文法音素时常出现的对归并成更大的文法音素单元。或者,文法音素库也可以由把某些字母序列与特定音素序列相关联的语言学家生成。这花费大量时间并易于出错而且有些任意,因为语言学家在把字母和音素组成文法音素时并没有使用严密的技术。

发明内容
提供了一种把单词和语音发音分割成文法音素序列的方法和装置。在本发明中,较小文法音素单元对的互信息被确定。每个文法音素单元包括至少一个字母。在每次迭代中,有最大互信息(mutual information)的最佳对被组合,以形成新的较长的文法音素单元。当合并算法停止时,得到单词的词典,其中,每个词被分割成文法音素单元的最终组中的文法音素序列。
用相同的基于互信息的贪婪算法而不考虑字母,语音发音可以被分割成音节发音。类似地,单词也可以通过将单词的“发音”分配为拼写并再次忽略文法音素单元的字母部分被而分割成词素(morpheme)。


图1是可在其中实现本发明的实施例的通用计算环境的框图。
图2是在本发明的一个实施例中生成大文法音素单元的方法的流程图。
图3是用于把单词“phone”分割成文法音素序列的示例解码网格。
图4是基于互信息训练和使用音节n字母组的方法的流程图。
具体实施例方式
图1示出可以在其中实现本发明的合适的计算系统环境100的例子。计算系统环境100只是合适的计算环境的一个例子,但不意味着是本发明的使用范围或功能的任何限制。计算环境100也不应该被解释为对示例性操作环境100中所示的元件的任何一个或组合有任何依赖或要求。
本发明可以在许多其它通用或专用计算系统环境或配置上运作。适合使用本发明的众所周知的计算系统、环境和/或配置的例子包括但不限于个人计算机、服务器计算机、手持或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型机、大型计算机、电话系统、包括任何上述系统或设备的分布式计算环境等等。
本发明可以在例如由计算机执行的程序模块等计算机可执行的指令的通用上下文中描述。一般而言,程序模块包括完成特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本发明被设计成在由通过通信网络连接的远程处理设备完成任务的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于本地和远程计算机存储媒质两者中,包括存储器存储设备。
参考图1,实现本发明的示例性系统包括计算机110形式的通用计算设备。计算机110的组件可以包括但不限于处理单元120、系统存储器130和把包括系统存储器在内的各种系统元件耦合到处理单元120的系统总线121。系统总线121可以是多种总线结构的任何一种,包括存储器总线或存储器控制器、外围总线和使用任何一种总线体系结构的局部总线。作为例子但不是限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外设部件互连(PCI)总线(即Mezzanine总线)。
计算机110通常包括各种计算机可读媒质。计算机可读媒质可以是可以由计算机110访问的任何可用媒质,包括易失和非易失媒质、可移动和不可移动媒质。作为例子但不是限制,计算机可读媒质可以包括计算机存储媒质和通信媒质。计算机存储媒质包括以任何方法或技术实现来存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的易失和非易失、可移动和不可移动媒质。计算机存储媒质包括但不限于RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来存储所需信息并可以由计算机110访问的其它任何媒质。通信媒质通常在诸如载波或其它传输机制这样的已调制数据信号中包含计算机可读指令、数据结构、程序模块或其它数据,并包括任何信息传递媒质。术语“已调制数据信号”是指其一个或多个特征以在信号中编码信息的方式被设置或改变的信号。作为例子但不是限制,通信媒质包括诸如有线网络或直接有线连接这样的有线媒质,和诸如声学、射频、红外或其它无线媒质这样的无线媒质。上面任何媒质的组合也应该被包括在计算机可读媒质的范围内。
系统存储器130包括易失和/或非易失存储器形式的计算机存储媒质,例如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS),包含例如在启动时帮助在个人计算机110中的元件之间传输信息的基本例程,被存储在ROM131中。RAM132通常包含处理单元120立刻可以访问和/或正在操作的数据和/或程序模块。作为例子但不是限制,图1示出操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可以包括其它可移动和不可移动、易失和非易失计算机存储媒质。只是作为例子,图1示出对不可移动非易失磁媒质进行读写的硬盘驱动器141、对可移动非易失磁盘152进行读写的磁盘驱动器151和对诸如CD-ROM或其它光媒质这样的可移动非易失光盘156进行读写的光盘驱动器155。可以被用在示例性操作环境中的其它计算机存储媒质包括但不限于磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器141通常通过接口140这样的不可移动存储接口被连接到系统总线121,而磁盘驱动器151和光盘驱动器155通常通过接口150这样的可移动存储接口被连接到系统总线121。
如上所述并如图1所示的驱动器及其相关联计算机存储媒质,为计算机110提供计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,示出硬盘驱动器141存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意这些组件可以和操作系统134、应用程序135、其它程序模块136和程序数据137相同或不同。操作系统144、应用程序145、其它程序模块146和程序数据147在这里被给以不同标号来说明它们至少是不同的副本。用户可以通过诸如键盘162、麦克风163和定点设备161(例如鼠标、跟踪球或触摸板)这样的输入设备向计算机110输入命令和信息。其它输入设备(未示出)可以包括操纵杆、游戏垫、圆盘式卫星天线和扫描仪等。这些和其它输入设备通常通过耦合到系统总线的用户输入接口160连接到处理单元120,但也可以通过其它接口和总线结构连接,例如并行端口、游戏端口或通用串行总线(USB)。显示器191或其它类型的显示设备也通过视频接口190这样的接口被连接到系统总线121。除了显示器之外,计算机也可以包括其它外围输出设备,例如扬声器197和打印机196,它们可以通过输出外围接口195被连接。
计算机110可以在使用到一个或多个远程计算机,例如远程计算机180的逻辑连接的联网环境中操作。远程计算机180可以是个人计算机、手持设备、服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括上面相对计算机110描述的许多或全部元件。图1中描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这些联网环境在办公室、企业范围计算机网络、内联网和因特网中很常见。
当在LAN联网环境中使用时,计算机110通过网络接口或适配器170连接到LAN171。当在WAN联网环境中使用时,计算机110通常包括调制解调器172或用于通过诸如因特网这样的WAN173建立通信的其它装置。调制解调器172可以是内置的或外置的,可以通过用户输入接口160或其它合适机制连接到系统总线121。在联网环境中,相对计算机110描述的程序模块或其中一部分可以被存储在远程存储器存储设备中。作为例子但不是限制,图1示出远程应用程序185驻留在远程计算机180中。可以理解,所示的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它装置。
在本发明的一个实施例中,可以用于字母-声音转换的文法音素是使用互信息标准形成的。图2提供了在本发明的一个实施例中形成这种文法音素的流程图。
在图2的步骤200中,词典中的单词被分割成单个字母,而各个字母的每一个和与该单词相关联的音素序列中的单个音素对齐。在一个实施例中,这个对齐是通过整个单词从左到右进行的,使得第一字母和第一音素对齐、第二字母和第二音素对齐,依此类推。如果字母比音素多,则剩余字母映射到静音,静音用“#”表示。如果音素比字母多,则最后一个字母映射到多个音素。例如,单词“phone”和“box”如下作初始映射phone: p:f h:ow o:n n:# e:#box: b:d o:aa x:k&s这样,每个初始文法音素单元正好有一个字母和零个或多个音素。这些初始单元可以普遍地用l:p*表示。
在初始对齐之后,图2的方法在步骤202为每个字母确定对齐概率。对齐概率可以如下计算p(p*|l)=c(p*|l)Σs*c(s*|l)]]>等式1其中,p(p*|l)是音素序列p*和字母l对齐的概率,c(p*|l)是音素序列p*和字母l在词典中对齐的次数的计数,而c(s*|l)是音素序列s*和字母l对齐的次数的计数,其中分母中的和是对词典中与字母l对齐的所有可能的音素序列s*进行的。
在确定了对齐概率后,在步骤204形成新的对齐,再次为有与每个文法音素相关联的零个或多个音素的每一文法音素分配一个字母。这个新的对齐是基于在步骤202确定的对齐概率的。在一个特定实施例中,使用维特比解码系统,其中通过维特比栅格的路径,例如图3所示的示例栅格,从对齐概率中被识别。
图3的栅格用于有语音序列f&ow&n的单词“phone”。栅格包括每个字母的单独状态索引和初始静音状态索引。在每个状态索引,有贯穿音素序列的进程的单独状态。例如,对字母“p”的状态索引,有静音状态300、/f/状态302、/f&ow/状态304和/f&ow&n/状态306。在两个状态之间的每一转移表示可能的文法音素。
对每个状态索引处的每个状态,进入该状态的单个路径是通过确定通向该状态的每一条完整路径的概率来选择的。例如,对状态308,维特比解码选择路径310或路径312。路径310的得分包括路径314对齐p:#的概率和路径310对齐h:f的概率。类似地,路径312的得分包括路径316对齐p:f的概率和路径312对齐h:#的概率。进入每个状态的有最高概率的路径被选中,而其它路径被剪除不作更多考虑。通过这个解码过程,词典中的每个单词都被分割成文法音素序列。例如,在图3中,文法音素序列p:f h:# o:ow n:n e:#可以作为最可能的对齐被选中。
在步骤206,本发明的方法确定是否应当执行更多对齐迭代。如果要执行更多对齐迭代,则过程返回到步骤202,以基于在步骤204形成的新对齐确定对齐概率。步骤202、204和206一直被重复,直到执行了所要求的迭代次数。
步骤202、204和206的迭代的结果是词典中每个单词被分割成文法音素单元序列。每个文法音素单元正好包含拼写部分中的一个字母和音素部分中的零个或多个音素。
在步骤210,为在对齐步骤204之后在词典中发现的文法音素单元的每个连续对确定互信息。在一个实施例中,两个连续的文法音素单元的互信息如下计算MI(u1,u2)=Pr(u1,u2)logPr(u1,u2)Pr(u1)Pr(u2)]]>等式2其中MI(u1,u2)是文法音素单元对u1和u2的互信息。Pr(u1,u2)是文法音素单元u2直接在文法音素单元u1之后出现的联合概率。Pr(u1)是文法音素单元u1的一元概率(unigram probability),而Pr(u2)是文法音素单元u2的一元概率。等式2的概率如下计算Pr(u1)=coumt(u1)count(*)]]>等式3Pr(u2)=count(u2)count(*)]]>等式4Pr(u1u2)=count(u1u2)count(*)]]>等式5其中count(u1)是文法音素单元u1在词典中出现的次数,count(u2)是文法音素单元u2在词典中出现的次数,count(u1u2)是文法音素单元u2紧随文法音素单元u1之后在词典中出现的次数,count(*)是词典中所有文法音素单元的实例的数目。
严格地说,等式2并不是两个分布之间的互信息,因此不能保证是非负数。但是,它的公式类似于互信息公式,因而在文献中被错误地称为互信息。所以,在本发明的上下文中,我们继续称等式2的计算是互信息计算。
在步骤210对词典中每对相邻文法音素单元计算了互信息后,在步骤212确定每个新的可能文法音素单元u3的强度。新的可能文法音素单元通过合并两个已有的较小文法音素单元来产生。但是,两对不同的文法音素单元可以产生相同的新文法音素单元。例如,文法音素对(p:f,h:#)和文法音素对(p:#,h:f)在它们被合并到一起时都形成同一个较大文法音素单元(ph:f)。所以,我们定义新的可能文法音素单元u3的强度为通过合并产生同一个新单元u3的不同文法音素单元对而形成的所有互信息的总和strength(u3)=Σ∀u1u2=u3MI(u1,u2)]]>等式6其中,strength(u3)是可能的新单元u3的强度,而u1u2=u3意味着合并u1和u2将产生u3。所以,等式6的总和是在产生u3的所有这样的单元对u1和u2上完成的。
在步骤214,创建有最大强度的新单元。然后通过用新形成单元替代较小单元对,更新包括形成所选中的新单元的组成对的词典条目。
在步骤218,该方法确定是否应该创建更多文法音素单元。如果是,过程返回到步骤210并再次计算文法音素单元对的互信息。注意,在前一次合并后,词典现在可能不再需要一些旧单元(即count(u1)=0)。步骤210、212、214、216和218一直被重复,直到构造了足够大的文法音素单元组。现在词典被分割成文法音素发音。
然后,在步骤222,经分割的词典被用来训练文法音素n字母组。构造n字母组的方法可以包括基于最大熵的训练或基于最大似然的训练等等。构建n字母组领域内的技术人员理解,构建n字母组语言模型的任一合适方法都可用于本发明。
通过使用互信息构造较大文法音素单元,本发明为任何拼写语言提供了生成大文法音素单元的自动技术,而不需要语言学家手工标识文法音素单元。
一旦在图2的步骤222生成了文法音素n字母组,我们然后就可以使用文法音素库和n字母组来导出给定拼写的发音。它们也可以用于把有自己的语音发音的拼写分割成库中文法音素序列。这通过应用一强制对齐来实现,该强制对齐要求文法音素的字母和音素与搜索树中每个节点的剩余字母和音素之间的前缀匹配。然后n字母组中提供最高概率并且与字母和音素都匹配的文法音素序列被标识为给定拼写/发音的文法音素分段。
用相同的算法,也可以通过生成音节库、训练音节n字母组以及在单词的发音上执行强制对齐把语音发音分割成音节发音。图4提供生成并使用音节n字母组以标识单词的音节的方法。在一个实施例中,文法音素用作算法的输入被使用,即使算法忽略每个文法音素的字母端,而只使用每个文法音素的音素。
在图4的步骤400,为词典中的每个音素对确定互信息得分。在步骤402,有最高互信息得分的音素对被选中,并生成由两个音素组成的新“音节”单元。在步骤404,包括该音素对的词典条目被更新,这样音素对作为词典条目中单个音节单元来处理。
在步骤406,本方法确定是否有更多的迭代要进行。如果有更多迭代,过程返回到步骤400,对词典中的每个音素对生成互信息得分。步骤400、402、404和406一直被重复,直到形成合适的一组音节单元。
在步骤408,现在已经被分割成音节单元的词典用于生成音节n字母组。音节n字母组模型提供词典中发现的音节序列的概率。在步骤410,音节n字母组用于在给定新单词的发音时标识新单词的音节。具体地说,使用强制对齐,其中发音的音节基于音节n字母组被组合成最可能的音节单字母组序列。步骤410的结果是单词的音素组合成音节单元。
相同的算法可以被用来把单词分割成词素。作为使用单词的音素的替代,单词的各个字母被用作单词的“发音”。为了直接使用上面描述的贪婪算法,各个字母被用来取代文法音素中的音素,而文法音素中的字母端被忽略。这样在步骤400,训练词典中字母对的互信息被标识,而在步骤402有最高互信息的对被选中。然后为这个对形成新词素单元。在步骤404,用新词素单元更新词典条目。当创建了合适数量的词素单元后,在词典中发现的词素单元被用来训练n字母组词素模型,后者在后来可以被用来用上述强制算法从单词的拼写中标识单词的词素。使用这种技术,象“transition”这样的单词可以被分割成“tran si tion”的词素单元。
虽然本发明是参考特定实施例来描述的,然而本领域的技术人员会理解,可以进行形式和细节上的改动而不脱离本发明的精神和范围。
权利要求
1.一种把单词分割成组成部分的方法,其特征在于,所述方法包括确定文法音素单元的互信息得分,每个文法音素单元包括单词的拼写中的至少一个字母;使用所述互信息得分以将文法音素单元组合成较大的文法音素单元;以及把单词分割成组成部分以形成文法音素序列。
2.如权利要求1所述的方法,其特征在于,组合文法音素包括组合每个文法音素的字母以产生所述较大文法音素单元的字母序列,并组合每个文法音素的音素以产生所述较大文法音素单元的音素序列。
3.如权利要求1所述的方法,其特征在于,还包括使用所分割的单词生成模型。
4.如权利要求3所述的方法,其特征在于,所述模型描述给定单词内上下文时文法音素的概率。
5.如权利要求4所述的方法,其特征在于,还包括使用所述模型在给定单词的拼写时确定所述单词的发音。
6.如权利要求1所述的方法,其特征在于,使用所述互信息得分包括对为单个较大文法音素确定的至少两个互信息得分求和以形成强度。
7.一种有计算机可执行的指令的计算机可读媒质,所述指令用于执行以下步骤为在一组单词中发现的文法音素单元对确定互信息得分,每个文法音素单元包括至少一个字母;基于所述互信息得分组合一文法音素单元对的文法音素单元,以形成一新的文法音素单元;以及部分地基于所述新的文法音素单元标识单词的一组文法音素单元。
8.如权利要求7所述的计算机可读媒质,其特征在于,组合文法音素包括组合所述文法音素的字母以形成所述新的文法音素单元的字母序列。
9.如权利要求8所述的计算机可读媒质,其特征在于,组合文法音素还包括组合所述文法音素的音素以形成所述新的文法音素单元的音素序列。
10.如权利要求7所述的计算机可读媒质,其特征在于,还包括为词典中的每个单词标识一组文法音素。
11.如权利要求10所述的计算机可读媒质,其特征在于,还包括使用为词典中的单词标识的各组文法音素来训练模型。
12.如权利要求11所述的计算机可读媒质,其特征在于,所述模型描述在单词中出现的文法音素的概率。
13.如权利要求12所述的计算机可读媒质,其特征在于,所述概率基于单词中的至少一个其它文法音素。
14.如权利要求11所述的计算机可读媒质,其特征在于,还包括使用所述模型在给定单词的拼写时确定所述单词的发音。
15.如权利要求7所述的计算机可读媒质,其特征在于,基于所述互信息得分组合文法音素包括对与新文法音素单元相关联的至少两个互信息得分求和。
16.一种把单词分割成音节的方法,其特征在于,所述方法包括使用互信息得分把一组单词分割成语音音节;使用所分割的单词组训练音节n字母组模型;以及使用所述音节n字母组模型,通过强制对齐把单词的语音表示分割成音节。
17.一种把单词分割成词素的方法,其特征在于,所述方法包括使用互信息得分把一组单词分割成词素;使用所分割的单词组训练词素n字母组模型;以及使用所述词素n字母组模型,通过强制对齐把单词分割成词素。
全文摘要
提供了一种把单词分割成组成部分的方法和装置。在本发明中,确定在一组单词中发现的文法音素单元对的互信息得分。每个文法音素单元包括至少一个字母。一对文法音素单元的文法音素单元基于所述互信息得分被组合。这形成新的文法音素单元。在本发明的一个实施例中,音节n字母组模型基于使用互信息已经被分割成音节的单词来训练。音节n字母组模型用于把新单词的语音表示分割成音节。类似地,使用互信息形成词素库,并训练词素n字母组,从而可以用于把新单词分割成词素序列。
文档编号G10L13/00GK1667699SQ20051005275
公开日2005年9月14日 申请日期2005年3月10日 优先权日2004年3月10日
发明者蒋力, M·-Y·黄 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1