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

端到端的在线语音检测与识别方法、系统及设备与流程

2021-06-11 21:44:00 来源:中国专利 TAG:在线 语音 识别 检测 端到
端到端的在线语音检测与识别方法、系统及设备与流程

本发明属于语音检测与识别领域,具体涉及了一种端到端的在线语音检测与识别方法、系统及设备。



背景技术:

随着智能设备等创新应用的推广,语音识别作为人机交互的一个重要入口,现已被广泛应用于各类场景,例如语音输入、语音搜索、语音翻译、智能家居等等。其中某些场景对在线识别的实时性有着较高的要求,如语音控制,会议纪要等。

目前主流的在线语音识别方法需要训练并部署一个语音检测模型与一个语音识别模型,首先使用语音检测模型检测音频信号中的语音部分,然后针对语音部分的数据使用语音识别模型进行在线识别。其缺点为:需要训练和部署语音检测和语音识别两个模型,两者以串联方式进行结合,因此语音检测模型的准确性对后续语音识别模型的性能有较大影响,实际应用中需要根据应用场景动态调整语音检测模型的相关参数,以保证语音检测模型和语音识别模型两者性能都达到最优。此外,现有技术模型训练中需要大量的标注样本数据,对标注样本具有很强的依赖性,模型的鲁棒性和泛化性有待提升。



技术实现要素:

为了解决现有技术中的上述问题,本发明提供了一种端到端的在线语音检测与识别方法,将语音检测模型与语音识别模型统一到一个模型中,简化了训练与部署流程;采用多任务学习技术,对统一模型中的语音检测模块和语音识别模块进行联合优化,利用任务之间的互补性提升各自性能,同时增强模型的鲁棒性;充分利用海量无标注音频数据,采用自监督学习技术训练预训练模型,不仅降低了有监督学习阶段对标注数据的依赖,而且增加了有监督学习阶段模型的鲁棒性,因此本发明适用于开发各种低资源语言的在线语音识别系统,仅需少量有标注数据即可快速搭建一套低资源语言的在线语音识别系统。本发明的端到端的在线语音检测与识别方法包括:

步骤a10,基于获取的无标注语音数据,使用wav2vec2.0模型进行自监督训练,获得预训练wav2vec2.0模型;

步骤a20,在所述预训练wav2vec2.0模型顶部增加一层全连接网络,基于获取的带标注语音数据,采用ctc损失进行有监督训练,获得语音识别单任务模型;

步骤a30,将获取的多任务语音数据作为多任务训练数据,通过对所述语音识别单任务模型微调进行语音检测与识别多任务模型的训练,获得训练好的语音检测与识别的多任务模型;

步骤a40,在线实时获取音频数据,根据预先设定的语音检测块尺寸,通过所述训练好的语音检测与识别的多任务模型的语音检测模块实时对音频数据进行语音与非语音的音频分析;

步骤a50,基于音频分析结果进行状态判断,并基于状态判断结果提取有效语音数据,将所述有效语音数据进行边缘拼接后,通过所述训练好的语音检测与识别的多任务模型的语音识别模块进行在线识别与边缘剔除,获得实时的语音识别文本。

在一些优选的实施例中,所述训练好的语音检测与识别的多任务模型,其训练方法为:

步骤b10,对于所述多任务训练数据中的各组数据,分别通过所述语音检测与识别的多任务模型获取各组数据对应任务的预测输出;所述多任务训练数据包括分别获取的语音检测和语音识别的训练数据;

步骤b20,分别计算所述各组数据对应任务的预测输出与真值之间的损失值,并通过模型自学习获取各任务对应的损失值权重;

步骤b30,以所述各任务对应的损失值权重进行各损失值的加权,获得所述语音检测与识别的多任务模型的多任务损失值;

步骤b40,以所述多任务损失值梯度下降方向进行所述语音检测与识别模型的参数更新,并跳转步骤b10进行模型迭代训练,直至达到设定训练结束条件,获得语音检测与识别多任务模型。

在一些优选的实施例中,所述语音检测与识别的多任务模型,其训练中的多任务训练数据和在线应用中的音频数据,均采用边缘拼接进行预处理,其方法为:

将所述训练的多任务训练数据中每一段数据按照随机尺寸进行分块和/或将所述在线应用的音频数据中每一段数据按照预先设定的固定尺寸进行分块,在分块后的音频块边缘拼接设定长度的设定音频,获得预处理多任务训练数据和/或预处理在线应用音频数据。

在一些优选的实施例中,所述预处理多任务训练数据和/或预处理在线应用音频数据,在通过所述语音检测与识别的多任务模型后,均采用拼接结果剔除进行后处理,其方法为:

将所述预处理多任务训练数据和/或预处理在线应用音频数据输入所述语音检测与识别的多任务模型,将模型输出结果中拼接音频的logits输出剔除,获得多任务训练数据和/或在线应用音频数据的logits输出。

在一些优选的实施例中,步骤a30与步骤a40之间还设置有模型蒸馏步骤,其方法为:

步骤a40a,将所述语音检测与识别的多任务模型作为teacher网络,并构建参数与网络层数少于所述teacher网络的语音检测与识别的多任务模型作为student网络;其中,teacher网络的网络层数为m,student网络的网络层数为n,m>n;

步骤a40b,通过student网络的第m层学习teacher网络的第n层输出分布,获得蒸馏后的student语音检测与识别的多任务模型;其中,1≤m≤m,1≤n≤n,m=n/k,k为表示teacher网络与student网络之间网络层数关系的正整数。

在一些优选的实施例中,步骤a40b中通过student网络的第m层学习teacher网络的第n层输出分布,其学习过程的损失包括注意力矩阵损失、隐层输出损失和最终输出层损失;

所述注意力矩阵损失,是student网络的每一个注意力头学习teacher网络对应注意力头的注意力得分矩阵的mse损失;

所述隐层输出损失,是student网络的每一层transformer隐层输出学习teacher网络对应隐层输出的mse损失;

所述最终输出层损失,是student网络的最终输出学习teacher网络的最终输出的交叉熵损失。

本发明的另一方面,提出了一种端到端的在线语音检测与识别系统,该在线语音检测与识别系统包括:

语音数据获取模块,用于获取用户语音数据流作为待检测与识别的数据并输入;

数据缓存单元,包括语音检测缓存模块和语音识别缓存模块,用于在线进行待检测与识别的数据的缓存;

语音预处理单元,用于将所述语音检测缓存模块中的数据进行语音格式归一化、去噪、去混响的预处理操作;

语音检测与识别单元,包括语音激活检测模块、状态判断模块和语音识别模块;所述语音激活检测模块,用于对获取预处理后的语音检测缓存模块中的每一帧数据计算语音检测分类概率;所述状态判断模块,用于根据所述每一帧的语音检测分类概率,判断每一帧所属状态;若所属语音状态为语音起始端点,则将数据输入语音识别模块,若语音识别块边界状态被激活,则进行语音识别并清空对应的语音识别模块,若所属语音状态为语音结束端点,则清空对应的语音识别模块并输出实时的语音识别文本;

识别结果显示模块,用于显示实时的语音识别文本。

在一些优选的实施例中,所述状态判断模块,其状态判定方法为:

步骤c10,设定语音检测分类概率阈值t,若当前帧的语音检测分类概率大于t,则当前帧为语音,否则为静音;

步骤c20,设定语音激活阈值b及语音结束阈值e,若连续语音帧长度大于b,则状态为语音;若连续静音长度大于e,则状态为非语音;

步骤c30,若状态由非语音转为语音,则状态为语音的帧为语音起始端点;若状态由语音转为非语音,则状态为语音的帧为语音结束端点;语音识别块中数据累计长度达到l,则语音识别块边界状态被激活;其中,l为设定的语音识别边界激活长度。

本发明的第三方面,提出了一种电子设备,包括:

至少一个处理器;以及

与至少一个所述处理器通信连接的存储器;其中,

所述存储器存储有可被所述处理器执行的指令,所述指令用于被所述处理器执行以实现上述的端到端的在线语音检测与识别方法。

本发明的第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于被所述计算机执行以实现上述的端到端的在线语音检测与识别方法。

本发明的有益效果:

(1)本发明端到端的在线语音检测与识别方法,将语音检测与语音识别任务融合,无需额外的语音检测模型,充分利用两个任务的互补性,通过统一建模提升各自任务的性能与鲁棒性,简化了系统部署流程。

(2)本发明端到端的在线语音检测与识别方法,将预训练wav2vec2.0模型用于到语音检测任务,达到了较好的检测效果,提升了语音检测的性能。

(3)本发明端到端的在线语音检测与识别方法,采用缓存块的形式在检测与识别前进行数据缓存,能够灵活调整缓存块的大小,达到稳定高性能的识别效果。

(4)本发明端到端的在线语音检测与识别方法,将预训练wav2vec模型用于到语音识别任务,大幅减小对训练数据量的依赖,可快速应用到低资源语音识别任务上。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本发明端到端的在线语音检测与识别方法的流程示意图;

图2是本发明端到端的在线语音检测与识别方法的语音检测与识别多任务联合建模示意图;

图3是本发明端到端的在线语音检测与识别方法一种实施例的数据分块拼接示意图;

图4是本发明端到端的在线语音检测与识别方法一种实施例的模型蒸馏示意图;

图5是本发明端到端的在线语音检测与识别方法一种实施例的系统框架示意图;

图6是本发明端到端的在线语音检测与识别方法一种实施例的在线语音检测与解码示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

本发明提供一种端到端的在线语音检测与识别方法,本方法基于预训练模型的端到端的语音检测与识别联合建模,能够将语音识别和语音检测统一在一个模型中,将连续的语音输入转化为文字输出,简化了在线语音识别的部署流程。此外,模型训练中使用大量无标注数据进行预训练,能够减少对标注样本数量的依赖,同时增强模型的鲁棒性,大幅降低语音检测任务对模型结构和模型参数的依赖,提升计算效率。建模中使用分块 边缘拼接的方法进行语音识别任务的训练和预测,能够在使用时支持不同的延迟需求,同时提升低延迟识别的性能表现。

本发明的模型基于预训练模型进行两阶段的微调,其中预训练模型的模型结构为wav2vec2.0结构,第一阶段的微调用于训练语音识别单任务模型,第二阶段的微调用于训练语音检测与识别多任务模型。

本发明的一种端到端的在线语音检测与识别方法,该在线语音检测与识别方法包括:

步骤a10,基于获取的无标注语音数据,使用wav2vec2.0模型进行自监督训练,获得预训练wav2vec2.0模型;

步骤a20,在所述预训练wav2vec2.0模型顶部增加一层全连接网络,基于获取的带标注语音数据,采用ctc损失进行有监督训练,获得语音识别单任务模型;

步骤a30,将获取的多任务语音数据作为多任务训练数据,通过对所述语音识别单任务模型微调进行语音检测与识别多任务模型的训练,获得训练好的语音检测与识别的多任务模型;

步骤a40,在线实时获取音频数据,根据预先设定的语音检测块尺寸,通过所述训练好的语音检测与识别的多任务模型的语音检测模块实时对音频数据进行语音与非语音的音频分析;

步骤a50,基于音频分析结果进行状态判断,并基于状态判断结果提取有效语音数据,将所述有效语音数据进行边缘拼接后,通过所述训练好的语音检测与识别的多任务模型的语音识别模块进行在线识别与边缘剔除,获得实时的语音识别文本。

为了更清晰地对本发明端到端的在线语音检测与识别方法进行说明,下面结合图1和图2对本发明实施例中各步骤展开详述。

本发明第一实施例的端到端的在线语音检测与识别方法,包括步骤a10-步骤a50,各步骤详细描述如下:

步骤a10,基于获取的无标注语音数据,使用wav2vec2.0模型进行自监督训练,获得预训练wav2vec2.0模型。

wav2vec2.0模型进行自监督预训练选用的数据为海量的无标注语音数据,wav2vec模型在大规模的无标注数据上通过对比损失进行训练,最终得到的特征表示可以代替传统的声学特征,模型对标注样本数据依赖性低,计算效率高、实时性高。

步骤a20,在所述预训练wav2vec2.0模型顶部增加一层全连接网络,基于获取的带标注语音数据,采用ctc损失进行有监督训练,获得语音识别单任务模型。

基于预训练模型进行模型微调,可以节省大量计算资源和计算时间,提高了计算效率,甚至提高准确率。

步骤a30,将获取的多任务语音数据作为多任务训练数据,通过对所述语音识别单任务模型微调进行语音检测与识别多任务模型的训练,获得训练好的语音检测与识别的多任务模型。

训练好的语音检测与识别的多任务模型,其训练方法为:

步骤b10,对于所述多任务训练数据中的各组数据,分别通过所述语音检测与识别的多任务模型获取各组数据对应任务的预测输出;所述多任务训练数据包括分别获取的语音检测和语音识别的训练数据;

步骤b20,分别计算所述各组数据对应任务的预测输出与真值之间的损失值,并通过模型自学习获取各任务对应的损失值权重;

模型自学习获取各任务对应的损失值权重的过程具体可参考kendall,alex等人提出的任务不确定性损失学习技术,本发明在此不一一详述。

步骤b30,以所述各任务对应的损失值权重进行各损失值的加权,获得所述语音检测与识别的多任务模型的多任务损失值;

步骤b40,以所述多任务损失值梯度下降方向进行所述语音检测与识别模型的参数更新,并跳转步骤b10进行模型迭代训练,直至达到设定训练结束条件,获得语音检测与识别多任务模型。

为支持更好的流式语音检测与识别效果,在训练与预测过程中使用滑块边缘拼接的方法进行模型训练用的多任务语音数据的处理,如图3所示,为本发明端到端的在线语音检测与识别方法一种实施例的数据分块拼接示意图,将获取的多任务语音数据中每一段音频数据分别按照随机尺寸进行音频分块,并在分块后的音频块的分块边缘拼接设定长度的设定音频,获得语音检测与识别多任务模型的训练数据。

语音检测与识别的多任务模型,其训练中的多任务训练数据和在线应用中的音频数据,均采用边缘拼接进行预处理,其方法为:

将所述训练的多任务训练数据中每一段数据按照随机尺寸进行分块和/或将所述在线应用的音频数据中每一段数据按照预先设定的固定尺寸进行分块,在分块后的音频块边缘拼接设定长度的设定音频,获得预处理多任务训练数据和/或预处理在线应用音频数据。

预处理多任务训练数据和/或预处理在线应用音频数据,在通过所述语音检测与识别的多任务模型后,均采用拼接结果剔除进行后处理,其方法为:

将所述预处理多任务训练数据和/或预处理在线应用音频数据输入所述语音检测与识别的多任务模型,将模型输出结果中拼接音频的logits输出剔除,获得多任务训练数据和/或在线应用音频数据的logits输出

训练阶段随机将音频数据分块,预测阶段自主设定分块尺寸,在数据块的边缘拼接一定长度的设定音频,样本开头数据块仅在右边缘拼接,样本末尾数据库仅在左边缘拼接;

将边缘拼接的数据块输入模型,边缘部分对应的输出仅用于提供额外信息,不参与预测;

将数据块预测结果剔除边缘部分后进行合并。

如图4所示,为本发明端到端的在线语音检测与识别方法一种实施例的模型蒸馏示意图,在步骤a30与步骤a40之间还设置有模型蒸馏步骤,包括对wav2vec2.0结构的transformer网络层蒸馏,使student网络结构分别去学习teacher网络结构的自注意力矩阵与隐层输出;预测层蒸馏,使student网络学习teacher网络的预测层输出概率分布,具体包括:

步骤a40a,将所述语音检测与识别的多任务模型作为teacher网络,并构建参数与网络层数少于所述teacher网络的语音检测与识别的多任务模型作为student网络;其中,teacher网络的网络层数为m,student网络的网络层数为n,m>n;

步骤a40b,通过student网络的第m层学习teacher网络的第n层输出分布,获得蒸馏后的student语音检测与识别的多任务模型;其中,1≤m≤m,1≤n≤n,m=n/k,k为表示teacher网络与student网络之间网络层数关系的正整数。本发明一个实施例中,k=4。此处,蒸馏学习中teacher网络与student网络之间网络层数关系选用倍数映射关系,在其他应用场景中,也可以选择其他映射关系,例如指数映射关系或其他预先指定的映射关系等,本发明在此不一一详述。

隔k层蒸馏:通过student网络的第m层学习teacher网络的第m*k层,其学习过程的损失包括注意力矩阵损失和隐层输出损失:

注意力矩阵损失,为student网络的每一个注意力头学习teacher网络对应注意力头的注意力得分矩阵的mse损失;

隐层输出损失,为student网络的每一层transformer隐层输出学习teacher网络对应的隐层输出的mse损失;

预测层蒸馏:通过student网络的最后一层预测层学习teacher网络预测层输出概率分布,其学习过程的损失为交叉熵损失。

步骤a40,在线实时获取音频数据,根据预先设定的语音检测块尺寸,通过所述训练好的语音检测与识别的多任务模型的语音检测模块实时对音频数据进行语音与非语音的音频分析。

步骤a50,基于音频分析结果进行状态判断,并基于状态判断结果提取有效语音数据,将所述有效语音数据进行边缘拼接后,通过所述训练好的语音检测与识别的多任务模型的语音识别模块进行在线识别与边缘剔除,获得实时的语音识别文本。

上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。

本发明第二实施例的端到端的在线语音检测与识别系统,如图5所示,该在线语音检测与识别系统包括:

语音数据获取模块,用于获取用户语音数据流作为待检测与识别的数据并输入;

数据缓存单元,包括语音检测缓存模块和语音识别缓存模块,用于在线进行待检测与识别的数据的缓存;

语音预处理单元,用于将所述语音检测缓存模块中的数据进行语音格式归一化、去噪、去混响的预处理操作;

语音检测与识别单元,包括语音激活检测模块、状态判断模块和语音识别模块;所述语音激活检测模块,用于对获取预处理后的语音检测缓存模块中的每一帧数据计算语音检测分类概率;所述状态判断模块,用于根据所述每一帧的语音检测分类概率,判断每一帧所属状态;若所属语音状态为语音起始端点,则将数据输入语音识别模块,若语音识别块边界状态被激活,则进行语音识别并清空对应的语音识别模块,若所属语音状态为语音结束端点,则清空对应的语音识别模块并输出实时的语音识别文本;

识别结果显示模块,用于显示实时的语音识别文本。

如图6所示,为本发明端到端的在线语音检测与识别方法一种实施例的在线语音检测与解码示意图:

步骤一,将语音信号数据输入语音检测块,进行语音激活检测,其中网络结构使用的是wav2vec2.0中的底层cnn网络结构;

步骤二,将语音检测块中的检测结果输入状态转移模型,判断每一帧所属状态(语音起始端点/语音识别块边界/语音结束端点);其中检测结果为每一帧的语音检测分类概率;

根据步骤二得到的状态进行操作。若状态为语音起始端点,开始将数据放入语音识别块;若状态为语音识别边界,将语音识别块中的语音进行识别,并清空语音识别块,随后继续向语音识别块存入数据;若状态为语音结束端点,识别并清空当前语音识别块中的数据,记录完整语音的识别结果;其中语音识别的建模单元为汉字/字母,解码方法为beamsearch方法。外部语言模型可使用n元统计语言模型或者基于神经网络语言模型。

状态判断模块,其状态判定方法为:

步骤c10,设定语音检测分类概率阈值t,若当前帧的语音检测分类概率大于t,则当前帧为语音,否则为静音;

步骤c20,设定语音激活阈值b及语音结束阈值e,若连续语音帧长度大于b,则状态为语音;若连续静音长度大于e,则状态为非语音;

步骤c30,若状态由非语音转为语音,则状态为语音的帧为语音起始端点;若状态由语音转为非语音,则状态为语音的帧为语音结束端点;语音识别块中数据累计长度达到l,则语音识别块边界状态被激活;其中,l为设定的语音识别边界激活长度。

所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。

需要说明的是,上述实施例提供的端到端的在线语音检测与识别系统,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块或者步骤再分解或者组合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本发明的不当限定。

本发明第三实施例的一种电子设备,包括:

至少一个处理器;以及

与至少一个所述处理器通信连接的存储器;其中,

所述存储器存储有可被所述处理器执行的指令,所述指令用于被所述处理器执行以实现上述的端到端的在线语音检测与识别方法。

本发明第四实施例的一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于被所述计算机执行以实现上述的端到端的在线语音检测与识别方法。

所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的模块、方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,软件模块、方法步骤对应的程序可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。

术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。

至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文章

  • 日榜
  • 周榜
  • 月榜