发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种音频和文本的同步方法、装置、设备以及介质。
第一方面,本公开实施例提供一种音频和文本的同步方法,包括:
确定用于音频转换的多个第一文本片段和用于阅读展示的第二文本;其中,多个第一文本片段和第二文本来自初始文本;
将各第一文本片段转换为音频片段,得到第一文本片段与音频片段之间的第一映射关系;
将各第一文本片段与第二文本进行匹配,得到第一文本片段与第二文本中的第二文本片段之间的第二映射关系;
基于第一映射关系和第二映射关系,确定与各音频片段相同步的第二文本片段。
在一些实施例中,将各第一文本片段与第二文本进行匹配,包括:
基于各第一文本片段中的一个或多个符号以及第二文本中的一个或多个符号,将各第一文本片段与第二文本进行匹配。
在一些实施例中,基于各第一文本片段中的一个或多个符号以及第二文本中的一个或多个符号,将各第一文本片段与第二文本进行匹配,包括:
删除第二文本中的符号,得到第三文本;
针对各第一文本片段:
删除该第一文本片段中的符号,得到第一临时文本片段;
在第三文本中查找与第一临时文本片段相同的第二临时文本片段;
在第二文本中,查找与第二临时文本片段前相邻的第一符号,以及与第二临时文本片段后相邻的第二符号;
基于第一符号和第二符号,确定第二文本中与该第一文本片段匹配的第二文本片段。
在一些实施例中,基于第一符号和第二符号,确定第二文本中与该第一文本片段匹配的第二文本片段,包括:
基于该第一文本片段,确定与该第一临时文本片段前相邻的第三符号,以及与该第一临时文本片段后相邻的第四符号;
将第一符号和第二符号分别与第三符号和第四符号进行匹配;
基于匹配的结果确定第二文本中与该第一文本片段匹配的第二文本片段。
在一些实施例中,基于匹配的结果确定第二文本中与该第一文本片段匹配的第二文本片段,包括:
若匹配的结果为:第一符号与第三符号相同,且第二符号与第四符号相同,则确定该第二文本片段的起始位置为第一符号,且结束位置为第二符号;
若匹配的结果为:第一符号与第三符号相同,且第二符号与第四符号不同,则确定该第二文本片段的起始位置为第一符号,且结束位置为该第二文本片段的片尾;
若匹配的结果为:第一符号与第三符号不同,且第二符号与第四符号相同,则确定该第二文本片段的起始位置为该第二文本片段的片首,且结束位置为第二符号;
若匹配的结果为:第一符号与第三符号不同,且第二符号与第四符号不同,则确定该第二文本片段的起始位置为该第二文本片段的片首,且结束位置为该第二文本片段的片尾。
在一些实施例中,所述方法还包括:
若在第三文本中未查找到与第一临时文本片段相同的第二临时文本片段,则将该第一文本片段与下一个第一文本片段合并,得到合并文本片段;
确定该第一文本片段的上一个第一文本片段在第二文本中的结束位置为合并文本片段在第二文本中的起始位置;
确定下一个第一文本片段在第二文本中的结束位置为合并文本片段在第二文本中的结束位置。
在一些实施例中,确定用于音频转换的多个第一文本片段和用于阅读展示的第二文本包括:
获取初始文本,并基于初始文本确定用于音频转换的第一文本和用于阅读展示的第二文本;
将第一文本拆分为多个第一文本片段。
在一些实施例中,基于初始文本确定用于音频转换的第一文本和用于阅读展示的第二文本,包括:
将初始文本进行第一文本规范处理,得到第一文本;
将初始文本进行第二文本规范处理,得到第二文本。
在一些实施例中,第一文本规范处理包括以下一个或多个:删除初始文本中满足第一预设条件的目标内容、截断超出长度阈值的句子;
第二文本规范处理包括:删除初始文本中满足第二预设条件的目标内容。
在一些实施例中,将第一文本拆分为多个第一文本片段,包括:
确定第一文本中的一个或多个符号,基于符号对第一文本进行拆分,得到多个第一文本片段。
在一些实施例中,所述方法还包括:
将各音频片段合成为完整音频,并确定各音频片段在完整音频中的音频起始时间;
基于与各音频片段相同步的第二文本片段,确定音频起始时间与第二文本片段在第二文本中的文本起始位置的同步关系。
在一些实施例中,所述方法还包括:将完整语音、第二文本和同步关系进行关联,得到关联关系。
第二方面,本公开实施例还提供一种音频和文本的同步方法,包括:
获取多个音频片段,以及获取与各音频片段相同步的文本片段;
响应播放操作,播放一个或多个音频片段;
在播放的同时,展示与播放的音频片段相同步的文本片段。
第三方面,本公开实施例还提供一种音频和文本的同步装置,包括:
第一确定单元,用于确定用于音频转换的多个第一文本片段和用于阅读展示的第二文本;其中,多个第一文本片段和第二文本来自初始文本;
转换单元,用于将各第一文本片段转换为音频片段,得到第一文本片段与音频片段之间的第一映射关系;
匹配单元,用于将各第一文本片段与第二文本进行匹配,得到第一文本片段与第二文本中的第二文本片段之间的第二映射关系;
第二确定单元,用于基于第一映射关系和第二映射关系,确定与各音频片段相同步的第二文本片段。
第四方面,本公开实施例还提供一种音频和文本的同步装置,包括:
获取单元,用于获取多个音频片段,以及获取与各音频片段相同步的文本片段;
播放单元,用于响应播放操作,播放一个或多个音频片段;
展示单元,用于在播放的同时,展示与播放的音频片段相同步的文本片段。
第五方面,本公开实施例还提供了一种电子设备,该电子设备包括处理器和存储器;所述处理器通过调用所述存储器存储的程序或指令,用于执行上述任一种方法的步骤。
第六方面,本公开实施例还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行上述任一种方法的步骤。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开的至少一个实施例中,可由同一初始文本确定用于音频转换的第一文本片段和用于阅读展示的第二文本,通过将第一文本片段转换为音频片段,并将第一文本片段与第二文本进行匹配,可确定与音频片段相同步的第二文本片段,而第二文本片段用于阅读展示,音频片段用于朗读,因此可实现音频和文本同步,解决由于阅读展示和朗读对章节文本的要求不同,使得在朗读时无法展示匹配的文本或展示的文本与朗读内容存在偏差的问题。
在一些实施例中,在实现音频和文本同步的同时,通过将用于音频转换的第一文本拆分为长度相对较短的多个第一文本片段,并转换成对应的音频片段,有利于提高听和读的灵活性,提升用户体验。并将各第一文本片段转换为对应的音频片段,各音频片段的时长均对应较短,将所有的音频片段拼接在一起,形成对应于第一文本的完整音频,同时确定各音频片段在完整音频中的音频起始时间;由于各音频片段均与一第一文本片段对应,基于第一文本片段与第二文本,可确定各音频片段在第二文本中的文本起始位置,并确定音频起始时间与文本起始位置的同步关系,实现音频播放与文本展示的同步。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
本公开实施例提供的音频和文本的同步方法在服务端执行,实现了基于服务端TTS(text-to-speech,文字转语音)的音频和文本的同步方法;本公开实施例可应用于终端的小说APP的语音转换和同步,终端的浏览器显示文本内容的语音转换和同步,以及其他场景下的语音转换和同步,本公开实施例对此不限定。采用本公开实施例提供的同步方法,在服务端生成高音质音频的同时,也满足了用户对于音频和文本同步阅读的需求。在一些实施例中,通过将用于音频转换的第一文本进行拆分,并将拆分得到的第一文本片段转换为对应的音频片段,后将各音频片段合成为完整音频,由此可实现对第一文本的灵活拆分和转换,有利于满足用户读和听的灵活需求,有利于提高用户体验。
下面结合图1-图4对本公开实施例提供的音频和文本的同步方法、装置、设备以及介质进行示例性说明。
在一些实施例中,图1为本公开实施例的一种音频和文本的同步方法的流程示意图。参照图1,该方法可包括以下步骤101至步骤104:
101、确定用于音频转换的多个第一文本片段和用于阅读展示的第二文本;其中,多个第一文本片段和第二文本来自初始文本。
其中,初始文本可以为任意文本,例如可以为一句或几句文本,也可以为一段或几段文本。示例性地,以用户在终端看小说为例,该初始文本可为章节原文,也可以为章节原文中任意文本。若初始文本为章节原文,则用于音频转换的第一文本还可称为TTS原文或TTS文本,且用于阅读展示的第二文本还可称为阅读原文或阅读文本。
在一些实施例中,第一文本片段为第一文本中的一部分,可通过拆分第一文本得到第一文本片段。在一些实施例中,第一文本片段可以不通过拆分第一文本得到,而是基于初始文本中任意文本片段得到。
102、将各第一文本片段转换为音频片段,得到第一文本片段与音频片段之间的第一映射关系。
本实施例中,由于第一文本片段用于音频转换,因此,可将第一文本片段转换为音频片段,转换方式可沿用现有技术,不再赘述。转换得到的音频片段可以由终端的音频装置播放,实现第一文本片段的朗读。
本实施例中,由于得到了多个第一文本片段,因此可将各第一文本片段转换为音频片段,得到各第一文本片段对应的音频片段,进而可基于第一文本片段与音频片段之间的转换关系,建立第一文本片段与音频片段之间的第一映射关系,第一映射关系中包括多个第一文本片段及其对应的音频片段。
103、将各第一文本片段与第二文本进行匹配,得到第一文本片段与第二文本中的第二文本片段之间的第二映射关系。
本实施例中,由于第一文本片段和第二文本来自初始文本,第一文本片段与初始文本中的一部分内容相对应,而第二文本与初始文本的全部内容相对应,因此,可在第二文本中找到一个第二文本片段与第一文本片段相对应,且本实施例中通过将第一文本片段与第二文本的全部内容进行匹配得到第一文本片段所对应的第二文本片段。
本实施例中,由于得到了多个第一文本片段,可将各第一文本片段与第二文本进行匹配,得到各第一文本片段对应的第二文本片段,进而建立第一文本片段与第二文本中的第二文本片段之间的第二映射关系,第二映射关系中包括多个第一文本片段及其对应的第二文本片段。
104、基于第一映射关系和第二映射关系,确定与各音频片段相同步的第二文本片段。
本实施例中,由于第一映射关系中包括多个第一文本片段及其对应的音频片段,且第二映射关系中包括多个第一文本片段及其对应的第二文本片段,因此,基于第一映射关系和第二映射关系,可确定各音频片段对应的第二文本片段。
由于第二文本片段用于阅读展示,且音频片段用于朗读,音频片段对应第二文本片段,因此可确定与各音频片段相同步的第二文本片段,实现音频和文本同步,解决由于阅读展示和朗读对章节文本的要求不同,使得在朗读时无法展示匹配的文本或展示的文本与朗读内容存在偏差的问题。
图2为图1所示场景下的一种确定第一映射关系和第二映射关系的流程图。在图2中,由初始文本可确定第一文本和第二文本,第一文本用于音频转换,第二文本用于阅读展示。将第一文本拆分可得到第一文本片段。将第一文本片段转换为音频片段,可得到第一文本片段与音频片段之间的第一映射关系。将第一文本片段与第二文本进行匹配,可得到第一文本片段与第二文本中的第二文本片段之间的第二映射关系。
在一些实施例中,步骤103中“将各第一文本片段与第二文本进行匹配”的一种实施方式为:基于各第一文本片段中的一个或多个符号以及第二文本中的一个或多个符号,将各第一文本片段与第二文本进行匹配。具体地,步骤103可包括如下步骤1031至步骤1035:
1031、删除第二文本中的符号,得到第三文本。
在一些实施例中,可删除第二文本中的所有符号,得到第三文本。即,第三文本为对应于第二文本的无符号文本,以便于后续进行临时文本片段的对比。
针对各第一文本片段:
1032、删除该第一文本片段中的符号得到第一临时文本片段。
在一些实施例中,可删除该第一文本片段中的所有符号,得到第一临时文本片段。即,第一临时文本片段为对应于第一文本片段的无符号的文本片段,以便于后续进行临时文本片段的对比。
1033、在第三文本中查找与第一临时文本片段相同的第二临时文本片段。
在一些实施例中,第三文本中无符号,且第一临时文本片段中无符号,因此,通过将第一临时文本片段与第三文本进行比对,可找到与第一临时文本片段相同的第二临时文本片段,且第二临时文本片段中无符号。
1034、在第二文本中,查找与第二临时文本片段前相邻的第一符号,以及与第二临时文本片段后相邻的第二符号。
在一些实施例中,第三文本为对应于第二文本的无符号文本,当在第三文本中确定第二临时文本片段后,可基于第三文本与第二文本的对应关系,在第二文本中查找与第二临时文本片段前后相邻的符号,即查找与第二临时文本片段前相邻的第一符号以及与第二临时文本片段后相邻的第二符号。
1035、基于第一符号和第二符号,确定第二文本中与该第一文本片段匹配的第二文本片段。
可见,对各第一文本片段执行步骤1032至步骤1035,可得到各第一文本片段与第二文本中的第二文本片段之间的第二映射关系。
在一些实施例中,步骤1035中“基于第一符号和第二符号,确定第二文本中与该第一文本片段匹配的第二文本片段”的一种实施方式包括如下步骤201至步骤203:
201、基于该第一文本片段,确定与该第一临时文本片段前相邻的第三符号,以及与该第一临时文本片段后相邻的第四符号。
在一些实施例中,第一临时文本片段由第一文本片段删除其中所有符号之后得到,由此,基于第一文本片段,可确定与对应的第一临时文本片段前后相邻的符号,即可确定与该第一临时文本片段前相邻的第三符号以及与该第一临时文本片段后相邻的第四符号。
202、将第一符号和第二符号分别与第三符号和第四符号进行匹配。
本实施例中,将与第二临时文本片段前后相邻的符号与第一临时文本片段前后相邻的符号进行匹配。具体地,将第一符号与第三符号匹配,将第二符号与第四符号匹配。
203、基于匹配的结果确定第二文本中与该第一文本片段匹配的第二文本片段。
本实施例中,匹配的结果可包括前后相邻的符号均匹配,或者仅前相邻的符号匹配,或者仅后相邻的符号匹配,或者前后相邻的符号均不匹配。基于不同的匹配结果,可确定与第一文本片段匹配的不同的第二文本片段。
在一些实施例中,步骤203中“基于匹配的结果确定第二文本中与该第一文本片段匹配的第二文本片段”的一种实施方式包括:
若匹配的结果为:第一符号与第三符号相同,且第二符号与第四符号相同,即前后相邻的符号均匹配,则确定该第二文本片段的起始位置为第一符号,且结束位置为第二符号。即,当前后相邻的符号均匹配时,由前后相邻的符号限定第二文本片段的起始位置和结束位置。
若匹配的结果为:第一符号与第三符号相同,且第二符号与第四符号不同,即仅前相邻的符号匹配,则确定该第二文本片段的起始位置为第一符号,且结束位置为该第二文本片段的片尾。即,当仅前相邻的符号匹配时,由前相邻的符号限定第二文本片段的起始位置,第二文本片段的结束位置为其片尾。
若匹配的结果为:第一符号与第三符号不同,且第二符号与第四符号相同,即仅后相邻的符号匹配,则确定该第二文本片段的起始位置为该第二文本片段的片首,且结束位置为第二符号;即,当仅后相邻的符号匹配时,由后相邻的符号限定第二文本片段的结束位置,第二文本片段的起始位置为其片首。
若匹配的结果为:第一符号与第三符号不同,且第二符号与第四符号不同,即前后相邻的符号均不匹配,则确定该第二文本片段的起始位置为该第二文本片段的片首,且结束位置为该第二文本片段的片尾;即,当前后相邻的符号均不匹配时,第二文本片段的起始位置和结束位置均不由符号限定,而由其片首和片尾限定。
在一些实施例中,步骤1033中“在第三文本中查找与第一临时文本片段相同的第二临时文本片段”,若在第三文本中未查找到与第一临时文本片段相同的第二临时文本片段,则执行如下步骤301至303:
301、将该第一文本片段与下一个第一文本片段合并,得到合并文本片段。
本实施例中,由于有多个第一文本片段,且这多个第一文本片段来自同一初始文本,更进一步地,这多个第一文本片段可通过拆分第一文本得到,其中,第一文本是基于初始文本得到的用于音频转换的文本。可见,这多个第一文本片段相互之间不存在交叉重叠(也即重复)的内容,且这多个第一文本片段之间存在先后顺序,且先后顺序基于拆分第一文本的顺序来确定。
本实施例中,该第一文本片段与下一个第一文本片段实质上为相邻的两个文本片段,因此,可将该第一文本片段与下一个第一文本片段合并,得到合并文本片段。
302、确定该第一文本片段的上一个第一文本片段在第二文本中的结束位置为合并文本片段在第二文本中的起始位置。
303、确定下一个第一文本片段在第二文本中的结束位置为合并文本片段在第二文本中的结束位置。
可见,基于与该第一文本片段前后相邻片段的结束位置,可确定该合并文本片段在第二文本中的起始位置和结束位置,从而确定合并文本片段与第二文本中的第二文本片段之间的第二映射关系,该第二文本片段的的起始位置和结束位置即为步骤302确定的起始位置和步骤303确定的结束位置。
为了更清楚地描述步骤103中“将各第一文本片段与第二文本进行匹配,得到第一文本片段与第二文本中的第二文本片段之间的第二映射关系”,下面结合步骤1031至1035举例说明。
由于第一文本片段用于音频转换,为便于描述,将第一文本片段描述为TTS(Text-To-Speech,文字转语音)句子。由于第二文本用于阅读展示,为便于描述,将第二文本描述为阅读章节文本。本实施例中,将TTS句子与阅读章节文本进行匹配,总的技术构思为:先找出TTS句子的非符号内容在阅读章节文本的非符号内容中的位置,再找出TTS句子的首尾符号在阅读章节文本中的位置。
具体地,在步骤1031中,删除阅读章节文本中的所有符号,得到阅读章节文本的非符号内容。
在步骤1032中,删除TTS句子中的所有符号,得到TTS句子的非符号内容。
在步骤1033中,查找TTS句子的非符号内容在阅读章节文本的非符号内容中的位置,得到与TTS句子的非符号内容相同的第二临时文本片段。
在步骤1034中,查找第二临时文本片段在阅读章节文本中的首尾符号。
在步骤1035中,确定TTS句子的首尾符号在阅读章节文本中的位置。若TTS句子的首尾符号与第二临时文本片段在阅读章节文本中的首尾符号相同,则将第二临时文本片段在阅读章节文本中的首尾符号作为与该TTS句子匹配的阅读句子的首尾符号,否则以句首和/或句尾位置限定阅读句子。
例如,以阅读章节文本是“ABC。DEF,GHI。”为例,需要查找TTS句子“DEF,GHI。”在阅读章节文本中的位置,则先把阅读章节文本和TTS句子去掉符号,得到ABCDEFGHI和DEFGHI,先查找DEFGHI在阅读章节文本中的位置,再查找TTS句子的非符号内容DEFGHI前后的符号,在阅读章节文本相应位置是否有也有这个符号。若有前后符号,则以符号限定与TTS句子匹配的阅读句子;否则以句首和/或句尾位置限定与其对应的阅读句子。
对于未找到匹配位置的TTS句子,将其与后一TTS句子合并。若该TTS句子包含标点符号,但在阅读章节文本中未匹配到对应的句子,则将该TTS句子与后一个包含标点符号的TTS句子合并,得到合并后的句子。将该TTS句子的前一个TTS句子在阅读章节文本中的结束位置作为该TTS句子在阅读章节文本中的起始位置,将该TTS句子的后一个TTS句子在阅读章节文本中的结束位置作为该合并后的句子在阅读章节文本中的结束位置。
示例性地,以阅读章节文本为“ABC。DE,,F。H,I。”,TTS句子为“ABC。”,“DE,F。”,“G。”,“H,I。”为例。基于前述步骤一和步骤二,TTS句子“ABC。”在阅读章节文本中对应的阅读句子为“ABC。”,TTS句子“DE,F。”在阅读章节文本中对应的阅读句子为“DE,,F。”。
对于TTS句子“G。”和“H,I。”,由于TTS句子“G。”在阅读章节文本中找不到与其对应的无符号文本内容,则将其与下一个TTS句子“H,I。”合并,得到合并后的TTS句子为“G。H,I。”,并可在阅读章节文本中找到与合并后的TTS句子对应的阅读句子,即“H,I。”,也即TTS句子“G。,H,I。”与阅读句子“H,I。”相匹配。
在上述实施方式中,将该方案应用于多个章节的音频与文本同步时,字符位置定义和章节段落标号可按照如下方式设置。
字符位置定义:将字符在章节中的位置定义为第x个段落的第y个字,以便客户端快速准确地定位一个字在章节中的位置。
章节段落标号:章节文本一般以<p></p>标签分段,服务端在章节文本中的<p></p>标签依次标号后,返回给客户端。示例性地,格式可为:<p"idx"="1">句子1。句子2。句子3。</p><p"idx"="2">句子4。句子5。</p>,以便客户端寻找段落。
在一些实施例中,步骤101中确定用于音频转换的多个第一文本片段和用于阅读展示的第二文本,包括步骤1011和1012:
1011、获取初始文本,并基于初始文本确定用于音频转换的第一文本和用于阅读展示的第二文本。
本实施例中,由服务端获取初始文本,并基于一定的规范将初始文本转换为第一文本和第二文本。
在一些实施例中,基于初始文本确定用于音频转换的第一文本和用于阅读展示的第二文本,具体为:将初始文本进行第一文本规范处理,得到第一文本;并将初始文本进行第二文本规范处理,得到第二文本。其中,可先执行将初始文本进行第一文本规范处理,得到第一文本,或先执行将初始文本进行第二文本规范处理,得到第二文本,或者二者并行执行,本公开实施例对此不限定。
第一文本规范处理包括以下一个或多个:删除初始文本中满足第一预设条件的目标内容、截断超出长度阈值的句子。其中,第一预设条件例如包括但不限于:表情和不能发音的字符等无法朗读的内容。不符合规范的标点符号例如:两个逗号,要删除一个逗号;空格要删除,并适应性替换为其他标点符号。第一预设条件不包括规范的标点符号,因为规范的标点符号可以影响发音,所以不删除。
初始文本中无法朗读的内容也可理解为初始文本中无法转换为音频的内容,通过删除初始文本中无法朗读的内容,在后续文本转换为音频的步骤中,可减少数据处理量,同时可避免转换报错的问题。其中,不规范的标点符号包括不符合一般行文要求的标点符号,也包括对后续文本拆分存在干扰的标点符号;通过删除初始文本中不规范的标点符号,可便于后续进行文本拆分。其中,长度阈值可理解为符合朗读断句习惯的长度上限值,当一个句子的长度超出长度阈值时,若将该句整句转换为同一个音频片段,会导致音频片段过长,用户体验不好;通过阶段截断超出长度阈值的句子,可使得对应转换得到的音频片段均较短,从而有利于提高用户体验。
由此,通过对初始文本进行删除其中无法朗读的内容、删除其中不规范的标点符号以及截断超出长度阈值的句子中的一个或多个操作,可便于将处理后得到的第一文本进行后续拆分与音频转换,且有利于提高用户体验。
第二文本规范处理包括:删除所述初始文本中满足第二预设条件的目标内容。其中,第二预设条件例如包括但不限于:表情和根据业务设置的可能需要隐藏的内容等无法阅读的内容。
第二文本规范处理过程中,通过删除初始文本中无法阅读的内容,可得到便于阅读,即符合一般阅读习惯的文本,如此有利于形成满足阅读展示需求的第二文本。
示例性地,第一文本规范处理中,可对无法朗读的内容和/或不规范的标点符号进行检测,并在检测到时执行删除操作;还可对句子的长度进行检测,并在句子的长度超出长度阈值时,将其截断。同理,第二文本规范处理中,可对无法阅读的内容进行检测,并在检测到时执行删除操作。
需要说明的是,当第一文本规范处理包括多个处理操作时,各操作的先后顺序不限定。
1012、将第一文本拆分为多个第一文本片段。
其中,第一文本片段可称为TTS句子。第一文本的文本长度较长,将其进行拆分,得到对应的多个第一文本片段,由此,第一文本片段的长度相对较短;将第一文本片段转换为音频片段后,各音频片段的时长相对较短。
在一些实施例中,将第一文本拆分为多个第一文本片段具体包括:确定第一文本中的一个或多个符号,基于符号对第一文本进行拆分,得到多个第一文本片段。
在一些实施例中,将第一文本拆分为第一文本片段的方式可包括基于标点符号进行拆分、基于文本章节以及其中句子的长度进行拆分,本公开实施例对此不限定。
例如,第一文本中的多个符号包括将第一文本截断的所有标点符号,例如可包括顿号(、)、逗号(,)、句号(。)、问号(?)、叹号(!)、省略号(……)以及本领域技术人员可知的其他符号。
基于此,将符号作为相邻的第一文本片段的分界点,实现将第一文本拆分为多个第一文本片段。
需要说明的是,当初始文本中包括超过长度阈值的句子时,第一文本中的多个符号中还包括将该句子截断的符号。
如此,实现了基于服务端TTS的音频和文本同步阅读方式,在使用服务端TTS生成高音质音频的同时,也满足了用户对于音频和文本同步阅读的需求,同时还支持TTS和阅读器对章节原文使用不同的规范化规则,具有较强的适应性。本文中,阅读器用于实现展示第二文本的功能。
需要说明的是,由第一文本拆分得到的第一文本片段的数目,可基于第一文本的长度以及其中的符号(即标点符号)的分布确定,可基于音频片段的时长需求设置,本公开实施例对此不限定。
在一些实施例中,在步骤102中将各第一文本片段转换为音频片段后,音频和文本的同步方法还包括如下步骤1021和1022:
1021、将各音频片段合成为完整音频,并确定各音频片段在完整音频中的音频起始时间。
本实施例中,可将各音频片段按照其对应的第一文本片段在第一文本中的先后顺序进行拼接,得到完整音频;并可基于各音频片段的时长,确定各音频片段在完整音频中的音频起始时间。
示例性地,由音频片段拼接得到完整音频的拼接方式,可采用本领域技术人员可知的任一种拼接方式,本公开实施例对此不限定。
1022、基于与各音频片段相同步的第二文本片段,确定音频起始时间与第二文本片段在第二文本中的文本起始位置的同步关系。
本实施例中,基于与各音频片段相同步的第二文本片段、各音频片段在完整音频中的音频起始时间以及第二文本片段在第二文本中的文本起始位置,可确定音频起始时间与第二文本片段在第二文本中的文本起始位置的同步关系,实现音频播放与文本展示的同步。
示例性地,以初始文本对应一个完整章节内容、第一文本片段为句子为例。服务端可把完整章节内容以句子为单位进行拆分,并以句子为单位转换成音频片段,再把音频片段拼接在一起,得到整个章节的完整音频,以及其中每一音频片段的时间点(即音频起始时间),其中音频片段与句子(即第一文本片段)之间存在第一映射关系;把拆分后的句子(即第一文本片段),与阅读展示用的第二文本中的句子(即第二文本片段)做匹配,找出第二映射关系,最终把音频片段的时间点与第二文本中的句子对应上,实现音频与文本同步。
在一些实施例中,在步骤1022确定音频起始时间与第二文本片段在第二文本中的文本起始位置的同步关系后,可将完整语音、第二文本和同步关系进行关联,得到关联关系。
结合步骤1011、1012、1021和1022,图3为本公开实施例的另一种音频和文本的同步方法的流程示意图,包括如下步骤一至七:
步骤一:将初始文本规范化处理,得到第一文本和第二文本。
示例性地,该步骤可包括:将章节原文进行第一文本规范处理,如执行去掉不能朗读的内容、去掉不规范的标点符号以及截断过长的句子中的至少一项操作,得到TTS章节文本。
示例性地,该步骤还包括:将章节原文进行第二文本规范处理,例如去掉不能阅读的内容,得到可阅读章节文本。
步骤二:将第一文本拆分为第一文本片段。
示例性地,该步骤可包括:将TTS章节文本根据其中的标点符号拆分为句子。
步骤三:将第一文本片段转换为音频片段。
示例性地,该步骤可包括将句子依次转换成音频,得到对应于各句子的一系列音频片段,确定第一映射关系。
步骤四:将音频片段拼接在一起,即合成在一起,得到整个章节对应的完整音频,以及得到其中每一句子对应的音频片段的起始时间点,即得到音频起始时间。
至此,形成了一个章节原文对应的完整音频,章节中的每一句的文本和对应的音频起始点。然后,服务端要把音频起始点跟章节阅读器的第二文本中对应内容的起始点对应上。示例性地,流程如下:
步骤五:根据上述匹配过程,可基于匹配算法,找出TTS句子在阅读章节文本中的位置,即确定第二映射关系。
步骤六:根据第一映射关系和第二映射关系,得到音频起始时间与阅读章节文本中的文本起始位置的同步关系。
步骤七:将章节原文对应的完整音频、阅读章节文本以及音频起始时间与阅读章节文本句子起始点(即文本起始位置)的同步关系发送给客户端,并在客户端输出展示。
如此,在一些实施例中,该方法还包括:将完整语音、第二文本和同步关系进行关联,得到关联关系。
基于该关联关系,可在客户端输出同步的音频和文本,且音频粒度可匹配到句子,有利于提高用户体验。
本公开实施例提供的音频和文本的同步方法,在服务端进行TTS,通过将章节内容切割成句子,一句句转换完成音频片段后再合并成完整音频,以找出音频片段的音频起始时间与TTS句子的对应关系;同时,结合TTS句子与阅读器文本的匹配算法,最终找出音频起始时间与阅读器文本句子的对应关系,实现音频起始时间与文本起始位置的同步。如此,在实现高音质音频的同时,也满足了用户对于音频的粒度精确度的要求,有利于提高用户体验。
本公开的至少一个实施例中,可基于同一初始文本对应生成分别用于音频转换和阅读展示的文本,将用于音频转换的第一文本拆分为长度相对较短的第一文本片段,并将各第一文本片段转换为对应的音频片段,各音频片段的时长均对应较短,将所有的音频片段拼接在一起,形成对应于第一文本的完整音频,同时确定各音频片段在完整音频中的音频起始时间;由于各音频片段均与一第一文本片段对应,基于第一文本片段与第二文本,可确定每个音频片段在第二文本中的文本起始位置,并确定音频起始时间与文本起始位置的同步关系。由此,在实现音频和文本同步的同时,通过将第一文本拆分为多个第一文本片段,并对应转换成音频片段,有利于提高听和读的灵活性,把音频和文本的进度的匹配粒度精细到第一文本片段,例如可为句子,如此有利于提高用户体验。
图4为本公开实施例提供的又一种音频和文本的同步方法的流程示意图音频和文本的同步方法的流程示意图。本实施例中,该方法的执行主体为阅读器的客户端,客户端安装在用户设备中,用户设备可以为任意类型的电子设备,例如智能手机、平板电脑、笔记本电脑、智能穿戴设备等移动设备,又例如台式电脑、智能电视等固定设备。
在步骤401中,获取多个音频片段,以及获取与各音频片段相同步的文本片段。本实施例中,可通过图1所示的音频和文本的同步方法各实施例来确定多个音频片段以及与各音频片段相同步的第二文本片段,进而可获取多个音频片段以及与各音频片段相同步的文本片段。
在步骤402中,响应播放操作,播放一个或多个音频片段。本实施例中,阅读器可提供用户界面,在用户界面中显示播放控件,用户可点击播放控件播放音频片段,相应地,阅读器响应播放操作(用户的点击操作),播放一个或多个音频片段。
在一些实施例中,用户可选择不同的文本片段,进而点击播放控件,以播放选择的文本片段对应的音频片段,相应地,阅读器响应选择操作,确定目标文本片段;进而响应播放操作,播放该目标文本片段对应的音频片段。
在步骤403中,在播放的同时,展示与播放的音频片段相同步的文本片段,使得在朗读时展示匹配的文本,且展示的文本与朗读内容不存在偏差。
图5为本公开实施例的一种音频和文本的同步装置50的结构示意图。该装置可应用于服务器。参照图5,该装置可包括:
第一确定单元51,用于确定用于音频转换的多个第一文本片段和用于阅读展示的第二文本;其中,多个第一文本片段和第二文本来自初始文本;
转换单元52,用于将各第一文本片段转换为音频片段,得到第一文本片段与音频片段之间的第一映射关系;
匹配单元53,用于将各第一文本片段与第二文本进行匹配,得到第一文本片段与第二文本中的第二文本片段之间的第二映射关系;
第二确定单元54,用于基于第一映射关系和第二映射关系,确定与各音频片段相同步的第二文本片段。
在一些实施例中,匹配单元53将各第一文本片段与第二文本进行匹配包括:
匹配单元53基于各第一文本片段中的一个或多个符号以及第二文本中的一个或多个符号,将各第一文本片段与第二文本进行匹配。
在一些实施例中,匹配单元53基于各第一文本片段中的一个或多个符号以及第二文本中的一个或多个符号,将各第一文本片段与第二文本进行匹配,包括:
匹配单元53删除第二文本中的符号,得到第三文本;
针对各第一文本片段:
匹配单元53删除该第一文本片段中的符号,得到第一临时文本片段;
匹配单元53在第三文本中查找与第一临时文本片段相同的第二临时文本片段;
匹配单元53在第二文本中,查找与第二临时文本片段前相邻的第一符号,以及与第二临时文本片段后相邻的第二符号;
匹配单元53基于第一符号和第二符号,确定第二文本中与该第一文本片段匹配的第二文本片段。
在一些实施例中,匹配单元53基于第一符号和第二符号,确定第二文本中与该第一文本片段匹配的第二文本片段,包括:
匹配单元53基于该第一文本片段,确定与该第一临时文本片段前相邻的第三符号,以及与该第一临时文本片段后相邻的第四符号;
匹配单元53将第一符号和第二符号分别与第三符号和第四符号进行匹配;
匹配单元53基于匹配的结果确定第二文本中与该第一文本片段匹配的第二文本片段。
在一些实施例中,匹配单元53基于匹配的结果确定第二文本中与该第一文本片段匹配的第二文本片段,包括:
若匹配的结果为:第一符号与第三符号相同,且第二符号与第四符号相同,则确定该第二文本片段的起始位置为第一符号,且结束位置为第二符号;
若匹配的结果为:第一符号与第三符号相同,且第二符号与第四符号不同,则确定该第二文本片段的起始位置为第一符号,且结束位置为该第二文本片段的片尾;
若匹配的结果为:第一符号与第三符号不同,且第二符号与第四符号相同,则确定该第二文本片段的起始位置为该第二文本片段的片首,且结束位置为第二符号;
若匹配的结果为:第一符号与第三符号不同,且第二符号与第四符号不同,则确定该第二文本片段的起始位置为该第二文本片段的片首,且结束位置为该第二文本片段的片尾。
在一些实施例中,匹配单元53还用于:
匹配单元53若在第三文本中未查找到与第一临时文本片段相同的第二临时文本片段,则将该第一文本片段与下一个第一文本片段合并,得到合并文本片段;
匹配单元53确定该第一文本片段的上一个第一文本片段在第二文本中的结束位置为合并文本片段在第二文本中的起始位置;
匹配单元53确定下一个第一文本片段在第二文本中的结束位置为合并文本片段在第二文本中的结束位置。
在一些实施例中,第一确定单元51确定用于音频转换的多个第一文本片段和用于阅读展示的第二文本包括:
第一确定单元51获取初始文本,并基于初始文本确定用于音频转换的第一文本和用于阅读展示的第二文本;
第一确定单元51将第一文本拆分为多个第一文本片段。
在一些实施例中,第一确定单元51基于初始文本确定用于音频转换的第一文本和用于阅读展示的第二文本,包括:
将初始文本进行第一文本规范处理,得到第一文本;
将初始文本进行第二文本规范处理,得到第二文本。
在一些实施例中,第一文本规范处理包括以下一个或多个:删除初始文本中满足第一预设条件的目标内容、截断超出长度阈值的句子;
第二文本规范处理包括:删除初始文本中满足第二预设条件的目标内容。
在一些实施例中,第一确定单元51将第一文本拆分为多个第一文本片段,包括:
确定第一文本中的一个或多个符号,基于符号对第一文本进行拆分,得到多个第一文本片段。
在一些实施例中,该装置还可包括图5中未示出的合成单元和第三确定单元:
合成单元,用于将各音频片段合成为完整音频,并确定各音频片段在完整音频中的音频起始时间;
第三确定单元,用于基于与各音频片段相同步的第二文本片段,确定音频起始时间与第二文本片段在第二文本中的文本起始位置的同步关系。
在一些实施例中,第三确定单元还用于:将完整语音、第二文本和同步关系进行关联,得到关联关系。
本实施例公开的音频和文本的同步装置50各单元的详细描述可参考图1所示的音频和文本的同步方法各步骤的详细描述,为避免重复,不再赘述。
图6为本公开实施例的一种音频和文本的同步装置60的结构示意图。该装置可应用于阅读器的客户端。参照图6,该装置可包括:
获取单元61,用于获取多个音频片段,以及获取与各所述音频片段相同步的文本片段;
播放单元62,用于响应播放操作,播放一个或多个所述音频片段;
展示单元63,用于在播放的同时,展示与播放的音频片段相同步的文本片段。
本实施例公开的音频和文本的同步装置60各单元的详细描述可参考图4所示的音频和文本的同步方法各步骤的详细描述,为避免重复,不再赘述。
本公开还提供了一种电子设备,该电子设备包括处理器和存储器;处理器通过调用存储器存储的程序或指令,用于执行上述任一种方法的步骤。因此该电子设备也具有上述方法和装置所具有的有益效果,相同之处可参照上文中对方法和装置的解释说明进行理解,下文中不再赘述。
在一些实施例中,图7为本公开实施例的一种电子设备的结构示意图。参照图7,该电子设备包括:
一个或多个处理器701,图7中以一个处理器701为例;
存储器702;
该电子设备还可以包括:输入装置703和输出装置704。
该电子设备中的处理器701、存储器702、输入装置703和输出装置704可以通过总线或者其他方式连接,图7中示例性地以通过总线连接为例示出其连接方式。
其中,存储器702作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本公开实施例中的应用程序的上述任一方法对应的程序指令/模块/单元(例如,附图5所示的获取单元201、第一处理单元202、第二处理单元203以及第三处理单元204)。处理器701通过运行存储在存储器702中的软件程序、指令、单元以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的方法。
存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。
此外,存储器702可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。
在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置703可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。
输出装置704可包括显示屏等显示设备。
本公开还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储程序或指令,程序或指令使计算机执行上述任一种方法的步骤。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本公开实施例的上述方法可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开实施例的上述方法相关技术方案的本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例的各个方法。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。