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

语音识别系统中的算法参数更新方法、装置、终端及介质与流程

2021-08-10 16:37:00 来源:中国专利 TAG:终端 人工智能 介质 算法 识别系统
语音识别系统中的算法参数更新方法、装置、终端及介质与流程

本发明涉及人工智能技术领域,具体涉及一种语音识别系统中的算法参数更新方法、装置、终端及介质。



背景技术:

目前asr语音识别系统,存在断句不准确问题,无法满足所有场景,特别是在长时间静音或者没有语音输入的场景下,现有技术缺少对语音识别系统整体流程的实时监控和实时反馈,无法及时更新语音识别系统中的算法参数,导致语音识别结果的准确率低。



技术实现要素:

鉴于以上内容,有必要提出一种语音识别系统中的算法参数更新方法、装置、终端及介质,基于异常结果实时更新算法策略中的算法参数,使得后面说的每一句话识别的结果越来越准确,提高了语音识别的准确率。

本发明的第一方面提供一种语音识别系统中的算法参数更新方法,所述方法包括:

解析预设周期获取的原始音频,获取目标音频;

根据预设的语音识别流程对所述目标音频进行语音识别,得到目标识别结果,其中,所述预设的语音识别流程包含多个识别节点,每个识别节点包含有预设的算法策略;

接收识别过程日志,采用流式计算框架对所述目标识别结果和识别过程日志进行流式计算,得到计算结果,其中,所述过程日志中包含有一个或者多个子日志,所述计算结果中包含有每个子日志的指标参数值;

将每个子日志的指标参数值与对应预设的指标参数阈值进行比对,根据对比结果判断所述计算结果中是否存在异常结果,其中,所述异常结果对应的识别节点中包含有预设的目标算法策略;

若存在所述异常结果,根据所述异常结果更新所述预设的目标算法策略中的算法参数。

可选地,所述接收识别过程日志,采用流式计算框架对所述目标识别结果和识别过程日志进行流式计算,得到计算结果包括:

获取所述预设的语音识别流程的每个识别节点的识别码;

根据所述每个识别节点的识别码将所述识别过程日志划分为多个子日志;

按照所述预设的语音识别流程的顺序将每个子日志依次发送至消息队列kafka中;

通过所述流式计算框架从所述消息队列的队头依次对每个子日志进行流式计算,得到每个子日志的指标参数值;

将每个子日志的指标参数值与对应的识别码进行关联,并将关联后的多个子日志的指标参数值和目标识别结果作为计算结果。

可选地,所述解析预设周期获取的原始音频,获取目标音频包括:

每隔预设周期获取原始音频,从所述原始音频中提取音频码流;

采用预设的类库对所述音频码流进行解码获取目标音频。

可选地,所述根据预设的语音识别流程对所述目标音频进行语音识别,得到目标识别结果包括:

将所述目标音频输入至所述预设的语音识别流程的第一个识别节点对应的预设的第一算法策略中进行语音活性检测,得到第一结果;

将所述第一结果输入至所述预设的语音识别流程的第二个识别节点对应的预设的第二算法策略中进行预处理,得到第二结果;

将所述第二结果输入至所述预设的流程的第三个识别节点对应的预设的第三算法策略中进行语音识别,得到目标识别结果。

可选地,所述将所述目标音频输入至所述预设的语音识别流程的第一个识别节点对应的预设的第一算法策略中进行语音活性检测,得到第一结果包括:

检测所述目标音频中的静音片段;

根据所述静音片段对所述目标音频进行切割,得到多个子音频,并将所述的多个子音频作为第一结果。

可选地,所述将所述第一结果输入至所述预设的语音识别流程的第二个识别节点对应的预设的第二算法策略中进行预处理,得到第二结果包括:

当第二个识别节点对应的预设的第二算法策略接收到第一结果时,提取所述第一结果中的多个子音频的第一语音信号,并将所述第一语音信号输入至预设的高通滤波器中进行处理得到第二语音信号;

将所述第二语音信号分成多个短时帧信号,并对每个所述短时帧信号乘以一个预设的窗函数,得到一个目标短时帧信号;

对每个目标短时帧信号进行快速傅里叶变换得到每个目标短时帧信号的频谱,并对多个目标短时帧信号的频谱采用预设的滤波器进行滤波处理,得到滤波后的多个目标短时帧信号;

提取所述多个目标短时帧信号中的多个音频特征,根据所述多个音频特征生成频谱图,并将所述频谱图作为第二结果。

可选地,所述根据所述异常结果更新所述预设的目标算法策略中的算法参数包括:

提取所述异常结果中的异常指标参数值;

从更新规则库中确定出与所述异常指标参数值对应的更新规则;

根据所述更新规则更新所述预设的目标算法策略中的算法参数。

本发明的第二方面提供一种语音识别系统中的算法参数更新装置,所述装置包括:

解析模块,用于解析预设周期获取的原始音频,获取目标音频;

语音识别模块,用于根据预设的语音识别流程对所述目标音频进行语音识别,得到目标识别结果,其中,所述预设的语音识别流程包含多个识别节点,每个识别节点包含有预设的算法策略;

分析模块,用于接收识别过程日志,采用流式计算框架对所述目标识别结果和识别过程日志进行流式计算,得到计算结果,其中,所述过程日志中包含有一个或者多个子日志,所述计算结果中包含有每个子日志的指标参数值;

判断模块,用于将每个子日志的指标参数值与对应预设的指标参数阈值进行比对,根据对比结果判断所述计算结果中是否存在异常结果;

更新模块,用于若存在所述异常结果,根据所述异常结果更新所述预设的目标算法策略中的算法参数。

本发明的第三方面提供一种终端,所述终端包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的语音识别系统中的算法参数更新方法。

本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的语音识别系统中的算法参数更新方法。

综上所述,本发明所述的语音识别系统中的算法参数更新方法、装置、终端及介质,一方面,接收识别过程日志,采用流式计算框架对所述目标识别结果和识别过程日志进行流式计算,得到计算结果,通过实时对识别过程日志进行流式计算,得到每个子日志的指标参数值,避免所有的识别过程日志同时计算导致的计算结果不准确的现象,提高了识别过程日志分析的准确性;另一方面,若存在所述异常结果,根据所述异常结果更新所述预设的目标算法策略中的算法参数,通过实时更新预设的算法策略中的算法参数,使得后面说的每一句话识别的结果越来越准确,避免了语音识别的预设的算法策略中的算法参数一成不变导致的识别结果不准确的现象,提高了语音识别的准确率;最后,解析每隔预设周期获取的原始音频,获取目标音频,通过每隔预设周期获取原始音频,可以避免所有的用户都采用同样为预设周期获取周期时长一致的原始音频引起的语音识别结果不准确的现象,提高语音识别准确率。

附图说明

图1是本发明实施例一提供的语音识别系统中的算法参数更新方法的流程图。

图2是本发明实施例二提供的语音识别系统中的算法参数更新装置的结构图。

图3是本发明实施例三提供的终端的结构示意图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

实施例一

图1是本发明实施例一提供的语音识别系统中的算法参数更新方法的流程图。

在本实施例中,所述语音识别系统中的算法参数更新方法可以应用于终端中,对于需要进行语音识别系统中的算法参数更新的终端,可以直接在终端上集成本发明的方法所提供的语音识别系统中的算法参数更新的功能,或者以软件开发工具包(softwaredevelopmentkit,sdk)的形式运行在终端中。

如图1所示,所述语音识别系统中的算法参数更新方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。

s11,解析预设周期获取的原始音频,获取目标音频。

本实施例中,可以预先设置获取周期,所述预设周期可以设置为1分钟或者2分钟,在其他一些实施例中,所述预设周期可以根据用户的语音识别结果进行调整。在确定预设周期后,每隔预设周期获取原始音频,具体地,所述原始音频一般为“.aac”或者“.mp3”格式的压缩文件。

在一个可选的实施例中,所述解析预设周期获取的原始音频,获取目标音频包括:

每隔预设周期获取原始音频,从所述原始音频中提取音频码流;

采用预设的类库对所述音频码流进行解码获取目标音频。

本实施例中,当服务器接收到原始音频时,将这种压缩的音频做解码操作,转换为“.pcm”格式的音频文件,使用的预设的类库来处理,本实施例预设的类库可以为ffmpeg类库,采用所述ffmpeg类库对所述原始音频进行解码。

本实施例中,由于不同的用户说话停顿时长、或者说话时长不同,可以预先设置获取周期,其中,所述预设周期可以是固定的,也可以根据上一次的语音识别结果确定的下一个获取周期的时长,本实施例通过每隔预设周期获取原始音频,可以避免所有的用户都采用同样为预设周期获取周期时长一致的原始音频引起的语音识别结果不准确的现象,提高语音识别准确率。

s12,根据预设的语音识别流程对所述目标音频进行语音识别,得到目标识别结果,其中,所述预设的语音识别流程包含多个识别节点,每个识别节点包含有预设的算法策略。

本实施例中,可以预先设置语音识别流程,根据所述预设的语音识别流程对所述目标音频解析语音识别,本实施例所述预设的语音识别流程可以包括三个识别节点,每个识别节点中包含由预设的算法策略。所述目标识别结果是指整个预设的语音识别流程的最后一个识别节点输出的识别结果,在一个较佳的实施例中,也可以包括所有识别节点的识别结果。

本实施例中,所述识别过程日志是指每个预设的算法策略上报的过程日志,具体地,所述预设的语音识别过程中的每个识别节点设置由埋点,获取每个识别节点的埋点采集的识别过程日志。本实施例通过设置埋点采集预设的语音识别流程中的每个识别节点的识别过程日志,确保识别过程日志的完整性。

在一个较佳的实施例中,在对每个识别节点设置埋点的过程中,分析每个识别节点中预设的算法策略中的关键节点,对关键节点设置埋点,获取每个关键节点的埋点对应的识别过程日志,确保识别过程日志的有效性,提高语音识别的效率。

在一个可选的实施例中,所述根据预设的语音识别流程对所述目标音频进行语音识别,得到目标识别结果包括:

将所述目标音频输入至所述预设的语音识别流程的第一个识别节点对应的预设的第一算法策略中进行语音活性检测,得到第一结果;

将所述第一结果输入至所述预设的语音识别流程的第二个识别节点对应的预设的第二算法策略中进行预处理,得到第二结果;

将所述第二结果输入至所述预设的流程的第三个识别节点对应的预设的第三算法策略中进行语音识别,得到目标识别结果。

本实施例中,预设的第一算法策略可以为vad算法,在第一个识别节点,通过vad算法对所述目标音频进行语音活性检测,得到第一结果;预设的第二算法策略可以为信号处理和特征提取模型,通过特征提取模型对所述第一结果进行信号处理和特征提取;预设的第三算法策略可以为声学模型和语言模型,通过声学模型和语言模型对所述第二结果进行语音识别得到目标识别结果。

具体地,所述将所述目标音频输入至所述预设的语音识别流程的第一个识别节点对应的预设的第一算法策略中进行语音活性检测,得到第一结果包括:

检测所述目标音频中的静音片段;

根据所述静音片段对所述目标音频进行切割,得到多个子音频,并将所述的多个子音频作为第一结果。

本实施例中,使用vad的检测算法对所述目标音频进行语音活性检测,检测所述目标音频的静音片段,并对静音片段进行切割得到多个子音频,切割出一段完整的句子,本实施例可以使用librosa音频处理库实现语音切割。

具体地,所述将所述第一结果输入至所述预设的语音识别流程的第二个识别节点对应的预设的第二算法策略中进行预处理,得到第二结果包括:

当第二个识别节点对应的预设的第二算法策略接收到第一结果时,提取所述第一结果中的多个子音频的第一语音信号,并将所述第一语音信号输入至预设的高通滤波器中进行处理得到第二语音信号;

将所述第二语音信号分成多个短时帧信号,并对每个所述短时帧信号乘以一个预设的窗函数,得到一个目标短时帧信号;

对每个目标短时帧信号进行快速傅里叶变换得到每个目标短时帧信号的频谱,并对多个目标短时帧信号的频谱采用预设的滤波器进行滤波处理,得到滤波后的多个目标短时帧信号;

提取所述多个目标短时帧信号中的多个音频特征,根据所述多个音频特征生成频谱图,并将所述频谱图作为第二结果。

本实施例中,在提取出多个子音频之后,对所述多个子音频进行信号处理和语音特征提取之后,生成所述目标音频对应的频谱图。

具体地,所述将所述第二结果输入至所述预设的流程的第三个识别节点对应的预设的第三算法策略中进行语音识别,得到目标识别结果包括:

当第三个识别节点对应的预设的第三算法策略接收到第二结果时,从所述第二结果的频谱图中提取声学特征,并对所述声学特征进行向量化,得到声学特征向量;

将所述声学特征向量输入至预先训练好的声学模型中进行语音识别,得到声学分值和目标语音信息;

调用预先训练好的语言模型对所述目标语音信息进行纠错处理,得到语言分值;

将所述声学分值和语言分值作为目标识别结果。

本实施例中,在得到目标音频对应的频谱图之后,将所述频谱图输入至声学模型中进行语音识别,同时调用语言模型进行解码搜索,即进行纠错处理,并接收所述声学模型和所述语言模型输出的声学分值和语言分值,具体地,本实施例可以经过语音识别声学模型dnn全连接的神经网络,将dnn的输出作为语音识别声学模型隐马尔可夫模型的输入,具体地,所述隐马尔可夫模型可以处理两类序列数据,一类可观测到的观测序列,一类不能观测到的隐藏状态序列,例如,当表达一句话时,发出的一连串的声音,即为观测序列,实际表达一段话就是隐藏状态序列,最终的声学模型输出的从上述一连串的声音中判断出最可能表达的目标语音信息。

本实施例中,由于在声学模型中输出的目标语音信息可能时不完整或者的不通畅的句子,通过调用预先训练好的语言模型进行纠错处理,得到语言分值。本实施例的预先训练好的语言模型可以为rnn算法模型。

s13,接收识别过程日志,采用流式计算框架对所述目标识别结果和识别过程日志进行流式计算,得到计算结果,其中,所述过程日志中包含有一个或者多个子日志,所述计算结果中包含有每个子日志的指标参数值。

本实施例中,所述流式计算框架用于流式计算识别过程日志中的各个指标参数值。

在一个可选的实施例中,所述接收识别过程日志,采用流式计算框架对所述目标识别结果和识别过程日志进行流式计算,得到计算结果包括:

获取所述预设的语音识别流程的每个识别节点的识别码;

根据所述每个识别节点的识别码将所述识别过程日志划分为多个子日志;

按照所述预设的语音识别流程的顺序将每个子日志依次发送至消息队列kafka中;

通过所述流式计算框架从所述消息队列的队头依次对每个子日志进行流式计算,得到每个子日志的指标参数值;

将每个子日志的指标参数值与对应的识别码进行关联,并将关联后的多个子日志的指标参数值和目标识别结果作为计算结果。

本实施例中,由于在预设的语音识别过程中,无法监测各个流程的运行环节,故对语音识别流程的每个识别节点进行埋点,实时将每个识别节点的识别过程日志上报至消息队列kafka中,具体地,所述kafka是一种分布式的消息系统,在流式计算中,所述kafka用来缓存数据,通过大数据的流式计算框架sparkstreaming,分析kafka队列中的每个子日志,并将每个子日志定义为一个事件,将不同的事件进行分支聚合等操作,实时统计出各个事件的指标参数值,并将指标参数值和目标识别结果作为计算结果,提高了每个识别节点的指标参数值的准确性。

本实施例中,接收识别过程日志,采用流式计算框架对所述目标识别结果和识别过程日志进行流式计算,得到计算结果,通过实时对识别过程日志进行流式计算,得到每个子日志的指标参数值,避免所有的识别过程日志同时计算导致的计算结果不准确的现象,提高了识别过程日志分析的准确性。

s14,将每个子日志的指标参数值与对应预设的指标参数阈值进行比对,根据对比结果判断所述计算结果中是否存在异常结果。

本实施例中,所述异常结果是指计算结果中的指标参数值与对应指标的预设的指标参数阈值差异较大,超出了正常语音的范围。

在一个可选的实施例中,所述将每个子日志的指标参数值与对应预设的指标参数阈值进行比对,根据对比结果判断所述计算结果中是否存在异常结果包括:

获取每个子日志的识别码对应的预设的指标参数阈值;

当任意一个子日志中的任意一个指标参数值大于对应子日志的指标参数阈值时,比对结果存在偏差,确定所述计算结果中存在异常结果;或者

当所述多个子日志的所有指标参数值小于或者等于对应子日志的指标参数阈值时,比对结果不存在偏差,确定所述计算结果中不存在异常结果。

s15,若存在所述异常结果,根据所述异常结果更新所述预设的目标算法策略中的算法参数。

本实施例中,由于每个流程节点中包含有一个预设的算法策略,在出现异常结果时,可以根据异常结果中的识别码确定出对应的预设的目标算法策略,并进行算法参数更新。

在一个可选的实施例中,所述根据所述异常结果更新所述预设的目标算法策略中的算法参数包括:

提取所述异常结果中的异常指标参数值;

从更新规则库中确定出与所述异常指标参数值对应的更新规则;

根据所述更新规则更新所述预设的目标算法策略中的算法参数。

本实施例中,可以预先设置更新规则,所述更新规则可以根据不同的指标参数范围进行设置,不同的指标参数对应不同的更新规则。

本实施例中,由于每个预设的算法策略中预先配置有算法参数,当出现异常结果时,从异常结果中获取异常指标参数值,确定更新规则对所述预设的目标算法策略中的算法参数进行更新,例如:当异常指标参数值为用户的声音比较小时,根据声音指标参数值确定的更新规则为增加能量参数值;当异常指标参数值为用户停顿比较多时,根据用户停顿指标参数值确定更新规则调整vad静音时长;当异常指标参数值为声学模型的声学分值较低时,根据声学分值确定更新规则为调整预设的窗函数中的滑动窗口的大小、快速傅立叶变换中的参数,进而改变频谱图的能量分布,例如,当同一个用户的第一句话识别结果的准确率低时,通过本实施例实时更新预设的算法策略中的算法参数,使得后面说的每一句话识别的结果越来越准确,避免了语音识别的预设的算法策略中的算法参数一成不变导致的识别结果不准确的现象,提高了语音识别的准确率。

进一步地,所述方法还包括:

按照预设的发送方式将所述异常结果发送至运营人员,其中,所述异常结果中包含有异常识别节点的识别码和异常指标参数值。

本实施例中,可以预先设置发送方式,具体地,预设的发送方式可以为通过短信、邮件、电话等其他发送方式,当出现异常结果时,实时将异常结果按照预设的发送方式发送至运营人员进行处理,提高了维护效率。

进一步地,所述方法还包括:

将所述预设的语音识别流程对应的预设的目标算法策略更新为更新后的预设的目标算法策略,得到更新后的预设的语音识别流程;

当获取下一个周期的原始音频时,采用更新后的预设的语音识别流程所述下一个周期的原始音频进行语音识别。

本实施例中,通过根据上一个周期的识别结果调整预设的语音识别流程中的预设的算法策略中的算法参数,对下一个周期的原始音频进行语音识别,提高了下一个周期的语音识别结果的准确率。

s16,当所述计算结果中不存在异常结果时,将所述计算结果写入预设的开源数据库中。

本实施例中,所述预设的开源数据库可以为hbase开源数据库,通过所述hbase开源数据库存储将所述计算结果进行列存储,辅助运营人员快速的定位出异常结果的位置。

综上所述,本实施例所述的语音识别系统中的算法参数更新方法,一方面,接收识别过程日志,采用流式计算框架对所述目标识别结果和识别过程日志进行流式计算,得到计算结果,通过实时对识别过程日志进行流式计算,得到每个子日志的指标参数值,避免所有的识别过程日志同时计算导致的计算结果不准确的现象,提高了识别过程日志分析的准确性;另一方面,当所述计算结果中存在异常结果时,识别所述异常结果对应的识别节点中的预设的目标算法策略,并基于所述异常结果更新所述预设的目标算法策略中的算法参数,通过实时更新预设的算法策略中的算法参数,使得后面说的每一句话识别的结果越来越准确,避免了语音识别的预设的算法策略中的算法参数一成不变导致的识别结果不准确的现象,提高了语音识别的准确率;最后,解析每隔预设周期获取的原始音频,获取目标音频,通过每隔预设周期获取原始音频,可以避免所有的用户都采用同样为预设周期获取周期时长一致的原始音频引起的语音识别结果不准确的现象,提高语音识别准确率。

实施例二

图2是本发明实施例二提供的语音识别系统中的算法参数更新装置的结构图。

在一些实施例中,所述语音识别系统中的算法参数更新装置20可以包括多个由程序代码段所组成的功能模块。所述语音识别系统中的算法参数更新装置20中的各个程序段的程序代码可以存储于终端的存储器中,并由所述至少一个处理器所执行,以执行(详见图1描述)语音识别系统中的算法参数更新的功能。

本实施例中,所述语音识别系统中的算法参数更新装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:解析模块201、语音识别模块202、分析模块203、判断模块204、更新模块205、发送模块206及写入模块207。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。

解析模块201,用于解析预设周期获取的原始音频,获取目标音频。

本实施例中,可以预先设置获取周期,所述预设周期可以设置为1分钟或者2分钟,在其他一些实施例中,所述预设周期可以根据用户的语音识别结果进行调整。在确定预设周期后,每隔预设周期获取原始音频,具体地,所述原始音频一般为“.aac”或者“.mp3”格式的压缩文件。

在一个可选的实施例中,所述解析模块201解析预设周期获取的原始音频,获取目标音频包括:

每隔预设周期获取原始音频,从所述原始音频中提取音频码流;

采用预设的类库对所述音频码流进行解码获取目标音频。

本实施例中,当服务器接收到原始音频时,将这种压缩的音频做解码操作,转换为“.pcm”格式的音频文件,使用的预设的类库来处理,本实施例预设的类库可以为ffmpeg类库,采用所述ffmpeg类库对所述原始音频进行解码。

本实施例中,由于不同的用户说话停顿时长、或者说话时长不同,可以预先设置获取周期,其中,所述预设周期可以是固定的,也可以根据上一次的语音识别结果确定的下一个获取周期的时长,本实施例通过每隔预设周期获取原始音频,可以避免所有的用户都采用同样为预设周期获取周期时长一致的原始音频引起的语音识别结果不准确的现象,提高语音识别准确率。

语音识别模块202,用于根据预设的语音识别流程对所述目标音频进行语音识别,得到目标识别结果,其中,所述预设的语音识别流程包含多个识别节点,每个识别节点包含有预设的算法策略。

本实施例中,可以预先设置语音识别流程,根据所述预设的语音识别流程对所述目标音频解析语音识别,本实施例所述预设的语音识别流程可以包括三个识别节点,每个识别节点中包含由预设的算法策略。所述目标识别结果是指整个预设的语音识别流程的最后一个识别节点输出的识别结果,在一个较佳的实施例中,也可以包括所有识别节点的识别结果。

本实施例中,所述识别过程日志是指每个预设的算法策略上报的过程日志,具体地,所述预设的语音识别过程中的每个识别节点设置由埋点,获取每个识别节点的埋点采集的识别过程日志。本实施例通过设置埋点采集预设的语音识别流程中的每个识别节点的识别过程日志,确保识别过程日志的完整性。

在一个较佳的实施例中,在对每个识别节点设置埋点的过程中,分析每个识别节点中预设的算法策略中的关键节点,对关键节点设置埋点,获取每个关键节点的埋点对应的识别过程日志,确保识别过程日志的有效性,提高语音识别的效率。

在一个可选的实施例中,所述语音识别模块202根据预设的语音识别流程对所述目标音频进行语音识别,得到目标识别结果包括:

将所述目标音频输入至所述预设的语音识别流程的第一个识别节点对应的预设的第一算法策略中进行语音活性检测,得到第一结果;

将所述第一结果输入至所述预设的语音识别流程的第二个识别节点对应的预设的第二算法策略中进行预处理,得到第二结果;

将所述第二结果输入至所述预设的流程的第三个识别节点对应的预设的第三算法策略中进行语音识别,得到目标识别结果。

本实施例中,预设的第一算法策略可以为vad算法,在第一个识别节点,通过vad算法对所述目标音频进行语音活性检测,得到第一结果;预设的第二算法策略可以为信号处理和特征提取模型,通过特征提取模型对所述第一结果进行信号处理和特征提取;预设的第三算法策略可以为声学模型和语言模型,通过声学模型和语言模型对所述第二结果进行语音识别得到目标识别结果。

具体地,所述将所述目标音频输入至所述预设的语音识别流程的第一个识别节点对应的预设的第一算法策略中进行语音活性检测,得到第一结果包括:

检测所述目标音频中的静音片段;

根据所述静音片段对所述目标音频进行切割,得到多个子音频,并将所述的多个子音频作为第一结果。

本实施例中,使用vad的检测算法对所述目标音频进行语音活性检测,检测所述目标音频的静音片段,并对静音片段进行切割得到多个子音频,切割出一段完整的句子,本实施例可以使用librosa音频处理库实现语音切割。

具体地,所述将所述第一结果输入至所述预设的语音识别流程的第二个识别节点对应的预设的第二算法策略中进行预处理,得到第二结果包括:

当第二个识别节点对应的预设的第二算法策略接收到第一结果时,提取所述第一结果中的多个子音频的第一语音信号,并将所述第一语音信号输入至预设的高通滤波器中进行处理得到第二语音信号;

将所述第二语音信号分成多个短时帧信号,并对每个所述短时帧信号乘以一个预设的窗函数,得到一个目标短时帧信号;

对每个目标短时帧信号进行快速傅里叶变换得到每个目标短时帧信号的频谱,并对多个目标短时帧信号的频谱采用预设的滤波器进行滤波处理,得到滤波后的多个目标短时帧信号;

提取所述多个目标短时帧信号中的多个音频特征,根据所述多个音频特征生成频谱图,并将所述频谱图作为第二结果。

本实施例中,在提取出多个子音频之后,对所述多个子音频进行信号处理和语音特征提取之后,生成所述目标音频对应的频谱图。

具体地,所述将所述第二结果输入至所述预设的流程的第三个识别节点对应的预设的第三算法策略中进行语音识别,得到目标识别结果包括:

当第三个识别节点对应的预设的第三算法策略接收到第二结果时,从所述第二结果的频谱图中提取声学特征,并对所述声学特征进行向量化,得到声学特征向量;

将所述声学特征向量输入至预先训练好的声学模型中进行语音识别,得到声学分值和目标语音信息;

调用预先训练好的语言模型对所述目标语音信息进行纠错处理,得到语言分值;

将所述声学分值和语言分值作为目标识别结果。

本实施例中,在得到目标音频对应的频谱图之后,将所述频谱图输入至声学模型中进行语音识别,同时调用语言模型进行解码搜索,即进行纠错处理,并接收所述声学模型和所述语言模型输出的声学分值和语言分值,具体地,本实施例可以经过语音识别声学模型dnn全连接的神经网络,将dnn的输出作为语音识别声学模型隐马尔可夫模型的输入,具体地,所述隐马尔可夫模型可以处理两类序列数据,一类可观测到的观测序列,一类不能观测到的隐藏状态序列,例如,当表达一句话时,发出的一连串的声音,即为观测序列,实际表达一段话就是隐藏状态序列,最终的声学模型输出的从上述一连串的声音中判断出最可能表达的目标语音信息。

本实施例中,由于在声学模型中输出的目标语音信息可能时不完整或者的不通畅的句子,通过调用预先训练好的语言模型进行纠错处理,得到语言分值。本实施例的预先训练好的语言模型可以为rnn算法模型。

分析模块203,用于接收识别过程日志,采用流式计算框架对所述目标识别结果和识别过程日志进行流式计算,得到计算结果。

本实施例中,所述流式计算框架用于流式计算识别过程日志中的各个指标参数值。

在一个可选的实施例中,所述分析模块203接收识别过程日志,采用流式计算框架对所述目标识别结果和识别过程日志进行流式计算,得到计算结果包括:

获取所述预设的语音识别流程的每个识别节点的识别码;

根据所述每个识别节点的识别码将所述识别过程日志划分为多个子日志;

按照所述预设的语音识别流程的顺序将每个子日志依次发送至消息队列kafka中;

通过所述流式计算框架从所述消息队列的队头依次对每个子日志进行流式计算,得到每个子日志的指标参数值;

将每个子日志的指标参数值与对应的识别码进行关联,并将关联后的多个子日志的指标参数值和目标识别结果作为计算结果。

本实施例中,由于在预设的语音识别过程中,无法监测各个流程的运行环节,故对语音识别流程的每个识别节点进行埋点,实时将每个识别节点的识别过程日志上报至消息队列kafka中,具体地,所述kafka是一种分布式的消息系统,在流式计算中,所述kafka用来缓存数据,通过大数据的流式计算框架sparkstreaming,分析kafka队列中的每个子日志,并将每个子日志定义为一个事件,将不同的事件进行分支聚合等操作,实时统计出各个事件的指标参数值,并将指标参数值和目标识别结果作为计算结果,提高了每个识别节点的指标参数值的准确性。

本实施例中,接收识别过程日志,采用流式计算框架对所述目标识别结果和识别过程日志进行流式计算,得到计算结果,通过实时对识别过程日志进行流式计算,得到每个子日志的指标参数值,避免所有的识别过程日志同时计算导致的计算结果不准确的现象,提高了识别过程日志分析的准确性。

判断模块204,用于将每个子日志的指标参数值与对应预设的指标参数阈值进行比对,根据对比结果判断所述计算结果中是否存在异常结果,其中,所述异常结果对应的识别节点中包含有预设的目标算法策略。

本实施例中,所述异常结果是指计算结果中的指标参数值与对应指标的预设的指标参数阈值差异较大,超出了正常语音的范围。

在一个可选的实施例中,所述判断模块204将每个子日志的指标参数值与对应预设的指标参数阈值进行比对,根据对比结果判断所述计算结果中是否存在异常结果包括:

获取每个子日志的识别码对应的预设的指标参数阈值;

当任意一个子日志中的任意一个指标参数值大于对应的指标参数阈值时,比对结果存在偏差,确定所述计算结果中存在异常结果;或者

当所述多个子日志的所有指标参数值小于或者等于对应的指标参数阈值时,比对结果不存在偏差,确定所述计算结果中不存在异常结果。

更新模块205,用于若存在所述异常结果,根据所述异常结果更新所述预设的目标算法策略中的算法参数。

本实施例中,由于每个流程节点中包含有一个预设的算法策略,在出现异常结果时,可以根据异常结果中的识别码确定出对应的预设的目标算法策略,并进行算法参数更新。

在一个可选的实施例中,所述更新模块205根据所述异常结果更新所述预设的目标算法策略中的算法参数包括:

提取所述异常结果中的异常指标参数值;

从更新规则库中确定出与所述异常指标参数值对应的更新规则;

根据所述更新规则更新所述预设的目标算法策略中的算法参数。

本实施例中,可以预先设置更新规则,所述更新规则可以根据不同的指标参数范围进行设置,不同的指标参数对应不同的更新规则。

本实施例中,由于每个预设的算法策略中预先配置有算法参数,当出现异常结果时,从异常结果中获取异常指标参数值,确定更新规则对所述预设的目标算法策略中的算法参数进行更新,例如:当异常指标参数值为用户的声音比较小时,根据声音指标参数值确定的更新规则为增加能量参数值;当异常指标参数值为用户停顿比较多时,根据用户停顿指标参数值确定更新规则调整vad静音时长;当异常指标参数值为声学模型的声学分值较低时,根据声学分值确定更新规则为调整预设的窗函数中的滑动窗口的大小、快速傅立叶变换中的参数,进而改变频谱图的能量分布,例如,当同一个用户的第一句话识别结果的准确率低时,通过本实施例实时更新预设的算法策略中的算法参数,使得后面说的每一句话识别的结果越来越准确,避免了语音识别的预设的算法策略中的算法参数一成不变导致的识别结果不准确的现象,提高了语音识别的准确率。

进一步地,发送模块206,用于按照预设的发送方式将所述异常结果发送至运营人员,其中,所述异常结果中包含有异常识别节点的识别码和异常指标参数值。

本实施例中,可以预先设置发送方式,具体地,预设的发送方式可以为通过短信、邮件、电话等其他发送方式,当出现异常结果时,实时将异常结果按照预设的发送方式发送至运营人员进行处理,提高了维护效率。

进一步地,所述更新模块205,还用于将所述预设的语音识别流程对应的预设的目标算法策略更新为更新后的预设的目标算法策略,得到更新后的预设的语音识别流程;当获取下一个周期的原始音频时,采用更新后的预设的语音识别流程所述下一个周期的原始音频进行语音识别。

本实施例中,通过根据上一个周期的识别结果调整预设的语音识别流程中的预设的算法策略中的算法参数,对下一个周期的原始音频进行语音识别,提高了下一个周期的语音识别结果的准确率。

进一步地,写入模块207,用于当所述计算结果中不存在异常结果时,将所述计算结果写入预设的开源数据库中。

本实施例中,所述预设的开源数据库可以为hbase开源数据库,通过所述hbase开源数据库存储将所述计算结果进行列存储,辅助运营人员快速的定位出异常结果的位置。

综上所述,本实施例所述的语音识别系统中的算法参数更新装置,一方面,接收识别过程日志,采用流式计算框架对所述目标识别结果和识别过程日志进行流式计算,得到计算结果,通过实时对识别过程日志进行流式计算,得到每个子日志的指标参数值,避免所有的识别过程日志同时计算导致的计算结果不准确的现象,提高了识别过程日志分析的准确性;另一方面,当所述计算结果中存在异常结果时,识别所述异常结果对应的识别节点中的预设的目标算法策略,并基于所述异常结果更新所述预设的目标算法策略中的算法参数,通过实时更新预设的算法策略中的算法参数,使得后面说的每一句话识别的结果越来越准确,避免了语音识别的预设的算法策略中的算法参数一成不变导致的识别结果不准确的现象,提高了语音识别的准确率;最后,解析每隔预设周期获取的原始音频,获取目标音频,通过每隔预设周期获取原始音频,可以避免所有的用户都采用同样为预设周期获取周期时长一致的原始音频引起的语音识别结果不准确的现象,提高语音识别准确率。

实施例三

参阅图3所示,为本发明实施例三提供的终端的结构示意图。在本发明较佳实施例中,所述终端3包括存储器31、至少一个处理器32、至少一条通信总线33及收发器34。

本领域技术人员应该了解,图3示出的终端的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述终端3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。

在一些实施例中,所述终端3是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的终端,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。所述终端3还可包括客户设备,所述客户设备包括但不限于任何一种可与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。

需要说明的是,所述终端3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。

在一些实施例中,所述存储器31用于存储程序代码和各种数据,例如安装在所述终端3中的语音识别系统中的算法参数更新装置20,并在终端3的运行过程中实现高速、自动地完成程序或数据的存取。所述存储器31包括只读存储器(read-onlymemory,rom)、可编程只读存储器(programmableread-onlymemory,prom)、可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)、一次可编程只读存储器(one-timeprogrammableread-onlymemory,otprom)、电子擦除式可复写只读存储器(electrically-erasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。

在一些实施例中,所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(centralprocessingunit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述至少一个处理器32是所述终端3的控制核心(controlunit),利用各种接口和线路连接整个终端3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行终端3的各种功能和处理数据。

在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。

尽管未示出,所述终端3还可以包括给各个部件供电的电源(比如电池),可选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述终端3还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。

在进一步的实施例中,结合图2,所述至少一个处理器32可执行所述终端3的操作装置以及安装的各类应用程序(如所述的语音识别系统中的算法参数更新装置20)、程序代码等,例如,上述的各个模块。

所述存储器31中存储有程序代码,且所述至少一个处理器32可调用所述存储器31中存储的程序代码以执行相关的功能。例如,图2中所述的各个模块是存储在所述存储器31中的程序代码,并由所述至少一个处理器32所执行,从而实现所述各个模块的功能以达到语音识别系统中的算法参数更新的目的。

示例性的,所述程序代码可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器31中,并由所述处理器32执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述程序代码在所述电子设备3中的执行过程。例如,所述程序代码可以被分割成解析模块201、语音识别模块202、分析模块203、判断模块204、更新模块205、发送模块206及写入模块207。

在本发明的一个实施例中,所述存储器31存储多个计算机可读指令,所述多个计算机可读指令被所述至少一个处理器32所执行以实现语音识别系统中的算法参数更新的功能。

具体地,所述至少一个处理器32对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。本发明中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

再多了解一些

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

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

相关文章

  • 日榜
  • 周榜
  • 月榜