具体实施方式
图1示出语音处理***10的总体配置。该语音处理***10包括:存储部分20、语音识别装置30和语音合成装置40。语音识别装置30识别由用户发出的语音以便产生文本。基于识别的语音,语音识别装置30将产生的文本与音素和重音相关联地存储在存储部分20中。存储在存储部分20中的文本用作用于语音合成的语料库。
当语音合成装置40采集要为其输出音素和重音的文本时,语音合成装置40将该文本与存储在存储部分20中的语料库比较。语音合成装置40接着从所述语料库中,为具有最高出现概率的文本中的多个词选择音素和重音的组合。该语音合成装置40基于选择的音素和重音产生合成语音,并且将它输出。
按照本实施例,语音处理***10基于用于该组的音素和重音的组合的出现概率,为连续出现在该语料库中的每组拼写选择要处理的文本的音素和重音。这样做的目的是除了词本身的出现概率外,还考虑词的上下文来选择音素和重音。用于语音合成的语料库能够使用例如语音识别技术自动产生。这样做的目的是节约语音合成要求的劳力和成本。
图2示出存储部分20的示范性数据结构。该存储部分20存储第一语料库22和第二语料库24。在第一语料库22中,为文本中包括的各词的各个片段记录在先输入的文本的拼写、词性、音素和重音。例如,在如图2中示出的例子中的第一语料库22中,文本“京都タワ一ホテル”被分段成拼写“京都”、“タワ一”和“ホテル”,并且按照该顺序记录这些。同样在第一语料库22中,分开记录了拼写“京都”、“タワ一”和“ホテル”用于另外的上下文。
第一语料库22将拼写“京都”与信息相关联地存储,该信息指示表达中的词为专有名词(proper noun)、音素是“Kyo:to”、以及重音是“LHH”。这里,冒号“:”表示延长的发音,而“H”和“L”分别表示高音调(high-pitch)和低音调的重音元素。也就是说,词“京都”的第一个音节用低音调的重音发音为“Kyo”,第二个音节“o:”用高音调的重音,并且第三个音节“to”用高音调的重音。
另一方面,出现在另一个上下文中的词“京都”与重音“HLL”相关联地存储,该词“京都”与文本“京都タワ一ホテル”中的词“京都”的重音不同。类似地,词“タワ一”与文本“京都タワ一ホテル”中的重音“HHH”相关联,但在另一个上下文中与重音“HLL”相关联。用此方法,记录在该词出现的上下文中使用的每个词的音素和重音,而不是该词的单意的(univocal)音素和重音。
为了方便解释,在图2中分别用指示高音调和低音调的“H”和“L”表示重音。然而,重音可以由重音模式被分类到其中的、预定类型的标识符表示。例如,“LHH”可以表示为类型X以及“HHH”可以表示为类型Y,并且第一语料库22可以记录这些重音类型。
语音合成装置40可以被用于各种应用中。在语音合成装置40中能够输入各种文本,如电子邮件、布告栏、网页以及报纸或书的草稿副本中的那些。因此,在第一语料库22中记录能够出现在要处理的每个文本中的所有词是不现实的。存储部分20还存储第二语料库24,使得在第一语料库22中没有出现的、要处理的文本中的音素能够适当地确定。
尤其是,在第二语料库24中记录的是将从与要处理的文本中的词的比较而排除的、第一语料库22的词中包括的每个字符的音素。还在第二语料库24中记录的是要被排除的词中的每个字符的词性和重音。例如,如果文本“京都タワ一ホテル”中的词“京都”是要被排除的词,则第二语料库24分别将包括在词“京都”中的字符“京”和“都”的音素“kyo”和“to”,与各自的字符相关联地记录。词“京都”是名词,并且其重音是类型X。相应地,第二语料库24还分别与字符“京”和“都”相关联地记录指示词性、名词和重音类型X的信息。
提供第二语料库24使得能够通过组合字符“京”和“都”的音素适当地确定词“京都”,即使词“京都”没有记录在第一语料库22中。
第一语料库22和/或第二语料库24还可以记录文本和词的开头和结尾、新行和间隔等,作为用于识别其中使用词的上下文的符号。该信息使得能够更精确地分配音素和重音。
除了第一语料库22和第二语料库24外,存储部分20还可以存储有关语音合成要求的音素和韵律(prosody)的信息。例如,语音识别装置30可以产生韵律信息,其是通过语音识别识别的词的音素、和有关当该音素实际说出时要使用的韵律音素的信息的联合,并且可以将该韵律信息存储在存储部分20中。在此情形中,语音合成装置40可以选择要处理的文本的音素,然后基于韵律信息产生选择的音素的韵律和音素,并且将它们输出作为合成语音。
图3示出语音识别装置30的功能性配置。语音识别装置30包括语音识别装置30语音识别部分300、音素产生部分310、重音产生部分320、第一语料库产生部分330、频率计算部分340、第二语料库产生部分350和韵律信息产生部分360。语音识别部分300识别语音以产生其中为单独的词片段分开记录拼写的文本。语音识别部分300可以为识别的文本中的每个词产生数据,在该识别的文本中该词的词性与该词相关联。此外,语音识别部分300可以按照用户操作更正该文本。
音素产生部分310基于语音识别部分300采集的语音,产生文本中的每个词的音素。音素产生部分310可以按照用户操作更正音素。重音产生部分320基于语音识别部分300采集的语音,产生每个词的重音。或者,重音产生部分320可以接受由用户为文本中的每个词输入的重音。
第一语料库产生部分330将由语音识别部分300产生的文本,与由音素产生部分310产生的音素和从重音产生部分320输入的重音相关联地记录,以便产生第一语料库22,并将其存储在存储部分20中。频率计算部分340计算第一语料库中出现的各组拼写、音素和重音的出现频率。为每组拼写、音素和重音而不是为每个拼写计算出现频率。例如,如果拼写“京都”的出现频率高,但是具有重音“LHH”的拼写“京都”的出现频率低,则该低的出现频率将导致与该组拼写和重音相关联。
第一语料库产生部分330将具有比预定标准低的出现频率的各组拼写、音素和重音记录在第一语料库22中,作为要排除的词。第二语料库产生部分350将要排除的每个词中包括的每个字符,与具有该字符的音素相关联地记录在第二语料库24中。韵律信息产生部分360为由语音识别部分300识别的文本中包括的每个词,产生指示该词的韵律和音素的韵律信息,并且将该韵律信息存储在存储部分20中。
第一语料库产生部分330可以为在第一语料库22中按顺序出现的每组拼写,产生指示在第一语料库22中的该组拼写中的音素和重音的出现频率或次数的语言模式,并且可以将该语言模式存储在存储部分20中,而不是将第一语料库22本身存储在存储部分20中。类似地,第二语料库产生部分350可以为在第二语料库24中按顺序出现的每组字符,产生指示在第二语料库24中的该组字符中的音素的出现频率和次数的语言模式,并且可以将该语言模式存储在存储部分20中,而不是将第二语料库24本身存储在存储部分20中。语言模式便利语料库中的音素和重音的出现概率的计算,由此提高从文本输入到合成语音的输出的处理效率。
图4示出语音合成装置40的功能性配置。语音合成装置40包括文本采集部分400、搜索部分410、选择部分420和语音合成部分430。文本采集部分400采集要处理的文本。该文本可以例如用日文或汉字写入,其中词的边界没有明显指示。搜索部分410搜索第一语料库22,以从在第一语料库22中按顺序出现的各组拼写中检索与该文本中的拼写匹配的至少一组拼写。选择部分420从与检索的一组或多组拼写相对应的音素和重音的组合中,选择比预定的参考概率频率更频繁地出现在第一语料库22中的音素和重音的组合,作为该文本的音素和重音。
优选地,选择部分420选择具有最高出现概率的音素和重音的组合。更优选地,选择部分420通过考虑其中出现要处理文本的上下文,选择音素和重音的最适当的组合。如果在第一语料库22中没有发现匹配要处理的文本中的拼写的拼写,则选择部分420可以从第二语料库24中选择该拼写的音素。然后,语音合成部分430基于选择的音素和重音产生合成语音,并且将其输出。在这样做的过程中,期望语音合成部分430使用在存储部分20中存储的韵律信息。
图5示出用于通过使用语音识别产生语料库的过程的例子。语音识别部分300接收由用户输入的语音(S500)。语音识别部分300接着识别该语音并且产生其中分开地为各个词片段记录拼写的文本(S510)。音素产生部分310基于由语音识别部分300采集的语音,产生在该文本中的每个词的音素(S520)。重音产生部分320从用户获得该文本中每个词的输入的音素(S530)。
第一语料库产生部分330通过将由语音识别部分300产生的文本、与由音素产生部分310产生的音素和由重音产生部分320产生的重音相关联地记录,产生第一语料库(S540)。该频率计算部分340计算第一语料库22中的各组拼写、音素和重音的出现频率(S550)。然后,第一语料库产生部分330在第一语料库22中,记录不及预定参考值频繁地出现的各组拼写、音素和重音,作为要排除的词(S560)。第二语料库产生部分350在第二语料库24中,记录在要排除的每个词中包括的每个字符及其音素(S570)。
图6示出产生要排除的词和第二语料库的例子。第一语料库产生部分330检测具有低于预定参考值的出现频率的各组拼写、音素和重音,作为要排除的词。将注意力集中在第一语料库22中要排除的各词上,将参照图6详细描述对各词执行的处理。如图6(a)所示,词“ABC”、“DEF”、“GHI”、“JKL”和“MNO”被检测为要排除的词。尽管为了方便解释,在图6中用字母字符抽象地表示构成各词的字符,但是在实践中,各词的拼写由在语音合成中要处理的语言的字符构成。
要排除的词的拼写不与要处理的文本中的词比较。因为这些词通过利用例如语音识别技术从语音到文本的转换得到,它们的词性和重音是已知的。要被排除的每个词的词性和重音类型,与该词相关联地存储在第一语料库22中。例如,词性“名词”和重音类型“X”与该词“ABC”相关联地记录在第一语料库22中。应该注意到,要排除的词的拼写“ABC”和音素“abc”不必记录在第一语料库22中。
如图6(b)所示,第二语料库产生部分350将要排除的每个词中包括的字符,与它们的音素、该词的词性和该词的重音类型相关联地记录在第二语料库24中。具体地,因为词“ABC”被检测为要排除的词,所以第二语料库24将构成该词的字符“A”、“B”和“C”与它们的音素相关联地记录。此外,第二语料库24通过要排除的词的词性和重音的集合,将要排除的每个词中包括的字符的音素分类,并且记录它们。例如,因为词“ABC”是名词并且其重音类型是X,所以在该词“ABC”中出现的字符“A”与“名词”和“重音类型X”相关联,并且按“名词”和“重音类型X”记录。
如第一语料库22中的,不是记录每个字符的单意的音素,而是将其中出现字符的词中使用的音素记录在第二语料库24中。例如,在第二语料库24中,音素“a”可以与词“ABC”中的拼写“A”相关联地被记录,并且除此之外,另一个音素可以与在要排除的另一个词中出现的拼写“A”相关联地被记录。
相对于图6描述的、用于产生要排除的词的方法仅仅是说明性的,并且任何其它的方法可以用于产生要排除的词。例如,由工程师或用户预先设置的词可以产生为要排除的词,并且可以记录在第二语料库中。
图7示出用于选择要处理的文本的音素和重音的过程的例子。文本采集部分400采集要处理的文本(S700)。搜索部分410通过在第一语料库22中按顺序出现的各组拼写搜索,以便检索与要处理的文本中的拼写匹配的所有组拼写(S710)。选择部分420选择对应于从第一语料库22检索的各组拼写的音素和重音的所有组合(S720)。
在步骤S710,搜索部分410可以搜索第一语料库22,以便除了完全匹配该文本中的拼写的各组拼写之外,还检索匹配该文本的各组拼写,除了要排除的词。在此情形中,选择部分420从第一语料库22中,选择包括在步骤S720中要排除的词的、检索的各组拼写的音素和重音的所有组合。
如果检索的该组拼写包括要排除的词(S730:是),则搜索部分410搜索第二语料库24,为了与要排除的词相对应的、要处理的文本的部分文本中的字符匹配的字符组(S740)。然后,选择部分420获得包括要排除的词的、检索的拼写组的音素和重音的每个组合的出现概率(S750)。选择部分420还为该部分文本计算各字符组的各音素的每个组合的出现概率,该字符组从与在第二语料库24中要排除的词的词性和重音相对应的字符中检索。选择部分420然后计算获得的出现概率的积,并选择提供最大积的音素和重音的组合(S760)。
如果在步骤S710检索的各组拼写不包括要排除的词(S730:否),则选择部分420可以计算检索的各组拼写的音素和重音的每个组合的出现概率(S750),并且可以选择具有最高出现概率的音素和重音的组(S760)。然后,语音合成部分430基于选择的音素和重音产生合成语音,并且输出该语音(S770)。
最好选择具有最高出现概率的音素和重音的组合。或者,可以选择具有比预定的参考概率高的出现概率的音素和重音的任何组合。例如,选择部分420可以从检索的包括要排除的词的各组拼写的音素和重音的组合中,选择具有比预定的参考概率高的出现概率的音素和重音的组合。而且,选择部分420可以从为相对于要排除的词的部分文本检索的各组字符的音素组合中,选择具有比另一个参考概率高的出现概率的音素的组合。利用该处理,能够用某种精确度确定音素和重音。
最好,在步骤S760,不仅为要处理的一个给定文本获得的出现概率,而且为在该文本前后的各文本获得的出现概率,被用来选择音素和重音组。该处理的一个已知的例子是所谓的统计模型或n-gram模型(详见非专利文献1)的技术。下文将描述其中将本发明应用于n-gram中的一种的2-gram模型的过程。
图8示出通过使用统计模型选择音素和重音的过程的例子。在步骤S760为了让选择部分420选择音素和重音,选择部分420最好如图8所示使用为要处理的多个文本获得的出现概率。下文将详细描述该过程。首先,文本采集部分400输入包括要处理的多个文本的文本。例如,文本可以是“山田君は京都タワ一…ABC…”。在该文本中,要处理的文本的边界没有明显指示。
首先将描述这样的情形:其中要处理的文本匹配不包括要排除的词的拼写组。
文本采集部分400从该文本中选择部分“山田君”作为要处理的文本800a。搜索部分410遍及第一语料库22中的各组连续的拼写序列搜索,为了匹配要处理的文本800a的拼写的拼写组。例如,如果词810a“山田”和词810b“君”连续地记录,则搜索部分410搜索词810a和810b。而且,如果词810c“山”和词810d“田君”连续地记录,则搜索部分410搜索部分410词810c和810d。
这里,拼写“山田”与音素“yamada”的自然重音相关联,在日本是通常的姓或地名。拼写“山”与适合于表示山(mountain)等的普通名称的重音相关联。尽管为了便于说明在图8中示出具有不同词边界的多组拼写,但是能够发现具有相同词边界而不同音素或重音的各组拼写。
选择部分420计算在第一语料库22中、与检索的各组拼写相对应的音素和重音的每个组合的出现概率。例如,如果连续的词810a和810b序列出现9次,而词810c和810d序列出现一次,则词810a和810b的组的出现概率是90%。
接着,文本采集部分400前进到要处理的下一个文本的处理。例如,文本采集部分400选择拼写“田君は”作为要处理的文本800b。搜索部分410搜索包括词“田君”810d和词“は”810e的拼写组、以及包括词“田君”810d和词“は”810f的拼写组。这里,词810e和810f拼写形式相同,但是它们音素或重音不同。因此,要分开地搜索它们。选择部分420计算连续的词810d和810e序列的出现概率以及连续的词810d和810f序列的出现概率。
然后,文本采集部分400进行到要处理的下一个文本的处理。例如,文本采集部分400选择拼写“君は”作为要处理的文本800c。搜索部分410搜索包括词“君”810b和词“は”810e的拼写组、以及包括词“君”810b和词“は”810f的拼写组。选择部分420计算词810b和810e的连续序列的出现概率以及词810b和810f的连续序列的出现概率。
类似地,文本采集部分400顺序选择要处理的文本800d、800e和800f。选择部分420计算在每个要处理的文本中、匹配所述拼写的每组拼写的音素和重音的组合的出现概率。最后,选择部分420计算在每个路径中各组拼写的出现概率的积,通过该路径顺序选择匹配输入文本的部分的各组拼写。例如,选择部分420计算路径中的词810a和810b的集合的出现概率、词810b和810e的集合的出现概率、词810e和810g的集合的出现概率以及词810g和810h的集合的出现概率,通过该路径选择部分420顺序地选择词810a、810b、810e、810g和810h。
所述计算能够概括为表达式(1)。
公式1
这里,“h”表示各组拼写的数目,在所示例子中它是5,而“k”表示在要反向审查的上下文中的词的数目。因为在所示例子中假定是2-gram模型,所以k=1。而且,u=<w,t,s,a>。各符号对应图2中的那些,其中“w”表示拼写,“t”表示词性,“s”表示音素,而“a”表示重音。
选择部分420选择在通过每个路径计算的概率中提供最高出现概率的音素和重音的组合。选择过程能够概括为等式(2)。
公式2
这里,“x1x2…xh”表示由文本采集部分400输入的文本,并且x1x2…xh中的每个是字符。
按照上述过程,语音合成装置40能够比较输入文本的上下文和在第一语料库22中包括的文本的上下文,以便适当地确定要处理的文本的音素和重音。
下文描述其中要处理的文本匹配包括要排除的词的拼写组的过程。搜索部分410检索包括要排除的词820a和词810k的拼写组,作为除了要排除的词外匹配要处理的文本中的拼写800g的拼写组。要排除的词820a实际上包括拼写“ABC”,其从所述比较中被排除。搜索部分410还检测包括要排除的词820b和词8201的拼写组,作为除了要排除的词外匹配要处理的文本中的拼写800g的拼写组。要排除的词820b实际上包括从所述比较中被排除的拼写“MNO”。
选择部分420计算检索的包括要排除的词的各组拼写的音素和重音的每个组合的出现概率。例如,选择部分420计算要排除的词820a和词810k在第一语料库22中按该顺序连续出现的概率。选择部分420然后为与要排除的词的相对应的部分文本“PQR”,计算在与要排除的词的词性和重音相对应的字符中检索的各组字符的音素的每个组合在第二语料库24中的出现概率。也就是说,选择部分420使用所有要排除的词来计算字符P、Q和R的出现概率,该要排除的词是名词并且是重音类型X。选择部分420然后计算包括这种顺序的字符P和Q的连续序列的字符串的出现概率。选择部分420还计算包括这种顺序的字符Q和R的连续序列的字符串的出现概率。选择部分420然后用基于第二语料库24计算的每个出现概率、与基于第一语料库22计算的每个出现概率相乘。
选择部分420还计算在第一语料库22中按要排除的词820b和词8101按这种顺序连续出现的出现概率。选择部分420然后通过使用所有要排除的词来计算字符P、Q和R的出现概率,该要排除的词是动词并且是重音类型Y。选择部分420还计算包括这种顺序的字符P和Q的连续序列的字符串的出现概率。选择部分420还计算包括这种顺序的字符Q和R的连续序列的字符串的出现概率。选择部分420然后用基于第二语料库24计算的每个出现概率、与基于第一语料库22计算的每个出现概率相乘。
类似地,选择部分420计算在第一语料库22中要排除的词820a和词8101按这种顺序连续出现的出现概率。也就是说,选择部分420通过使用是名词并且是重音类型X的所有要排除的词,计算字符P、Q和R的出现概率。选择部分420然后计算包括这种顺序的字符P和Q的连续序列的字符串的出现概率。选择部分420还计算包括这种顺序的字符Q和R的连续序列的字符串的出现概率。选择部分420然后用基于第二语料库24计算的每个出现概率、与基于第一语料库22计算的每个出现概率相乘。
而且,选择部分420还计算在第一语料库22中要排除的词820b和词810k按这种顺序相邻出现的出现概率。选择部分420然后通过使用是动词并且是重音类型Y的所有要排除的词,计算字符P、Q和R的出现概率。选择部分420计算包括这种顺序的字符P和Q的连续序列的字符串的出现概率。选择部分420还计算包括这种顺序的字符Q和R的连续序列的字符串的出现概率。选择部分420然后用基于第二语料库24计算的每个出现概率与基于第一语料库22计算的每个出现概率相乘。
选择部分420选择在这样计算的出现概率的积中、具有最高出现概率的音素和重音的组合。该过程能够概括为:
[公式3]
[公式4]
选择部分420选择提供最高出现概率的要排除的词的重音,作为与要排除的词相对应的部分文本的重音。例如,如果要排除的词820a和词810k组的出现概率、和是名词并且是重音类型X的词中的字符的出现概率的积最高,则选择要排除的词820a的重音类型X作为该部分文本的重音。
如已经参照图8描述的,语音合成装置40能够确定与要排除的词相对应的部分文本中的字符的音素和重音,即使要处理的文本匹配包括要排除的词的文本。因此,语音合成装置能够为各种文本、以及完全匹配第一语料库22中的拼写的文本提供适当的音素和重音。
图9示出用作语音识别装置30和语音合成装置40的信息处理装置500的示范性硬件配置。信息处理装置500包括:CPU部分,包括CPU 1000、RAM 1020以及图形控制器1075,其通过主机控制器1082相互连接;输入/输出部分,包括通信接口1030、硬盘驱动器1040和CD-ROM驱动器1060,其通过输入/输出控制器1084连接到主机控制器1082;以及遗赠(legacy)输入/输出部分,包括BIOS 1010、软盘驱动器1050和输入/输出芯片1070,其连接到输入/输出控制器1084。
主机控制器1082将以更高的传输速率访问RAM 1020的CPU 1000和图形控制器1075与RAM 1020连接。CPU 1000按照存储在BIOS 1010和RAM1020中的程序操作,以便控制信息处理装置500的各组件。图形控制器1075获得由CPU 1000等、在RAM 1020中提供的帧缓冲器上产生的图像数据,并且使得它显示在显示设备1080上。或者,图形控制器1075可以包括用于存储由CPU 1000等产生的图像数据的帧缓冲器。
输入/输出控制器1084将主机控制器1082与是相对快的输入/输出设备的通信接口1030、硬盘驱动器1040和CD-ROM驱动器1060连接。通信接口1030通过网络与外部设备通信。硬盘驱动器1040存储由信息处理装置500使用的程序和数据。CD-ROM驱动器1060从CD-ROM 1095读取程序或数据,并且将它提供给RAM 1020或硬盘驱动器1040。
连接到输入/输出控制器1084的是BIOS 1010和相对慢的输入/输出设备(如软盘驱动器1050)、以及输入/输出芯片1070。BIOS 1010存储由CPU1000在信息处理装置500的启动(boot-up)期间执行的引导程序、依赖于信息处理装置500的硬件的程序等。软盘驱动器1050从软盘1090读取程序或数据,并且通过输入/输出芯片1070将它提供给RAM 1020或硬盘驱动器1040。输入/输出芯片1070通过各端口(如例如并口、串口、键盘端口和鼠标端口)连接软盘1090和各种输入输出设备。
要提供给信息处理装置500的程序存储在记录介质(如软盘1090、CD-ROM 1095或IC卡)上,并且由用户提供。所述程序从记录介质读取,并且通过输入/输出芯片1070和/或输入/输出控制器1084安装在信息处理装置500中,并且被执行。在程序的控制下由信息处理装置500等执行的操作,与参照图1至8描述的语音识别装置30和语音合成装置40中的操作相同,因此将忽略对它们的描述。
上述程序可以存储在外部存储介质中。所述存储介质可以是软盘1090或CD-ROM 1095、或光记录介质(如DVD和PD)、磁光记录介质(如MD)、带介质、或半导体存储器(如IC卡)。或者,在连接到私有通信网络或因特网的服务器***中提供的存储设备(如硬盘或RAM)可以用作记录介质,并且所述程序可以从所述存储设备、通过网络提供到信息处理装置500。
尽管已经参照其各实施例描述了本发明,但是本发明的技术范围不局限于参照各实施例描述的范围。对本领域技术人员将是明显的是,能够对各实施例进行各种修改和改进。从权利要求的描述中将明显的是,对其进行这样的修改和改进的各实施例也落入本发明的技术范围的范围内。