字幕的生成方法、服务器、终端设备及系统

文档序号:1025767 发布日期:2020-10-27 浏览:17次 >En<

阅读说明:本技术 字幕的生成方法、服务器、终端设备及系统 (Subtitle generation method, server, terminal equipment and system ) 是由 潘立祥 张磊 彭俊 于 2019-04-23 设计创作,主要内容包括:本发明公开了一种字幕的生成方法、服务器、终端设备及系统,该方法包括:获取视频的语音流信息;根据所述语音流信息,获得字幕内容、所述字幕内容的起始展示时间和结束展示时间;对所述字幕内容的起始展示时间、结束展示时间对应的时间区间进行均分处理,得到所述字幕内容中各个字的起始展示时间;利用所述字幕内容、所述字幕内容中一个或多个字的起始展示时间和所述字幕内容的结束展示时间生成字幕流,并将所述字幕流发送至终端设备。(The invention discloses a subtitle generating method, a server, terminal equipment and a system, wherein the method comprises the following steps: acquiring voice stream information of a video; acquiring subtitle content, and the initial display time and the end display time of the subtitle content according to the voice stream information; equally dividing time intervals corresponding to the initial display time and the ending display time of the subtitle content to obtain the initial display time of each character in the subtitle content; and generating a subtitle stream by using the subtitle content, the initial display time of one or more words in the subtitle content and the ending display time of the subtitle content, and sending the subtitle stream to terminal equipment.)

字幕的生成方法、服务器、终端设备及系统

技术领域

本发明涉及字幕生成技术领域,更具体地,涉及一种字幕的生成方法、一种服务器、一种终端设备以及一种字幕的生成系统。

背景技术

随着互联网技术的发展,越来越多的用户在终端设备上观看视频。该视频可以是录播视频,也可以是直播视频。

现有技术提供的视频显示的字幕均是提前录入的,并没有实现与视频中的语音的同步性。

发明内容

本发明的一个目的是提供一种用于生成实时字幕的新技术方案。

根据本发明的第一方面,提供了一种字幕的生成方法,由服务器实施,包括:

获取视频的语音流信息;

根据所述语音流信息,获得字幕内容、所述字幕内容的起始展示时间和结束展示时间;

对所述字幕内容的起始展示时间、结束展示时间对应的时间区间进行均分处理,得到所述字幕内容中一个或多个字的起始展示时间;

利用所述字幕内容、所述字幕内容中一个或多个字的起始展示时间和所述字幕内容的结束展示时间生成字幕流,并将所述字幕流发送至终端设备。

可选地,所述方法还包括:

检测所述视频流的时间戳是否存在异常,得到检测结果;

在所述检测结果为所述视频流的时间戳存在异常的情况下,重新获取视频流的时间戳。

可选地,所述检测所述视频流的时间戳是否存在异常,得到检测结果包括:

获取所述当前视频流的时间戳和上一个视频流的时间戳,并得到所述当前视频流的时间戳和所述上一个视频流的时间戳的时间差值;

判断所述时间差值是否位于预设时间差值范围内,得到判断结果;

根据所述判断结果确定所述当前视频流的时间戳是否存在异常。

可选地,所述语音流信息包括音频数据信息和时间戳信息,其中,所述根据所述语音流信息,获得字幕内容、所述字幕内容的起始展示时间和结束展示时间包括:

获得所述音频数据信息的数据量,并根据所述音频数据信息的数据量确定所述字幕内容的相对起始展示时间和相对结束展示时间;

根据所述时间戳信息、所述字幕内容的相对起始展示时间和相对结束展示时间,得到所述字幕内容的起始展示时间和结束展示时间。

可选地,所述方法还包括:

对所述字幕内容进行分组处理,得到多组字幕内容,以使每一组字幕内容以一行字幕的形式在所述终端设备进行展示;其中,

所述利用所述字幕内容、所述字幕内容中一个或多个字的起始展示时间和所述字幕内容的结束展示时间生成字幕流包括:

根据每组字幕内容、所述每组字幕内容中一个或多个字的起始展示时间和所述每组字幕内容的结束展示时间,生成字幕流。

可选地,所述对所述字幕内容进行分组处理,得到多组字幕内容,以使每一组字幕内容以一行字幕的形式在所述终端设备进行展示包括:

利用每组字幕内容的预设字数,对每一个语音流对应的字幕内容进行分组,得到多组字幕内容;或者,

利用每组字幕内容的预设字数,对连续多个语音流对应的全部字幕内容进行分组,得到多组字幕内容。

可选地,所述方法还包括:

基于每组字幕内容,获得当前组字幕内容的结束展示时间和下一组字幕内容的起始展示时间;

根据所述当前组字幕内容的结束展示时间和下一组字幕内容的起始展示时间,得到所述当前组字幕内容的延时结束展示时间,并将所述延时结束展示时间作为所述当前组字幕内容的结束展示时间。

根据本发明的第二方面,提供了一种字幕的生成方法,由终端设备实施,包括:

接收服务器发送的根据第一方面中任一方法生成的字幕流;

获取所述字幕流对应的视频流;

根据所述字幕流携带的字幕内容中一个或多个字的起始展示时间、字幕内容的结束展示时间和所述视频流中各个画面帧的时间戳,将所述字幕流和所述视频流叠加得到展示有字幕的视频流。

可选地,在所述字幕流中的字幕内容拆分为多组字幕内容,以使每一组字幕内容以一行字幕的形式进行展示的情况下,所述方法还包括:

采用双行显示的方式进行字幕展示,其中,

所述双行显示的方式为当前展示完的字幕内容自动滚动至上一行进行展示,以在所述当前展示完字幕内容所处位置展示下一组字幕内容。

根据本发明的第三方面,提供了一种服务器,包括存储器和处理器,所述存储器用于存储可执行的指令;所述处理器用于根据所述指令的控制执行根据第一方面中任意一项所述的方法。

根据本发明的第四方面,提供了一种终端设备,包括存储器和处理器,所述存储器用于存储可执行的指令;所述处理器用于根据所述指令的控制执行根据第二方面所述的方法。

根据本发明的第五方面,提供了一种终端设备,包括:

显示组件,用于执行显示;

处理组件,用于接收服务器发送的根据第一方面中任一方法生成的字幕流,并根据所述字幕流携带的字幕内容中一个或多个字的起始展示时间、字幕内容的结束展示时间和对应的视频流中各个画面帧的时间戳,将所述字幕流和所述视频流叠加得到展示有字幕的视频流,以将展示有字幕的视频流送至所述显示组件进行显示。

可选地,所述显示组件还用于采用双行显示的方式进行字幕的展示,其中,

所述双行显示的方式为当前展示完的字幕内容自动滚动至上一行进行展示,以在所述当前展示完字幕内容所处位置展示下一行字幕内容。

根据本发明的第六方面,提供了一种字幕的生成系统,包括第三方面所述的服务器、第四方面或者第五方面所述的终端设备。

本发明的一个有益效果在于,能够保证视频携带的语音和字幕的对齐程度,实现了为视频携带的语音实时配置字幕,提升了用户观看字幕的体验。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。

图1a是根据本发明一个实施例的字幕生成系统的示意图。

图1b是本发明实施例提供字幕生成系统中的服务器的硬件结构示意图。

图2是根据本发明第一实施例的字幕生成方法的处理流程图。

图3是根据本发明第二实施例的字幕生成方法的处理流程图。

图4是根据本发明第四实施例的字幕生成方法的一种处理流程图。

图5是根据本发明第四实施例的字幕生成方法的另一种处理流程图。

图6是根据本发明一个实施例的字幕的生成方法的处理流程图。

图7是根据本发明另一个实施例的字幕的生成方法的处理流程图。

图8是根据本发明一个例子的字幕的生成方法的示意图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

本发明实施例涉及的实时字幕是指为视频流携带的语音实时提供的字幕内容,其中,该视频可以是直播视频,也可以是录播视频。

现有技术中,视频显示的字幕均是提前录入的,并且某一时刻的视频画面显示某一时间段视频携带的语音对应的全部字幕内容,并没有实现与视频携带的语音的实时对齐。例如,字幕内容“这就是街舞燃炸整条街”是根据某一节目宣传片视频第00:00:11-00:00:15时间段携带的语音得到的,当视频播放“这”这个字时,视频画面显示全部字幕内容“这就是街舞燃炸整条街”,并没有与视频携带的语音实现同步。

由于技术的限制,现有技术提供的字幕的生成方式不能保证语音和字幕的对齐程度,进而不能实现为视频携带的语音实时配置字幕。针对这一技术问题,本发明实施例提供了一种实时字幕的生成方法,以为视频携带的语音实时配置字幕。以上述节目宣传片视频第00:00:11-00:00:15时间段携带的语音为例,利用本发明实施例提供的实时字幕的生成方法,当视频播放“这”这个字时,视频画面显示字幕内容“这”,当视频播放“这就是”时,视频画面相应地显示对应的字幕内容。

<硬件配置>

图1a是根据本发明一个实施例的字幕生成系统的示意图。

根据图1a所示,该字幕生成系统包括录制设备1000、服务器2000和终端设备3000。

录制设备1000将其录制的视频流上传至服务器2000。服务器2000在接收到该视频流后,利用本发明实施例提供的字幕的生成方法,为视频流携带的语音实时提供相应的字幕内容,生成字幕流,并将其接收到的视频流和生成的字幕流发送至终端设备3000。终端设备3000将其接收到的字幕流和视频流进行叠加处理,显示有字幕内容的视频画面。

录制设备1000可以是手机、便携式电脑、平板电脑、掌上电脑等等电子设备。

服务器2000提供处理、数据库、通讯设施的业务点。服务器2000可以是整体式服务器或是跨多计算机或计算机数据中心的分散式服务器。服务器可以是各种类型的,例如但不限于,网络服务器,新闻服务器,邮件服务器,消息服务器,广告服务器,文件服务器,应用服务器,交互服务器,数据库服务器,或代理服务器。在一些实施例中,每个服务器可以包括硬件,软件,或用于执行服务器所支持或实现的合适功能的内嵌逻辑组件或两个或多个此类组件的组合。例如,服务器例如刀片服务器、云端服务器等,或者可以是由多台服务器组成的服务器群组,可以包括上述类型的服务器中的一种或多种等等。

在一个例子中,服务器2000可以如图1a所示,包括处理器2100、存储器2200、接口装置2300、通信装置2400、显示装置2500、输入装置2600。服务器也可以包括扬声器、麦克风等等。

其中,处理器2100例如可以是中央处理器CPU、微处理器MCU等。存储器2200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置2300例如包括USB接口、串行接口、红外接口等。通信装置2400例如能够进行有线或无线通信。显示装置2500例如是液晶显示屏、LED显示屏触摸显示屏等。输入装置2600例如可以包括触摸屏、键盘等。

在一个例子中,服务器2000可以是部署在云端的服务器群组。根据图1b所示,服务器群组可以仅包括处理器2100和存储器2200,以由服务器集群中的处理器2100进行操作来执行根据本发明任意实施例的字幕的生成方法。

终端设备3000可以是手机、便携式电脑、平板电脑、掌上电脑等等电子设备。

终端设备3000可以包括处理器3100、存储器3200、接口装置3300、通信装置3400、显示装置3500、输入装置3600、扬声器3700、麦克风3800,等等。其中,处理器3100可以是中央处理器CPU、微处理器MCU等。存储器3200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置3300例如包括USB接口、耳机接口等。通信装置3400例如能够进行有线或无线通信。显示装置3500例如是液晶显示屏、触摸显示屏等。输入装置3600例如可以包括触摸屏、键盘等。用户可以通过扬声器3700和麦克风3800输入/输出语音信息。

录制设备1000和终端设备3000分别与服务器2000之间通过网络进行通信连接。该网络可以是无线通信网络也可以是有线通信网络,可以是局域网也可以是广域网。

应用于本发明的实施例中,尽管图1a只示出一个录制设备1000、一个服务器2000、一个终端设备3000,但是,应当理解的是,具体应用中,可以根据实际需求使得所述直播系统包括多个录制设备1000、多个服务器2000、多个终端设备3000。

尽管在图1a中对服务器2000和终端设备3000均示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,服务器2000只涉及存储器2200和处理器2100,终端设备3000只涉及存储器3200和处理器3100。

应用于本发明的实施例中,服务器2000的所述存储器2200用于存储指令,所述指令用于控制所述处理器2100执行本发明实施例提供的字幕的生成方法。终端设备3000的所述存储器3200用于存储指令,所述指令用于控制所述处理器3100执行本发明实施例提供的字幕的生成方法。

在上述描述中,技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。

<第一实施例>

基于图1a示出的字幕的生成系统,本发明的一个实施例提供了为直播视频生成实时字幕的方法。

录制设备1000录制的视频为A电视台的春节晚会内容,并将其实时录制的视频上传至服务器2000。服务器2000为该视频携带的语音实时提供相应的字幕内容。

下面以两个具体视频流为例,介绍本发明实施例提供的字幕的生成方法的流程。

根据图2所示,第一个视频流为春节晚会视频的00:03:01-00:03:15时间段对应的视频。在00:03:01-00:03:15时间段内,视频画面显示了主持人的第一段开场致词,该段开场致词为“观众朋友们您现在收看的是A电视台的2019年春节联欢晚会”。

第二个视频流为春节晚会视频的00:03:16-00:03:30时间段对应的视频。在00:03:16-00:03:20时间段内,视频画面显示一段录制现场中主持人和观众的掌声画面。在00:03:21-00:03:30时间段内,视频画面显示主持人的第二段开场致词,该段开场致词为“在这里我们向全国各族人民港澳同胞台湾同胞海外侨胞拜年”。

根据图2所示,服务器2000在接收到每一个视频流后,执行步骤S2100,获取视频流的语音流信息。该语音流信息包括音频数据信息和时间戳信息。该语音流的时间戳信息为对应的视频流的时间戳信息,即该视频流的起始时间信息。

步骤S2200,服务器2000根据该语音流信息,获得字幕内容和字幕内容的起始展示时间、结束展示时间。

具体地,服务器2000对该音频数据信息进行识别处理,得到字幕内容。该字幕内容为包括有主持人的开场致词的文本内容。服务器2000获得音频数据信息的数据量,并根据该数据量确定字幕内容的相对起始展示时间a、相对结束展示时间b。然后,服务器2000根据语音流的时间戳信息、字幕内容的相对起始展示时间和相对结束展示时间,得到字幕内容的起始展示时间和结束展示时间。

基于本例子涉及的第一个语音流,服务器2000得到的字幕内容的相对起始展示时间为00:00:01,相对结束展示时间为00:00:15。然后,服务器2000再结合语音流的时间戳信息00:03:00,得到字幕内容的起始展示时间为00:03:01,结束展示时间为00:03:15。

基于本例子涉及的第二个语音流,服务器2000得到的字幕内容的相对起始展示时间为00:00:06,相对结束展示时间为00:00:15。然后,服务器2000再结合语音流的时间戳信息00:03:15,得到字幕内容的起始展示时间为00:03:21,结束展示时间为00:03:30。

步骤S2300,服务器2000对字幕内容的起始展示时间、结束展示时间对应的时间区间进行均分处理,得到字幕内容中一个或多个字的起始展示时间。

在一个实施例中,基于以下计算式,得到字幕内容中各个字的起始展示时间,tj=t+[(t-t)/n]×j,其中,tj为字幕内容中第j个字的起始展示时间,t为字幕内容的起始展示时间,t为字幕内容的结束展示时间,n为字幕内容的字数。步骤S2400,服务器2000利用字幕内容、字幕内容中一个或多个字的起始展示时间和字幕内容的结束展示时间生成字幕流,并将生成的字幕流发送至终端设备3000。

终端设备3000根据字幕流携带的字幕内容中一个或多个字的起始展示时间、字幕内容的结束展示时间和视频中各帧画面的时间戳信息,将字幕内容***到对应的画面帧中,得到展示有字幕的视频流。

根据图2所示,终端设备3000在播放该视频流对应的画面时,00:03:01-00:03:15时间段对应的视频画面中显示有主持人第一段开场致词的实时字幕,00:03:16-00:03:20时间段对应的视频画面中没有字幕内容。00:03:21-00:03:30时间段对应的视频画面中显示有主持人第二段开场致词的实时字幕。

图2示出了9个时刻终端设备显示的视频画面的示意图。

根据图2所示,在第00:03:02时刻对应的视频画面中显示的实时字幕为“观众朋友”。

在第00:03:09时刻对应的视频画面中显示的实时字幕为“观众朋友们您现在收看的是A电视”。

在第00:03:12时刻对应的视频画面中显示的实时字幕为“观众朋友们您现在收看的是A电视台的2019年春”。

在第00:03:15时刻对应的视频画面中显示的实时字幕为“观众朋友们您现在收看的是A电视台的2019年春节联欢晚会”。

在第00:03:16时刻对应的视频画面没有显示字幕内容。

在第00:03:21时刻对应的视频画面中显示的实时字幕为“在这里”。

在第00:03:25时刻对应的视频画面中显示的实时字幕为“在这里我们向全国各族人民港澳同”。

在第00:03:28时刻对应的视频画面中显示的实时字幕为“在这里我们向全国各族人民港澳同胞台湾同胞海外侨”。

在第00:03:30时刻对应的视频画面中显示的实时字幕为“在这里我们向全国各族人民港澳同胞台湾同胞海外侨胞拜年”。

根据图2示出的9个时刻视频画面显示的字幕内容,可以保证视频携带的语音和字幕的对齐程度,实现了为视频携带的语音实时配置字幕。

<第二实施例>

根据第一实施例得到的字幕,参见图2,一个语音流对应的全部字幕内容以一行字幕的形式展示在视频画面中。图2示出的视频画面的下方显示的一行字幕内容较多,导致用户观看字幕的体验较差。

为了解决这一技术问题,在本实施例中,对识别得到的字幕内容进行分组,得到多组字幕内容,以使每一组字幕内容以一行字幕的形式展示在视频画面中。

在本实施例中,根据每组字幕内容的预设字数,对识别得到的字幕内容进行分组,得到多组字幕内容。

例如,服务器2000可以利用每组字幕内容的预设字数,对单个语音流对应的全部字幕内容进行分组,得到多组字幕内容。

当每组字幕内容的预设字数是15时,对本实施例中第一个语音流对应的全部字幕内容进行分组,得到两组字幕内容。第一组字幕内容为“观众朋友们您现在收看的是A电视”。第二组字幕内容为“台的2019年春节联欢晚会”。基于每组字幕内容的预设字数15,对本实施例中第二个语音流对应的全部字幕内容进行分组,得到两组字幕内容。第一组字幕内容为“在这里我们向全国各族人民港澳同”。第二组字幕内容为“胞台湾同胞海外侨胞拜年”。

又例如,服务器2000可以利用每组字幕内容的预设字数,对连续多个语音流对应的全部字幕内容进行分组,得到多组字幕内容。

在服务器2000得到多组字幕内容后,还需要判断每组字幕内容中相邻两个字的时间间隔值是否超过预设时间间隔值,得到判断结果。如果判断结果为每组字幕内容存在相邻两个字的时间间隔超过预设时间间隔值时,将相邻两个字中的位置在后的字划分为下一组字幕内容。

以每组字幕内容的预设字数为15为例,对基于本实施例中第一个语音流对应的全部字幕内容和第二个语音流对应的全部字幕内容进行分组,得到四组字幕内容,分别为“观众朋友们您现在收看的是A电视”、“台的2019年春节联欢晚会在这里我们”、“向全国各族人民港澳同胞台湾同胞”和“海外侨胞拜年”。

由于第二组字幕内容中“会”和“在”这两个字的时间间隔超过预设时间间隔值,将“在这里我们”划分到下一组字幕内容。这样得到的四组字幕内容为“观众朋友们您现在收看的是A电视”、“台的2019年春节联欢晚会”、“在这里我们向全国各族人民港澳同”和“胞台湾同胞海外侨胞拜年”。

服务器2000根据每组字幕内容中第一个字的起始展示时间确定每组字幕内容的起始展示时间。

服务器2000根据每组字幕内容中单个字的展示时长和最后一个字的起始展示时间,得到每组字幕内容的结束展示时间。

服务器2000根据每组字幕内容、每组字幕内容中各个字的起始展示时间和每组字幕内容的结束展示时间,生成字幕流,并将字幕流发送至终端设备3000。

终端设备3000根据字幕流携带的每组字幕内容中各个字的起始展示时间、每组字幕内容的结束展示时间和视频中各帧画面的时间戳信息,将字幕内容***到对应的画面帧中,得到展示有字幕的视频流。

图3示出了对字幕内容进行分组后得到的9个时刻终端设备显示的视频画面的示意图。

根据图3所示,在第00:03:02时刻对应的视频画面中显示的实时字幕为“观众朋友”。

在第00:03:09时刻对应的视频画面中显示的实时字幕为“观众朋友们您现在收看的是A电视”。

在第00:03:12时刻对应的视频画面中显示的实时字幕为“台的2019年春”。

在第00:03:15时刻对应的视频画面中显示的实时字幕为“台的2019年春节联欢晚会”。

在第00:03:16时刻对应的视频画面没有显示字幕内容。

在第00:03:21时刻对应的视频画面中显示的实时字幕为“在这里”。

在第00:03:25时刻对应的视频画面中显示的实时字幕为“在这里我们向全国各族人民港澳同”。

在第00:03:28时刻对应的视频画面中显示的实时字幕为“胞台湾同胞海外侨”。

在第00:03:30时刻对应的视频画面中显示的实时字幕为“胞台湾同胞海外侨胞拜年”。

<第三实施例>

针对第二实施例得到的每一组字幕内容,当视频中说话者的语速较快时,可能会导致每一组字幕内容的展示时长较短,进而导致用户来不及观看完当前展示的字幕内容。

为了解决这一技术问题,在本实施例中,服务器2000在获得各组字幕内容的起始展示时间和的结束展示时间之后,基于每一组字幕内容,获得当前组字幕内容的结束展示时间和下一组字幕内容的起始展示时间。根据当前组字幕内容的结束展示时间和下一组字幕内容的起始展示时间,得到当前组字幕内容的延时结束展示时间,并将延时结束展示时间作为当前组字幕内容的结束展示时间。

例如,当前组字幕内容的结束展示时间为a,下一组字幕内容的起始展示时间为b,可以直接将下一组字幕内容的起始展示时间b作为当前组字幕内容的延时结束展示时间,以得到当前字幕内容的最终结束展示时间。或者,根据当前组字幕内容的结束展示时间a和下一组字幕内容的起始展示时间b,得到当前字幕内容的延时结束展示时间min(a+x,b-y)。其中,x、y的取值可以根据实际情况而定。例如,x取值为1000毫秒,y取值为100毫秒。

<第四实施例>

在基于第二实施例提供的两个视频流之外,本发明实施例还提供了第三个视频流。第三个视频流为春节晚会视频的00:03:31-00:03:45时间段对应的视频。在00:03:31-00:03:45时间段内,视频画面显示主持人的第三段开场致词,该主持人的开场致词为“在这美好时刻对于咱们中国人来说最开心的事是全家坐在一起吃个团圆饭”。

服务器2000对基于上述三个视频流识别得到的字幕内容进行分组,可以得到的多组字幕内容。当视频中说话者的语速较快时,可能会导致每一组字幕内容的展示时长较短,进而导致用户来不及观看完当前展示的字幕内容。

为了解决这一技术问题,在本实施例中,在字幕流中的字幕内容拆分为多组字幕内容,以使每一组字幕内容以一行字幕的形式进行展示的情况下,终端设备3000采取双行滚动显示的方式进行字幕展示。即当前组字幕内容在结束展示后会自动滚动至当前组字幕内容所在的一行对应的上一行位置,下一组字幕内容在当前组字幕内容所在的一行进行展示。这样可以增加每一组字幕内容的展示时间,以为用户提供足够多的阅读时间,提升用户的观看字幕的体验。

当服务器2000对单个语音流对应的全部字幕内容进行分组,得到多组字幕内容时,基于该语音流对应的分组后字幕内容采取双行滚动显示方式进行字幕展示,具体参见图4。

图4示出了为第一个视频流和第二个视频流提供字幕时显示的视频画面示意图。

根据图4所示,在第00:03:02时刻对应的视频画面中显示的实时字幕为“观众朋友”。

在第00:03:09时刻对应的视频画面中显示的实时字幕为“观众朋友们您现在收看的是A电视”。

在第00:03:12时刻对应的视频画面中显示有两行字幕,上面一行字幕内容为“观众朋友们您现在收看的是A电视”,下面一行字幕内容为“台的2019年春”。

在第00:03:15时刻对应的视频画面中显示有两行字幕,上面一行字幕为“观众朋友们您现在收看的是A电视”,下面一行字幕内容为“台的2019年春节联欢晚会”。

在第00:03:16时刻对应的视频画面没有显示字幕内容。

在第00:03:21时刻对应的视频画面中显示的实时字幕为“在这里”。

在第00:03:25时刻对应的视频画面中显示的实时字幕为“在这里我们向全国各族人民港澳同”。

在第00:03:28时刻对应的视频画面中显示有两行字幕,上面一行字幕内容为“在这里我们向全国各族人民港澳同”,下面一行字幕内容为“胞台湾同胞和海外侨”。

在第00:03:30时刻对应的视频画面中显示有两行字幕,上面一行字幕内容“在这里我们向全国各族人民港澳同”,下面一行字幕内容为“胞台湾同胞海外侨胞拜年”。

当服务器2000对连续多个语音流对应的全部字幕内容进行分组,得到多组字幕内容时,基于该连续对个语音流对应的分组后的字幕内容采取双行滚动显示方式进行字幕展示,具体参见图5。

图5示出了为第二个视频流和第三个视频流提供实时字幕时显示的视频画面示意图。

根据图5所示,在第00:03:16时刻对应的视频画面没有显示字幕内容。

在第00:03:21时刻对应的视频画面中显示的实时字幕为“在这里”。

在第00:03:25时刻对应的视频画面中显示的实时字幕为“在这里我们向全国各族人民港澳同”。

在第00:03:28时刻对应的视频画面中显示有两行字幕,上面一行字幕内容为“在这里我们向全国各族人民港澳同”,下面一行字幕内容为“胞台湾同胞和海外侨”。

在第00:03:30时刻对应的视频画面中显示有两行字幕,上面一行字幕内容为“在这里我们向全国各族人民港澳同”,下面一行字幕内容为“胞台湾同胞海外侨胞拜年”。

在第00:03:32时刻对应的视频画面中显示有两行字幕,上面一行字幕内容为“胞台湾同胞海外侨胞拜年”,下面一行字幕内容为“在这美好时”。

在第00:03:37时刻对应的视频画面中显示有两行字幕,上面一行字幕内容为“胞台湾同胞海外侨胞拜年”,下面一行字幕内容为“在这美好时刻对于咱们中国人来说”。

在第00:03:40时刻对应的视频画面中显示有两行字幕,上面一行字幕内容为“在这美好时刻对于咱们中国人来说”,下面一行字幕内容为“最开心的事是全”。

在第00:03:45时刻对应的视频画面中显示有两行字幕,上面一行字幕内容为“在这美好时刻对于咱们中国人来说”,下面一行字幕内容为“最开心的事是全家一起吃个团圆饭”。

<方法实施例>

图6是根据本发明一个实施例的字幕的生成方法的处理流程图。该方法由图1中的服务器2000实施。

根据图6所示,该字幕的生成方法可以包括以下步骤S6100-S6400。

步骤S6100,获取视频的语音流信息。

视频的语音流是由图1示出的服务器2000从录制设备1000中获取的。

该语音流信息包括音频数据信息和时间戳信息。该语音流的时间戳信息为对应的视频流的时间戳信息,即该视频流的起始时间信息。

步骤S6200,根据语音流信息,获得字幕内容和字幕内容的起始展示时间、结束展示时间。

服务器2000对音频数据信息进行识别处理,得到字幕内容。

字幕内容的起始展示时间是字幕内容中第一个字的起始展示时间,字幕内容的结束展示时间是字幕内容中最后一个字的结束展示时间。

在本实施例中,根据语音流信息,获得字幕内容的起始展示时间、结束展示时间可以包括以下步骤S6210-S6220。

步骤S6210,获得音频数据信息的数据量,并根据数据量确定字幕内容的相对起始展示时间、相对结束展示时间。

该步骤得到的字幕内容的相对起始展示时间、相对结束展示时间并不是字幕内容的实际起始展示时间、实际结束展示时间。

步骤S6220,根据语音流的时间戳信息、字幕内容的相对起始展示时间和相对结束展示时间,得到字幕内容的起始展示时间和结束展示时间。

例如,某一个语音流的时间戳信息为t,该语音流对应的字幕内容的相对起始展示时间、相对结束展示时间分别为a、b,那么,该语音流对应的字幕内容的起始展示时间、结束展示时间分别为(t+a)、(t+b)。

步骤S6300,对字幕内容的起始展示时间、结束展示时间对应的时间区间进行均分处理,得到字幕内容中一个或多个字的起始展示时间。

在一个实施例中,基于视频中说话者的语速是均匀的,利用字幕内容的字数,对字幕内容的起始展示时间、结束展示时间对应的时间段进行均分处理,得到字幕内容中各个字的起始展示时间。

具体地,基于以下计算式,得到字幕内容中各个字的起始展示时间,tj=t+[(t-t)/n]×j,其中,tj为字幕内容中第j个字的起始展示时间,t为字幕内容的起始展示时间,t为字幕内容的结束展示时间,n为字幕内容的字数。

在另一个实施例中,服务器可以利用字幕内容中第一个字的起始展示时间和预设时间间隔,依次得到字幕内容中其他字的起始展示时间。具体地,服务器可以利用字幕内容中第一个字的起始展示时间和预设时间间隔,得到字幕内容中第二个字的起始展示时间。然后,服务器利用字幕内容中第二个字的起始展示时间和预设时间间隔,得到字幕内容中第三个字的起始展示时间,依次类推。

在该实施例中,预设时间间隔可以根据字幕内容的展示时长具体设定。步骤S6400,利用字幕内容、字幕内容中一个或多个字的起始展示时间和字幕内容的结束展示时间生成字幕流,并将字幕流发送至终端设备。

在本发明实施例中,一个语音流对应的全部字幕内容可以以一行字幕的形式展示在视频画面中。当视频画面的下方显示的一行字幕内容较多,会导致用户观看字幕的体验较差。

为了解决这一技术问题,在本发明的一个实施例中,在执行步骤S6400之前,执行步骤S6500,对识别得到的字幕内容进行分组,得到多组字幕内容,以使每一组字幕内容以一行字幕的形式在终端设备进行展示。

例如,服务器2000利用每组字幕内容的预设字数,对每一个语音流对应的全部字幕内容进行分组,得到多组字幕内容。

又例如,服务器2000利用每组字幕内容的预设字数,对连续多个语音流对应的全部字幕内容进行分组,得到多组字幕内容。然后,服务器2000判断每组字幕内容中相邻两个字的时间间隔值是否超过预设时间间隔值,得到判断结果。如果判断结果为每组字幕内容存在相邻两个字的时间间隔超过预设时间间隔值时,将相邻两个字中的位置在后的字划分为下一组字幕内容。

在本实施例中,服务器2000对识别得到的字幕内容进行分组,得到多组字幕内容后,步骤S6400进一步包括:根据每组字幕内容、每组字幕内容中各个字的起始展示时间和每组字幕内容的结束展示时间,生成字幕流。

服务器2000可以根据每组字幕内容中第一个字的起始展示时间确定每组字幕内容的起始展示时间。

服务器2000可以根据每组字幕内容中单个字的展示时长和最后一个字的起始展示时间,得到每组字幕内容的结束展示时间。

在一个实施例中,当视频中说话者的语速较快时,可能会导致每一组字幕内容的展示时长较短,进而导致用户来不及观看完当前展示的字幕内容。为了解决这一技术问题,在步骤S6400之前,服务器2000执行步骤S6600,在获得各组字幕内容的起始展示时间和结束展示时间之后,基于每一组字幕内容,获得当前组字幕内容的结束展示时间和下一组字幕内容的起始展示时间。步骤S6700,根据当前组字幕内容的结束展示时间和下一组字幕内容的起始展示时间,得到当前组字幕内容的延时结束展示时间,并将延时结束展示时间作为当前组字幕内容的结束展示时间。

例如,当前组字幕内容的结束展示时间为a,下一组字幕内容的起始展示时间为b,可以直接将下一组字幕内容的起始展示时间b作为当前组字幕内容的延时结束展示时间,以得到当前字幕内容的最终结束展示时间。或者,根据当前组字幕内容的结束展示时间a和下一组字幕内容的起始展示时间b,得到当前字幕内容的延时结束展示时间min(a+x,b-y)。其中,x、y的取值可以根据实际情况而定。例如,x取值为1000毫秒,y取值为100毫秒。

在一个实施例中,服务器2000将字幕流发送至终端设备3000后,终端设备3000将字幕流和视频流进行叠加,得到展示有字幕的视频流。由于视频流携带的时间戳信息可能发生异常情况,导致两者叠加时产生时间偏差。因此,字幕的生成方法还可以包括以下步骤S6800-S6900,以检测服务器实时获取的视频流的时间信息是否出现异常。

步骤S6800,检测视频流的时间戳是否存在异常,得到检测结果。

首先,获取当前视频流的时间戳和上一个视频流的时间戳,并得到当前视频流的时间戳和上一个视频流的时间戳的时间差值。然后,判断该时间差值是否位于预设时间差值范围内,得到判断结果。根据判断结果确定当前视频流的时间戳是否存在异常。

在判断结果为时间差值位于预设时间差值范围内时,可以确定当前视频流的时间戳未出现异常。在判断结果为时间差值未位于预设时间差值范围内时,可以确定当前视频流的时间戳存在异常。

步骤S6900,在检测结果为当前视频流的时间戳存在异常的情况下,重新获取视频流。

图7是根据本发明另一个实施例的字幕的生成方法的处理流程图。该方法由图1中的终端设备3000实施。

根据图7所示,该字幕的生成方法可以包括以下步骤S7100-S7300。

步骤S7100,接收服务器发送的根据上述任一实施例生成的字幕流。

步骤S7200,获取字幕流对应的视频流。

每一个字幕流是基于语音流生成的,该语音流是对应的视频流携带的音频数据。

步骤S7300,根据字幕流携带的字幕内容中一个或多个字的起始展示时间、字幕内容的结束展示时间和视频流中各个画面帧的时间戳,将字幕流和视频流叠加得到展示有字幕的视频流。

每一个视频流是由连续的画面帧组成的。字幕流和视频流的叠加是指将对应的字幕内容***到每一个画面帧中。在***过程中,根据字幕内容中各个字的起始展示时间、字幕内容的结束展示时间和视频流中各个画面帧的时间戳的对应关系进行对齐。

例如,视频流的第一个画面帧的时间戳为a,字幕内容中首个字的起始展示时间为a,将字幕内容中首个字***到第一个画面帧中。第二个画面帧的时间戳为b,字幕内容中第二个字的起始展示时间为b,将字幕内容中首个字和第二个字均***到第二个画面帧中。按照上述***方法,将字幕内容中的各个字***到对应的画面帧中。

在本发明的一个实施例中,在字幕流中的字幕内容拆分为多组字幕内容,以使每一组字幕内容以一行字幕的形式进行展示的情况下,可能会出现由于视频中说话者的语速较快导致的每一组字幕内容的展示时长较短的问题,进而使得用户来不及观看完当前展示的字幕内容。

为了解决这一技术问题,终端设备采取双行滚动显示的方式进行字幕展示。即当前组字幕内容在结束展示后会自动滚动至当前组字幕内容所在的一行对应的上一行位置,下一组字幕内容在当前组字幕内容所在的一行进行展示。这样可以增加每一组字幕内容的展示时间,以为用户提供足够多的阅读时间,提升用户的观看字幕的体验。

当服务器2000对单个语音流对应的全部字幕内容进行分组,得到多组字幕内容时,基于该语音流对应的分组后字幕内容采取双行滚动显示方式进行字幕展示。

当服务器2000对连续多个语音流对应的全部字幕内容进行分组,得到多组字幕内容时,基于该连续对个语音流对应的分组后的字幕内容采取双行滚动显示方式进行字幕展示。

<例子>

在本例子中,录制设备1000向服务器2000发送直播视频。服务器2000根据直播视频生成字幕流,并将字幕流发送至终端设备3000。服务器2000生成的字幕可以以m3u8文件进行存储。

终端设备3000从服务器2000中获取视频流和对应的字幕流。终端设备3000对获得的视频流和对应的字幕流进行叠加,得到展示有字幕内容的视频流。

在该例子中,服务器2000根据直播视频生成字幕流涉及的操作可以参见图8。

根据图8所示,服务器端从上到下排列的第一行代表从获取的直播视频的各个语音流。第二行代表对各个语音流识别处理得到的字幕内容。第三行代表各个字幕内容对应的各个字。第四行代表一个语音流对应的字幕内容分组处理后的字幕内容,即每一个虚线框代表一组字幕内容,每一组字幕内容以一行字幕的形式在终端设备进行展示。

在该例子中,终端设备采取双行滚动显示的方式进行单个语音流对应的分组字幕内容。例如,对某一个语音流对应的字幕内容进行分组处理后,得到两组字幕内容。第一组字幕内容结束展示后会自动滚动至第一组字幕内容所在的一行对应的上一行位置,第二组字幕内容在第一组字幕内容所在的一行进行展示。

为了增加当前语音流的最后一组字幕内容的展示时长,获得最后一组字幕内容的结束展示时间和下一个语音流中的第一组字幕内容的起始展示时间。根据最后一组字幕内容的结束展示时间和下一个语音流中的第一组字幕内容的起始展示时间,得到当前组字幕内容的延时结束展示时间。

第五行代表对各语音流对应的最后一组字幕内容增加展示时长后的分组字幕内容。

根据图8所示,终端设备端从上到下排列的第一行代表直播视频流,该直播视频流是由连续的画面帧(GOP,Group of Pictures)组成的。第二行代表组成直播视频流的各个画面帧(I帧、P帧和B帧)。最后一行即为服务器端的第五行代表的字幕内容。

根据图8所示,终端设备将获得的字幕内容***到每一个画面帧中。在***过程中,根据字幕内容中各个字的起始展示时间、字幕内容的结束展示时间和直播视频流中各个画面帧的时间戳的对应关系进行对齐。

<字幕的生成系统>

本实施例的字幕的生成系统可以包括至少一个服务器和至少一个终端设备。

应用于本发明的实施例中,服务器的存储器用于存储指令,所述指令用于控制所述处理器执行本发明实施例提供的字幕的生成方法。

终端设备的存储器用于存储指令,所述指令用于控制处理器执行本发明实施例提供的字幕的生成方法。或者,终端设备包括显示组件和处理组件。该显示组件用于执行显示。该处理组件用于接收服务器发送生成的字幕流,并根据字幕流携带的字幕内容中各个字的起始展示时间、字幕内容的结束展示时间和对应的视频流中各个画面帧的时间戳,将字幕流和视频流叠加得到展示有字幕的视频流,以将展示有字幕的视频流送至显示组件进行显示。

该显示组件还用于采用双行显示的方式进行字幕的展示,其中,双行显示的方式为当前展示完的字幕内容自动滚动至上一行进行展示,以在当前展示完字幕内容所处位置展示下一行字幕内容。

根据本发明的一个实施例,可以保证视频携带的语音和字幕的对齐程度,实现了为视频携带的语音实时配置字幕,提升了用户的观看字幕体验。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

26页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:图像传感器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类