一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种字幕处理方法、装置、电子设备和存储介质与流程

2022-12-13 22:57:20 来源:中国专利 TAG:


1.本公开涉及信息技术领域,尤其涉及一种字幕处理方法、装置、电子设备和存储介质。


背景技术:

2.在现有技术中,为了提高用户观看音视频信息的方便性,可以在音视频信息中增加字幕。具体的,终端可以对字幕进行逐字式的显示,但是逐字式显示字幕存在频繁跳动的问题,从而降低了用户体验。


技术实现要素:

3.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开实施例提供了一种字幕处理方法、装置、电子设备和存储介质。
4.本公开实施例提供了一种字幕处理方法,所述方法包括:
5.获取直播音视频流对应的字幕数据、以及所述字幕数据中每个子字幕数据的开始时间和结束时间;
6.根据所述字幕数据中任一子字幕数据的开始时间和结束时间,对所述任一子字幕数据中的每个字幕单元的时间戳进行调整;
7.根据所述字幕数据中每个字幕单元的调整后的时间戳,将所述字幕数据中的每个字幕单元添加到所述直播音视频流中。
8.本公开实施例还提供了一种字幕处理装置,包括:
9.获取模块,用于获取直播音视频流对应的字幕数据、以及所述字幕数据中每个子字幕数据的开始时间和结束时间;
10.调整模块,用于根据所述字幕数据中任一子字幕数据的开始时间和结束时间,对所述任一子字幕数据中的每个字幕单元的时间戳进行调整;
11.添加模块,用于根据所述字幕数据中每个字幕单元的调整后的时间戳,将所述字幕数据中的每个字幕单元添加到所述直播音视频流中。
12.本公开实施例还提供了一种电子设备,所述电子设备包括:
13.一个或多个处理器;
14.存储装置,用于存储一个或多个程序;
15.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的字幕处理方法。
16.本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的字幕处理方法。
17.本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如上所述的字幕处理方法。
18.本公开实施例提供的技术方案与现有技术相比至少具有如下优点:
19.本公开实施例提供的技术方案通过设置根据字幕数据中任一子字幕数据的开始时间和结束时间,对任一子字幕数据中的每个字幕单元的时间戳进行调整;根据字幕数据中每个字幕单元的调整后的时间戳,将字幕数据中的每个字幕单元添加到直播音视频流中,可以使得同一子字幕数据中的相邻字幕单元时间戳的时间间隔趋于定值,进而使得从时间角度而言,字幕单元被均匀地添加到视频直播流中,进而使得相邻两个字幕单元在终端显示组件中出现的时间间隔趋于均匀,在一定程度上解决了终端对字幕进行逐字式的显示时存在频繁跳动的问题,提高了用户体验。
20.本公开实施例提供的技术方案尤其适用于大型会议及活动直播、行业及学术峰会直播、娱乐明星直播以及电商直播等情景。
附图说明
21.结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
22.图1为本公开实施例提供的一种字幕处理方法使用场景的示意图;
23.图2为本公开实施例提供的另一种字幕处理方法使用场景的示意图;
24.图3为本公开实施例提供的另一种字幕处理方法使用场景的示意图;
25.图4为本公开实施例提供的一种字幕处理方法的流程图;
26.图5为本公开实施例提供的一种将字幕数据中的每个字幕单元添加到直播音视频流中的原理图;
27.图6为本公开实施例提供的又一种字幕处理方法的流程图;
28.图7为本公开实施例提供的又一种字幕处理方法的流程图;
29.图8为本公开实施例中的一种字幕处理装置的结构示意图;
30.图9为本公开实施例中的一种电子设备的结构示意图。
具体实施方式
31.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
32.应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
33.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
34.需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
35.需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
36.本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
37.如背景技术所述,在直播过程中,终端可以对字幕进行逐字式的显示,但是逐字式显示字幕存在频繁跳动的问题。研究表明,造成频繁跳动的一个重要原因是,同一子字幕数据中,相邻两个字幕单元在终端显示组件中出现的时间间隔不均匀,导致同一子字幕数据中,每个字幕单元不是均匀稳定地出现。
38.有鉴于此,本公开实施例提供一种字幕处理方法。图1为本公开实施例提供的一种字幕处理方法使用场景的示意图。本公开提供的字幕处理方法可应用于图1所示的应用环境中。参见图1,该字幕处理系统包括:拍摄设备、麦克风、服务器10、直播设备11、直播设备12、终端13和终端14。其中,拍摄设备和麦克风位于演播室内。拍摄设备用于对演播室内的画面进行录制,形成音视频流。麦克风用于对演播室内的声音进行采集,形成音频流。麦克风和拍摄设备均与服务器10通过网络通讯连接,拍摄设备与直播设备11和直播设备12均通过网络通讯连接。服务器10与直播设备11和直播设备12均通过网络通讯连接。终端13与服务器11通过网络通讯连接,终端14与服务器12通过网络通信连接。
39.服务器10获取音频流,然后对该音频流进行语音识别,得到识别文本,并将该识别文本发送至直播设备11和直播设备12。其中,服务器10获取音频流的方式有两种:一种是,服务器10直接通过麦克风获取麦克风采集的音频流;另一种是,服务器通过拍摄设备获取直播音视频流,然后对该直播音视频流进行分离处理得到音频流。
40.直播设备11对识别文本进行翻译得到翻译文本,然后将识别文本和/或翻译文本作为字幕数据添加到从拍摄设备处获取到的直播音视频流中,得到添加有字幕的直播音视频流,并将添加有字幕的音视频流推送至终端13,以实现线下直播的目的。类似地,直播设备12对识别文本进行翻译得到翻译文本,然后将识别文本和/或翻译文本作为字幕数据添加到从拍摄设备处获取到的直播音视频流中,得到添加有字幕的直播音视频流,并将添加有字幕的音视频流推送至终端14,以实现线下直播的目的。可选地,直播设备11和直播设备12使用的翻译语种不同。示例性地,识别文本为中文文本,经直播设备11翻译得到翻译文本为英文文本,经直播设备12翻译得到翻译文本为日文文本。
41.图2为本公开实施例提供的另一种字幕处理方法使用场景的示意图。本公开提供的字幕处理方法可应用于图2所示的应用环境中。与图1相比,图2中,该字幕处理系统还包括:位于演播室的大屏幕。大屏幕与服务器10通过网络通信连接。
42.服务器10在得到识别文本后,还将识别文本作为字幕数据添加到从拍摄设备处获取得到的直播音视频流中,得到添加有识别文本的直播音视频流,并将添加识别文本的直播音视频流推送至大屏幕,以使大屏幕显示带有识别文本的直播音视频流,进而实现线上直播的目的。
43.或者,服务器10在得到识别文本后,对识别文本进行翻译,得到翻译文本;然后将翻译文本作为字幕数据添加到从拍摄设备处获取得到的直播音视频流中得到添加有翻译文本的直播音视频流,并将添加有翻译文本的直播音视频流推送至大屏幕,以使大屏幕显示带有翻译文本的直播音视频流。服务器10使用的翻译语种与直播设备11(或直播设备12)
使用的翻译语种可以相同,也可以不同。示例性地,识别文本为中文文本,经直播设备11翻译得到翻译文本为英文文本,经直播设备12翻译得到翻译文本为日文文本,经服务器10翻译得到翻译文本为日文文本。
44.图3为本公开实施例提供的另一种字幕处理方法使用场景的示意图。本公开提供的字幕处理方法可应用于图3所示的应用环境中。参见图3,该字幕处理系统包括拍摄设备1、拍摄设备2、麦克风、服务器10、直播设备11、直播设备12、直播设备15、终端13、终端14以及调度设备16。其中,拍摄设备1和拍摄设备2和麦克风位于演播室内。拍摄设备1和拍摄设备2用于对演播室内的画面进行录制,形成音视频流。并且,拍摄设备1和拍摄设备2位于演播室内的不同位置,因此,拍摄设备1形成的音视频流和拍摄设备2形成的音视频流不同。麦克风用于对演播室内的声音进行采集,形成音频流。
45.拍摄设备1与直播设备11和直播设备12通过网络通信连接,拍摄设备2与直播设备11和直播设备15通过网络通信连接,直播设备12和直播设备15通过网络与调度设备16通过网络通讯连接,调度设备16与终端14通过网络通信连接。直播设备11与终端13通过网络通信连接。麦克风与服务器10通过网络通信连接。同时,服务器10还与直播设备11,直播设备12和直播设备15通过网络通讯连接。
46.服务器10获取音频流,然后对该音频流进行语音识别,得到识别文本,并将该识别文本发送至直播设备11、直播设备12以及直播设备15。其中,服务器10获取音频流的方式有两种:一种是,服务器10直接通过麦克风获取麦克风采集的音频流;另一种是,服务器通过拍摄设备获取直播音视频流,然后对该直播音视频流进行分离处理得到音频流。若采用第二种方式,需要设置拍摄设备1和/或拍摄设备2通过网络与服务器10通讯连接。
47.直播设备11对识别文本进行翻译得到翻译文本,然后将翻译文本作为字幕数据添加到从拍摄设备处获取到的直播音视频流中,得到添加有翻译文本的直播音视频流,并将添加有翻译文本的音视频流推送至终端13,以实现线下直播的目的。
48.直播设备12对识别文本进行翻译得到翻译文本,然后将翻译文本作为字幕数据添加到从拍摄设备处获取到的直播音视频流中,得到添加有翻译文本的直播音视频流,并将添加有翻译文本的音视频流推送至调度设备16。类似地,直播设备15对识别文本进行翻译得到翻译文本,然后将翻译文本作为字幕数据添加到从拍摄设备处获取到的直播音视频流中,得到添加有翻译文本的直播音视频流,并将添加有翻译文本的音视频流推送至调度设备16。调度设备16可以对直播设备12推送的添加有翻译文本的音视频流和直播设备15推送的添加有翻译文本的音视频流进行调度,以将两者中的任意一个推送至终端14,进而在终端14中实现两种音视频流的切换。可选地,直播设备12使用的翻译语种和直播设备15使用的翻译语种可以相同,也可以不同。示例性地,识别文本为中文文本,经直播设备12翻译得到翻译文本为日文文本,经直播设备15翻译得到翻译文本为日文文本。
49.图4为本公开实施例提供的一种字幕处理方法的流程图,本实施例可适用于服务端中进行字幕处理的情况,该方法可以由字幕处理装置执行,该装置可以采用软件和/或硬件的方式实现,该装置可配置于电子设备中,例如服务器或直播设备。即本公开提供的执行主体可以为图1-3中的服务器或直播设备。
50.如图1所示,该方法具体可以包括:
51.s110、获取直播音视频流对应的字幕数据、以及字幕数据中每个子字幕数据的开
始时间和结束时间。
52.直播音视频流对应的字幕数据可以为对直播音视频流中所包含的语音信息进行语音识别的识别结果(识别结果为与直播音视频流中的语音数据相同语种的识别文本),还可以为对识别文本进行翻译后得到的目标语种的翻译文本,也可以为由识别文本与翻译文本共同构成的数据。可选地,直播音视频流对应的字幕数据还可以为对直播音视频流中所包含的语音信息的识别文本修改后的文本,和/或对识别文本进行翻译的翻译文本修改后的文本。
53.子字幕数据是指,按照预设方式对字幕数据进行切分后,得到的切分结果。示例性地,以句为单位,对字幕数据进行切分,则切分后的所得到的每一个句子为一个子字幕数据。
54.按照预设方式对字幕数据进行切分,包括:基于语音边界检测(voice activity detection,vad)方式对字幕数据进行切分;或者,基于知识图谱对字幕数据进行切分;或者,基于预设字符数量对字幕数据进行切分,以使每条子字幕数据包含预设字符数量的字符。
55.具体地,基于vad方式对直播音视频流进行切分,是根据说话的时间间隔对直播音视频流中的音频流进行切分,也即根据音频流中音频的波形图通过语音识别来判断应该断句的位置,从而使得整个直播音视频流对应的字幕数据被切分为至少一条子字幕数据。基于知识图谱对字幕数据进行切分的方式是在保证切分生成的子字幕数据的长度适中的同时,尽量将专有名词切分至同一条子字幕数据中。基于预设字符数量对字幕数据进行切分是使切分后的每个子字幕数据均包含预设字符数量的字符,以使得切分得到的子字幕数据的长度固定且适中。在本公开实施例中,可以同时基于vad方式和知识图谱方式对字幕数据进行切分,具体的,可以先基于vad方式对字幕数据进行切分,再基于知识图谱方式对字幕数据的切分点进行调整,使生成的子字幕数据长度适中,且切分合理,符合用户说话方式。
56.若本步骤的执行主体为服务器,本步骤的具体实现方法可以包括:获取拍摄设备采集的直播音视频流,然后对直播音视频流进行解码、分离,以获取直播音视频流中的音频流;对音频流进行语音识别,得到直播音视频流对应的字幕数据;对字幕数据进行切分,得到构成字幕数据的所有子字幕数据,以及每个子字幕数据在直播音视频流中的开始时间和结束时间。或者,本步骤的具体实现方法可以包括:获取音频采集设备(如麦克风)采集的与直播音视频流对应的音频流;对音频流进行语音识别,得到直播音视频流对应的字幕数据;对字幕数据进行切分,得到构成字幕数据的所有子字幕数据,以及每个子字幕数据在直播音视频流中的开始时间和结束时间。
57.若本步骤的执行主体为直播设备,本步骤的具体实现方法可以包括:从服务器获取直播音视频流对应的字幕数据、以及字幕数据中每个子字幕数据的开始时间和结束时间。
58.s120、根据字幕数据中任一子字幕数据的开始时间和结束时间,对任一子字幕数据中的每个字幕单元的时间戳进行调整。
59.字幕单元是指以字、或词为单位,对子字幕数据切分后的结果。示例性地,某中文子字幕数据为“太阳出来了”,以字符为单位进行切分,该子字幕数据中包括五个字幕单元,分别为“太”、“阳”、“出”、“来”以及“了”。
[0060]“对任一子字幕数据中的每个字幕单元的时间戳进行调整”包括两种情况:
[0061]
情况一,若字幕数据为识别文本,可以基于直播音视频流直接确定每个字幕单元的初始时间戳。此种情况下,对字幕单元的时间戳进行调整,可以理解为对字幕单元的时间戳的初始时间戳进行修正,以使任一子字幕数据中相邻字幕单元时间戳的时间间隔趋于定值。
[0062]
图5为本公开实施例提供的一种将字幕数据中的每个字幕单元添加到直播音视频流中的原理图。参见图5,示例性地,某识别文本字幕数据中,子字幕数据为“abcd”,其包括四个字幕单元,分别为“a”、“b”、“c”以及“d”。字幕单元“a”的初始时间戳为t3,字幕单元“b”的初始时间戳为t3 2ms,字幕单元“c”的初始时间戳为t3 15ms,字幕单元“d”的初始时间戳为t3 30ms。通过对字幕单元的时间戳进行调整,以使得调整后字幕单元“a”的时间戳为t3,调整后字幕单元“b”的时间戳为t3 10ms,调整后字幕单元“c”的时间戳为t3 20ms,调整后字幕单元“d”的时间戳为t3 30ms。
[0063]
情况二,若字幕数据为翻译文本,此种情况下,对字幕单元的时间戳进行调整,应理解为确定各字幕单元的时间戳。
[0064]
本领域技术人员可以理解,直播视频中的直播人员并未直接说出翻译文本中的字幕单元;不同语种之间语法不同,如存在句子倒装的情况,使得意义相同的字(或词)在不同语种句子中的位置不同,但是在显示翻译文本时,需要按照句子中字幕单元的排列顺序顺次显示;不同语种下,识别文本和翻译文本所包括的字幕单元的数量也不一定相同。这些因素共同导致无法基于直播音视频流直接确定每个字幕单元的初始时间戳。因此在执行本步骤时,直接基于字幕数据中任一子字幕数据的开始时间和结束时间,确定任一子字幕数据中的各字幕单元的时间戳,以使任一子字幕数据中的相邻字幕单元时间戳的时间间隔趋于定值。
[0065]
本步骤的具体实现方法有多种,本技术对此不作限制。示例性地,本步骤的具体实现方法包括:根据字幕数据中任一子字幕数据的开始时间和结束时间,确定任一子字幕数据中每相邻两个字幕单元之间的平均时间间隔;根据平均时间间隔,对任一子字幕数据中的每个字幕单元的时间戳进行调整。这样设置有利于确保任一子字幕数据中的相邻字幕单元时间戳的时间间隔趋于定值。
[0066]
进一步地,根据平均时间间隔,对任一子字幕数据中的每个字幕单元的时间戳进行调整,包括:根据任一子字幕数据的开始时间和平均时间间隔,对任一子字幕数据中的每个字幕单元的时间戳进行调整。
[0067]
示例性地,假设某字幕数据中,子字幕数据为“abcd”,其包括四个字幕单元,分别为“a”、“b”、“c”以及“d”。该子字幕数据的开始时间为t3,结束时间为t3 30ms。该子字幕数据的开始时间和结束时间之间的时间间隔为30ms。由于其共包括四个字幕单元,得到该子字幕数据中相邻两个字幕单元之间的平均时间间隔为10ms。根据子字幕数据的开始时间t3,和相邻两个字幕单元之间的平均时间间隔10ms,可以确定字幕单元“a”的时间戳为t3,字幕单元“b”的时间戳为t3 10ms,字幕单元“c”的时间戳为t3 20ms,字幕单元“d”的时间戳为t3 30ms。
[0068]
s130、根据字幕数据中每个字幕单元的调整后的时间戳,将字幕数据中的每个字幕单元添加到直播音视频流中。
[0069]
本步骤的实现方法有多种,示例性地,本步骤的实现方法包括:根据字幕数据中的每一个字幕单元,得到与各字幕单元对应的字幕图层;根据任一子字幕数据中任一字幕单元的调整后的时间戳,从直播音视频流中确定出与调整后的时间戳对应的图像帧;根据任一字幕单元生成字幕图层;将字幕图层和图像帧进行压制处理。
[0070]
进一步地,可以设置若任一字幕单元是任一子字幕数据中的第一个字幕单元,则字幕图层包括任一字幕单元。若任一字幕单元不是任一子字幕数据中的第一个字幕单元,则字幕图层包括任一字幕单元和任一子字幕数据中位于任一字幕单元前面的其他字幕单元。
[0071]
继续参见图5,某子字幕数据为“abcd”,其包括4个字幕单元,分别为“a”、“b”、“c”以及“d”。“a”是其所属子字幕数据“abcd”中的第一个字幕单元,在形成的“a”对应的字幕图层中仅包括“a”。“b”是其所属子字幕数据“abcd”中的第二个字幕单元,在形成的“b”对应的字幕图层中包括“ab”。“c”是其所属子字幕数据“abcd”中的第三个字幕单元,在形成的“c”对应的字幕图层中包括“abc”。“d”是其所属子字幕数据“abcd”中的第四个字幕单元,在形成的“d”对应的字幕图层中包括“abcd”。
[0072]
调整后“a”对应时间戳为t3,从直播音视频流中选出时间戳为t3的图像帧,将“a”对应的字幕图层与时间戳为t3的图像帧中的图像进行压制,压制后该图像中出现字幕“a”。调整后“b”对应时间戳为t3 10ms,从直播音视频流中选出时间戳为t3 10ms的图像帧,将“b”对应的字幕图层与时间戳为t4的图像帧中的图像进行压制,压制后该图像中出现字幕“ab”。调整后“c”对应时间戳为t3 20ms,从直播音视频流中选出时间戳为t3 20ms的图像帧,将“c”对应的字幕图层与时间戳为t3 20ms的图像帧中的图像进行压制,压制后该图像中出现字幕“abc”。调整后“d”对应时间戳为t3 30ms,从直播音视频流中选出时间戳为t3 30ms的图像帧,将“d”对应的字幕图层与时间戳为t3 30ms的图像帧中的图像进行压制,压制后该图像中出现字幕“abcd”。
[0073]
上述技术方案通过设置根据字幕数据中任一子字幕数据的开始时间和结束时间,对任一子字幕数据中的每个字幕单元的时间戳进行调整;根据字幕数据中每个字幕单元的调整后的时间戳,将字幕数据中的每个字幕单元添加到直播音视频流中,可以使得同一子字幕数据中的相邻字幕单元时间戳的时间间隔趋于定值,进而使得从时间角度而言,字幕单元被均匀地添加到视频直播流中,进而使得相邻两个字幕单元在终端显示组件中出现的时间间隔趋于均匀,从而使得在一定程度上解决终端对字幕进行逐字式显示时存在频繁跳动的问题,提高用户体验。
[0074]
上述实施例提供的技术方案尤其适用于大型会议及活动直播、行业及学术峰会直播、娱乐明星直播以及电商直播等情景。
[0075]
图6为本公开实施例提供的又一种字幕处理方法的流程图。图6为图4的一个具体示例。图6中提供的字幕处理方法的执行主体为服务器。参见图6,该方法包括:
[0076]
s210、实时获取直播音视频流,并基于预设延时时长对直播音视频流进行缓存。
[0077]
对于服务器而言,存在收流和推流两个过程。收流是指从拍摄设备接收直播音视频流,推流是指将添加有字幕数据的直播音视频流发送出去,如发送至大屏幕。
[0078]
预设延时时长是指收流和推流两个过程之间的时间间隔。
[0079]
预设延时时长可以看成是一个蓄水池。该蓄水池有一个进口,一个出口。进口用于
从拍摄设备接收直播音视频流,出口用于将添加有字幕数据的直播音视频流发送出去。最开始,蓄水池为空,进口开启,出口关闭。从拍摄设备接收到的直播音视频流不断地被存储在蓄水池中,直至到达预设延时时长,出口开启,才有添加有字幕数据的直播音视频流被发送出去。此后,从拍摄设备接收到的直播音视频流仍会不断地被存储在蓄水池中,并且不断地有添加有字幕数据的直播音视频流被发送出去。收流和推流达到动态平衡。
[0080]
预设延时时长可以根据实际需求预先进行设定,例如可以是1min。当然,用户可以根据具体情况随时对预设延时时长进行调整,以达到预期效果。例如,可以根据直播音视频流的直播场景对预设延时时长进行设定,其中,直播音视频流的直播场景不同,对应的预设延时时长可以不同,对直播的实时性要求越高,对应的预设延时时长越短,反之,对直播的实时性要求越低,对应的预设延时时长越长。例如,直播音视频流为对某大型的足球比赛进行直播而采集的音视频数据,则可将预设延时时长设置为10s,直播音视频流为对某学术会议进行直播而采集的音视频数据,则可将预设延时时长设置为5min。
[0081]
s220、在预设延时时长内,确定直播音视频流对应的字幕数据、以及字幕数据中每个子字幕数据的开始时间和结束时间。
[0082]
可选地,在预设延时时长内,从直播音视频流中提取音频流;根据音频流确定直播音视频流对应的字幕数据、以及字幕数据中每个子字幕数据的开始时间和结束时间。
[0083]
进一步地,根据音频流确定直播音视频流对应的字幕数据,包括:对音频流进行语音识别得到识别结果;对识别结果进行修正,得到直播音视频流对应的字幕数据。
[0084]
s230、根据字幕数据中任一子字幕数据的开始时间和结束时间,对任一子字幕数据中的每个字幕单元的时间戳进行调整。
[0085]
s240、根据字幕数据中每个字幕单元的调整后的时间戳,将字幕数据中的每个字幕单元添加到直播音视频流中。
[0086]
上述技术方案,通过设置预设延时时长,其目的是为“确定直播音视频流对应的字幕数据、以及字幕数据中每个子字幕数据的开始时间和结束时间;根据所述字幕数据中任一子字幕数据的开始时间和结束时间,对所述任一子字幕数据中的每个字幕单元的时间戳进行调整;根据所述字幕数据中每个字幕单元的调整后的时间戳,将所述字幕数据中的每个字幕单元添加到所述直播音视频流中”这些步骤的执行耗时设置一个时间限度。未过该时间限度,添加有字幕数据的直播音视频流未被发送出去,此时允许对直播音视频流所需添加的字幕数据进行修正、调整。过了该时间限度,将添加有字幕数据的直播音视频流发送出去。被发送出去的添加有字幕数据的直播音视频流丧失对其所添加的字幕数据进行修正、调整的机会。
[0087]
上述技术方案通过设置预设延时时长,一方面为对直播音视频流所需添加的字幕数据进行修正、调整提供了时机,可以提高字幕数据的准确性,避免字幕数据中存在过多错别字或语句不通的地方,提高用户体验。另一方面,由于过了预设延时时长,不允许对被发送出去的添加有字幕数据的直播音视频流进行修正、调整,其可以避免在终端中呈现字幕数据不断被修正、调整的过程,进而解决因字幕在直播画面中跳动性大、用户的视觉难以聚焦、容易视觉疲劳的问题,有效保证字幕在直播音视频流中显示的稳定性,提高用户体验。
[0088]
可选地,在上述技术方案的基础上,该方法还包括:若在预设延时时长内,任一字幕单元被修正为目标字幕单元,则根据目标字幕单元生成修正后的字幕图层;将修正后的
字幕图层和任一字幕单元调整后的时间戳对应的图像帧进行压制处理。
[0089]
具体地,在预设延时时长内,服务器可以先通过语音识别技术对直播音视频流中的音频流进行语音识别,得到原始字幕数据;然后将原始字幕数据中的每个字幕单元添加到直播音视频流中,得到添加有原始字幕的直播音视频流;并将添加有原始字幕的直播音视频流暂时缓存。同时,在预设延时时长内,服务器还对原始字幕数据进行校对、修正。若原始字幕数据中某一字幕单元存在错误,将该字幕单元修正为目标字幕单元;根据目标字幕单元生成修正后的字幕图层;将修正后的字幕图层和存在错误的字幕单元调整后的时间戳对应的图像帧进行压制处理,得到修正后的图像帧;利用修正后的图像帧替换添加有原始字幕的直播音视频流中存在错误的字幕单元对应的图像帧。进而得到被修正的添加有字幕的直播音视频流。预设延时时长结束后,将被修正的添加有字幕的直播音视频流推流出去。
[0090]
示例性地,在预设延时时长内,服务器先通过语音识别技术对直播音视频流中的音频流进行语音识别得到原始字幕数据“abcde”,将“abcde”中的每个字幕单元添加到直播音视频流中,得到添加有原始字幕的直播音视频流,并将添加有原始字幕的直播音视频流暂时缓存。同时,在预设延时时长内,服务器还对原始字幕数据“abcde”进行校对。若经校对发现,原始字幕数据“abcde”中“b”错误,应当为“f”,基于“f”生成修正后的字幕图层;将“f”对应的字幕图层和“f”的时间戳对应的图像帧进行压制处理,得到修正后的图像帧,即“f”对应的图像帧;利用“f”对应的图像帧替换添加有原始字幕的直播音视频流中“b”对应的图像帧,进而得到被修正的添加有字幕的直播音视频流。预设延时时长结束后,将被修正的添加有字幕的直播音视频流推流出去。此处需要说明的是,由于“f”是对“b”修正后的结果,“f”的时间戳与“b”的时间戳一致。具体地,若采用s120对“b”的时间戳进行过调整,“f”的时间戳等于“b”调整后的时间戳。若未采用s120对“b”的时间戳进行过调整,“f”的时间戳等于“b”的初始时间戳。
[0091]
或者,在预设延时时长内,首先服务器可以通过语音识别技术对直播音视频流中的音频流进行语音识别得到原始字幕数据;其次,服务器对原始字幕数据进行校对、修正。若原始字幕数据中某一字幕单元存在错误,将该字幕单元修正为目标字幕单元,得到修正后的字幕数据;再次,将修正后的字幕数据中的每个字幕单元添加到直播音视频流中,得到添加有修正后的字幕的直播音视频流,并将添加有修正后的字幕的直播音视频流暂时缓存。预设延时时长结束后,将添加有修正后的字幕的直播音视频流推流出去。
[0092]
示例性地,在预设延时时长内,服务器先通过语音识别技术对直播音视频流中的音频流进行语音识别得到原始字幕数据“abcde”,服务器对原始字幕数据“abcde”进行校对。若经校对发现,原始字幕数据“abcde”中“b”错误,应当为“f”,对“b”进行修正,得到修正后的字幕数据“afcde”。将修正后的字幕数据“afcde”中的每个字幕单元添加到直播音视频流(示例性地,如采用s110-s130的步骤,将修正后的字幕数据“afcde”中的每个字幕单元添加到直播音视频流)中,得到添加有修正后的字幕的直播音视频流,并将添加有修正后的字幕的直播音视频流暂时缓存。预设延时时长结束后,并将添加有修正后的字幕的直播音视频流推流出去。
[0093]
服务器对原始字幕数据进行校对、修正的方法有多种,示例性地,服务器根据原始字幕数据中每个字幕单元的上下文逻辑关系对该字幕数据进行校对、修正。或者,服务器将原始字幕数据发送给校对终端,由校对人员通过校对终端对原始字幕数据中每个字幕单元
进行校对、修正。校对人员对原始字幕数据中每个字幕单元进行校对、修正完毕后,校对终端将经过校对、修正后的字幕数据返回至服务器。
[0094]
通过设置对音频流进行语音识别得到识别结果;对识别结果进行修正,得到直播音视频流对应的字幕数据,可以提高字幕数据的准确性,避免字幕数据中存在过多错别字或语句不通的地方,提高用户体验。
[0095]
图7为本公开实施例提供的又一种字幕处理方法的流程图。图7为图4的一个具体示例。图7中提供的字幕处理方法的执行主体为直播设备。参见图7,该方法包括:
[0096]
s310、实时获取直播音视频流,并基于预设延时时长对直播音视频流进行缓存。
[0097]
对于直播设备而言,存在收流和推流两个过程。收流是指从拍摄设备接收直播音视频流,推流是指将添加有字幕数据的直播音视频流发送出去,如发送至终端。
[0098]
预设延时时长是指收流和推流两个过程之间的时间间隔。
[0099]
预设延时时长可以看成是一个蓄水池。该蓄水池有一个进口,一个出口。进口用于从拍摄设备接收直播音视频流,出口用于将添加有字幕数据的直播音视频流发送出去。最开始,蓄水池为空,进口开启,出口关闭。从拍摄设备接收到的直播音视频流不断地存储在蓄水池中,直至到达预设延时时长,出口开启,才有添加有字幕数据的直播音视频流被发送出去。此后,从拍摄设备接收到的直播音视频流仍会不断地被存储在蓄水池中,并且不断地有添加有字幕数据的直播音视频流被发送出去。收流和推流达到动态平衡。
[0100]
预设延时时长可以根据实际需求预先进行设定,例如可以是1min。当然,用户可以根据具体情况随时对预设延时时长进行调整,以达到预期效果。例如,可以根据直播音视频流的直播场景对预设延时时长进行设定,其中,直播音视频流的直播场景不同,对应的预设延时时长可以不同,对直播的实时性要求越高,对应的预设延时时长越短,反之,对直播的实时性要求越低,对应的预设延时时长越长。例如,直播音视频流为对某大型的足球比赛进行直播而采集的音视频数据,则可将预设延时时长设置为10s,直播音视频流为对某学术会议进行直播而采集的音视频数据,则可将预设延时时长设置为5min。
[0101]
s320、在预设延时时长内,接收直播音视频流对应的字幕数据、以及字幕数据中每个子字幕数据的开始时间和结束时间。
[0102]
s330、根据字幕数据中任一子字幕数据的开始时间和结束时间,对任一子字幕数据中的每个字幕单元的时间戳进行调整。
[0103]
s340、根据字幕数据中每个字幕单元的调整后的时间戳,将字幕数据中的每个字幕单元添加到直播音视频流中。
[0104]
上述技术方案,通过设置预设延时时长,其目的是为“接收直播音视频流对应的字幕数据、以及字幕数据中每个子字幕数据的开始时间和结束时间;根据所述字幕数据中任一子字幕数据的开始时间和结束时间,对所述任一子字幕数据中的每个字幕单元的时间戳进行调整;根据所述字幕数据中每个字幕单元的调整后的时间戳,将所述字幕数据中的每个字幕单元添加到所述直播音视频流中”这些步骤的执行耗时设置一个时间限度。未过该时间限度,添加有字幕数据的直播音视频流未被发送出去,此时允许对直播音视频流所需添加的字幕数据进行修正、调整。过了该时间限度,将添加有字幕数据的直播音视频流发送出去。被发送出去的添加有字幕数据的直播音视频流丧失对其所添加的字幕数据进行修正、调整的机会。
[0105]
上述技术方案通过设置预设延时时长,一方面为对直播音视频流所需添加的字幕数据进行修正、调整提供了时机,可以提高字幕数据的准确性,避免字幕数据中存在过多错别字或语句不通的地方,提高用户体验。另一方面,由于过了预设延时时长,不允许对被发送出去的添加有字幕数据的直播音视频流进行修正、调整,其可以避免在终端中呈现字幕数据不断被修正、调整的过程,进而解决因字幕在直播画面中跳动性大、用户的视觉难以聚焦、容易视觉疲劳的问题,有效保证字幕在直播音视频流中显示的稳定性,提高用户体验。
[0106]
在上述技术方案的基础上,方法还包括:若在预设延时时长内,任一字幕单元被修正为目标字幕单元,则根据目标字幕单元生成修正后的字幕图层;将修正后的字幕图层和任一字幕单元调整后的时间戳对应的图像帧进行压制处理。
[0107]
具体地,在预设延时时长内,直播设备可以先获取由服务器通过语音识别技术对直播音视频流中的音频流进行语音识别得到原始字幕数据,然后将原始字幕数据中的每个字幕单元添加到直播音视频流中,得到添加有原始字幕的直播音视频流,并将添加有原始字幕的直播音视频流暂时缓存。同时,在预设延时时长内,直播设备还不断获取服务器对原始字幕数据进行校对、修正的结果。若原始字幕数据中某一字幕单元存在错误,服务器将该字幕单元修正为目标字幕单元。直播设备根据目标字幕单元生成修正后的字幕图层;将修正后的字幕图层和存在错误的字幕单元调整后的时间戳对应的图像帧进行压制处理,得到修正后的图像帧;利用修正后的图像帧替换添加有原始字幕的直播音视频流中存在错误的字幕单元对应的图像帧。进而得到被修正的添加有字幕的直播音视频流。预设延时时长结束后,将被修正的添加有字幕的直播音视频流推流出去。
[0108]
示例性地,在预设延时时长内,服务器先通过语音识别技术对直播音视频流中的音频流进行语音识别得到原始字幕数据“abcde”,并将该原始字幕数据“abcde”发送至直播设备。直播设备将“abcde”中的每个字幕单元添加到直播音视频流中,得到添加有原始字幕的直播音视频流,并将添加有原始字幕的直播音视频流暂时缓存。同时,在预设延时时长内,直播设备不断获取服务器还对原始字幕数据“abcde”的校对结果。若经校对发现,原始字幕数据“abcde”中“b”错误,应当为“f”。服务器将“b”应当修正为“f”的信息以及“f”的时间戳发送给直播设备。直播设备基于“f”及“f”对应的时间戳生成修正后的图像帧,即“f”对应的图像帧;利用“f”对应的图像帧替换添加有原始字幕的直播音视频流中“b”对应的图像帧,进而得到被修正的添加有字幕的直播音视频流。预设延时时长结束后,并将被修正的添加有字幕的直播音视频流推流出去。此处需要说明的是,由于“f”是对“b”修正后的结果,“f”的时间戳与“b”的时间戳一致。具体地,若采用s120对“b”的时间戳进行过调整,“f”的时间戳等于“b”调整后的时间戳。若未采用s120对“b”的时间戳进行过调整,“f”的时间戳等于“b”的初始时间戳。
[0109]
图8为本公开实施例中的一种字幕处理装置的结构示意图。本公开实施例所提供的字幕处理装置可以配置于服务端中,该字幕处理装置具体包括:
[0110]
获取模块410,用于获取直播音视频流对应的字幕数据、以及所述字幕数据中每个子字幕数据的开始时间和结束时间;
[0111]
调整模块420,用于根据所述字幕数据中任一子字幕数据的开始时间和结束时间,对所述任一子字幕数据中的每个字幕单元的时间戳进行调整;
[0112]
添加模块430,用于根据所述字幕数据中每个字幕单元的调整后的时间戳,将所述
字幕数据中的每个字幕单元添加到所述直播音视频流中。
[0113]
进一步地,调整模块420,用于:
[0114]
根据所述字幕数据中任一子字幕数据的开始时间和结束时间,确定所述任一子字幕数据中每相邻两个字幕单元之间的平均时间间隔;
[0115]
根据所述平均时间间隔,对所述任一子字幕数据中的每个字幕单元的时间戳进行调整。
[0116]
进一步地,调整模块420,用于:
[0117]
根据所述任一子字幕数据的开始时间和所述平均时间间隔,对所述任一子字幕数据中的每个字幕单元的时间戳进行调整。
[0118]
进一步地,添加模块430,用于:
[0119]
根据所述任一子字幕数据中任一字幕单元的调整后的时间戳,从所述直播音视频流中确定出与所述调整后的时间戳对应的图像帧;
[0120]
根据所述任一字幕单元生成字幕图层;
[0121]
将所述字幕图层和所述图像帧进行压制处理。
[0122]
进一步地,若所述任一字幕单元是所述任一子字幕数据中的第一个字幕单元,则所述字幕图层包括所述任一字幕单元。
[0123]
进一步地,若所述任一字幕单元不是所述任一子字幕数据中的第一个字幕单元,则所述字幕图层包括所述任一字幕单元和所述任一子字幕数据中位于所述任一字幕单元前面的其他字幕单元。
[0124]
进一步地,获取模块410,用于:
[0125]
实时获取直播音视频流,并基于预设延时时长对所述直播音视频流进行缓存;
[0126]
在所述预设延时时长内,确定所述直播音视频流对应的字幕数据、以及所述字幕数据中每个子字幕数据的开始时间和结束时间。
[0127]
进一步地,获取模块410,用于:
[0128]
在所述预设延时时长内,从所述直播音视频流中提取音频流;
[0129]
根据所述音频流确定所述直播音视频流对应的字幕数据、以及所述字幕数据中每个子字幕数据的开始时间和结束时间。
[0130]
进一步地,获取模块410,用于:
[0131]
对所述音频流进行语音识别得到识别结果;
[0132]
对所述识别结果进行修正,得到所述直播音视频流对应的字幕数据。
[0133]
进一步地,获取模块410,用于:实时获取直播音视频流,并基于预设延时时长对所述直播音视频流进行缓存;
[0134]
在所述预设延时时长内,接收所述直播音视频流对应的字幕数据、以及所述字幕数据中每个子字幕数据的开始时间和结束时间。
[0135]
进一步地,所述装置还包括修正模块,修正模块用于:
[0136]
若在所述预设延时时长内,任一字幕单元被修正为目标字幕单元,则根据所述目标字幕单元生成修正后的字幕图层;
[0137]
将所述修正后的字幕图层和所述任一字幕单元调整后的时间戳对应的图像帧进行压制处理。
protocol,超文本传输协议)之类的任何已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字信息通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何已知或未来研发的网络。
[0145]
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
[0146]
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
[0147]
获取直播音视频流对应的字幕数据、以及所述字幕数据中每个子字幕数据的开始时间和结束时间;
[0148]
根据所述字幕数据中任一子字幕数据的开始时间和结束时间,对所述任一子字幕数据中的每个字幕单元的时间戳进行调整;
[0149]
根据所述字幕数据中每个字幕单元的调整后的时间戳,将所述字幕数据中的每个字幕单元添加到所述直播音视频流中。
[0150]
可选的,当上述一个或者多个程序被该电子设备执行时,该电子设备还可以执行上述实施例所述的其他步骤。
[0151]
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0152]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0153]
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
[0154]
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
[0155]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0156]
根据本公开的一个或多个实施例,本公开提供了一种电子设备,包括:
[0157]
一个或多个处理器;
[0158]
存储器,用于存储一个或多个程序;
[0159]
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开提供的任一所述的字幕处理方法。
[0160]
根据本公开的一个或多个实施例,本公开提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开提供的任一所述的字幕处理方法。
[0161]
本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如上所述的字幕处理方法。
[0162]
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0163]
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献