700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 用于音频的文字时间对齐方法 装置 介质及电子设备与流程

用于音频的文字时间对齐方法 装置 介质及电子设备与流程

时间:2023-01-17 12:25:26

相关推荐

用于音频的文字时间对齐方法 装置 介质及电子设备与流程

本公开涉及计算机技术领域,具体地,涉及一种用于音频的文字时间对齐方法、装置、介质及电子设备。

背景技术:

目前,对于视频语义搜索、视频定位、视频字幕添加等功能的需求越来越大,而这些功能依赖于对其音频的处理。因而,在音频处理的过程中,除了识别音频得到与音频相关的文字之外,还需要确定这些文字在音频中何时出现。举例来说,在对音频进行字幕添加操作时,需要知道哪一段字幕应当在何时出现。因此,应当明确文字与时间的对应关系,也就是需要进行文字时间对齐。

相关技术中,一般通过hmm(hiddenmarkovmodel,隐马尔科夫模型)进行语音识别。hmm在进行语音识别时,其数据处理所需帧移小,数据处理量大。另外,在相关技术中,hmm还可以进一步结合ctc(connectionisttemporalclassification)算法进行语音识别。利用ctc算法处理后其输出数据在时间上并非一一对齐,在时间上存在误差,准确性不足。

技术实现要素:

提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。

根据本公开的第一方面,提供一种用于音频的文字时间对齐方法,所述方法包括:

确定与音频对应的分词序列以及音节序列,其中,所述音节序列中的每个音节具有在所述音频中对应的起始时刻和持续时长;

确定所述分词序列中每一分词在所述音节序列中对应的音节组合;

根据每一所述分词在所述音节序列中对应的音节组合,以及所述音节序列中每个音节对应的起始时刻和持续时长,确定所述分词序列中每个分词在所述音频中对应的起始时刻和结束时刻。

根据本公开的第二方面,提供一种用于音频的文字时间对齐装置,所述装置包括:

第一确定模块,用于确定与音频对应的分词序列以及音节序列,其中,所述音节序列中的每个音节具有在所述音频中对应的起始时刻和持续时长;

第二确定模块,用于确定所述分词序列中每一分词在所述音节序列中对应的音节组合;

第三确定模块,用于根据每一所述分词在所述音节序列中对应的音节组合,以及所述音节序列中每个音节对应的起始时刻和持续时长,确定所述分词序列中每个分词在所述音频中对应的起始时刻和结束时刻。

根据本公开的第三方面,提供一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现本公开第一方面所述方法的步骤。

根据本公开的第四方面,提供一种电子设备,包括:

存储装置,其上存储有计算机程序;

处理装置,用于执行所述存储装置中的所述计算机程序,以实现本公开第一方面所述方法的步骤。

通过上述技术方案,确定与音频对应的分词序列以及音节序列,确定分词序列中每一分词在音节序列中对应的音节组合,并根据每一分词在音节序列中对应的音节组合,以及音节序列中每个音节对应的起始时刻和持续时长,确定分词序列中每个分词在音频中对应的起始时刻和结束时刻。在确定出与音频对应的分词序列和音节序列后,确定分词序列中每一分词在音节序列中对应的音节组合,并能根据每一分词在音节序列中对应的音节组合,和音节序列在每个音节对应的起始时刻和持续时长,确定分词序列中每个分词在音频中对应的起始时刻和结束时刻。这样,能够准确地实现音频中文字的时间同步,并且,数据处理量小,能提升数据处理效率。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。在附图中:

图1是根据本公开的一种实施方式提供的用于音频的文字时间对齐方法的流程图;

图2是根据本公开提供的用于音频的文字时间对齐方法中,确定分词序列中每一分词在音节序列中对应的音节组合的步骤的一种可能的实施方式的流程图;

图3是根据本公开提供的用于音频的文字时间对齐方法中,确定分词序列中每一分词在音节序列中对应的音节组合的步骤的另一种可能的实施方式的流程图;

图4是根据本公开的一种实施方式提供的用于音频的文字时间对齐装置的框图;

图5示出了适于用来实现本公开实施例的电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。

应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。

本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。

需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。

需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。

图1是根据本公开的一种实施方式提供的用于音频的文字时间对齐方法的流程图。如图1所示,该方法可以包括以下步骤。

在步骤11中,确定与音频对应的分词序列以及音节序列。

对音频进行语音识别后,可以得到与该音频对应的分词序列。其中,分词序列是对音频进行语音识别后所得到的具有先后顺序的分词集合,其先后顺序与语音识别从音频中识别出分词的先后顺序相同,可以代表分词在音频中出现的顺序。例如,分词序列可以为{今天,是,星期四,天气,很,好,是,晴天},在该示例中,共有8个分词,分别为“今天”、“是”、“星期四”、“天气”、“很”、“好”、“是”、“晴天”。需要说明的是,为了区分不同分词,将两个分词之间用符号“,”相隔,在实际应用时,符号“,”可以不必存在,或者以其他符号的形式存在,本公开对此不限制。

对音频进行解码、以及经过ctcmapping后,可以得到与该音频对应的音节序列。举例来说,对基于加权有限状态机(wfst)的解码器来说,输出标签(outputlabel)序列是词序列,输入标签(inputlabel)序列是对齐序列。对齐序列经过ctcmapping后可以得到音节序列和每个音节对应的时间戳。其中,音节序列是具有先后顺序的音节集合,其先后顺序可以代表音节在音频中出现的顺序。音节序列中的每个音节具有在音频中对应的起始时刻和持续时长,另外,音节序列中的每个音节可以具有音节标识(与音节一一对应,用于唯一代表音节,例如,音节id),相当于音节序列中的每个音节对应于音节标识、音节在音频中对应的起始时刻、音节在音频中的持续时长三元组。示例地,音节序列可以为{jin1,tian1,shi4,xing1,qi1,si4,tian1,qi4,hen3,hao3,shi4,qing2,tian1},在该示例中,共有13个音节,其中每个音节后的数字代表其声调。需要说明的是,为了区分不同音节,将两个音节之间用符号“,”相隔,在实际应用时,符号“,”可以不必存在,或者以其他符号的形式存在,本公开对此不限制。

其中,为了提升时间对齐的准确性,可以在确定与音频对应的分词序列后,对于属于不同语句的分词可以分别处理,也就是分句进行时间对齐。

在步骤12中,确定分词序列中每一分词在音节序列中对应的音节组合。

在得到分词序列和音节序列后,由于分词序列仅包含分词,每个分词在音频中所对应的时间仍为未知,而音节序列中的每个音节在音频中对应的时间已知,因此,可以确定分词序列中每一分词在音节序列中对应的音节组合,以为确定分词在音频中对应的起始时刻和结束时刻提供依据。根据每一分词的读音,可以从音节序列中确定出与分词对应的音节组合。

其中,音节组合可以为音节序列中的某一个音节,或者,音节组合可以为音节序列中相邻的某几个音节。以上文中所给出的示例为例,分词序列{今天,是,星期四,天气,很,好,是,晴天}和音节序列{jin1,tian1,shi4,xing1,qi1,si4,tian1,qi4,hen3,hao3,shi4,qing2,tian1},分词“今天”在音节序列中对应的音节组合为“jin1tian1”,分词“是”(带下划线)在音节序列中对应的音节组合为“shi4”(带下划线),分词“星期四”在音节序列中对应的音节组合为“xing1qi1si4”,分词“是”(不带下划线)在音节序列中对应的音节组合为“shi4”(不带下划线),其余分词不再一一列举。

在步骤13中,根据每一分词在音节序列中对应的音节组合,以及音节序列中每个音节对应的起始时刻和持续时长,确定分词序列中每个分词在音频中对应的起始时刻和结束时刻。

示例地,分词在音频中对应的起始时刻为该分词对应音节组合中首个音节所对应的起始时刻,分词在音频中对应的结束时刻为从该分词对应音节组合中首个音节所对应的起始时刻开始、经过该分词对应音节组合所包含音节的总持续时长后而对应的时刻。

以前述示例为例,分词“今天”对应的音节组合为“jin1tian1”,其中,音节jin1在音频中对应的起始时刻为t1、持续时长为tt1,音节tian1在音频中对应的起始时刻为t2、持续时长为tt2,则分词“今天”在音频中对应的起始时刻为t1,结束时刻为t1+tt1+tt12所对应的时刻。

通过上述技术方案,确定与音频对应的分词序列以及音节序列,确定分词序列中每一分词在音节序列中对应的音节组合,并根据每一分词在音节序列中对应的音节组合,以及音节序列中每个音节对应的起始时刻和持续时长,确定分词序列中每个分词在音频中对应的起始时刻和结束时刻。在确定出与音频对应的分词序列和音节序列后,确定分词序列中每一分词在音节序列中对应的音节组合,并能根据每一分词在音节序列中对应的音节组合,和音节序列在每个音节对应的起始时刻和持续时长,确定分词序列中每个分词在音频中对应的起始时刻和结束时刻。这样,能够准确地实现音频中文字的时间同步,并且,数据处理量小,能提升数据处理效率。

为了使本领域技术人员更加理解本发明实施例提供的技术方案,下面对上文中的相应步骤或应用场景进行详细的说明。

首先,对步骤12中确定分词序列中每一分词在音节序列中对应的音节组合进行详细说明。

在一种可能的实施方式中,步骤12可以包括如下步骤:

根据第一分词和预设音节字典,确定第一音节组合;

以第一音节为起点,确定音节序列中是否存在与第一音节组合相同的第一目标音节组合;

确定第一目标音节组合与第一分词相对应;

将第一分词在分词序列中的下一分词作为新的第一分词、以及、将第一目标音节组合在音节序列中的下一音节作为新的第一音节,并返回根据第一分词和预设音节字典,确定第一音节组合的步骤,直至第一分词为分词序列中的最后一个分词。

下面将基于图2所示出的流程图对上述步骤进行详细说明。

在步骤201中,根据第一分词和预设音节字典,确定第一音节组合。

初始情况下,第一分词为分词序列中的第一个分词。以上文中示出的分词序列{今天,是,星期四,天气,很,好,是,晴天}为例,初始情况下,第一分词为分词“今天”。

预设音节字典用于指示分词与音节之间的对应关系,以及,预设音节字典中每一个分词对应有至少一种音节组合,分词在预设音节字典对应的音节组合代表该分词可能的读音。示例地,分词“今天”在预设音节字典中可以对应一种音节组合,为“jin1tian1”。除此类分词之外,含多音字的分词、存在儿化音读法文字的分词、含阿拉伯数字的分词等在预设音节字典中均可以对应多种音节组合。以多音字(词)为例,分词“朝阳”在预设音节字典中可以对应两种音节组合,一种是“zhao1yang2”,另一种是“chao2yang2”。以儿化音为例,分词“一会”在预设音节字典中可以对应两种音节组合,一种是“yi1hui4”,另一种是“yi1hui4er0”(有儿化音,声调0表轻声,仅作示例)。以阿拉伯数字为例,分词“12”在预设音节字典中可以对应两种音节组合,一种是“shi2er4”,另一种是“yi1er4”。

第一音节组合为第一分词在预设字典中对应的音节组合之一。若第一分词在预设音节字典中对应一种音节组合,则可以直接将该对应的音节组合作为第一音节组合。若第一分词在预设音节字典中不只对应一种音节组合,则可以从这些对应的音节组合中选择一个音节组合,作为第一音节组合。示例地,从这些对应的音节组合中选择一个音节组合作为第一音节组合可以采用随机选择的方式。

在步骤202中,以第一音节为起点,确定音节序列中是否存在与第一音节组合相同的第一目标音节组合。

初始情况下,第一音节为音节序列的首个音节,从音节序列中的首个音节开始,确定第一目标音节组合,防止遗漏。

确定音节序列中是否存在与第一音节组合相同的第一目标音节组合,可以采用依次匹配的方式。

依据上文给出的示例,分词序列{今天,是,星期四,天气,很,好,是,晴天}和音节序列{jin1,tian1,shi4,xing1,qi1,si4,tian1,qi4,hen3,hao3,shi4,qing2,tian1},预设音节字典中,分词“今天”对应一种音节组合,为“jin1tian1”。初始情况下,第一分词为“今天”,第一音节组合为“jin1tian1”,第一音节为“jin1”,则从音节序列中第一音节“jin1”为起点,确定是否存在第一目标音节组合,根据分词序列可知,存在第一目标音节组合(已在分词序列中用下划线标出)。

若经步骤202确定存在第一目标音节组合,执行步骤203。

在步骤203中,确定第一目标音节组合与第一分词相对应。

在步骤204中,将第一分词在分词序列中的下一分词作为新的第一分词、以及、将第一目标音节组合在音节序列中的下一音节作为新的第一音节,并返回步骤201。

在经步骤203确定第一目标音节组合与第一分词相对应后,将第一分词在分词序列中的下已分词作为新的第一分词,并将第一目标音节组合在音节序列中的下一音节作为新的第一音节,并返回步骤201,以依次确定分词序列中每一分词在音节序列中对应的音节组合。

依据上文给出的示例,分词序列{今天,是,星期四,天气,很,好,是,晴天}和音节序列{jin1,tian1,shi4,xing1,qi1,si4,tian1,qi4,hen3,hao3,shi4,qing2,tian1},且经步骤202确定存在第一目标音节组合(已在分词序列中用下划线标出)。因而,可以确定第一目标音节组合“jin1tian1”(省略无关符号)与分词“今天”相对应。之后,将分词“今天”在分词序列中的下一分词“是”作为新的第一分词、并将第一目标音节组合“jin1tian1”在音节序列中的下一音节“shi4”作为新的第一音节,返回步骤201。

在另一种可能的实施方式中,若经步骤202确定不存在第一目标音节组合,则除上述步骤外,步骤12还可以包括以下步骤:

若不存在第一目标音节组合,将第一分词在分词序列中的下一分词作为第二分词,并根据第二分词和预设音节字典,确定第二音节组合;

以第一音节为起点,确定音节序列中是否存在与第二音节组合相同的第二目标音节组合;

若存在第二目标音节组合、且第一音节至第二目标音节组合之前的音节数量小于预设阈值,确定第二目标音节组合与第二分词相对应,并根据第一音节和第二目标音节组合确定与第一分词对应的音节组合;

将第二分词在分词序列中的下一分词作为新的第一分词、并将第二目标音节组合在音节祖列中的下一音节作为新的第一音节,并返回根据第一分词和预设音节字典,确定第一音节组合的步骤,直至第一分词为分词序列中的最后一个分词。

下面将基于图2所示出的流程图对上述步骤进行详细说明。

若经步骤202确定不存在第一目标音节组合,执行步骤205。

在步骤205中,将第一分词在分词序列中的下一分词作为第二分词。

在步骤206中,根据第二分词和预设音节字典,确定第二音节组合。

第二音节组合为第二分词在预设音节字典中对应的音节组合之一,其确定方式与第一音节组合的确定方式原理相同,可参考前文中针对第一音节组合的描述,此处不赘述。

在步骤207中,以第一音节为起点,确定音节序列中是否存在与第二音节组合相同的第二目标音节组合。

确定第二目标音节组合的原理与确定第一目标音节组合的原理相同,可以参考前文中对第一目标音节组合的描述,此处不赘述。

若经步骤207确定存在第二目标音节组合,执行步骤208。

在步骤208中,判断第一音节至第二目标音节组合之前的音节数量是否小于预设阈值。

第一音节至第二目标音节组合之前的音节数量,就是在音节序列中,从第一音节开始(包括第一音节)、至第二目标音节组合在音节序列中的前一个音节(也就是音节序列中第二目标音节组合中首个音节的前一音节)所包括的音节数量。举例来说,对于音节序列{jin1,tian1,shi4,xing1,qi1,si4,tian1,qi4,hen3,hao3,shi4,qing2,tian1},若第一音节为xing1(已用下划线标出),第二目标音节组合为“qing2tian1”(已用下划线标出),则第一音节至第二目标音节组合之前的音节数量为8(包含音节xing1,qi1,si4,tian1,qi4,hen3,hao3,shi4)。

其中,预设阈值大于零。预设阈值可以根据经验值设置,或者,预设阈值可以人为设置。一般情况下,预设阈值可以根据分词所能对应的最多的音节数量来确定,例如将预设阈值设置为分词能够对应的音节数量的最大值。

若经步骤208确定第一音节至第二目标音节组合之前的音节数量小于预设阈值,执行步骤209。也就是说,若存在第二目标音节组合、且第一音节至第二目标音节组合之前的音节数量小于预设阈值,执行步骤209。

在步骤209中,确定第二目标音节组合与第二分词相对应,并根据第一音节和第二目标音节组合确定与第一分词对应的音节组合。

在确定第二目标音节组合与第二分词相对应后,可以根据第一音节和第二目标音节组合确定与第一分词对应的音节组合。

在一种可能的实施方式中,步骤209中根据第一音节和第二目标音节组合确定与第一分词对应的音节组合,可以包括以下步骤:

若第一音节至第二目标音节组合之前的音节数量为零,确定第一音节前、且与第一音节相邻的音节组合与第一分词相对应;

若第一音节至第二目标音节组合之前的音节数量大于零,确定音节序列中第一音节至第二目标音节组合之前的音节所构成的音节组合与第一分词相对应。

若第一音节至第二目标音节组合之前的音节数量为零,说明已经与分词确定对应关系的两个音节组合之前不存在其他的音节,没有这样的音节可以与第一分词相对应,因此,可以确定第一前、且与第一音节相邻的音节组合与第一分词相对应。

示例地,音节序列{a1,a2,a3,a4,a5,a6},第一分词为a,若第一音节为a5,第二目标音节组合为a5a6,且第一音节前、且与第一音节相邻的音节组合为a3a4,可知第一音节至第二目标音节组合之前的音节数量为零,则可以确定音节组合a3a4与分词a相对应。

若第一音节至第二目标音节组合之前的音节数量大于零,则可以直接将音节序列中第一音节至第二目标音节组合之前的音节所构成的音节组合与第一分词相对应。示例地,音节序列{a1,a2,a3,a4,a5,a6},第一分词为a,若第一音节为a3,第二目标音节组合为a5a6,且第一音节前、且与第一音节相邻的音节组合为a2,可知第一音节至第二目标音节组合之前的音节数量大于零,则可以确定音节组合a3a4与分词a相对应。

在步骤210中,将第二分词在分词序列中的下一分词作为新的第一分词、并将第二目标音节组合在音节祖列中的下一音节作为新的第一音节,并返回步骤201。

采用上述方式,若在音节序列中无法找出能够与当前分词对应的音节组合,则跳过当前分词,先寻找与当前分词的下一分词对应的音节组合,并根据下一分词对应的音节组合,间接确定当前分词对应的音节组合,提升处理效率,且能保证后续时间对齐的准确性。

在另一种可能的实施方式中,若经步骤207确定音节序列中不存在与第二音节组合相同的第二目标音节组合,或者,经步骤208确定第一音节至第二目标音节组合之前的音节数量大于或等于预设阈值,步骤12还可以包括以下步骤:

若不存在第二目标音节组合,或者,若第一音节至第二目标组合之前的音节数量大于或等于预设阈值,确定音节序列中第一音节至最后一个音节所构成的音节组合与分词序列中第一分词至最后一个分词分别相对应。

参见图2,若经步骤207确定不存在第二目标音节组合,或者,经步骤208确定第一音节至第二目标音节组合之前的音节数量大于或等于预设阈值,执行步骤211。

在步骤211中,确定音节序列中第一音节至最后一个音节所构成的音节组合与分词序列中第一分词至最后一个分词分别相对应。

若不存在第二目标音节组合,说明即使跳过一个分词,在剩余的音节(未与分词相对应的音节)中也没有能够同下一分词(第二分词)对应的音节组合。

若第一音节至第二目标音节组合之前的音节数量大于或等于预设阈值,说明这些音节理论上都应该对应于第一分词,在这种状况下,第一分词对应的音节数量将会超过一个分词能够对应的最大音节数量,显然是不现实的。

上述两种情形均说明,即便跳过一个分词,也无法找到对应的音节组合,无需再次进行尝试。

因而,执行步骤211,确定音节序列中第一音节至最后一个音节所构成的音节组合与分词序列中第一分词至最后一个分词分别相对应。也就是说,从第一音节开始至音节序列末尾音节构成一个音节组合,且分词序列中所有未与音节组合对应的分词均与该音节组合相对应。

示例地,音节序列{a1,a2,a3,a4,a5,a6}和分词序列{b1,b2,b3,b4},若b1为第一分词,b2为第二分词,且不存在第二目标音节组合,则可以确定分词b1与音节组合a1a2a3a4a5a6相对应,分词b2与音节组合a1a2a3a4a5a6相对应,分词b3和b4也相同。

采用上述方式,在音节序列中无法找出能够与当前分词对应的音节组合时跳过当前分词,若跳过方式仍然无法确定出合适的分词与音节组合之间的对应方式,则进行其他处理,减少无用的数据处理,提升数据处理效率。

在另一种可能的实施方式中,若不存在第一目标音节组合,则步骤12还可以包括以下步骤:

若第一分词为分词序列中的最后一个分词,确定音节序列中第一音节至最后一个音节所构成的音节组合与第一分词相对应;

若第一分词不是分词序列中的最后一个分词,则执行将第一分词在分词序列中的下一分词作为第二分词,并根据第二分词和预设音节字典,确定第二音节组合这一步骤。

参照图2,若经步骤202确定音节序列中不存在与第一音节组合相同的第一目标音节组合,首先判断第一分词是否为分词序列中的最后一个分词。

若第一分词为分词序列中的最后一个分词,则分词序列中处于第一分词前的分词在音节序列中均有对应的音节组合,剩余音节极有可能能够与第一分词相对应,因此,可以确定音节序列中第一音节至最后一个音节所构成的音节组合与第一分词相对应。

而若第一分词不是分词序列中的最后一个分词,再执行步骤205即可。

采用上述方式,若在音节序列中无法找出能够与当前分词对应的音节组合,且当前分词为分词序列中的最后一个分词时,直接确定当前分词对应的音节组合,处理迅速,而在当前分词不是分词序列中的最后一个分词时,再采取跳过当前分词的处理方式。

若跳过方式仍然无法确定出合适的分词与音节组合之间的对应方式,则进行其他处理,减少无用的数据处理,提升数据处理效率。

在另一种可能的实施方式中,若不存在第一目标音节组合,在将第一分词在分词序列中的下一分词作为第二分词,并根据第二分词和预设音节字典,确定第二音节组合这一步骤之前,还可以参照深度优先遍历的思想遍历第一分词及之前分词的所有可能的读音(预设音节字典中对应的音节组合),以尝试为分词在音节序列中确定出合适的音节组合。

在这种实施方式中,若不存在第一目标音节组合,步骤12还可以包括:

若不存在第一目标音节组合,确定第一分词在预设音节字典中对应的音节组合中是否存在未被选取过的音节组合;

若第一分词在预设音节字典中对应的音节组合中存在未被选取过的音节组合,从未被选取过的音节组合中选取新的第一音节组合,并返回以第一音节为起点,确定音节序列中是否存在与第一音节组合相同的第一目标音节组合的步骤;

若第一分词在预设音节字典中对应的音节组合中不存在未被选取过的音节组合,将第一分词在分词序列中的前一分词作为新的第一分词,并返回确定第一分词在预设音节字典中对应的音节组合中是否存在未被选取过的音节组合的步骤。并且,若新的第一分词为分词序列中的第一个分词,执行将第一分词在分词序列中的下一分词作为第二分词,并根据第二分词和预设音节字典,确定第二音节组合这一步骤。

参照图3,若经步骤202确定不存在第一目标音节组合,执行步骤301。

在步骤301中,确定第一分词在预设音节字典中对应的音节组合中是否存在未被选取过的音节组合。

其中,分词的未被选取过的音节组合,就是预设音节字典中与该分词对应、但未曾被确定为第一音节组合的音节组合。示例地,若分词“一会”在预设音节字典对应两种音节组合,一种是“yi1hui4”,另一种是“yi1hui4er0”,选取其中的“yi1hui4”作为第一音节组合,则此时“yi1hui4er0”就是未被选取过的音节组合。

若经步骤301确定第一分词在预设音节字典中对应的音节组合中存在未被选取过的音节组合,执行步骤302。

在步骤302中,从未被选取过的音节组合中选取新的第一音节组合。之后,返回步骤202。

参照上述示例,分词“一会”在预设音节字典对应“yi1hui4”、“yi1hui4er0”这两种音节组合,且选取其中的“yi1hui4”作为第一音节组合。若经步骤202确定不存在第一目标音节组合,则选取“yi1hui4er0”作为新的第一音节组合,并返回步骤202,以尝试分词其他读音能否实现对应。

若经步骤301确定第一分词在预设音节字典中对应的音节组合中不存在未被选取过的音节组合,执行步骤303。

在步骤303中,将第一分词在分词序列中的前一分词作为新的第一分词。之后,返回步骤301。

若不存在第一目标音节组合,可能是因为当前的第一分词或者之前的分词在预设音节字典中对应多种音节组合,而在之前的对应过程中选取的音节组合在音节序列中出现多对应或少对应的情况。例如,分词“一会”在预设音节字典对应“yi1hui4”、“yi1hui4er0”这两种音节组合,在音节序列中应当对应“yi1hui4er0”,却选取了预设音节字典中“yi1hui4”这一音节组合,导致音节序列中“er0”多余,造成错误。

这样,可以通过逐个回溯的方式尝试各个分词所有可能的读音,以试图找到分词序列与音节序列之间合适的对应方式,避免因多种读音而造成的对应错误或者无法对应。

另外,若新的第一分词为分词序列中的第一个分词,则说明尝试所有可能的音节组合后,仍然无法将各分词与各音节相对应,此时可执行步骤205,也就是跳过当前分词。

因此,在步骤303之后,需要执行步骤304,也就是判断第一分词是否为分词序列中的第一个分词。

若经步骤304确定第一分词不是分词序列中的第一个分词,再返回步骤301,而若经步骤304确定第一分词是分词序列中的第一个分词,则执行步骤205。

另外,在一种可能的实施方式中,若第一分词在预设音节字典中对应的音节组合不存在未被选取过的音节组合,步骤12还可以包括以下步骤:

若第一分词为分词序列中的最后一个分词,确定音节序列中第一音节至最后一个音节所构成的音节组合与第一分词相对应;

若第一分词不是分词序列中的最后一个分词,则执行将第一分词在分词序列中的前一分词作为新的第一分词,并返回确定第一分词在预设音节字典中对应的音节组合中是否存在未被选取过的音节组合的步骤这一步骤。

参见图3,若经步骤301确定第一分词在预设音节字典中对应的音节组合不存在未被选取过的音节组合,且在执行步骤303之前,首先判断第一分词是否为分词序列中的最后一个分词。若第一分词是分词序列中的最后一个分词,直接确定音节序列中第一音节至最后一个音节所构成的音节组合与第一分词相对应;若第一分词不是分词序列中的最后一个分词,再执行步骤303。

另外,有关于步骤201~步骤211的描述在上文中已经给出,此处不再赘述。

采用上述方式,优先使用深度优先遍历的策略遍历分词所有可能的读音,在深度优先遍历策略不起作用的情况下,再采用跳过当前词的方式,将分词序列与音节序列相对应,能够提升数据处理效率。

根据本公开提供的方法,在执行步骤12时,可以直接使用跳过当前词的方式(图2、图3中步骤205开始)确定分词序列中每一分词在音节序列中对应的音节组合。或者,可以先采用深度优先遍历的策略(图3中步骤301开始)、而在深度优先遍历的策略无法成功对应的情况下再使用使用跳过当前词的处理方式。可根据具体的使用场景而定,本公开对此不限制。

在分词序列中的每一个分词均在音节序列中有对应的音节组合的情况下,无需再进行对应操作,步骤12完成。

下面,对步骤13中根据每一分词在音节序列中对应的音节组合,以及音节序列中每个音节对应的起始时刻和持续时长,确定分词序列中每个分词在音频中对应的起始时刻和结束时刻进行详细说明。

在一种可能的实施方式中,步骤13可以包括以下步骤:

针对每一分词,将该分词对应音节组合中首个音节的起始时刻确定为该分词在音频中对应的起始时刻,以及,将从该分词在音频中对应的起始时刻开始、经过该分词对应音节组合的总持续时长后的时刻确定为该分词在音频中对应的结束时刻。

示例地,若分词c1在音节序列中对应的音节组合为c1c2c3,且c1的起始时刻为d1、持续时长为e1,c2的起始时刻为d2、持续时长为e3,c3的起始时刻为d3、持续时长为e3,则分词c1的起始时刻为d1,结束时刻为d1+e1+e2+e3在音频中对应的时刻。

由上文所述,经步骤12后,可能存在对应于同一音节组合的多个分词(后文用第三分词指代)。

若存在第三分词,可以直接采用上述方式确定每一个第三分词的起始时刻和结束时刻,也就是说,对应于同一音节组合的多个第三分词在音频中的起始时刻相同、对应于同一音节组合的多个第三分词在音频中的结束时刻相同。

在另一种可能的实施方式中,步骤13还可以包括以下步骤:

若存在对应于同一音节组合的多个第三分词,根据第三分词对应的音节组合的总持续时长,确定每一第三分词对应的持续时长;

将第三分词对应的音节组合中首个音节组合的起始时刻确定为分词序列中首个第三分词在音频中对应的起始时刻,以及,将从首个第三分词在音频中对应的起始时刻开始、经过首个第三分词对应的持续时长后的时刻确定为首个第三分词在音频中对应的结束时刻;

根据首个第三分词在音频中对应的结束时刻和每一第三分词对应的持续时长,确定其余每一第三分词在音频中对应的起始时刻和结束时刻,其中,每一第三分词的结束时刻为从该第三分词在音频中对应的起始时刻开始、经过该第三分词对应的持续时长后的时刻,且每一第三分词的起始时刻与该第三分词的前一第三分词的结束时刻相同。

在一种可能的实施例中,可以将第三分词对应的音节组合的总持续时长平均分配给每个第三分词,以确定每一第三分词对应的持续时长。

示例地,若分词c2、c3在音节序列中对应的音节组合为c4c5c6,且c4的起始时刻为d4、持续时长为e4,c5的起始时刻为d5、持续时长为e5,c6的起始时刻为d6、持续时长为e6,则分词c1、c2对应的持续时长可以均为(e4+e5+e6)/2。

在另一种可能的实施例中,可以根据第三分词对应的音节组合的总持续时长为每个第三分词随机分配持续时长。

另外,为了保证各个分词对应的起始时刻和结束时刻尽可能符合实际,每个第三分词对应的持续时长应当均不为零。

在确定每个第三分词的持续时长后,根据音节组合中首个音节的起始时刻可以确定首个第三分词的起始时刻,结合该首个第三分词的持续时长可得该首个第三分词的结束时刻。之后,将该结束时刻作为下一第三分词的起始时刻,继续确定下一第三分词的结束时刻,以此类推,可以依次确定出每一个第三分词在音频中的起始时刻和结束时刻。

图4是根据本公开的一种实施方式提供的用于音频的文字时间对齐装置的框图。如图4所示,所述装置40包括:

第一确定模块41,用于确定与音频对应的分词序列以及音节序列,其中,所述音节序列中的每个音节具有在所述音频中对应的起始时刻和持续时长;

第二确定模块42,用于确定所述分词序列中每一分词在所述音节序列中对应的音节组合;

第三确定模块43,用于根据每一所述分词在所述音节序列中对应的音节组合,以及所述音节序列中每个音节对应的起始时刻和持续时长,确定所述分词序列中每个分词在所述音频中对应的起始时刻和结束时刻。

可选地,所述第二确定模块42包括:

第一确定子模块,用于根据第一分词和预设音节字典,确定第一音节组合,所述预设音节字典用于指示分词与音节之间的对应关系,以及,所述预设音节字典中每一个分词对应有至少一种音节组合,所述第一音节组合为所述第一分词在所述预设音节字典中对应的音节组合之一,其中,初始情况下,所述第一分词为所述分词序列中的第一个分词;

第二确定子模块,用于以第一音节为起点,确定所述音节序列中是否存在与所述第一音节组合相同的第一目标音节组合,初始情况下,所述第一音节为所述音节序列的首个音节;

第三确定子模块,用于若存在所述第一目标音节组合,确定所述第一目标音节组合与所述第一分词相对应;

所述第二确定模块42用于将所述第一分词在所述分词序列中的下一分词作为新的所述第一分词、以及、将所述第一目标音节组合在所述音节序列中的下一音节作为新的所述第一音节,并触发所述第一确定子模块根据第一分词和所述预设音节字典,确定第一音节组合,直至所述第一分词为所述分词序列中的最后一个分词。

可选地,所述第二确定模块42还包括:

第四确定子模块,用于若不存在所述第一目标音节组合,将所述第一分词在所述分词序列中的下一分词作为第二分词,并根据所述第二分词和所述预设音节字典,确定第二音节组合,所述第二音节组合为所述第二分词在所述预设音节字典中对应的音节组合之一;

第五确定子模块,用于以第一音节为起点,确定所述音节序列中是否存在与所述第二音节组合相同的第二目标音节组合;

第六确定子模块,用于若存在所述第二目标音节组合、且所述第一音节至所述第二目标音节组合之前的音节数量小于预设阈值,确定所述第二目标音节组合与所述第二分词相对应,并根据所述第一音节和所述第二目标音节组合确定与所述第一分词对应的音节组合;

所述第二确定模块42用于将所述第二分词在所述分词序列中的下一分词作为新的所述第一分词、并将所述第二目标音节组合在所述音节序列中的下一音节作为新的所述第一音节,并触发所述第一确定子模块根据第一分词和所述预设音节字典,确定第一音节组合,直至所述第一分词为所述分词序列中的最后一个分词,其中,所述预设阈值大于零。

可选地,所述第六确定子模块用于若所述第一音节至所述第二目标音节组合之前的音节数量为零,确定所述第一音节前、且与所述第一音节相邻的音节组合与所述第一分词相对应;若所述第一音节至所述第二目标音节组合之前的音节数量大于零,确定所述音节序列中所述第一音节至所述第二目标音节组合之前的音节所构成的音节组合与所述第一分词相对应。

可选地,所述第二确定模块42还包括第七确定子模块,用于若不存在所述第二目标音节组合,或者,若所述第一音节至所述第二目标音节组合之前的音节数量大于或等于所述预设阈值,确定所述音节序列中所述第一音节至所述最后一个音节所构成的音节组合与所述分词序列中所述第一分词至最后一个分词分别相对应。

可选地,所述第二确定模块42还包括:

第八确定子模块,用于若不存在所述第一目标音节组合,且所述第一分词为所述分词序列中的最后一个分词,确定所述音节序列中所述第一音节至最后一个音节所构成的音节组合与所述第一分词相对应;

所述第二确定模块42用于若不存在所述第一目标音节组合,且若所述第一分词不是所述分词序列中的最后一个分词,则触发所述第四确定子模块将所述第一分词在所述分词序列中的下一分词作为第二分词,并根据所述第二分词和所述预设音节字典,确定第二音节组合。

可选地,所述第二确定模块42还包括:

第九确定子模块,用于若不存在所述第一目标音节组合,且不存在所述第一目标音节组合,确定所述第一分词在所述预设音节字典中对应的音节组合中是否存在未被选取过的音节组合;

所述第二确定模块42用于若所述第一分词在所述预设音节字典中对应的音节组合中存在未被选取过的音节组合,从所述未被选取过的音节组合中选取新的所述第一音节组合,并触发所述第二确定子模块以第一音节为起点,确定所述音节序列中是否存在与所述第一音节组合相同的第一目标音节组合;

所述第二确定模块42用于若所述第一分词在所述预设音节字典中对应的音节组合不存在未被选取过的音节组合,将所述第一分词在所述分词序列中的前一分词作为新的所述第一分词,并触发所述第九确定子模块确定所述第一分词在所述预设音节字典中对应的音节组合中是否存在未被选取过的音节组合,以及,所述第二确定模块用42于若所述新的第一分词为所述分词序列中的第一个分词,触发所述第四确定子模块将所述第一分词在所述分词序列中的下一分词作为第二分词,并根据所述第二分词和所述预设音节字典,确定第二音节组合。

可选地,所述第二确定模块42还包括:

第十确定子模块,用于若所述第一分词在所述预设音节字典中对应的音节组合不存在未被选取过的音节组合,且所述第一分词为所述分词序列中的最后一个分词,确定所述音节序列中所述第一音节至最后一个音节所构成的音节组合与所述第一分词相对应;

所述第二确定模块42用于若所述第一分词在所述预设音节字典中对应的音节组合不存在未被选取过的音节组合,且所述第一分词不是所述分词序列中的最后一个分词,则将所述第一分词在所述分词序列中的前一分词作为新的所述第一分词,并触发所述第九确定子模块确定所述第一分词在所述预设音节字典中对应的音节组合中是否存在未被选取过的音节组合。

可选地,所述第三确定模块43用于针对每一所述分词,将该分词对应音节组合中首个音节的起始时刻确定为该分词在所述音频中对应的起始时刻,以及,将从该分词在所述音频中对应的起始时刻开始、经过该分词对应音节组合的总持续时长后的时刻确定为该分词在所述音频中对应的结束时刻。

可选地,所述第三确定模块43还用于若存在对应于同一音节组合的多个第三分词,根据所述第三分词对应的音节组合的总持续时长,确定每一所述第三分词对应的持续时长;将所述第三分词对应的音节组合中首个音节的起始时刻确定为分词序列中首个所述第三分词在所述音频中对应的起始时刻,以及,将从首个第三分词在所述音频中对应的起始时刻开始、经过所述首个第三分词对应的持续时长后的时刻确定为所述首个第三分词在所述音频中对应的结束时刻;根据所述首个第三分词在所述音频中对应的结束时刻和每一所述第三分词对应的持续时长,确定其余每一所述第三分词在所述音频中对应的起始时刻和结束时刻,其中,每一第三分词的结束时刻为从该第三分词在所述音频中对应的起始时刻开始、经过该第三分词对应的持续时长后的时刻,且每一第三分词的起始时刻与该第三分词的前一第三分词的结束时刻相同。

可选地,每个所述第三分词对应的持续时长均不为零。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

下面参考图5,其示出了适于用来实现本公开实施例的电子设备600的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图5所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储装置608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。

通常,以下装置可以连接至i/o接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从rom602被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的方法中限定的上述功能。

需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。

在一些实施方式中,客户端、服务器可以利用诸如http(hypertexttransferprotocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,adhoc端对端网络),以及任何当前已知或未来研发的网络。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:确定与音频对应的分词序列以及音节序列,其中,所述音节序列中的每个音节具有在所述音频中对应的起始时刻和持续时长;

确定所述分词序列中每一分词在所述音节序列中对应的音节组合;

根据每一所述分词在所述音节序列中对应的音节组合,以及所述音节序列中每个音节对应的起始时刻和持续时长,确定所述分词序列中每个分词在所述音频中对应的起始时刻和结束时刻。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言——诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,第一确定模块还可以被描述为“确定与音频对应的分词序列以及音节序列的模块”。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

根据本公开的一个或多个实施例,提供一种用于音频的文字时间对齐方法,所述方法包括:

确定与音频对应的分词序列以及音节序列,其中,所述音节序列中的每个音节具有在所述音频中对应的起始时刻和持续时长;

确定所述分词序列中每一分词在所述音节序列中对应的音节组合;

根据每一所述分词在所述音节序列中对应的音节组合,以及所述音节序列中每个音节对应的起始时刻和持续时长,确定所述分词序列中每个分词在所述音频中对应的起始时刻和结束时刻。

可选地,所述确定所述分词序列中每一分词在所述音节序列中对应的音节组合,包括:

根据第一分词和预设音节字典,确定第一音节组合,所述预设音节字典用于指示分词与音节之间的对应关系,以及,所述预设音节字典中每一个分词对应有至少一种音节组合,所述第一音节组合为所述第一分词在所述预设音节字典中对应的音节组合之一,其中,初始情况下,所述第一分词为所述分词序列中的第一个分词;

以第一音节为起点,确定所述音节序列中是否存在与所述第一音节组合相同的第一目标音节组合,初始情况下,所述第一音节为所述音节序列的首个音节;

若存在所述第一目标音节组合,确定所述第一目标音节组合与所述第一分词相对应;

将所述第一分词在所述分词序列中的下一分词作为新的所述第一分词、以及、将所述第一目标音节组合在所述音节序列中的下一音节作为新的所述第一音节,并返回所述根据第一分词和所述预设音节字典,确定第一音节组合的步骤,直至所述第一分词为所述分词序列中的最后一个分词。

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

若不存在所述第一目标音节组合,将所述第一分词在所述分词序列中的下一分词作为第二分词,并根据所述第二分词和所述预设音节字典,确定第二音节组合,所述第二音节组合为所述第二分词在所述预设音节字典中对应的音节组合之一;

以第一音节为起点,确定所述音节序列中是否存在与所述第二音节组合相同的第二目标音节组合;

若存在所述第二目标音节组合、且所述第一音节至所述第二目标音节组合之前的音节数量小于预设阈值,确定所述第二目标音节组合与所述第二分词相对应,并根据所述第一音节和所述第二目标音节组合确定与所述第一分词对应的音节组合;

将所述第二分词在所述分词序列中的下一分词作为新的所述第一分词、并将所述第二目标音节组合在所述音节序列中的下一音节作为新的所述第一音节,并返回所述根据第一分词和所述预设音节字典,确定第一音节组合的步骤,直至所述第一分词为所述分词序列中的最后一个分词,其中,所述预设阈值大于零。

可选地,所述根据所述第一音节和所述第二目标音节组合确定与所述第一分词对应的音节组合,包括:

若所述第一音节至所述第二目标音节组合之前的音节数量为零,确定所述第一音节前、且与所述第一音节相邻的音节组合与所述第一分词相对应;

若所述第一音节至所述第二目标音节组合之前的音节数量大于零,确定所述音节序列中所述第一音节至所述第二目标音节组合之前的音节所构成的音节组合与所述第一分词相对应。

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

若不存在所述第二目标音节组合,或者,若所述第一音节至所述第二目标音节组合之前的音节数量大于或等于所述预设阈值,确定所述音节序列中所述第一音节至所述最后一个音节所构成的音节组合与所述分词序列中所述第一分词至最后一个分词分别相对应。

可选地,若不存在所述第一目标音节组合,所述方法还包括:

若所述第一分词为所述分词序列中的最后一个分词,确定所述音节序列中所述第一音节至最后一个音节所构成的音节组合与所述第一分词相对应;

若所述第一分词不是所述分词序列中的最后一个分词,则执行所述将所述第一分词在所述分词序列中的下一分词作为第二分词,并根据所述第二分词和所述预设音节字典,确定第二音节组合的步骤。

可选地,若不存在所述第一目标音节组合,所述方法还包括:

若不存在所述第一目标音节组合,确定所述第一分词在所述预设音节字典中对应的音节组合中是否存在未被选取过的音节组合;

若所述第一分词在所述预设音节字典中对应的音节组合中存在未被选取过的音节组合,从所述未被选取过的音节组合中选取新的所述第一音节组合,并返回所述以第一音节为起点,确定所述音节序列中是否存在与所述第一音节组合相同的第一目标音节组合的步骤;

若所述第一分词在所述预设音节字典中对应的音节组合不存在未被选取过的音节组合,将所述第一分词在所述分词序列中的前一分词作为新的所述第一分词,并返回所述确定所述第一分词在所述预设音节字典中对应的音节组合中是否存在未被选取过的音节组合的步骤,以及,若所述新的第一分词为所述分词序列中的第一个分词,执行所述将所述第一分词在所述分词序列中的下一分词作为第二分词,并根据所述第二分词和所述预设音节字典,确定第二音节组合的步骤。

可选地,若所述第一分词在所述预设音节字典中对应的音节组合不存在未被选取过的音节组合,所述方法还包括:

若所述第一分词为所述分词序列中的最后一个分词,确定所述音节序列中所述第一音节至最后一个音节所构成的音节组合与所述第一分词相对应;

若所述第一分词不是所述分词序列中的最后一个分词,则执行所述将所述第一分词在所述分词序列中的前一分词作为新的所述第一分词,并返回所述确定所述第一分词在所述预设音节字典中对应的音节组合中是否存在未被选取过的音节组合的步骤这一步骤。

可选地,所述根据每一所述分词在所述音节序列中对应的音节组合,以及所述音节序列中每个音节对应的起始时刻和持续时长,确定所述分词序列中每个分词在所述音频中对应的起始时刻和结束时刻,包括:

针对每一所述分词,将该分词对应音节组合中首个音节的起始时刻确定为该分词在所述音频中对应的起始时刻,以及,将从该分词在所述音频中对应的起始时刻开始、经过该分词对应音节组合的总持续时长后的时刻确定为该分词在所述音频中对应的结束时刻。

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

若存在对应于同一音节组合的多个第三分词,根据所述第三分词对应的音节组合的总持续时长,确定每一所述第三分词对应的持续时长;

将所述第三分词对应的音节组合中首个音节的起始时刻确定为分词序列中首个所述第三分词在所述音频中对应的起始时刻,以及,将从首个第三分词在所述音频中对应的起始时刻开始、经过所述首个第三分词对应的持续时长后的时刻确定为所述首个第三分词在所述音频中对应的结束时刻;

根据所述首个第三分词在所述音频中对应的结束时刻和每一所述第三分词对应的持续时长,确定其余每一所述第三分词在所述音频中对应的起始时刻和结束时刻,其中,每一第三分词的结束时刻为从该第三分词在所述音频中对应的起始时刻开始、经过该第三分词对应的持续时长后的时刻,且每一第三分词的起始时刻与该第三分词的前一第三分词的结束时刻相同。

可选地,每个所述第三分词对应的持续时长均不为零。

根据本公开的一个或多个实施例,提供一种用于音频的文字时间对齐装置,所述装置包括:

第一确定模块,用于确定与音频对应的分词序列以及音节序列,其中,所述音节序列中的每个音节具有在所述音频中对应的起始时刻和持续时长;

第二确定模块,用于确定所述分词序列中每一分词在所述音节序列中对应的音节组合;

第三确定模块,用于根据每一所述分词在所述音节序列中对应的音节组合,以及所述音节序列中每个音节对应的起始时刻和持续时长,确定所述分词序列中每个分词在所述音频中对应的起始时刻和结束时刻。

可选地,所述第二确定模块包括:

第一确定子模块,用于根据第一分词和预设音节字典,确定第一音节组合,所述预设音节字典用于指示分词与音节之间的对应关系,以及,所述预设音节字典中每一个分词对应有至少一种音节组合,所述第一音节组合为所述第一分词在所述预设音节字典中对应的音节组合之一,其中,初始情况下,所述第一分词为所述分词序列中的第一个分词;

第二确定子模块,用于以第一音节为起点,确定所述音节序列中是否存在与所述第一音节组合相同的第一目标音节组合,初始情况下,所述第一音节为所述音节序列的首个音节;

第三确定子模块,用于若存在所述第一目标音节组合,确定所述第一目标音节组合与所述第一分词相对应;

所述第二确定模块用于将所述第一分词在所述分词序列中的下一分词作为新的所述第一分词、以及、将所述第一目标音节组合在所述音节序列中的下一音节作为新的所述第一音节,并触发所述第一确定子模块根据第一分词和所述预设音节字典,确定第一音节组合,直至所述第一分词为所述分词序列中的最后一个分词。

可选地,所述第二确定模块还包括:

第四确定子模块,用于若不存在所述第一目标音节组合,将所述第一分词在所述分词序列中的下一分词作为第二分词,并根据所述第二分词和所述预设音节字典,确定第二音节组合,所述第二音节组合为所述第二分词在所述预设音节字典中对应的音节组合之一;

第五确定子模块,用于以第一音节为起点,确定所述音节序列中是否存在与所述第二音节组合相同的第二目标音节组合;

第六确定子模块,用于若存在所述第二目标音节组合、且所述第一音节至所述第二目标音节组合之前的音节数量小于预设阈值,确定所述第二目标音节组合与所述第二分词相对应,并根据所述第一音节和所述第二目标音节组合确定与所述第一分词对应的音节组合;

所述第二确定模块用于将所述第二分词在所述分词序列中的下一分词作为新的所述第一分词、并将所述第二目标音节组合在所述音节序列中的下一音节作为新的所述第一音节,并触发所述第一确定子模块根据第一分词和所述预设音节字典,确定第一音节组合,直至所述第一分词为所述分词序列中的最后一个分词,其中,所述预设阈值大于零。

可选地,所述第六确定子模块用于若所述第一音节至所述第二目标音节组合之前的音节数量为零,确定所述第一音节前、且与所述第一音节相邻的音节组合与所述第一分词相对应;若所述第一音节至所述第二目标音节组合之前的音节数量大于零,确定所述音节序列中所述第一音节至所述第二目标音节组合之前的音节所构成的音节组合与所述第一分词相对应。

可选地,所述第二确定模块还包括第七确定子模块,用于若不存在所述第二目标音节组合,或者,若所述第一音节至所述第二目标音节组合之前的音节数量大于或等于所述预设阈值,确定所述音节序列中所述第一音节至所述最后一个音节所构成的音节组合与所述分词序列中所述第一分词至最后一个分词分别相对应。

可选地,所述第二确定模块还包括:

第八确定子模块,用于若不存在所述第一目标音节组合,且所述第一分词为所述分词序列中的最后一个分词,确定所述音节序列中所述第一音节至最后一个音节所构成的音节组合与所述第一分词相对应;

所述第二确定模块用于若不存在所述第一目标音节组合,且若所述第一分词不是所述分词序列中的最后一个分词,则触发所述第四确定子模块将所述第一分词在所述分词序列中的下一分词作为第二分词,并根据所述第二分词和所述预设音节字典,确定第二音节组合。

可选地,所述第二确定模块还包括:

第九确定子模块,用于若不存在所述第一目标音节组合,且不存在所述第一目标音节组合,确定所述第一分词在所述预设音节字典中对应的音节组合中是否存在未被选取过的音节组合;

所述第二确定模块用于若所述第一分词在所述预设音节字典中对应的音节组合中存在未被选取过的音节组合,从所述未被选取过的音节组合中选取新的所述第一音节组合,并触发所述第二确定子模块以第一音节为起点,确定所述音节序列中是否存在与所述第一音节组合相同的第一目标音节组合;

所述第二确定模块用于若所述第一分词在所述预设音节字典中对应的音节组合不存在未被选取过的音节组合,将所述第一分词在所述分词序列中的前一分词作为新的所述第一分词,并触发所述第九确定子模块确定所述第一分词在所述预设音节字典中对应的音节组合中是否存在未被选取过的音节组合,以及,所述第二确定模块用于若所述新的第一分词为所述分词序列中的第一个分词,触发所述第四确定子模块将所述第一分词在所述分词序列中的下一分词作为第二分词,并根据所述第二分词和所述预设音节字典,确定第二音节组合。

可选地,所述第二确定模块还包括:

第十确定子模块,用于若所述第一分词在所述预设音节字典中对应的音节组合不存在未被选取过的音节组合,且所述第一分词为所述分词序列中的最后一个分词,确定所述音节序列中所述第一音节至最后一个音节所构成的音节组合与所述第一分词相对应;

所述第二确定模块用于若所述第一分词在所述预设音节字典中对应的音节组合不存在未被选取过的音节组合,且所述第一分词不是所述分词序列中的最后一个分词,则将所述第一分词在所述分词序列中的前一分词作为新的所述第一分词,并触发所述第九确定子模块确定所述第一分词在所述预设音节字典中对应的音节组合中是否存在未被选取过的音节组合。

可选地,所述第三确定模块用于针对每一所述分词,将该分词对应音节组合中首个音节的起始时刻确定为该分词在所述音频中对应的起始时刻,以及,将从该分词在所述音频中对应的起始时刻开始、经过该分词对应音节组合的总持续时长后的时刻确定为该分词在所述音频中对应的结束时刻。

可选地,所述第三确定模块还用于若存在对应于同一音节组合的多个第三分词,根据所述第三分词对应的音节组合的总持续时长,确定每一所述第三分词对应的持续时长;将所述第三分词对应的音节组合中首个音节的起始时刻确定为分词序列中首个所述第三分词在所述音频中对应的起始时刻,以及,将从首个第三分词在所述音频中对应的起始时刻开始、经过所述首个第三分词对应的持续时长后的时刻确定为所述首个第三分词在所述音频中对应的结束时刻;根据所述首个第三分词在所述音频中对应的结束时刻和每一所述第三分词对应的持续时长,确定其余每一所述第三分词在所述音频中对应的起始时刻和结束时刻,其中,每一第三分词的结束时刻为从该第三分词在所述音频中对应的起始时刻开始、经过该第三分词对应的持续时长后的时刻,且每一第三分词的起始时刻与该第三分词的前一第三分词的结束时刻相同。

可选地,每个所述第三分词对应的持续时长均不为零。

根据本公开的一个或多个实施例,提供一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现本公开第一方面所述方法的步骤。

根据本公开的一个或多个实施例,提供一种电子设备,包括:

存储装置,其上存储有计算机程序;

处理装置,用于执行所述存储装置中的所述计算机程序,以实现本公开第一方面所述方法的步骤。

以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

技术特征:

1.一种用于音频的文字时间对齐方法,其特征在于,所述方法包括:

确定与音频对应的分词序列以及音节序列,其中,所述音节序列中的每个音节具有在所述音频中对应的起始时刻和持续时长;

确定所述分词序列中每一分词在所述音节序列中对应的音节组合;

根据每一所述分词在所述音节序列中对应的音节组合,以及所述音节序列中每个音节对应的起始时刻和持续时长,确定所述分词序列中每个分词在所述音频中对应的起始时刻和结束时刻。

2.根据权利要求1所述的方法,其特征在于,所述确定所述分词序列中每一分词在所述音节序列中对应的音节组合,包括:

根据第一分词和预设音节字典,确定第一音节组合,所述预设音节字典用于指示分词与音节之间的对应关系,以及,所述预设音节字典中每一个分词对应有至少一种音节组合,所述第一音节组合为所述第一分词在所述预设音节字典中对应的音节组合之一,其中,初始情况下,所述第一分词为所述分词序列中的第一个分词;

以第一音节为起点,确定所述音节序列中是否存在与所述第一音节组合相同的第一目标音节组合,初始情况下,所述第一音节为所述音节序列的首个音节;

若存在所述第一目标音节组合,确定所述第一目标音节组合与所述第一分词相对应;

将所述第一分词在所述分词序列中的下一分词作为新的所述第一分词、以及、将所述第一目标音节组合在所述音节序列中的下一音节作为新的所述第一音节,并返回所述根据第一分词和所述预设音节字典,确定第一音节组合的步骤,直至所述第一分词为所述分词序列中的最后一个分词。

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:

若不存在所述第一目标音节组合,将所述第一分词在所述分词序列中的下一分词作为第二分词,并根据所述第二分词和所述预设音节字典,确定第二音节组合,所述第二音节组合为所述第二分词在所述预设音节字典中对应的音节组合之一;

以第一音节为起点,确定所述音节序列中是否存在与所述第二音节组合相同的第二目标音节组合;

若存在所述第二目标音节组合、且所述第一音节至所述第二目标音节组合之前的音节数量小于预设阈值,确定所述第二目标音节组合与所述第二分词相对应,并根据所述第一音节和所述第二目标音节组合确定与所述第一分词对应的音节组合;

将所述第二分词在所述分词序列中的下一分词作为新的所述第一分词、并将所述第二目标音节组合在所述音节序列中的下一音节作为新的所述第一音节,并返回所述根据第一分词和所述预设音节字典,确定第一音节组合的步骤,直至所述第一分词为所述分词序列中的最后一个分词,其中,所述预设阈值大于零。

4.根据权利要求3所述的方法,其特征在于,所述根据所述第一音节和所述第二目标音节组合确定与所述第一分词对应的音节组合,包括:

若所述第一音节至所述第二目标音节组合之前的音节数量为零,确定所述第一音节前、且与所述第一音节相邻的音节组合与所述第一分词相对应;

若所述第一音节至所述第二目标音节组合之前的音节数量大于零,确定所述音节序列中所述第一音节至所述第二目标音节组合之前的音节所构成的音节组合与所述第一分词相对应。

5.根据权利要求3所述的方法,其特征在于,所述方法还包括:

若不存在所述第二目标音节组合,或者,若所述第一音节至所述第二目标音节组合之前的音节数量大于或等于所述预设阈值,确定所述音节序列中所述第一音节至所述最后一个音节所构成的音节组合与所述分词序列中所述第一分词至最后一个分词分别相对应。

6.根据权利要求3-5中任一项所述的方法,其特征在于,若不存在所述第一目标音节组合,所述方法还包括:

若所述第一分词为所述分词序列中的最后一个分词,确定所述音节序列中所述第一音节至最后一个音节所构成的音节组合与所述第一分词相对应;

若所述第一分词不是所述分词序列中的最后一个分词,则执行所述将所述第一分词在所述分词序列中的下一分词作为第二分词,并根据所述第二分词和所述预设音节字典,确定第二音节组合的步骤。

7.根据权利要求3所述的方法,其特征在于,若不存在所述第一目标音节组合,所述方法还包括:

若不存在所述第一目标音节组合,确定所述第一分词在所述预设音节字典中对应的音节组合中是否存在未被选取过的音节组合;

若所述第一分词在所述预设音节字典中对应的音节组合中存在未被选取过的音节组合,从所述未被选取过的音节组合中选取新的所述第一音节组合,并返回所述以第一音节为起点,确定所述音节序列中是否存在与所述第一音节组合相同的第一目标音节组合的步骤;

若所述第一分词在所述预设音节字典中对应的音节组合不存在未被选取过的音节组合,将所述第一分词在所述分词序列中的前一分词作为新的所述第一分词,并返回所述确定所述第一分词在所述预设音节字典中对应的音节组合中是否存在未被选取过的音节组合的步骤,以及,若所述新的第一分词为所述分词序列中的第一个分词,执行所述将所述第一分词在所述分词序列中的下一分词作为第二分词,并根据所述第二分词和所述预设音节字典,确定第二音节组合的步骤。

8.根据权利要求7所述的方法,其特征在于,若所述第一分词在所述预设音节字典中对应的音节组合不存在未被选取过的音节组合,所述方法还包括:

若所述第一分词为所述分词序列中的最后一个分词,确定所述音节序列中所述第一音节至最后一个音节所构成的音节组合与所述第一分词相对应;

若所述第一分词不是所述分词序列中的最后一个分词,则执行所述将所述第一分词在所述分词序列中的前一分词作为新的所述第一分词,并返回所述确定所述第一分词在所述预设音节字典中对应的音节组合中是否存在未被选取过的音节组合的步骤这一步骤。

9.根据权利要求1所述的方法,其特征在于,所述根据每一所述分词在所述音节序列中对应的音节组合,以及所述音节序列中每个音节对应的起始时刻和持续时长,确定所述分词序列中每个分词在所述音频中对应的起始时刻和结束时刻,包括:

针对每一所述分词,将该分词对应音节组合中首个音节的起始时刻确定为该分词在所述音频中对应的起始时刻,以及,将从该分词在所述音频中对应的起始时刻开始、经过该分词对应音节组合的总持续时长后的时刻确定为该分词在所述音频中对应的结束时刻。

10.根据权利要求9所述的方法,其特征在于,所述方法还包括:

若存在对应于同一音节组合的多个第三分词,根据所述第三分词对应的音节组合的总持续时长,确定每一所述第三分词对应的持续时长;

将所述第三分词对应的音节组合中首个音节的起始时刻确定为分词序列中首个所述第三分词在所述音频中对应的起始时刻,以及,将从首个第三分词在所述音频中对应的起始时刻开始、经过所述首个第三分词对应的持续时长后的时刻确定为所述首个第三分词在所述音频中对应的结束时刻;

根据所述首个第三分词在所述音频中对应的结束时刻和每一所述第三分词对应的持续时长,确定其余每一所述第三分词在所述音频中对应的起始时刻和结束时刻,其中,每一第三分词的结束时刻为从该第三分词在所述音频中对应的起始时刻开始、经过该第三分词对应的持续时长后的时刻,且每一第三分词的起始时刻与该第三分词的前一第三分词的结束时刻相同。

11.根据权利要求10所述的方法,其特征在于,每个所述第三分词对应的持续时长均不为零。

12.一种用于音频的文字时间对齐装置,其特征在于,所述装置包括:

第一确定模块,用于确定与音频对应的分词序列以及音节序列,其中,所述音节序列中的每个音节具有在所述音频中对应的起始时刻和持续时长;

第二确定模块,用于确定所述分词序列中每一分词在所述音节序列中对应的音节组合;

第三确定模块,用于根据每一所述分词在所述音节序列中对应的音节组合,以及所述音节序列中每个音节对应的起始时刻和持续时长,确定所述分词序列中每个分词在所述音频中对应的起始时刻和结束时刻。

13.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理装置执行时实现权利要求1-11中任一项所述方法的步骤。

14.一种电子设备,其特征在于,包括:

存储装置,其上存储有计算机程序;

处理装置,用于执行所述存储装置中的所述计算机程序,以实现权利要求1-11中任一项所述方法的步骤。

技术总结

本公开涉及一种用于音频的文字时间对齐方法、装置、介质及电子设备。所述方法包括:确定与音频对应的分词序列以及音节序列,其中,所述音节序列中的每个音节具有在所述音频中对应的起始时刻和持续时长;确定所述分词序列中每一分词在所述音节序列中对应的音节组合;根据每一所述分词在所述音节序列中对应的音节组合,以及所述音节序列中每个音节对应的起始时刻和持续时长,确定所述分词序列中每个分词在所述音频中对应的起始时刻和结束时刻。这样,能够准确地实现音频中文字的时间同步,并且,数据处理量小,能提升数据处理效率。

技术研发人员:蔡猛

受保护的技术使用者:北京字节跳动网络技术有限公司

技术研发日:.09.30

技术公布日:.01.10

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。