CN105869446B - 一种电子阅读装置和语音阅读加载方法 - Google Patents
一种电子阅读装置和语音阅读加载方法 Download PDFInfo
- Publication number
- CN105869446B CN105869446B CN201610188668.2A CN201610188668A CN105869446B CN 105869446 B CN105869446 B CN 105869446B CN 201610188668 A CN201610188668 A CN 201610188668A CN 105869446 B CN105869446 B CN 105869446B
- Authority
- CN
- China
- Prior art keywords
- sentence
- word
- voice reading
- synthesis
- record
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B5/00—Electrically-operated educational appliances
- G09B5/06—Electrically-operated educational appliances with both visual and audible presentation of the material to be studied
- G09B5/065—Combinations of audio and video presentations, e.g. videotapes, videodiscs, television systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/189—Automatic justification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Machine Translation (AREA)
Abstract
本发明提供了一种电子阅读装置和语音阅读加载方法。所述语音阅读加载方法包括:排版引擎对解析后的文本进行排版,包括:以预设的断句规则对该文本进行断句并记录顺序断出的每个句子的坐标信息和相应句子数目;以所述预设的断句规则对排版完的文本进行断句并且在断好的每一个句子的结束位置添加一个唯一标识,形成携带有唯一标识的新句子;将断出的新句子发送给语音合成引擎以合成音频数据并且记录与新句子对应的起始字符位置以及合成的句子数目;从选定的句子开始执行语音朗读。
Description
技术领域
本发明涉及计算机技术领域,具体而言涉及一种电子阅读装置和语音阅读加载方法。
背景技术
目前市场上常见的电子书籍阅读软件具有听书功能(即语音朗读),但都需要将阅读的文字数据传送给语音合成引擎进行语音合成,从而将文字或单词转化成语音数据。转化的过程都是通过转化的字符数来计算进度,例如一个文本有3句话,第一句有20个字符,第二句有10个字符,第三句有30个字符;当合成到第40个字符后,语音引擎的合成进度就是67%,通过这个进度只能知道当前的字符位置,但没办法定位到当前进度是第几句话,这是因为现有的语音合成引擎不具备断句功能。这样就带来了一个问题:当用户需要跳句来听语音朗读时,例如从第一句直接跳到第三句来听语音朗读,此时没法确定该第三句话是否已经合成为语音数据,这就只能重新再合成一遍。这种工作方式对终端设备的性能造成了极大的浪费,尤其是智能移动终端,并且执行跳句的语音朗读的速度会很慢,尤其选择的句子靠后时,例如第15句、第20句、或第30句等,这会造成用户的体验感很差。
发明内容
本发明的目的在于提供一种电子阅读装置和语音阅读加载方法,以改善上述的问题。
本发明实施例提供了一种语音阅读加载方法,其包括:
排版引擎对解析后的文本进行排版,包括:以预设的断句规则对该文本进行断句并记录顺序断出的每个句子的坐标信息和相应句子数目;
以所述预设的断句规则对排版完的文本进行断句并且在断好的每一个句子的结束位置添加一个唯一标识,形成携带有唯一标识的新句子;
将断出的新句子发送给语音合成引擎以合成音频数据并且记录与新句子对应的起始字符位置以及合成的句子数目;
从选定的句子开始执行语音朗读。
优选的,所述每个句子的坐标信息包括每个句子在屏幕上显示的每一行的起始字符和结束字符在该屏幕上的坐标。
优选的,其中所述预设的断句规则是根据标点符号的作用来预先设置的,其中将显示的最后一个表示句尾的标点符号之后的最后一段话默认为一个句子。
优选的,其中所述预设的断句规则还包括:对一个句子包含的文字或单词数量预设置一个阈值,当一个句子所包含的文字或单词数量超过该阈值时默认阈值数以内的所有文字或单词为1个句子。
优选的,其中所述预设的断句规则还包括:对一个句子包含的文字或单词数量预设一个阈值,当一个句子所包含的文字或单词数量超过该阈值时在阈值数以内的所有文字或单词当中找其他标点符号,以最后一个标点符号表示该句子的结束。
优选的,其中所述唯一标识是一个字符串,并且作为唯一标识的字符串与表示文本内容的字符串不同。
优选的,其中在发送时,用一个数据包将断好的所有携带有唯一标识的新句子一次性发送给语音合成引擎。
优选的,其中在合成音频数据并且记录与新句子对应的起始字符位置以及合成的句子数目的步骤中,用数组形式的数据集合来保存与新句子对应的起始字符位置以及合成的句子数目,每当合成进度到唯一标识位置时合成的句子数目自动加1,同时记录与该句子的起始字符对应的位置,从而记录下每一个新句子的起始字符为在屏幕上显示的1页文字的文字字符数据中的第几个以及该句子为被合成的第几个句子。
优选的,其中在从选定的句子开始执行语音朗读的步骤中,
当选择从首句开始语音朗读时,直接执行语音朗读;
当选择跳句语音朗读时,根据排版引擎记录的句子的坐标信息和相应句子数目以及语音合成引擎记录的新句子的起始字符位置和合成的句子数目,执行语音朗读。
优选的,其中在当选择跳句语音朗读时,根据排版引擎记录的句子的坐标信息和相应句子数目以及语音合成引擎记录的新句子的起始字符位置和合成的句子数目,执行语音朗读的步骤中,通过选定的句子的坐标信息和排版引擎记录的句子的坐标信息和相应句子数目来得到所选定的句子的相应句子数目,将所选定的句子的相应句子数目与记录的合成的句子数目进行比较,当所选定的句子的相应句子数目小于记录的合成的句子数目时直接执行语音朗读;当所选定的句子的相应句子数目大于等于记录的合成的句子数目时先将所选定的句子发送给语音合成引擎进行语音合成,然后再进行语音朗读。
本发明实施例还提供了一种电子阅读装置,包括:
排版引擎,用于对解析后的文本进行排版,包括:以预设的断句规则对该文本进行断句并记录顺序断出的每个句子的坐标信息和相应句子数目;
断句单元,用于以所述预设的断句规则对排版完的文本进行断句并且在断好的每一个句子的结束位置添加一个唯一标识,形成携带有唯一标识的新句子;
发送单元,用于将断出的新句子发送给语音合成引擎;
语音合成引擎,用于将接收的文本合成音频数据并且记录与新句子对应的起始字符位置以及合成的句子数目;
语音朗读单元,用于语音朗读合成的音频数据。
优选的,其中所述每个句子的坐标信息包括每个句子在屏幕上显示的每一行的起始字符和结束字符在该屏幕上的坐标。
优选的,其中所述预设的断句规则是根据标点符号的作用来预先设置的,其中将显示的最后一个表示句尾的标点符号之后的最后一段话默认为一个句子。
优选的,其中所述预设的断句规则还包括:对一个句子包含的文字或单词数量预设一个阈值,当一个句子所包含的文字或单词数量超过该阈值时默认阈值数以内的所有文字或单词为1个句子。
优选的,其中所述预设的断句规则还包括:对一个句子包含的文字或单词数量预设置一个阈值,当一个句子所包含的文字或单词数量超过该阈值时在阈值数以内的所有文字或单词当中找其他标点符号,以最后一个标点符号表示该句子的结束。
优选的,其中所述唯一标识是一个字符串,并且作为唯一标识的字符串与表示文本内容的字符串不同。
优选的,其中发送单元在发送时,用一个数据包将断好的所有携带有唯一标识的新句子一次性发送给语音合成引擎。
优选的,其中语音合成引擎使用数组形式的数据集合来保存与新句子对应的起始字符位置以及合成的句子数目,每当合成进度到唯一标识位置时合成的句子数目自动加1,同时记录与该句子的起始字符对应的位置,从而记录下每一个新句子的起始字符为在屏幕上显示的1页文字的文字字符数据中的第几个以及该句子为被合成的第几个句子。
优选的,其中语音朗读单元在语音朗读合成的音频数据时,或者从首句开始语音朗读,或者跳到中间句开始语音朗读,当选择跳句语音朗读时,所述语音朗读单元根据排版引擎记录的句子的坐标信息和相应句子数目以及语音合成引擎记录的新句子的起始字符位置和合成的句子数目,执行语音朗读。
优选的,其中语音朗读单元通过选定的句子的坐标信息和排版引擎记录的句子的坐标信息和相应句子数目来得到所选定的句子的相应句子数目,将所选定的句子的相应句子数目与记录的合成的句子数目进行比较,当所选定的句子的相应句子数目小于记录的合成的句子数目时直接执行语音朗读;当所选定的句子的相应句子数目大于等于记录的合成的句子数目时先将所选定的句子发送给语音合成引擎进行语音合成,然后再进行语音朗读。
有益效果:本发明实施例提供的电子阅读装置及语音阅读加载方法,能够提前对需要转化成语音的文字或单词信息进行断句,在断好的每个句子的结束位置添加一个唯一标识,虽然现有的语音合成引擎不具备断句功能,但在本发明的技术方案里使用现有的语音合成引擎可以通过识别唯一标识来获知每个句子的结束,这样就可以除了合成语音之外还能够记录与每个句子对应的起始字符位置以及合成的句子数目,从而能够根据记录的字符位置进行跳句朗读,而不需要重新合成语音。这改善了现有的电子书籍阅读软件在用户进行跳句听语音朗读时必须从头开始重新再语音合成一遍的技术缺陷,大大提高了用户体验。
附图说明
图1是本发明的语音阅读加载方法的流程图。
图2是本发明的电子阅读装置的结构示意图。
具体实施方式
下面将结合本发明实施例和附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面将结合本发明的附图和具体实施例,对本发明的技术方案进行清楚、完整地描述。
下面使用的语音合成是指将文字转换成语音的公知技术,本领域称之为文语转换技术(简称TTS技术),也称为语音合成技术。这里提到的语音阅读就是前面提及的听书功能,使用语音合成技术将例如电子书等显示的文字转换成语音,再进行语音播放或朗读。具有语音阅读功能(听书功能)的电子书籍阅读软件可以安装在具有语音播放功能的智能移动终端上,例如市场上畅销的各种智能手机或者平板电脑;也可以使用具有语音阅读功能的电子阅读装置,例如市场上畅销的汉王公司制造的电子阅读器,这样通过语音阅读可以用耳朵去听书,无论是等车、坐车、走路,还是在做饭,用户可以随心所欲的听喜欢的电子书籍、电子杂志、电子报纸等。
图1是本发明的语音阅读加载方法的流程图。如图所示,本发明的语音阅读加载方法包括:
S1:排版引擎对解析后的文本进行排版,包括:以预设的断句规则对该文本进行断句并记录顺序断出的每个句子的坐标信息和相应句子数目。
人们常在智能电子产品,如智能手机或智能平板电脑上安装电子书籍阅读软件来阅读电子书籍等。当使用阅读软件打开各种格式的电子书时,例如TXT、UMD、EPUB、CHM、或PDF等,需要对电子书文件进行解析,例如解压、格式解析和描述语种解析,然后电子书籍阅读软件中的排版引擎对解析后的文本进行排版,例如进行字体、字号和字形设置等,这些都可以使用现有技术,这里不做过多描述。除此之外,排版过程还包括:以预设的断句规则对该文本进行断句并记录顺序断出的每个句子的坐标信息和相应句子数目。具体而言,断句规则可以根据想要得到的效果进行预先设计。这里根据标点符号的作用来设置一般性的断句规则。句号(。)表示一句话完了之后的停顿;逗号(,)表示一句话中间的停顿;顿号(、)表示句中并列的词或词组之间的停顿;分号(;)表示一句话中并列分句之间的停顿;冒号(:)用以提示下文;问号(?)用在问句之后;叹号(!)表示感叹句末尾的停顿。因此,可以用句号、问号、分号、冒号、叹号、省略号等标点符号对一段文字进行断句,即标点符号为句号、问号、分号、冒号、叹号、省略号的句子被断为一句。然后记录顺序断出的每一个句子的坐标信息,所述每一个句子的坐标信息包括每一个句子在屏幕上显示的每一行的起始字符和结束字符在该屏幕上的坐标。本领域技术人员都知道,智能终端的屏幕大小不同,同样一个句子在屏幕上显示的行数不同;另外,不同句子的字符数不同,在屏幕上显示的行数不同。存在一个句子在屏幕上显示多行的情况。因此,这里记录的每一个句子的坐标信息必须包括每一个句子在屏幕上显示的每一行的起始字符和结束字符在该屏幕上的坐标。当一个句子有多行时,则所述坐标信息包括多个坐标值,例如有3行,要记录6个坐标值,每一行包括2个坐标值,即每一行的起始字符和结束字符在屏幕上的坐标值。同时,还记录顺序断出的每个句子的相应数目。例如,使用智能手机上的电子阅读软件来阅读电子书籍,排版完毕后,排版引擎在后台对屏幕上显示的当前文字进行断句并记录顺序断出的每一个句子的坐标信息及其相应句子数目,例如记录第1个句子的坐标及其相应句子数目n=1,记录第2个句子的坐标及其相应句子数目n=2,记录第3个句子的坐标及其相应句子数目n=3……以此类推,直至记录完成屏幕上显示的最后一个句子。注意,如果屏幕上显示的最后一句没有符合表示句尾的标点符号如句号、问号、分号、冒号、叹号、省略号等,可以采用两种方式解决这个问题。方法1:在排版过程中,让屏幕上显示的最后一段的末尾为表示句尾的标点符号如句号、问号、分号、冒号、叹号、省略号等;方法2:将屏幕上显示的最后一个表示句尾的标点符号(如句号、问号、分号、冒号、叹号、省略号等)之后的最后一段话默认为一个句子。例如,屏幕下方显示的最后一段为“最近两年不见,他始终惦记着我。他写了一封信”,黑体字“他写了一封信”是屏幕上显示的最后一个表示句尾的标点符号之后的最后一段话,虽然末尾没有标点符号,但排版引擎还是将该句话默认为一个句子,记录其坐标及相应句子数目。所以,在预设断句规则时,可以将方法2给出的设定规则加入其中,即所述预设的断句规则可以根据标点符号的作用来预先设置,其中将显示的最后一个表示句尾的标点符号之后的最后一段话默认为一个句子。
S2:以所述预设的断句规则对排版完的文本进行断句并且在断好的每一个句子的结束位置添加一个唯一标识,形成携带有唯一标识的新句子。
这里的断句方法可以通过正则表达式采用上述预设的断句规则来进行断句。也就是说,该第2步骤采用的断句规则与第1步骤采用的断句规则是完全相同的,这样做的目的是便于后面将要执行的跳句语音朗读操作。所述正则表达式(Regular Expression)在代码中常简写为regex、regexp或RE,在计算机科学中是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。使用正则表达式将选取的正文按照标点符号进行断句,得到的每一个句子为一个片段。也可以采用其他公知的断句方法,但正则表达式的语法丰富,可以准确而灵活地描述各种复杂特征的字符串,且匹配的效率更高,所以优选使用正则表达式。
在以所述预设的断句规则对排版完的文本进行断句的过程中,在断好的每一个句子的结束位置添加一个唯一标识,形成携带有唯一标识的新句子。这里采用的唯一标识是一个字符串,要求作为唯一标识的字符串不能与表示文本的内容(例如文字、标点符号、特殊符号、数字、字母等)的字符串相同。换句话说,当后续的步骤要使用语音合成引擎进行文语转换时进度到该唯一标识的位置,语音合成引擎能够将该唯一标识识别为是该句子的结尾,而不能将其误认为是句子内容的一部分。因此,可以采用预设结构的组合字符串作为唯一标识,以使其与表示文本内容的字符串区别开。
随着网络文学越来越流行,很多文学爱好者都喜欢在网络上发布自己的作品,包括各种类型的小说、评论等。但很多时候作者即兴写的作品在没有经过的修改和编辑的情况下就发布在网络上。当用户下载这样的作品时,有可能遇到一个句子所包含的文字或单词数量过多的现象。即一个句子使用多个逗号进行间隔,在本应该使用句号的位置仍然使用了逗号(也许是笔误的原因),这就造成了在断句过程中,一个句子包含了过多的文字或单词。然而,语音合成引擎在将一个句子中的文字或单词转换为音频数据(语音)时需要一定时间,如果需要转换的文字或单词数量过多,则需要的时间就会比较长,这会引起程序运行的卡顿,用户体验感将变差。
因此,在一个优选实施例中,还可以将上述的第1和2步骤采用的预设的断句规则再加入一个限制规则,即对一个句子包含的文字或单词数量预设置一个阈值。当一个句子所包含的文字或单词数量超过该阈值时,采用方式之一是可以默认阈值数以内的所有文字或单词为1个句子,这里的“以内”可以含本数或者也可以不含本数;采用方式之二是在阈值数以内的所有文字或单词当中找其他标点符号,以最后一个标点符号表示该句子的结束,最后一个标点符号可以是例如逗号或破折号等,这里的“以内”可以含本数或者也可以不含本数。可以理解,在阈值数以内的所有文字或单词当中找其他标点符号是指所有文字或单词当中包含有标点符号,而不能限制性地理解为没有标点符号的单纯的文字或单词。
下面通过一个具体实例来详细说明。例如,预设阈值为100,见下面的一个例句:
“我们看了《西游记》,太上老君的金银二童子也好,青牛精也好,都给孙猴子制造了很大的麻烦,有些朋友说:他们都是靠太上老君的法宝,本身没啥本事,其实这种观点是不对的,青牛精的武功我就不多说了,总之和孙猴子真刀真枪的打了三个时辰不分胜负。”
该例句一共包含了114个文字。在该例句里,本应该使用句号的位置仍然使用了逗号。例如“都给孙猴子制造了很大的麻烦”处应该使用句号但却使用了逗号。而且,这种现象在网络文学作品中很常见。
当加入的限制规则采用方式1,即默认阈值数以内的所有文字或单词为1个句子,则100以内的所有文字在含本数时为:“我们看了《西游记》,太上老君的金银二童子也好,青牛精也好,都给孙猴子制造了很大的麻烦,有些朋友说:他们都是靠太上老君的法宝,本身没啥本事,其实这种观点是不对的,青牛精的武功我就不多说了,总之和孙猴子真”;不含本数时为:“我们看了《西游记》,太上老君的金银二童子也好,青牛精也好,都给孙猴子制造了很大的麻烦,有些朋友说:他们都是靠太上老君的法宝,本身没啥本事,其实这种观点是不对的,青牛精的武功我就不多说了,总之和孙猴子”,所列举的100以内的所有文字被断为一个句子。
当加入的限制规则采用方式2,即在阈值数以内的所有文字或单词当中找其他标点符号,以最后一个标点符号表示该句子的结束,则100以内的所有文字里的最后一个标点符号是在“青牛精的武功我就不多说了,总之和孙猴子”之间的逗号(,),则断句时以该逗号(,)为结尾的一个句子是:“我们看了《西游记》,太上老君的金银二童子也好,青牛精也好,都给孙猴子制造了很大的麻烦,有些朋友说:他们都是靠太上老君的法宝,本身没啥本事,其实这种观点是不对的,青牛精的武功我就不多说了”。
采用上述优选实施例,可以改善需要转换的文字或单词数量过多、需要的时间就会比较长、从而引起程序运行卡顿的技术问题。
S3:将断出的新句子发送给语音合成引擎以合成音频数据并且记录与新句子对应的起始字符位置以及合成的句子数目。
在发送时,用一个数据包将断好的所有携带有唯一标识的新句子一次性发送给语音合成引擎。语音合成引擎除了将接收的一个新句子的文字或单词合成音频数据之外,还要记录与该新句子对应的起始字符位置、以及合成的句子数目。这里所述的新句子的起始字符位置就是该句子的起始字符在屏幕上显示的1页文字的文字字符数据中为第几个字符数。所述的合成的句子数目就是每个已合成的句子为被合成的第几个句子。
具体而言,语音合成引擎在转换发送过来的文字或单词时会先调用字符串的函数来判断这个字符串中是否包含用作为唯一标识的字符串。用一个数据集合来保存与新句子对应的起始字符位置以及合成的句子数目。我们定义一个集合y{(n,m)},n表示合成的句子数目,n大于等于0,m表示与新句子对应的起始字符位置,m大于等于0。在工作中,每当合成进度到唯一标识位置时就将n进行加1记录,同时m记录与该句子的起始字符对应的位置,即起始字符为当前页的所有文字或单词字符数据中的第几个,形成一个数组形式的集合y{(n+1,m1),(n+2,m2),(n+3,m3),……}。例如集合y{(1,0),(2,20),(3,30)},这表示合成的第1句是从0字符开始,合成的第2句从第20个字符开始,合成的第3句从第30个字符开始。这样,当前页的所有文字或单词都合成了音频数据后,数组形式的集合y会记录下每一个新句子的起始字符位置以及该句子为被合成的第几个句子(即合成的句子数目)。
S4:从选定的句子开始执行语音朗读。
在从选定的句子开始执行语音朗读的过程中,用户可以选择从首句开始语音朗读,也可以选择跳句开始语音朗读,即跳到中间句开始语音朗读。例如,用户可以直接选择从第3句开始语音朗读,或者在语音朗读过程中,直接跳到后面的某一句开始语音朗读而省略中间的多个句子。
当选择从首句开始语音朗读时,直接执行语音朗读。
当选择跳句语音朗读时,根据排版引擎记录的句子的坐标信息和相应句子数目以及语音合成引擎记录的新句子的起始字符位置和合成的句子数目,执行语音朗读。
下面将对跳句语音朗读的过程进行详细介绍。
当用户选择语音朗读屏幕上显示的某一页的文字时,可以通过在屏幕上选择某一个句子作为开始来执行跳句语音朗读。选择方式可以采用目前流行的触摸选择方式,当然也可以采用选择键来进行光标选择方式。当选定了一个句子后,通过该选定的句子的坐标信息和排版引擎记录的句子的坐标信息和相应句子数目,可以知道当前选定的句子为第几个句子,例如两个坐标信息相符的相应句子数目为3,则当前选定的句子为第3个句子(即第3句)。通过语音合成引擎记录的新句子的起始字符位置和合成的句子数目,可以知道当前已经语音合成完毕的句子数目(即第几个句子)以及每个语音合成完毕的句子的起始字符位置,例如语音合成完毕的句子数目为4,即第4个句子已经被转换为音频数据。当所述选定的句子所对应的句子数目小于已经合成完毕的句子数目时,说明了当前的语音合成进度已经超过了所述选定的句子,可以直接执行所述选定的句子的语音朗读,例如从集合y中找到所述选定的句子的起始文字或单词对应的字符位置(即起始字符位置),然后开始语音朗读;当所述选定的句子所对应的句子数目大于等于已经合成完毕的句子数目时,说明了当前的语音合成进度还没有到达所述选定的句子或者刚刚到达所述选定的句子但尚未合成,此时先将所述选定的句子发送给语音合成引擎进行语音合成,然后再进行语音朗读。这样,可以直接从选择的句子开始进行语音合成,而无需从头合成语音。因此,本发明的技术方案在执行跳句语音朗读时,无需从第一句开始重新合成语音,可以加快跳句语音朗读的执行速度,提高了用户体验。
下面通过一个具体例子来进行说明。屏幕上显示的文本如下:
“近几年来,父亲和我都是东奔西走,家中光景是一日不如一日。他少年出外谋生,独力支持,做了许多大事。哪知老境却如此颓唐!他触目伤怀,自然情不能自已。情郁于中,自然要发之于外;家庭琐屑便往往触他之怒。他待我渐渐不同往日。但最近两年不见,他终于忘却我的不好,只是惦记着我,惦记着我的儿子。”
排版时根据预设的断句规则将显示的文本断句为8个句子,记录顺序断出的每个句子的坐标信息,以及与每个句子相应的数目1、2、……8,即第1句、第2句……第8句。
排版完成之后,断句单元根据所述预设的断句规则将排版完的文本断为8个句子,在断好的每一个句子的结束位置添加一个唯一标识,形成携带有唯一标识的新句子,即8个新句子。
将断出的8个新句子一并发送给语音合成引擎,语音合成引擎将接收的字符数据合成音频数据并且记录与新句子对应的起始字符位置以及合成的句子数目。在本例中,假设下划线标识的句子为当前已合成音频数据的句子,则语音合成引擎记录集合y{(1,0),(2,25),(3,43),(4,52)},这里同样是假设一个汉字为一个字符。即,语音合成的每个句子相应的数目顺序为1、2、3、4,第1句的起始字符位置是0、第2句的起始字符位置是第25个字符、第3句的起始字符位置是第43个字符和第4句的起始字符位置是第52个字符。
当选择跳句语音朗读时,假设黑体字标识的句子“哪知老境却如此颓唐”为用户选择的句子,则通过该选择的句子的坐标信息和排版引擎的记录,可以知道该选择的句子为第3句。将该选定的句子的相应句子数目3与当前已经语音合成的句子的数目4相比较,因为3<4,这说明了当前的语音合成进度已经超过了所述选定的句子,则直接从第三句“哪知老境却如此颓唐”执行语音朗读,而无需从头合成语音。
在上述过程中,再假设当前已经语音合成的句子的数目为2或3,因为3>2,这说明已经语音合成的句子还没到达选定的句子,其尚未合成;或者3=3,这说明语音合成的句子刚到选定的句子但尚未合成,这时可以直接将选定的第3句的文字发送给语音合成引擎进行合成,合成完毕后再开始语音朗读。
根据本发明的语音阅读加载方法,能够提前对需要转化语音的文字或单词信息进行断句,在断好的每个句子的结束位置添加一个唯一标识,虽然现有的语音合成引擎不具备断句功能,但在本发明的技术方案里使用现有的语音合成引擎可以通过识别唯一标识来获知每个句子的结束,这样就可以除了合成语音之外还能够记录与每个句子对应的起始字符位置以及合成的句子数目,从而能够根据记录的字符位置进行跳句朗读,而不需要重新合成语音。这改善了现有的电子书籍阅读软件在用户需要跳句来听语音朗读时必须从头开始重新再合成一遍的技术缺陷,大大提高了用户体验。
图2是本发明的电子阅读装置的结构示意图。如图所示,本发明的电子阅读装置包括:
排版引擎,用于对解析后的文本进行排版,包括:以预设的断句规则对该文本进行断句并记录顺序断出的每个句子的坐标信息和相应句子数目;
断句单元,用于以所述预设的断句规则对排版完的文本进行断句并且在断好的每一个句子的结束位置添加一个唯一标识,形成携带有唯一标识的新句子;
发送单元,用于将断出的新句子发送给语音合成引擎;
语音合成引擎,用于将接收的文本合成音频数据并且记录与新句子对应的起始字符位置以及合成的句子数目;
语音朗读单元,用于语音朗读合成的音频数据。
其中所述每个句子的坐标信息包括每个句子在屏幕上显示的每一行的起始字符和结束字符在该屏幕上的坐标。
其中所述预设的断句规则是根据标点符号的作用来预先设置的,其中将显示的最后一个表示句尾的标点符号之后的最后一段话默认为一个句子。
其中所述预设的断句规则还包括:对一个句子包含的文字或单词数量预设置一个阈值,当一个句子所包含的文字或单词数量超过该阈值时默认阈值数以内的所有文字或单词为1个句子。
其中所述预设的断句规则还包括:对一个句子包含的文字或单词数量预设置一个阈值,当一个句子所包含的文字或单词数量超过该阈值时在阈值数以内的所有文字或单词当中找其他标点符号,以最后一个标点符号表示该句子的结束。
其中所述唯一标识是一个字符串,并且作为唯一标识的字符串与表示文本内容的字符串不同。
其中发送单元在发送时,用一个数据包将断好的所有携带有唯一标识的新句子一次性发送给语音合成引擎。
其中语音合成引擎使用数组形式的数据集合来保存与新句子对应的起始字符位置以及合成的句子数目,每当合成进度到唯一标识位置时合成的句子数目自动加1,同时记录与该句子的起始字符对应的位置,从而记录下每一个新句子的起始字符为在屏幕上显示的1页文字的文字字符数据中的第几个以及该句子为被合成的第几个句子。
另外,根据本发明实施例的电子阅读装置在语音朗读合成的音频数据时,可以从选定的句子开始执行语音朗读。
在从选定的句子开始执行语音朗读的过程中,用户可以选择从首句开始语音朗读,也可以选择跳句开始语音朗读,即跳到中间句开始语音朗读。例如,用户可以直接选择从第3句开始语音朗读,或者在语音朗读过程中,直接跳到后面的某一句开始语音朗读而省略中间的多个句子。
具体而言,其中语音朗读单元在语音朗读合成的音频数据时,或者从首句开始语音朗读,或者跳到中间句开始语音朗读。
当用户选择从首句开始语音朗读时,所述语音朗读单元直接执行语音朗读。
当用户选择跳句语音朗读时,即跳到中间句语音朗读时,所述语音朗读单元根据排版引擎记录的句子的坐标信息和相应句子数目以及语音合成引擎记录的新句子的起始字符位置和合成的句子数目,执行语音朗读。
其中语音朗读单元通过选定的句子的坐标信息和排版引擎记录的句子的坐标信息和相应句子数目来得到所选定的句子的相应句子数目,将所选定的句子的相应句子数目与记录的合成的句子数目进行比较,当所选定的句子的相应句子数目小于记录的合成的句子数目时直接执行语音朗读;当所选定的句子的相应句子数目大于等于记录的合成的句子数目时先将所选定的句子发送给语音合成引擎进行语音合成,然后再进行语音朗读。
所述电子阅读装置实施例中各个单元模块的具体功能和交互方式可参见结合图1描述的方法实施例的相关记载,这里不过多重复。
根据本发明的电子阅读装置,能够提前对需要转化语音的文字或单词信息进行断句,在断好的每个句子的结束位置添加一个唯一标识,虽然现有的语音合成引擎不具备断句功能,但在本发明的技术方案里使用现有的语音合成引擎可以通过识别唯一标识来获知每个句子的结束,这样就可以除了合成语音之外还能够记录与每个句子对应的起始字符位置以及合成的句子数目,从而能够根据记录的字符位置进行跳句朗读,而不需要重新合成语音。这改善了现有的电子书籍阅读软件在用户需要跳句来听语音朗读时必须从头开始重新再合成一遍的技术缺陷,大大提高了用户体验。
本发明实施例所提供的语音阅读加载方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (20)
1.一种语音阅读加载方法,其包括:
排版引擎对解析后的文本进行排版,包括:以预设的断句规则对该文本进行断句并记录顺序断出的每个句子的坐标信息和相应句子数目;
以所述预设的断句规则对排版完的文本进行断句并且在断好的每一个句子的结束位置添加一个唯一标识,形成携带有唯一标识的新句子;
将断出的新句子发送给语音合成引擎以合成音频数据并且记录与新句子对应的起始字符位置以及合成的句子数目;
从选定的句子开始执行语音朗读。
2.根据权利要求1所述的语音阅读加载方法,其中所述每个句子的坐标信息包括每个句子在屏幕上显示的每一行的起始字符和结束字符在该屏幕上的坐标。
3.根据权利要求1所述的语音阅读加载方法,其中所述预设的断句规则是根据标点符号的作用来预先设置的,其中将显示的最后一个表示句尾的标点符号之后的最后一段话默认为一个句子。
4.根据权利要求3所述的语音阅读加载方法,其中所述预设的断句规则还包括:对一个句子包含的文字或单词数量预设一个阈值,当一个句子所包含的文字或单词数量超过该阈值时默认阈值数以内的所有文字或单词为1个句子。
5.根据权利要求3所述的语音阅读加载方法,其中所述预设的断句规则还包括:对一个句子包含的文字或单词数量预设置一个阈值,当一个句子所包含的文字或单词数量超过该阈值时在阈值数以内的所有文字或单词当中找其他标点符号,以最后一个标点符号表示该句子的结束。
6.根据权利要求1所述的语音阅读加载方法,其中所述唯一标识是一个字符串,并且作为唯一标识的字符串与表示文本内容的字符串不同。
7.根据权利要求1所述的语音阅读加载方法,其中在发送时,用一个数据包将断好的所有携带有唯一标识的新句子一次性发送给语音合成引擎。
8.根据权利要求1所述的语音阅读加载方法,其中在合成音频数据并且记录与新句子对应的起始字符位置以及合成的句子数目的步骤中,用数组形式的数据集合来保存与新句子对应的起始字符位置以及合成的句子数目,每当合成进度到唯一标识位置时合成的句子数目自动加1,同时记录与该句子的起始字符对应的位置,从而记录下每一个新句子的起始字符为在屏幕上显示的1页文字的文字字符数据中的第几个以及该句子为被合成的第几个句子。
9.根据权利要求1所述的语音阅读加载方法,其中在从选定的句子开始执行语音朗读的步骤中,
当选择从首句开始语音朗读时,直接执行语音朗读;
当选择跳句语音朗读时,根据排版引擎记录的句子的坐标信息和相应句子数目以及语音合成引擎记录的新句子的起始字符位置和合成的句子数目,执行语音朗读。
10.根据权利要求9所述的语音阅读加载方法,其中在当选择跳句语音朗读时,根据排版引擎记录的句子的坐标信息和相应句子数目以及语音合成引擎记录的新句子的起始字符位置和合成的句子数目,执行语音朗读的步骤中,通过选定的句子的坐标信息和排版引擎记录的句子的坐标信息和相应句子数目来得到所选定的句子的相应句子数目,将所选定的句子的相应句子数目与记录的合成的句子数目进行比较,当所选定的句子的相应句子数目小于记录的合成的句子数目时直接执行语音朗读;当所选定的句子的相应句子数目大于等于记录的合成的句子数目时先将所选定的句子发送给语音合成引擎进行语音合成,然后再进行语音朗读。
11.一种电子阅读装置,包括:
排版引擎,用于对解析后的文本进行排版,包括:以预设的断句规则对该文本进行断句并记录顺序断出的每个句子的坐标信息和相应句子数目;
断句单元,用于以所述预设的断句规则对排版完的文本进行断句并且在断好的每一个句子的结束位置添加一个唯一标识,形成携带有唯一标识的新句子;
发送单元,用于将断出的新句子发送给语音合成引擎;
语音合成引擎,用于将接收的文本合成音频数据并且记录与新句子对应的起始字符位置以及合成的句子数目;
语音朗读单元,用于语音朗读合成的音频数据。
12.根据权利要求11所述的电子阅读装置,其中所述每个句子的坐标信息包括每个句子在屏幕上显示的每一行的起始字符和结束字符在该屏幕上的坐标。
13.根据权利要求11所述的电子阅读装置,其中所述预设的断句规则是根据标点符号的作用来预先设置的,其中将显示的最后一个表示句尾的标点符号之后的最后一段话默认为一个句子。
14.根据权利要求13所述的电子阅读装置,其中所述预设的断句规则还包括:对一个句子包含的文字或单词数量预设置一个阈值,当一个句子所包含的文字或单词数量超过该阈值时默认阈值数以内的所有文字或单词为1个句子。
15.根据权利要求13所述的电子阅读装置,其中所述预设的断句规则还包括:对一个句子包含的文字或单词数量预设一个阈值,当一个句子所包含的文字或单词数量超过该阈值时在阈值数以内的所有文字或单词当中找其他标点符号,以最后一个标点符号表示该句子的结束。
16.根据权利要求11所述的电子阅读装置,其中所述唯一标识是一个字符串,并且作为唯一标识的字符串与表示文本内容的字符串不同。
17.根据权利要求11所述的电子阅读装置,其中发送单元在发送时,用一个数据包将断好的所有携带有唯一标识的新句子一次性发送给语音合成引擎。
18.根据权利要求11所述的电子阅读装置,其中语音合成引擎使用数组形式的数据集合来保存与新句子对应的起始字符位置以及合成的句子数目,每当合成进度到唯一标识位置时合成的句子数目自动加1,同时记录与该句子的起始字符对应的位置,从而记录下每一个新句子的起始字符为在屏幕上显示的1页文字的文字字符数据中的第几个以及该句子为被合成的第几个句子。
19.根据权利要求11所述的电子阅读装置,其中语音朗读单元在语音朗读合成的音频数据时,或者从首句开始语音朗读,或者跳到中间句开始语音朗读,当选择跳句语音朗读时,所述语音朗读单元根据排版引擎记录的句子的坐标信息和相应句子数目以及语音合成引擎记录的新句子的起始字符位置和合成的句子数目,执行语音朗读。
20.根据权利要求19所述的电子阅读装置,其中语音朗读单元通过选定的句子的坐标信息和排版引擎记录的句子的坐标信息和相应句子数目来得到所选定的句子的相应句子数目,将所选定的句子的相应句子数目与记录的合成的句子数目进行比较,当所选定的句子的相应句子数目小于记录的合成的句子数目时直接执行语音朗读;当所选定的句子的相应句子数目大于等于记录的合成的句子数目时先将所选定的句子发送给语音合成引擎进行语音合成,然后再进行语音朗读。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610188668.2A CN105869446B (zh) | 2016-03-29 | 2016-03-29 | 一种电子阅读装置和语音阅读加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610188668.2A CN105869446B (zh) | 2016-03-29 | 2016-03-29 | 一种电子阅读装置和语音阅读加载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105869446A CN105869446A (zh) | 2016-08-17 |
CN105869446B true CN105869446B (zh) | 2018-09-25 |
Family
ID=56626367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610188668.2A Active CN105869446B (zh) | 2016-03-29 | 2016-03-29 | 一种电子阅读装置和语音阅读加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105869446B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106792048B (zh) * | 2016-12-20 | 2020-08-14 | Tcl科技集团股份有限公司 | 一种识别智能电视用户语音命令的方法和装置 |
CN107369462B (zh) * | 2017-07-21 | 2020-06-26 | 阿里巴巴(中国)有限公司 | 电子书语音播放方法、装置及终端设备 |
CN107770382A (zh) * | 2017-10-30 | 2018-03-06 | 江西博瑞彤芸科技有限公司 | 播放文字信息的方法 |
CN108665764B (zh) * | 2018-05-11 | 2020-06-23 | 亮风台(上海)信息科技有限公司 | 一种通过阅读设备进行阅读的方法与设备 |
CN110797001B (zh) * | 2018-07-17 | 2022-04-12 | 阿里巴巴(中国)有限公司 | 电子书语音音频的生成方法、装置及可读存储介质 |
CN109344415A (zh) * | 2018-12-13 | 2019-02-15 | 深圳市友杰智新科技有限公司 | 电子书智能语音朗读实现方法 |
CN110335583B (zh) * | 2019-04-15 | 2021-08-03 | 浙江工业大学 | 一种带隔断标识的复合文件生成及解析方法 |
CN110399461A (zh) * | 2019-07-19 | 2019-11-01 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、服务器及存储介质 |
CN111737991B (zh) * | 2020-07-01 | 2023-12-12 | 携程计算机技术(上海)有限公司 | 文本断句位置的识别方法及***、电子设备及存储介质 |
CN112463919B (zh) * | 2020-10-14 | 2021-10-29 | 北京百度网讯科技有限公司 | 文本标签的查询方法、装置、电子设备和存储介质 |
CN112632988B (zh) * | 2020-12-29 | 2024-07-19 | 文思海辉智科科技有限公司 | 句段的断句方法、装置和电子设备 |
CN112667865A (zh) * | 2020-12-29 | 2021-04-16 | 西安掌上盛唐网络信息有限公司 | 中英混合语音合成技术在汉语言教学中的应用的方法及*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101533393A (zh) * | 2008-03-11 | 2009-09-16 | 深圳市乐天科技有限公司 | 用电子装置对文章句子快速进行的分类及检索方法 |
CN101859564A (zh) * | 2009-04-08 | 2010-10-13 | 北京闻言科技有限公司 | 一种听电子书的方法 |
CN102280104B (zh) * | 2010-06-11 | 2013-05-01 | 北大方正集团有限公司 | 一种基于智能标引的文件语音化处理方法和*** |
CN102324191B (zh) * | 2011-09-28 | 2015-01-07 | Tcl集团股份有限公司 | 一种有声读物逐字同步显示方法及*** |
CN103854643B (zh) * | 2012-11-29 | 2017-03-01 | 株式会社东芝 | 用于合成语音的方法和装置 |
CN105096933B (zh) * | 2015-05-29 | 2017-06-20 | 百度在线网络技术(北京)有限公司 | 分词词典的生成方法和装置及语音合成方法和装置 |
-
2016
- 2016-03-29 CN CN201610188668.2A patent/CN105869446B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105869446A (zh) | 2016-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105869446B (zh) | 一种电子阅读装置和语音阅读加载方法 | |
CN107516511B (zh) | 意图识别和情绪的文本到语音学习*** | |
CN107077841B (zh) | 用于文本到语音的超结构循环神经网络 | |
EP3095113B1 (en) | Digital personal assistant interaction with impersonations and rich multimedia in responses | |
US20140222424A1 (en) | Method and apparatus for contextual text to speech conversion | |
US8538757B2 (en) | System and method of a list commands utility for a speech recognition command system | |
CN107039038A (zh) | 学习个性化实体发音 | |
CN105426362A (zh) | 语音翻译装置、方法及程序 | |
JP2013068952A (ja) | 音声認識結果の統合 | |
McTear et al. | Voice application development for Android | |
CN103064530A (zh) | 输入处理方法和装置 | |
CN103020105A (zh) | 文档读出支持设备和方法 | |
CN103098124B (zh) | 用于文本到语音转换的方法和*** | |
CN103955454A (zh) | 一种在白话文与文言文之间进行文体转换的方法和设备 | |
CN108614851A (zh) | 教学***中的注释内容显示方法以及装置 | |
CN108874789B (zh) | 语句的生成方法、装置、存储介质和电子装置 | |
CN109741641A (zh) | 基于生词检测的语言学习*** | |
KR101567449B1 (ko) | 음성인식에 기반한 애니메이션 재생이 가능한 전자책 단말기 및 그 방법 | |
CN103631784B (zh) | 页面内容检索方法和*** | |
US20080243510A1 (en) | Overlapping screen reading of non-sequential text | |
CN202816170U (zh) | 一种基于语音交互的英语学习装置 | |
CN111508481A (zh) | 语音唤醒模型的训练方法、装置、电子设备及存储介质 | |
CN110660388A (zh) | 一种语音交互点读装置 | |
CN201585019U (zh) | 具有语音转换功能的移动终端 | |
CN110428668B (zh) | 一种数据提取方法、装置、计算机***及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200417 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Alibaba (China) Co.,Ltd. Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping radio square B tower 13 floor 03 unit self Patentee before: GUANGZHOU ALIBABA LITERATURE INFORMATION TECHNOLOGY Co.,Ltd. |