TTS语音对应字幕的滚动方法、装置及存储介质与流程

文档序号:31709002发布日期:2022-10-04 15:19阅读:81来源:国知局
TTS语音对应字幕的滚动方法、装置及存储介质与流程
tts语音对应字幕的滚动方法、装置及存储介质
技术领域
1.本技术涉及字幕处理技术领域,特别是涉及一种tts语音对应字幕的滚动方法、装置及存储介质。


背景技术:

2.tts是text to speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话。tts语音,通俗讲就是经由文本转语音技术得到的语音。在一些特殊场景下,播放这种tts语音文件的时候,需要滚动展示与之对应字幕。但是由于这些场景下的tts语音文件是根据文字转化临时生成的,其无法如同歌曲一样,提前对字幕的滚动时间设定,即无法按照预设的显示时间显示对应的字幕。因此无法对与tts语音文件对应的字幕进行平滑、精准滚动。
3.针对上述的现有技术中存在的由于tts语音文件是根据文字转化临时生成的,无法提前设定与tts语音文件对应的字幕的显示时间,从而无法对与tts语音文件对应的字幕进行平滑、精准滚动的技术问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本公开的实施例提供了一种tts语音对应字幕的滚动方法、装置及存储介质,以至少解决现有技术中存在的由于tts语音文件是根据文字转化临时生成的,无法提前设定与tts语音文件对应的字幕的显示时间,从而无法对与tts语音文件对应的字幕进行平滑、精准滚动的技术问题。
5.根据本公开实施例的一个方面,提供了一种tts语音对应字幕的滚动方法,包括:根据与音频文件对应的所有字幕的总高度和待绘制的屏幕画面中所显示的字幕的最大显示高度,确定字幕的滚动起始位置的第一百分比值,其中音频文件为经由文本转语音技术得到的音频文件;在绘制当前帧的屏幕画面的情况下,确定音频文件的当前播放进度的第二百分比值;在判定第二百分比值大于第一百分比值的情况下,根据所有字幕的总高度、滚动起始位置以及当前播放进度,确定与当前帧的屏幕画面对应的滚动条的滚动位置,其中滚动条用于在屏幕画面中滚动显示所有字幕;以及根据滚动位置,对滚动条的位置进行设置。
6.根据本公开实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。
7.根据本公开实施例的另一个方面,还提供了一种tts语音对应字幕的滚动装置,包括:第一确定模块,用于根据与音频文件对应的所有字幕的总高度和待绘制的屏幕画面中所显示的字幕的最大显示高度,确定字幕的滚动起始位置的第一百分比值,其中音频文件为经由文本转语音技术得到的音频文件;第二确定模块,用于在绘制当前帧的屏幕画面的情况下,确定音频文件的当前播放进度的第二百分比值;第三确定模块,用于在判定第二百分比值大于第一百分比值的情况下,根据所有字幕的总高度、滚动起始位置以及当前播放
进度,确定与当前帧的屏幕画面对应的滚动条的滚动位置,其中滚动条用于在屏幕画面中滚动显示所有字幕;以及设置模块,用于根据滚动位置,对滚动条的位置进行设置。
8.根据本公开实施例的另一个方面,还提供了一种tts语音对应字幕的滚动装置,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:根据与音频文件对应的所有字幕的总高度和待绘制的屏幕画面中所显示的字幕的最大显示高度,确定字幕的滚动起始位置的第一百分比值,其中音频文件为经由文本转语音技术得到的音频文件;在绘制当前帧的屏幕画面的情况下,确定音频文件的当前播放进度的第二百分比值;在判定第二百分比值大于第一百分比值的情况下,根据所有字幕的总高度、滚动起始位置以及当前播放进度,确定与当前帧的屏幕画面对应的滚动条的滚动位置,其中滚动条用于在屏幕画面中滚动显示所有字幕;以及根据滚动位置,对滚动条的位置进行设置。
9.在本公开实施例中,首先通过与经由文本转语音技术得到的音频文件对应的所有字幕的总高度和待绘制的屏幕画面中所显示的字幕的最大显示高度,确定字幕的滚动起始位置的值,然后确定经由文本转语音技术得到的音频文件的当前播放进度,最后根据所有字幕的总高度、滚动起始位置以及当前播放进度,确定与当前帧的屏幕画面对应的滚动条的滚动位置,从而对当前帧的屏幕画面中的滚动条的位置进行精准设置。通过将完成滚动条位置的准确设置的所有帧的屏幕画面连贯起来,就实现了可以根据tts语音的播放进度对屏幕显示的字幕进行平滑、精准滚动的技术效果。进而解决了现有技术中存在的由于tts语音文件是根据文字转化临时生成的,无法提前设定与tts语音文件对应的字幕的显示时间,从而无法对与tts语音文件对应的字幕进行平滑、精准滚动的技术问题。
附图说明
10.此处所说明的附图用来提供对本公开的进一步理解,构成本技术的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
11.图1是用于实现根据本公开实施例1所述的方法的计算设备的硬件结构框图;
12.图2是根据本公开实施例1所述的tts语音对应字幕的滚动方法的流程示意图;
13.图3a是根据本公开实施例1所述的待绘制的屏幕画面中所显示的字幕的最大显示高度的示意图;
14.图3b是根据本公开实施例1所述的与音频文件对应的所有字幕的总高度的示意图;
15.图3c是根据本公开实施例1所述的根据计算得到的滚动位置对滚动条的位置进行设置后显示出来的字幕的一个示意图;
16.图3d是根据本公开实施例1所述的根据计算得到的滚动位置对滚动条的位置进行设置后显示出来的字幕的另一个示意图;
17.图3e是根据本公开实施例1所述的根据计算得到的滚动位置对滚动条的位置进行设置后显示出来的字幕的另一个示意图;
18.图4是根据本公开实施例1所述的每行字幕对应的音频片段以及音频播放进度的示意图;
19.图5是根据本公开实施例1所述的tts语音对应字幕的滚动方法的整体流程示意图;
20.图6是根据本公开实施例2所述的tts语音对应字幕的滚动装置的示意图;以及
21.图7是根据本公开实施例3所述的tts语音对应字幕的滚动装置的示意图。
具体实施方式
22.为了使本技术领域的人员更好地理解本公开的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
23.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
24.首先,在对本公开实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
25.术语1:tts是text to speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话;
26.术语2:tts语音,通俗讲就是经由文本转语音技术得到的语音。
27.实施例1
28.根据本实施例,提供了一种tts语音对应字幕的滚动方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
29.本实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的计算设备中执行。图1示出了一种tts语音对应字幕的滚动方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
30.应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本公开实施例中所涉及到的,该数据处理电路作为一
种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
31.存储器可用于存储应用软件的软件程序以及模块,如本公开实施例中的tts语音对应字幕的滚动方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的tts语音对应字幕的滚动方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
32.传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(network interface controller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
33.显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。
34.此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。
35.在上述运行环境下,根据本实施例的第一个方面,提供了一种tts语音对应字幕的滚动方法。图2示出了该方法的流程示意图,参考图2所示,该方法包括:
36.s202:根据与音频文件对应的所有字幕的总高度和待绘制的屏幕画面中所显示的字幕的最大显示高度,确定字幕的滚动起始位置的第一百分比值,其中音频文件为经由文本转语音技术得到的音频文件;
37.s204:在绘制当前帧的屏幕画面的情况下,确定音频文件的当前播放进度的第二百分比值;
38.s206:在判定第二百分比值大于第一百分比值的情况下,根据所有字幕的总高度、滚动起始位置以及当前播放进度,确定与当前帧的屏幕画面对应的滚动条的滚动位置,其中滚动条用于在屏幕画面中滚动显示所有字幕;以及
39.s208:根据滚动位置,对滚动条的位置进行设置。
40.正如上述背景所述的,tts是text to speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话。tts语音,通俗讲就是经由文本转语音技术得到的语音。在一些特殊场景下,播放这种tts语音文件的时候,需要滚动展示与之对应字幕。但是由于这些场景下的tts语音文件是根据文字转化临时生成的,其无法如同歌曲一样,提前对字幕的滚动时间设定,即无法按照预设的显示时间显示对应的字幕。因此无法对与tts语音文件对应的字幕进行平滑、精准滚动。
41.针对背景技术中存在的技术问题,本实施例所提出的技术方案在对与tts语音文件对应字幕进行滚动的过程中,首先根据与音频文件对应的所有字幕的总高度和待绘制的屏幕画面中所显示的字幕的最大显示高度,确定字幕的滚动起始位置的第一百分比值。其
中,参照图3a和图3b所示,待绘制的屏幕画面中所显示的字幕的最大显示高度为a,与音频文件对应的所有字幕的总高度为b,并且与音频文件对应的所有字幕的宽度与待绘制的屏幕画面中所显示的字幕的宽度一致。此时,字幕的滚动起始位置的第一百分比值例如为d,的计算公式例如为d=a/b/2或者d=a/b/3,此处不做具体限定。该滚动起始位置用于指示字幕的滚动起点位置,即到达该起点位置时开始对字幕进行滚动。
42.进一步地,由于屏幕是根据视觉暂留现象,一帧帧刷新绘制来产生连续动画的效果的,因此在进行每一帧的屏幕画面的绘制时,所有的东西(包括字幕)都需要重新绘制。在该应用场景下,考虑到tts语音文件与歌曲不同,没有过渡音效,是一种紧凑连贯的语音播放,从而可以通过tts语音文件的播放进度,来对字幕进行滚动。因此,在绘制当前帧的屏幕画面的情况下,需要确定音频文件的当前播放进度的第二百分比值(例如为f)。然后,在判定第二百分比值大于第一百分比值的情况下根据所有字幕的总高度、滚动起始位置以及当前播放进度,确定与当前帧的屏幕画面对应的滚动条的滚动位置,其中滚动条用于在屏幕画面中滚动显示所有字幕。其中,第二百分比值大于第一百分比值意味着音频文件的当前播放进度大于字幕的滚动起始位置,此时需要对字幕进行相应的滚动操作。其中,滚动条是一个系统的view控件,用于在屏幕画面中滚动显示所有字幕,即滚动条的的总高度等于所有字幕的总高度,并且滚动条的显示高度等于所显示的字幕的最大显示高度,余下高度对应的字幕都隐藏了,通过设置滚动条的位置来显示不同高度对应的字幕,所有播放连贯起来,不断地去计算滚动位置g并设置到屏幕画面上就实现了随tts语音的播放进度对字幕滚动显示。
43.在一个具体实施例中,滚动条的滚动位置为g,滚动范围是0-b(b等于tts字幕的总高度,如本次示例:713mm)。由于播放tts音频的时候不间断的告知播放进度f(例如每100毫秒告知一次进度,其中音频播放进度f的范围为0-1),因此可以通过音频的播放进度的通知同步改变滚动条的滚动位置。滚动位置的计算公式为g=b*(f-d)。示例性的,在本实施例中a=330mm,b=713mm,根据计算公式d=a/b/2计算得到d=330/713=23%。因此,计算得到的滚动起点位置为23%。当tts音频的播放进度f=0~0.23时,由于tts语音的当前播放进度f不大于计算得到的滚动起始位置d,字幕不进行滚动显示,此时滚动条的滚动位置g均为0,滚动位置不做变更(参照图3a所示),不需要对滚动条的滚动位置g进行计算。当播放进度f=25%时,由于tts语音的当前播放进度f大于计算得到的滚动起始位置d,需要计算滚动条的滚动位置,此时根据计算公式g=b*(f-d)计算得到g=713*(25%-23%)=14m,此时需要根据计算得到的滚动位置g=14mm,对滚动条的位置进行设置(参照图3c所示)。当播放进度f=50%时,由于tts语音的当前播放进度f大于计算得到的滚动起始位置d,需要计算滚动条的滚动位置,此时根据计算公式g=b*(f-d)计算得到g=713*(50%-23%)=227mm,此时需要根据计算得到的滚动位置g=227mm,对滚动条的位置进行设置(参照图3d所示)。当播放进度f=1时,由于tts语音的当前播放进度f大于计算得到的滚动起始位置d,需要计算滚动条的滚动位置,此时根据计算公式g=b*(f-d)计算得到g=713*(100%-23%)=549mm,此时需要根据计算得到的滚动位置g=549mm,对滚动条的位置进行设置(参照图3e所示)。
44.从而,通过这种方式,本实施例首先通过与经由文本转语音技术得到的音频文件对应的所有字幕的总高度和待绘制的屏幕画面中所显示的字幕的最大显示高度,确定字幕
的滚动起始位置的值,然后确定经由文本转语音技术得到的音频文件的当前播放进度,最后根据所有字幕的总高度、滚动起始位置以及当前播放进度,确定与当前帧的屏幕画面对应的滚动条的滚动位置,从而对当前帧的屏幕画面中的滚动条的位置进行精准设置。通过将完成滚动条位置的准确设置的所有帧的屏幕画面连贯起来,就实现了可以根据tts语音的播放进度对屏幕显示的字幕进行平滑、精准滚动的技术效果。进而解决了现有技术中存在的由于tts语音文件是根据文字转化临时生成的,无法提前设定与tts语音文件对应的字幕的显示时间,从而无法对与tts语音文件对应的字幕进行平滑、精准滚动的技术问题。
45.可选地,根据与音频文件对应的所有字幕的总高度和待绘制的屏幕画面中所显示的字幕的最大显示高度,确定字幕的滚动起始位置的第一百分比值的操作,包括:计算字幕的最大显示高度与所有字幕的总高度的比值;以及将比值的二分之一值确定为第一百分比值。
46.具体地,在计算字幕的滚动起始位置的第一百分比值的过程中,首先计算字幕的最大显示高度与所有字幕的总高度的比值,即首先计算出a所占总高度的百分比c=a/b,然后为了保证字幕在播放到中间位置的时候开始滚动,把所占百分比c二分之一值确定为滚动起始位置的百分比值(对应于第一百分比值):d=c/2=a/b/2。通过上述方式,保证了字幕在播放到中间位置的时候开始滚动。
47.可选地,根据所有字幕的总高度、滚动起始位置以及当前播放进度,确定与当前帧的屏幕画面对应的滚动条的滚动位置的操作,包括:求取当前播放进度与滚动起始位置之间的差值;以及根据差值和所有字幕的总高度,确定与当前帧的屏幕画面对应的滚动条的滚动位置。
48.具体地,在确定与当前帧的屏幕画面对应的滚动条的滚动位置的操作过程中,首先求取当前播放进度与滚动起始位置之间的差值,即计算(f-d),然后将(f-d)*所有字幕的总高度b确定与当前帧的屏幕画面对应的滚动条的滚动位置g。通过上述方式,可以根据tts语音的当前播放进度准确计算得到与当前帧的屏幕画面对应的滚动条的滚动位置,为后续能够将完成滚动条位置的准确设置的所有帧的屏幕画面连贯起来以便实现根据tts语音的播放进度对屏幕显示的字幕进行平滑、精准滚动奠定了基础。
49.可选地,在绘制当前帧的屏幕画面的情况下,确定音频文件的当前播放进度的操作,包括:从预设的用于播放音频文件的系统api工具类获取当前播放的音频文件的当前播放长度和音频文件的总长度;以及根据所获取的当前播放长度和总长度,确定音频文件的当前播放进度。
50.具体地,使用系统api工具类播放音频文件时,能读取到加载的音频文件的总长度和当前播放长度,如android系统api工具类mediaplayer,可通过mediaplayer.getcurrentposition()/mediaplayer.getduration()获取当前播放的音频的播放长度与总长度。因此,当进行当前帧的屏幕画面的绘制时,确定音频文件的当前播放进度的操作过程中,可以从系统api工具类直接获取当前播放的音频文件的当前播放长度和音频文件的总长度,然后根据所获取的当前播放长度和总长度,确定音频文件的当前播放进度,即将当前播放长度与总长度的比值确定为音频文件的当前播放进度。通过上述方式,可以快速准确地获取到音频文件的当前播放进度。
51.可选地,该方法还包括:根据每行字幕的行宽与所有字幕的行宽总和的比例,从音
频文件中确定每行字幕对应的音频片段;根据每行字幕所对应的音频片段在音频文件中的音频位置,确定在完成每行字幕的显示的时刻下音频文件的音频播放进度;根据音频播放进度和当前播放进度,确定当前帧的屏幕画面中显示的字幕的染色范围;以及根据所确定的染色范围,对当前帧的屏幕画面中显示的字幕进行染色。
52.在一些特殊场景下,播放这种tts语音文件的时候,需要展示与之对应字幕。但是由于这些场景下的tts语音文件是根据文字转化临时生成的,其无法如同歌曲一样,提前对字幕的染色的进度时间设定。因此无法对与tts语音文件对应的字幕进行准确染色。
53.针对背景技术中存在的技术问题,本实施例所提出的技术方案在对与tts语音文件对应字幕进行染色的过程中,首先根据每行字幕的行宽与所有字幕的行宽总和的比例,从经由文本转语音技术得到的音频文件(对应于上述的tts语音文件)中确定每行字幕对应的音频片段。其中,每行字幕的行宽从某种程度上来说可以表示这一行字幕包含的文字,行宽越宽则该行字幕包含的文字越多,所对应的音频片段越长,从而每行字幕的行宽与对应的音频片段的长度成正比。每行字幕的行宽的精确度到像素值,每行字幕的行宽是不一样的,如符号留白、中英文混排都会造成每行字幕的行宽是不一致的。因此,可以通过每行字幕的行宽与所有字幕的总行宽的比例,来计算每行字幕所对应的音频片段在整个音频文件中的位置。
54.其中,参照图4所示,整个音频文件对应有三行字幕,第一行字幕为aaaaa,第二行字幕为bbb.,第三行字幕为cc,并且根据第一行字幕的行宽与总字幕的行宽总和的比例为50%,第二行字幕的行宽与总字幕的行宽总和的比例为36%,第三行字幕的行宽与总字幕的行宽总和的比例为14%,此时计算得到第一行字幕对应的音频片段为图4中的音频片段1,第二行字幕对应的音频片段为图4中的音频片段2,第三行字幕对应的音频片段为图4中的音频片段3。此时,需要根据每行字幕所对应的音频片段在音频文件中的音频位置,确定在完成每行字幕的显示的时刻下音频文件的音频播放进度,即在完成第一行字幕的显示的时刻下音频文件的音频播放进度(例如,50%),在完成第二行字幕的显示的时刻下音频文件的音频播放进度(例如,86%),以及在完成第一行字幕的显示的时刻下音频文件的音频播放进度(例如,100%)。
55.进一步地,由于屏幕是根据视觉暂留现象,一帧帧刷新绘制来产生连续动画的效果的,因此在进行每一帧的屏幕画面的绘制时,所有的东西(包括字幕)都需要重新绘制。在该应用场景下,考虑到tts语音文件与歌曲不同,没有过渡音效,是一种紧凑连贯的语音播放,从而可以通过tts语音文件的播放进度,来对字幕进行染色。因此,在绘制当前帧的屏幕画面的情况下,需要确定音频文件的当前播放进度,即确定音频文件的当前播放长度与总长度的比值。然后,根据所确定的在完成每行字幕的显示的时刻下音频文件的音频播放进度和当前播放进度,确定当前帧的屏幕画面中显示的字幕的染色范围。最后,根据所确定的染色范围,对当前帧的屏幕画面中显示的字幕进行染色。例如:所确定的当前播放进度为50%,则根据前述所确定的在完成各行字幕的显示的时刻下音频文件的音频播放进度,可以确定当前帧的屏幕画面中显示的字幕的染色范围为包含第一行字幕的全部字幕,从而需要对当前帧的屏幕画面中显示的字幕中的第一行字幕进行全部染色,其他行字幕不需要染色。
56.从而,通过上述方式,本实施例可以通过经由文本转语音技术得到的音频文件的
当前播放进度,来对当前帧的屏幕画面中显示的字幕进行准确染色。通过将完成准确染色的所有帧的屏幕画面连贯起来,就实现了可以根据tts语音的播放进度对屏幕显示的字幕进行准确染色的技术效果。进而解决了现有技术中存在的由于tts语音文件是根据文字转化临时生成的,无法提前设定与tts语音文件对应的字幕的染色进度时间,从而无法对与tts语音文件对应的字幕进行准确染色的技术问题。
57.可选地,根据音频播放进度和当前播放进度,确定当前帧的屏幕画面中显示的字幕的染色范围的操作,包括:将当前播放进度和音频播放进度进行比对,判定当前播放进度是否超过在完成目标行字幕的显示的时刻下音频文件的目标音频播放进度;以及根据判定的结果,确定当前帧的屏幕画面中显示的字幕的染色范围。
58.具体地,根据音频播放进度和当前播放进度,确定当前帧的屏幕画面中显示的字幕的染色范围的操作过程中,首先将当前播放进度和音频播放进度进行比对,根据比对的结果判定当前播放进度是否超过在完成目标行字幕的显示的时刻下音频文件的目标音频播放进度。例如:当前播放进度例如为51%,参照图4所示,将51%分别与50%、86%以及100%进行比对,判定51%是否超过在完成目标行字幕(例如第一行字幕、第二行字幕和第三行字幕)的显示的时刻下音频文件的目标音频播放进度(例如50%、86%以及100%)。最后,根据判定的结果,确定当前帧的屏幕画面中显示的字幕的染色范围。即,由于当前播放进度“51%”超过在完成第一行字幕的显示的时刻下音频文件的目标音频播放进度“50%”,但未超过在完成第二行字幕和第三行字幕的显示的时刻下音频文件的目标音频播放进度“86%”“100%”,因此根据判定的结果,确定当前帧的屏幕画面中显示的字幕的染色范围为第一行字幕的全部字幕加上第二行字幕的部分字幕。通过这种方式,可以快速准确的确定当前帧的屏幕画面中显示的字幕的染色范围。
59.可选地,根据判定的结果,确定当前帧的屏幕画面中显示的字幕的染色范围的操作,包括:在判定的结果为当前播放进度超过在完成目标行字幕的显示的时刻下音频文件的目标音频播放进度的情况下,将目标行字幕全部纳入当前帧的屏幕画面中显示的字幕的染色范围。
60.具体地,依照前述的,在判定的结果为当前播放进度(即,51%)超过在完成目标行字幕(例如第一行字幕)的显示的时刻下音频文件的目标音频播放进度(即,50%)的情况下,将第一行字幕全部纳入当前帧的屏幕画面中显示的字幕的染色范围,即对第一行字幕的全部字幕进行染色处理。通过这种方式,能够对已完成播放的音频片段对应的字幕进行准确染色,从而便于用户更直观的查看目标字幕对应的音频是否已播放,有效提高了用户的使用体验。
61.可选地,根据判定的结果,确定当前帧的屏幕画面中显示的字幕的染色范围的操作,包括:在判定的结果为当前播放进度未超过在完成目标行字幕的显示的时刻下音频文件的目标音频播放进度的情况下,根据当前播放进度将目标行字幕部分纳入当前帧的屏幕画面中显示的字幕的染色范围。
62.具体地,依据前述的,当前播放进度例如为51%,由于51%未超过在完成第二行字幕的显示的时刻下音频文件的目标音频播放进度(即,86%),在该应用场景下,需要根据当前播放进度“51%”将第二行字幕部分纳入当前帧的屏幕画面中显示的字幕的染色范围,以达到字幕的精准染色。
63.在一个优先实施例中,根据当前播放进度将目标行字幕部分纳入当前帧的屏幕画面中显示的字幕的染色范围的操作过程中,首先可以确定在完成第二行字幕的上一行字幕(即,第一行字幕)的显示的时刻下音频文件的音频播放进度(即,50%),然后求取当前播放进度(51%)与所确定的音频播放进度(50%)的差值,得到差值为1%。此时,需要根据差值和所有字幕的行宽总和,确定使用像素表示的染色宽度。其中,可以使用1%乘以所有字幕的行宽总和,得到染色宽度为3个像素值。最后,根据染色宽度(即,3个像素值),将第二行字幕中相应宽度的字幕纳入染色范围,即将第二行字幕中的3个像素的宽度纳入染色范围。从而,在进行染色的过程中,不仅对第一行字幕进行全部染色,还需要对第二行字幕中的3个像素的宽度进行染色,展现出来的例如为第一个字幕b的一部分染成红色。通过上述方式,实现了与tts语音对应的字幕的精准染色。
64.可选地,该方法还包括:模拟经由文本转语音技术得到的音频文件的播放场景,生成模拟场景;以及在模拟场景下确定每行字幕对应的音频片段以及在完成每行字幕的显示的时刻下音频文件的音频播放进度。
65.具体地,在对与tts语音对应的字幕进行染色之前,首先进行场景模拟,即模拟tts语音播放相关的场景,采取一般的tts纯色字幕展示。然后,编写算法,即在该模拟场景下确定每行字幕对应的音频片段以及在完成每行字幕的显示的时刻下音频文件的音频播放进度。通过上述方式获得的音频片段和音频播放进度可以为上述的对与tts语音对应的字幕进行染色提供了有力的比对依据,从而准确判定字幕的染色范围。
66.此外,图5示出了本实施例所提供的tts语音对应字幕的滚动方法的整体流程示意图。参照图5所示,本实施例所提供的tts语音对应字幕的滚动方法包括以下操作步骤:
67.1)模拟tts播放相关的场景,采取一般的tts纯色字幕展示。
68.2)编写算法,首先计算tts字幕滚动的百分比起点,计算字幕百分比起点之前需要拿到几个关键点(注意事项:以下公式除了g是int类型,不能有小数点会进行四舍五入,其它的需要在浮点数表达方式下计算):
69.1、tts字幕的最大可显示高度:a;
70.2、tts字幕的总高度:b;
71.3、tts字幕的滚动起始位置:d=a/b/2;为了保证tts字幕在播放到所看到的tts字幕中间的时候开始滚动,首先计算出a所占总高度的百分比c=a/b,然后为了保证在中间位置进行滚动,把所占百分比c/2就是滚动起始的位置:d=c/2=a/b/2;
72.4、tts音频随着播放进度计算滚动条的滚动位置:g=b*(f-d)。
73.其中,g是数字类型会进行四舍五入,不能有小数点。有了tts字幕对应滚动条的滚动位置的百分比起点d,下面需要获取语音文件的当前播放进度值f,为了保证平滑的滚动需要做一下简单计算,当f大于d的时候进行滚动计算:g=b*(f-d)。g的最大滚动值等于b(tts字幕总高度),g的滚动范围是0到b,在g大于0的时候进行设置滚动条的位置,所有播放连贯起来,不断的去计算g值并设置到视图上就实现了跟随tts语音的播放进度对字幕进行滚动显示的目的。
74.综上所述,本实施例所提供的上述方法实现了可以根据tts语音的播放进度对屏幕显示的字幕进行平滑、精准滚动的技术效果,可以用于双录场景当中,对于用户体验有良好的提升,并对之后的双录业务审核,回放都有友好的展现提示作用。
75.此外,参考图1所示,根据本实施例的第二个方面,提供了一种存储介质。存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。
76.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
77.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
78.实施例2
79.图6示出了根据本实施例所述的tts语音对应字幕的滚动装置600,该装置600与根据实施例1的第一个方面所述的方法相对应。参考图6所示,该装置600包括:第一确定模块610,用于根据与音频文件对应的所有字幕的总高度和待绘制的屏幕画面中所显示的字幕的最大显示高度,确定字幕的滚动起始位置的第一百分比值,其中音频文件为经由文本转语音技术得到的音频文件;第二确定模块620,用于在绘制当前帧的屏幕画面的情况下,确定音频文件的当前播放进度的第二百分比值;第三确定模块630,用于在判定第二百分比值大于第一百分比值的情况下,根据所有字幕的总高度、滚动起始位置以及当前播放进度,确定与当前帧的屏幕画面对应的滚动条的滚动位置,其中滚动条用于在屏幕画面中滚动显示所有字幕;以及设置模块640,用于根据滚动位置,对滚动条的位置进行设置。
80.可选地,根据与音频文件对应的所有字幕的总高度和待绘制的屏幕画面中所显示的字幕的最大显示高度,确定字幕的滚动起始位置的第一百分比值的操作,包括:计算字幕的最大显示高度与所有字幕的总高度的比值;以及将比值的二分之一值确定为第一百分比值。
81.可选地,根据所有字幕的总高度、滚动起始位置以及当前播放进度,确定与当前帧的屏幕画面对应的滚动条的滚动位置的操作,包括:求取当前播放进度与滚动起始位置之间的差值;以及根据差值和所有字幕的总高度,确定与当前帧的屏幕画面对应的滚动条的滚动位置。
82.可选地,在绘制当前帧的屏幕画面的情况下,确定音频文件的当前播放进度的操作,包括:从预设的用于播放音频文件的系统api工具类获取当前播放的音频文件的当前播放长度和音频文件的总长度;以及根据所获取的当前播放长度和总长度,确定音频文件的当前播放进度。
83.可选地,装置600还包括:根据每行字幕的行宽与所有字幕的行宽总和的比例,从音频文件中确定每行字幕对应的音频片段;根据每行字幕所对应的音频片段在音频文件中的音频位置,确定在完成每行字幕的显示的时刻下音频文件的音频播放进度;根据音频播放进度和当前播放进度,确定当前帧的屏幕画面中显示的字幕的染色范围;以及根据所确
定的染色范围,对当前帧的屏幕画面中显示的字幕进行染色。
84.可选地,根据音频播放进度和当前播放进度,确定当前帧的屏幕画面中显示的字幕的染色范围的操作,包括:将当前播放进度和音频播放进度进行比对,判定当前播放进度是否超过在完成目标行字幕的显示的时刻下音频文件的目标音频播放进度;以及根据判定的结果,确定当前帧的屏幕画面中显示的字幕的染色范围。
85.可选地,根据判定的结果,确定当前帧的屏幕画面中显示的字幕的染色范围的操作,包括:在判定的结果为当前播放进度超过在完成目标行字幕的显示的时刻下音频文件的目标音频播放进度的情况下,将目标行字幕全部纳入当前帧的屏幕画面中显示的字幕的染色范围。
86.从而根据本实施例,
87.实施例3
88.图7示出了根据本实施例所述的tts语音对应字幕的滚动装置700,该装置700与根据实施例1的第一个方面所述的方法相对应。参考图7所示,该装置700包括:处理器710;以及存储器720,与处理器710连接,用于为处理器710提供处理以下处理步骤的指令:根据与音频文件对应的所有字幕的总高度和待绘制的屏幕画面中所显示的字幕的最大显示高度,确定字幕的滚动起始位置的第一百分比值,其中音频文件为经由文本转语音技术得到的音频文件;在绘制当前帧的屏幕画面的情况下,确定音频文件的当前播放进度的第二百分比值;在判定第二百分比值大于第一百分比值的情况下,根据所有字幕的总高度、滚动起始位置以及当前播放进度,确定与当前帧的屏幕画面对应的滚动条的滚动位置,其中滚动条用于在屏幕画面中滚动显示所有字幕;以及根据滚动位置,对滚动条的位置进行设置。
89.可选地,根据与音频文件对应的所有字幕的总高度和待绘制的屏幕画面中所显示的字幕的最大显示高度,确定字幕的滚动起始位置的第一百分比值的操作,包括:计算字幕的最大显示高度与所有字幕的总高度的比值;以及将比值的二分之一值确定为第一百分比值。
90.可选地,根据所有字幕的总高度、滚动起始位置以及当前播放进度,确定与当前帧的屏幕画面对应的滚动条的滚动位置的操作,包括:求取当前播放进度与滚动起始位置之间的差值;以及根据差值和所有字幕的总高度,确定与当前帧的屏幕画面对应的滚动条的滚动位置。
91.可选地,在绘制当前帧的屏幕画面的情况下,确定音频文件的当前播放进度的操作,包括:从预设的用于播放音频文件的系统api工具类获取当前播放的音频文件的当前播放长度和音频文件的总长度;以及根据所获取的当前播放长度和总长度,确定音频文件的当前播放进度。
92.可选地,存储器720还用于为处理器710提供处理以下处理步骤的指令:根据每行字幕的行宽与所有字幕的行宽总和的比例,从音频文件中确定每行字幕对应的音频片段;根据每行字幕所对应的音频片段在音频文件中的音频位置,确定在完成每行字幕的显示的时刻下音频文件的音频播放进度;根据音频播放进度和当前播放进度,确定当前帧的屏幕画面中显示的字幕的染色范围;以及根据所确定的染色范围,对当前帧的屏幕画面中显示的字幕进行染色。
93.可选地,根据音频播放进度和当前播放进度,确定当前帧的屏幕画面中显示的字
幕的染色范围的操作,包括:将当前播放进度和音频播放进度进行比对,判定当前播放进度是否超过在完成目标行字幕的显示的时刻下音频文件的目标音频播放进度;以及根据判定的结果,确定当前帧的屏幕画面中显示的字幕的染色范围。
94.可选地,根据判定的结果,确定当前帧的屏幕画面中显示的字幕的染色范围的操作,包括:在判定的结果为当前播放进度超过在完成目标行字幕的显示的时刻下音频文件的目标音频播放进度的情况下,将目标行字幕全部纳入当前帧的屏幕画面中显示的字幕的染色范围。
95.从而根据本实施例,
96.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
97.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
98.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
99.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
100.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
101.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccess memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
102.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1