本发明涉及人工智能技术领域,尤其涉及一种语音信号处理方法、装置、电子设备及存储介质。
背景技术:
目前的智能设备在进行语音识别和语音处理时,通常要先获取一段具有完整语义的语音数据,然后经过asr(automaticspeechrecognition,语音识别)处理获得语音识别结果,再基于该语音识别结果进行语义理解,得到语音数据对应的响应数据,以向用户作出反馈。
现有的获取具有完整语义的语音数据的一种方式为:用户在输入一段语音数据后按下指定按键,以告知智能设备语音输入结束,智能设备获取这段语音数据进行处理,但是,这种方式操作繁琐,且适应场景单一、不够灵活。另外一种方式为,在智能设备持续收音时通过语音活动检测(voiceactivitydetection,vad)技术对连续输入的语音数据进行截断,得到一段完整的语音数据,但是,当环境噪声较大时,采用这种方法会发生无法截断或误判截断等情况,导致无法及时进行语音识别,进而延长了智能设备的响应时间,导致用户无法获到及时的回复,降低了用户体验。
技术实现要素:
本发明实施例提供一种语音信号处理方法、装置、电子设备及存储介质,以解决现有技术中无法对语音数据进行有效地截断,导致智能设备无法及时作出准确响应的问题。
第一方面,本发明一实施例提供了一种语音信号处理方法,包括:
对智能设备实时采集到的音频流数据进行语音识别,得到临时识别结果;
对所述临时识别结果进行分词处理,得到若干分词片段;
将所述若干分词片段组成的第一分词序列输入到已训练的断句模型中,根据所述断句模型的输出确定所述第一分词序列之后能够进行断句的第一预测概率;以及获取第二分词序列之后的下一个分词片段为结束字符的第二预测概率,所述第二预测概率为根据词频数据确定的,所述词频数据包括基于语料库中的语料确定出的各分词序列在各语料中出现的次数,所述第二分词序列为所述临时识别结果中最后的n个分词片段组成的序列,n为正整数;
根据所述第一预测概率和所述第二预测概率,确定第三预测概率;
若所述第三预测概率大于概率阈值,对所述临时识别结果进行语义解析。
可选地,所述获取第二分词序列之后的下一个分词片段为结束字符的第二预测概率,具体包括:
从所述词频数据中获取所述第二分词序列对应的次数m;从所述词频数据中获取第三分词序列对应的次数k,所述第三分词序列为在所述第二分词序列之后增加所述结束字符得到的序列;根据所述k和所述m,确定所述第二预测概率;
或者,从预先配置的各n元分词序列之后的下一个分词片段为结束字符的概率数据中,将所述第二分词序列对应的概率数据确定为第二预测概率,所述n元分词序列是基于所述语料库中的语料进行分词处理得到的,所述概率数据是根据所述n元分词序列对应的词频数据和在所述n元分词序列之后增加所述结束字符得到的n+1元分词序列对应的词频数据确定的。
可选地,通过如下方式获取所述词频数据:
对所述语料库中的各语料进行分词处理,得到各语料对应的分词片段;
将每个语料中连续的n个分词片段组成的序列确定为一个n元分词序列;
将每个语料中连续的n+1个分词片段组成的序列确定为一个n+1元分词序列;
统计每个所述n元分词序列和每个所述n+1元分词序列在所述语料库的各语料中出现的次数,得到所述词频数据。
可选地,所述n等于2。
可选地,通过以下方式更新所述语料库中的语料:
若所述第三预测概率小于或等于所述概率阈值,且已检测到所述音频流数据中的语音起始点和语音结束点,在所述语音起始点和所述语音结束点之间的音频流数据对应的最终识别结果之后添加所述结束字符,将添加所述结束字符的最终识别结果作为新增的语料添加到所述语料库中;
或者,获取人工干预后的具有完整语义的文本,在所述文本之后添加所述结束字符,将添加所述结束字符的文本作为新增的语料添加到所述语料库中。
可选地,所述方法还包括:
若所述语料库中有新增的语料,对所述新增的语料进行分词处理,得到所述新增的语料对应的n元分词序列和n+1元分词序列;
更新所述新增的语料对应的n元分词序列和n+1元分词序列对应的词频数据。
可选地,所述方法还包括:
若所述词频数据发生更新,根据更新后的词频数据,更新各分词序列对应的概率数据。
可选地,所述方法还包括:
若所述第三预测概率小于或等于所述概率阈值,根据所述词频数据,确定所述第二分词序列之后出现概率最大的分词片段;
控制所述智能设备输出所确定的分词片段。
可选地,所述断句模型为二分类模型,所述二分类模型用于预测输入的分词序列之后的下一个分词片段是否为结束字符的概率,所述根据所述断句模型的输出确定所述第一分词序列之后能够进行断句的第一预测概率,具体包括:获取所述二分类模型输出的表征所述第一分词序列之后的下一个分词片段为结束字符的概率值,确定为所述第一预测概率;
或者,所述断句模型为标点标注模型,所述标点标注模型用于预测输入的分词序列之后出现各标点符号的概率值,所述根据所述断句模型的输出确定所述第一分词序列之后能够进行断句的第一预测概率,具体包括:获取所述标点标注模型输出的所述第一分词序列之后出现指定标点符号的概率值,确定为所述第一预测概率。
可选地,所述获取所述标点标注模型输出的所述第一分词序列之后出现指定标点符号的概率值,确定为所述第一预测概率,具体包括:
若获取到多个指定标点符号的概率值,将所述多个指定标点符号的概率值之和确定为所述第一预测概率,或者将所述多个指定标点符号的概率值中最大的概率值确定为所述第一预测概率。
可选地,通过如下方式训练所述二分类模型:
获取多个语料样本以及每个语料样本的分类标注,所述分类标注用于标记所述语料样本之后是否为结束字符;
根据所述语料样本和所述语料样本的分类标注,对二分类模型进行训练。
第二方面,本发明一实施例提供了一种语音信号处理装置,包括:
语音识别模块,用于对智能设备实时采集到的音频流数据进行语音识别,得到临时识别结果;
分词处理模块,用于对所述临时识别结果进行分词处理,得到若干分词片段;
第一预测模块,用于将所述若干分词片段组成的第一分词序列输入到已训练的断句模型中,根据所述断句模型的输出确定所述第一分词序列之后能够进行断句的第一预测概率;
第二预测模块,用于获取第二分词序列之后的下一个分词片段为结束字符的第二预测概率,所述第二预测概率为根据词频数据确定的,所述词频数据包括基于语料库中的语料确定出的各分词序列在各语料中出现的次数,所述第二分词序列为所述临时识别结果中最后的n个分词片段组成的序列,n为正整数;
确定模块,用于根据所述第一预测概率和所述第二预测概率,确定第三预测概率;
解析模块,用于若所述第三预测概率大于概率阈值,对所述临时识别结果进行语义解析。
可选地,所述第二预测模块具体用于:
从所述词频数据中获取所述第二分词序列对应的次数m;从所述词频数据中获取第三分词序列对应的次数k,所述第三分词序列为在所述第二分词序列之后增加所述结束字符得到的序列;根据所述k和所述m,确定所述第二预测概率;
或者,从预先配置的各n元分词序列之后的下一个分词片段为结束字符的概率数据中,将所述第二分词序列对应的概率数据确定为第二预测概率,所述n元分词序列是基于所述语料库中的语料进行分词处理得到的,所述概率数据是根据所述n元分词序列对应的词频数据和在所述n元分词序列之后增加所述结束字符得到的n+1元分词序列对应的词频数据确定的。
可选地,所述装置还包括词频数据获取模块,用于:
对所述语料库中的各语料进行分词处理,得到各语料对应的分词片段;
将每个语料中连续的n个分词片段组成的序列确定为一个n元分词序列;
将每个语料中连续的n+1个分词片段组成的序列确定为一个n+1元分词序列;
统计每个所述n元分词序列和每个所述n+1元分词序列在所述语料库的各语料中出现的次数,得到所述词频数据。
可选地,所述n等于2。
可选地,通过如下方式更新所述语料库中的语料:
若所述第三预测概率小于或等于所述概率阈值,且已检测到所述音频流数据中的语音起始点和语音结束点,在所述语音起始点和所述语音结束点之间的音频流数据对应的最终识别结果之后添加所述结束字符,将添加所述结束字符的最终识别结果作为新增的语料添加到所述语料库中;
或者,获取人工干预后的具有完整语义的文本,在所述文本之后添加所述结束字符,将添加所述结束字符的文本作为新增的语料添加到所述语料库中。
可选地,通过如下方式更新所述词频数据:
若所述语料库中有新增的语料,对所述新增的语料进行分词处理,得到所述新增的语料对应的n元分词序列和n+1元分词序列;
更新所述新增的语料对应的n元分词序列和n+1元分词序列对应的词频数据。
可选地,通过如下方式更新各分词序列对应的概率数据:
若所述词频数据发生更新,根据更新后的词频数据,更新各分词序列对应的概率数据。
可选地,所述装置还包括分词预测模块,用于:
若所述第三预测概率小于或等于所述概率阈值,根据所述词频数据,确定所述第二分词序列之后出现概率最大的分词片段;
控制所述智能设备输出所确定的分词片段。
可选地,所述断句模型为二分类模型,所述二分类模型用于预测输入的分词序列之后的下一个分词片段是否为结束字符的概率,所述第一预测模块具体用于:获取所述二分类模型输出的表征所述第一分词序列之后的下一个分词片段为结束字符的概率值,确定为所述第一预测概率;
可选地,所述断句模型为标点标注模型,所述标点标注模型用于预测输入的分词序列之后出现各标点符号的概率值,所述第一预测模块具体用于:获取所述标点标注模型输出的所述第一分词序列之后出现指定标点符号的概率值,确定为所述第一预测概率。
可选地,所述第一预测模块具体用于:若获取到多个指定标点符号的概率值,将所述多个指定标点符号的概率值之和确定为所述第一预测概率,或者将所述多个指定标点符号的概率值中最大的概率值确定为所述第一预测概率。
可选地,通过如下方式训练所述二分类模型:
获取多个语料样本以及每个语料样本的分类标注,所述分类标注用于标记所述语料样本之后是否为结束字符;
根据所述语料样本和所述语料样本的分类标注,对二分类模型进行训练。
第三方面,本发明一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现上述任一种方法的步骤。
第四方面,本发明一实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述任一种方法的步骤。
第五方面,本发明一实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现上述任一种方法的步骤。
本发明实施例提供的技术方案,通过词频数据可预测临时识别结果之后出现结束字符的第一预测概率,通过断句模型可预测临时识别结果之后出现结束字符的第二预测概率,融合第一预测概率和第二预测概率得到第三预测概率,当第三预测概率大于概率阈值时,表明临时识别结果之后出现结束字符的概率较大,即表明临时识别结果为具有完整语义的文本,此时可对临时识别结果进行语义解析等处理,得到对应的响应数据,并控制智能设备执行该响应数据,能够及时准确地对持续输入的音频流数据进行截断处理,从而有效地区分音频流数据中包含的多个连续的句子,以便针对用户输入的音频流数据中的每个句子作出及时的响应,缩短了智能设备的响应时间,提高用户体验。此外,断句模型是基于大量语料训练得到的离线模型,预测准确度高,而词频数据可实时在线更新,使得基于词频数据获得的预测概率能够适应使用环境的变化,实现个性化定制需求,因此,通过融合基于词频数据和断句模型得到的预测概率,可提高对结束字符的预测准确度,并实现根据使用环境进行实时微调。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的语音信号处理方法的应用场景示意图;
图2为本发明一实施例提供的语音信号处理方法的流程示意图;
图3为本发明一实施例提供的获取词频数据的流程示意图;
图4为本发明一实施例提供的计算预测概率的流程示意图;
图5为本发明一实施例提供的训练断句模型的流程示意图;
图6为本发明一实施例提供的语音信号处理装置的结构示意图;
图7为本发明一实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
为了方便理解,下面对本发明实施例中涉及的名词进行解释:
实时语音转写(real-timeasr),基于深度全序列卷积神经网络框架,通过websocket协议,建立应用与语言转写核心引擎的长连接,能够将音频流数据实时转换成文字流数据,实现用户边说话边生成文本,一般按照语素为最小单位,输出识别出的临时识别结果。例如,采集的音频流为:“今”-“天”-“天”-“气”-“怎”-“么”-“样”,按照音频流的顺序进行识别,先输出临时识别结果“今天”,然后,输出临时识别结果“今天天”,以此类推,直到对整段音频流识别完毕,得到最终识别结果“今天天气怎么样”。实时语音转写技术还能够基于后续的音频流以及对上下文的语义理解,对之前输出的临时识别结果进行智能纠错,保证最终识别结果的准确性,也就是说,基于音频流实时输出的临时识别结果,是随着时间不断变化,例如,第一次输出的临时识别结果为“金”,第二次输出的临时识别结果被纠正为“今天”,第三次输出的临时识别结果可能为“今天田”,第四次输出的临时识别结果又被纠正为“今天天气”,以此类推,通过不断的识别、纠正,得到准确的最终识别结果。
语音活动检测(voiceactivitydetection,vad),又称语音端点检测,是指在噪声环境中检测语音的存在与否,通常用于语音编码、语音增强等语音处理系统中,起到降低语音编码速率、节省通信带宽、减少移动设备能耗、提高识别率等作用。早先具有代表性的vad方法有itu-t的g.729annexb。目前,语音活动检测技术已广泛应用到语音识别过程中,通过语音活动检测技术检测出一段音频中真正包含用户语音的部分,从而消除音频中静音的部分,仅对包含用户语音的部分音频进行识别处理。
附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
在具体实践过程中,现有的获取具有完整语义的语音数据的一种方式为:用户在输入一段语音数据后按下指定按键,以告知智能设备语音输入结束,智能设备获取这段语音数据进行处理,但是,这种方式操作繁琐,且适应场景单一、不够灵活。另外一种方式为,在智能设备持续收音时通过语音活动检测(voiceactivitydetection,vad)技术对连续输入的语音数据进行截断,得到一段完整的语音数据,但是,当环境噪声较大时,采用这种方法会发生无法截断或误判截断等情况,导致无法及时进行语音识别,进而延长了智能设备的响应时间,导致用户无法获到及时的回复,降低了用户体验。
为此,本发明的发明人预先收集具有完整语义的自然语言文本,在收集的文本之后添加结束字符,结束字符用于标识该文本已经是一个具有完整语义的文本,然后将添加了结束字符的具有完整语义的自然语言文本作为语料,添加到语料库中。接着,对语料库中的各语料进行分词处理,统计基于分词处理结果得到的各种分词序列在语料库的各语料中出现的次数,作为词频数据。具体可通过以下格式存储词频数据:分词序列{w1,…,wn}和该分词序列对应的在语料库的各语料中出现的次数关联存储,例如,可通过key-value的方式存储词频数据,分词序列作为key值,对应的次数作为value值,方便在使用时查找到分词序列对应的次数。在获取到词频数据的基础上,还可以根据词频数据确定出各分词序列对应的预测概率,该预测概率表征对应的分词序列之后的下一个分词片段为结束字符的概率,从而得到概率数据,将分词序列和该分词序列对应的预测概率关联存储,例如,可通过key-value的方式存储概率数据,分词序列作为key值,对应的预测概率作为value值,方便在使用时查找到分词序列对应的预测概率。此外,可基于语料库中的语料,预先训练断句模型,该断句模型可确定输入的分词序列之后出现结束字符的概率。
在此基础上,具体的语音信号处理过程包括:对智能设备实时采集到的音频流数据进行语音识别,得到临时识别结果;对临时识别结果进行分词处理,得到若干分词片段;将若干分词片段组成的第一分词序列输入到已训练的断句模型中,根据断句模型的输出确定所述第一分词序列之后能够进行断句的第一预测概率;以及获取第二分词序列之后的下一个分词片段为结束字符的第二预测概率,第二预测概率为根据词频数据确定的,词频数据包括基于语料库中的语料确定出的各分词序列在各语料中出现的次数,第二分词序列为所述临时识别结果中最后的n个分词片段组成的序列,n为正整数;根据第一预测概率和第二预测概率,确定第三预测概率;若第三预测概率大于概率阈值,对临时识别结果进行语义解析。通过词频数据可预测临时识别结果之后出现结束字符的第一预测概率,通过断句模型可预测临时识别结果之后出现结束字符的第二预测概率,融合第一预测概率和第二预测概率得到第三预测概率,当第三预测概率大于概率阈值时,表明临时识别结果之后出现结束字符的概率较大,即表明临时识别结果为具有完整语义的文本,此时可对临时识别结果进行语义解析等处理,得到对应的响应数据,并控制智能设备执行该响应数据,能够及时准确地对持续输入的音频流数据进行截断处理,从而有效地区分音频流数据中包含的多个连续的句子,以便针对用户输入的音频流数据中的每个句子作出及时的响应,缩短了智能设备的响应时间,提高用户体验。此外,断句模型是基于大量语料训练得到的离线模型,预测准确度高,而词频数据可实时在线更新,使得基于词频数据获得的预测概率能够适应使用环境的变化,实现个性化定制需求,因此,通过融合基于词频数据和断句模型得到的预测概率,可提高对结束字符的预测准确度,并实现根据使用环境进行实时微调。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
首先参考图1,其为本发明实施例提供的语音信号处理方法的应用场景示意图。用户10与智能设备11进行交互过程中,智能设备11会持续采集周围的声音,并以音频流数据的形式持续发送给服务器12,音频流数据中除了包含用户10的说话声,也可能包含智能设备11周围的环境声或其他用户的说话声。服务器12对智能设备11持续发送的音频流数据依次进行语音识别处理和语义解析处理,根据语义解析结果确定出相应的响应数据,并控制智能设备11执行该响应数据,以向用户作出反馈。本发明实施例中所指的响应数据不限于文本数据、音频数据、图像数据、视频数据、语音播报、或控制指令等,其中,控制指令包括但不限于:控制智能设备显示表情的指令、控制智能设备的动作部件运动的指令(如引领、导航、拍照、跳舞等)等。
这种应用场景下,智能设备11和服务器12之间通过网络进行通信连接,该网络可以为局域网、广域网等。智能设备11可以为智能音箱、机器人等,也可以为便携设备(例如:手机、平板、笔记本电脑等),还可以为个人电脑(pc,personalcomputer)。服务器12可以为任何能够提供语音识别和语义解析服务的一台服务器、若干台服务器组成的服务器集群或云计算中心。
当然,对音频流数据的语音识别处理和语义解析处理,以及后续确定响应数据等处理,也可以在智能设备侧执行,本发明实施例中不对执行主体进行限定。为了便于描述,本发明提供的各实施例中均以在服务器侧执行语音处理为例进行说明,在智能设备侧执行语音处理的过程与此类似,此处不再赘述。
本发明实施例提供的语音信号处理方法,可用于对任意一门语言对应的语音进行处理,例如汉语、英语、日语、德语等。本发明实施例中主要是以对汉语的处理方式为例进行说明的,对其他语言的处理方式与此类似,本发明实施例中不再一一举例说明。
下面结合图1所示的应用场景,对本发明实施例提供的技术方案进行说明。
参考图2,本发明实施例提供一种语音信号处理方法,包括以下步骤:
s201、对智能设备实时采集到的音频流数据进行语音识别,得到临时识别结果。
本发明实施例中,在用户开始与智能设备对话后,智能设备会持续采集该智能设备周围环境中的声音,转换成音频流数据后发送给服务器。服务器可利用实时语音转写等技术,对持续的音频流数据进行语音识别,实时更新临时识别结果,每次更新都是基于上次更新后的临时识别结果进行的。需要说明的是,临时识别结果会随着智能设备上传的新的音频流数据而实时更新,例如,一开始获得的临时识别结果为“金”,在临时识别结果“金”的基础上,基于后续的音频流数据对临时识别结果“金”进行更新,获得更新后的临时识别结果,更新后的临时识别结果可能被纠正为“今天”,下一次更新后的临时识别结果可能为“今天田”,继续基于音频流数据对临时识别结果进行更新,更新后的临时识别结果又可能被纠正为“今天天气”。
s202、对临时识别结果进行分词处理,得到若干分词片段。
具体实施时,可通过现有的分词工具(如jieba、snownlp、thulac、nlpir等)对临时识别结果进行分词处理,以将临时识别结果分成若干分词片段。例如,临时识别结果为“介绍一下青花瓷”,则分词结果为“介绍”、“一下”和“青花瓷”三个分词片段。
s203、将若干分词片段组成的第一分词序列输入到已训练的断句模型中,根据断句模型的输出确定第一分词序列之后能够进行断句的第一预测概率。
具体实施时,断句模型可以是二分类模型或标点标注模型等模型。其中,二分类模型用于预测输入的分词序列之后的下一个分词片段是否为结束字符的概率,标点标注模型用于预测输入的分词序列之后出现各标点符号的概率值。
本发明实施例中,将结束字符作为一个分词片段。具体地,结束字符为预先规定的特殊字符,且能够与临时识别结果中包含的字符区分开来,例如,当针对中文进行语音处理时,结束字符可以是“eos”、“#”等。
具体实施时,通过分词工具还可以确定出哪些分词片段是稀有词语的信息,若确定通过步骤s202得到的分词片段中是否包含有稀有词语,还可利用子词切分算法对每个稀有词语再次进行切分处理,如利用双字节编码(bytepairencoding,bpe)算法对每个稀有词语再次进行分词处理,该处理也可叫做bpe处理,这样,可提高稀有词语对语料的影响,便于充分理解语料的语义,进而提高对语料进行断句的准确性。其中,稀有词语是指语料中出现频率低的分词片段,例如出现次数少于设定次数的分词片段。
s204、获取第二分词序列之后的下一个分词片段为结束字符的第二预测概率,第二预测概率为根据词频数据确定的,词频数据包括基于语料库中的语料确定出的各分词序列在各语料中出现的次数,第二分词序列为所述临时识别结果中最后的n个分词片段组成的序列,n为正整数。
本发明实施例的语料库中的每个语料均为具有完整语义的文本,例如,“介绍一下青花瓷”、“今天天气怎么样”,且每个语料的最后一个分词片段为结束字符,即每个语料以结束字符结尾。以结束字符为“eos”为例,语料库中的语料为“介绍一下青花瓷eos”、“今天天气怎么样eos”。
具体地,可参考如下公式预测一个分词序列之后出现结束字符的第二预测概率:
p(eos|wm-n+1,…,wm)=c(wm-n+1,…,wm,eos)/c(wm-n+1,…,wm),
其中,p(eos|wm-n+1,…,wm)为分词序列{wm-n+1,…,wm}之后出现结束字符eos的第二预测概率,c(wm-n+1,…,wm,eos)为分词序列{wm-n+1,…,wm,eos}在各语料中出现的次数,c(wm-n+1,…,wm)为分词序列{wm-n+1,…,wm}在各语料中出现的次数,n=1,…,m。为此,需要基于语料库中的语料,预先统计各分词序列{wm-n+1,…,wm,eos}以及{wm-n+1,…,wm}在各语料中出现的次数。
本发明实施例中的n为正整数。具体实施时,n的取值可根据实际需求确定。例如,当n=1时,第二预测概率为p(eos|wm)=c(wm,eos)/c(wm),即仅根据临时识别结果中的最后一个分词片段预测下一个词为结束字符的第二预测概率;当n=2时,第二预测概率为p(eos|wm-1,wm)=c(wm-1,wm,eos)/c(wm-1,wm),即根据临时识别结果中最后两个分词片段预测下一个词为结束字符的第二预测概率;当n=3时,第二预测概率为p(eos|wm-2,wm-1,wm)=c(wm-2,wm-1,wm,eos)/c(wm-2,wm-1,wm),即根据临时识别结果中最后三个分词片段预测下一个词为结束字符的第二预测概率。
举例说明,临时识别结果为“介绍一下青花瓷”,则分词结果为“介绍”、“一下”和“青花瓷”三个分词片段,假设n=2,则临时识别结果为“介绍一下青花瓷”对应的第二分词序列为{一下,青花瓷},从词频数据中获取分词序列{一下,青花瓷}和{一下,青花瓷,eos}对应的次数c1和c2,则{一下,青花瓷}之后出现结束字符的第二预测概率为c2/c1;假设n=3,则临时识别结果为“介绍一下青花瓷”对应的第二分词序列为{介绍,一下,青花瓷},从词频数据中获取分词序列{介绍,一下,青花瓷}和{介绍,一下,青花瓷,eos}对应的次数c3和c4,则{介绍,一下,青花瓷}之后出现结束字符的第二预测概率为c4/c3。
具体实施时,可实时在线更新语料库以及对应的词频数据,使得基于词频数据获得的第二预测概率能够适应使用环境的变化,提高对结束字符的预测准确度。
需要说明的是,步骤s203和步骤s204之间并无先后顺序,可以先执行s203,再执行s204;也可以先执行s204,再执行s203;还可以同时执行s203和s204。在此,本申请实施例只是以先执行s203,再执行s204为例进行说明,但并不代表本申请实施例仅局限于此。
s205、根据第一预测概率和第二预测概率,确定第三预测概率。
具体实施时,可计算第一预测概率和第二预测概率的乘积,作为第三预测概率。也可以计算第一预测概率和第二预测概率的加权平均值,作为第三预测概率。
具体实施时,还可以通过如下方式确定第三预测概率:若第一预测概率大于第二预测概率,则第三预测概率等于第一预测概率,否则第三预测概率等于第二预测概率;或者,若第一预测概率小于第二预测概率,则第三预测概率等于第一预测概率,否则第三预测概率等于第二预测概率。
实际应用过程中,还可以采用其他数据处理方式对第一预测概率和第二预测概率进行处理,得到第三预测概率,本申请实施例不作限定。
s206、若第三预测概率大于概率阈值,对临时识别结果进行语义解析。
具体实施时,概率阈值可根据实际需求确定,本发明实施例不作限定。具体实施时,若第三预测概率不大于概率阈值,表明该临时识别结果还不具有完整语义,则返回步骤s202,对下一次临时识别结果进行分词处理;若第三预测概率大于概率阈值,表明该临时识别结果为具有完整语义的文本,此时可对临时识别结果进行语义解析等处理。
本发明实施例的方法,通过词频数据可预测临时识别结果之后出现结束字符的第一预测概率,通过断句模型可预测临时识别结果之后出现结束字符的第二预测概率,融合第一预测概率和第二预测概率得到第三预测概率,当第三预测概率大于概率阈值时,表明临时识别结果之后出现结束字符的概率较大,即表明临时识别结果为具有完整语义的文本,此时可对临时识别结果进行语义解析等处理,得到对应的响应数据,并控制智能设备执行该响应数据,能够及时准确地对持续输入的音频流数据进行截断处理,从而有效地区分音频流数据中包含的多个连续的句子,以便针对用户输入的音频流数据中的每个句子作出及时的响应,缩短了智能设备的响应时间,提高用户体验。此外,由于本发明实施例的方法不基于vad检测结果进行截断,能够更好地适应人声较为嘈杂的公开、服务场景。本申请实施例中的断句模型是基于大量语料训练得到的离线模型,预测准确度高,而词频数据可实时在线更新,使得基于词频数据获得的预测概率能够适应使用环境的变化,实现个性化定制需求,因此,通过融合基于词频数据和断句模型得到的预测概率,可提高对结束字符的预测准确度,并实现根据使用环境进行实时微调。
基于上述任一实施例,具体实施时,参考图3,可通过如下方式获取词频数据:
s301、对语料库中的各语料进行分词处理,得到各语料对应的分词片段。
具体实施时,可通过现有的分词工具(如jieba分词工具等)对语料库中的各语料进行分词处理,以将各语料分成若干分词片段。例如,语料为“介绍一下青花瓷eos”,则分词结果为得到“介绍”、“一下”、“青花瓷”和“eos”四个分词片段。分词过程中,将结束字符作为一个分词片段。
s302、将每个语料中连续的n个分词片段组成的序列确定为一个n元分词序列。
具体实施时,n的取值可以根据实际应用需求确定,例如n可以取2、3、4等数值,本发明实施例不作限定。针对一个语料库,可统计不同长度的分词序列在语料库的各语料中出现的次数,即n可以取多种不同的值,这样,语料库对应的词频数据中就会包括各种长度的分词序列在语料库的各语料中出现的次数。
s303、将每个语料中连续的n+1个分词片段组成的序列确定为一个n+1元分词序列。
s304、统计每个n元分词序列和每个n+1元分词序列在语料库的各语料中出现的次数,得到词频数据。
举例说明,一个语料w1w2w3w4w5对应的分词片段为w1、w2、w3、w4、w5,其组成的序列为{w1,w2,w3,w4,w5},当n=2时,将序列{w1,w2,w3,w4,w5}中任意2个连续的分词片段组成的序列作为一个二元分词序列,即可确定出以下几个二元分词序列{w1,w2}、{w2,w3}、{w3,w4}、{w4,w5},将序列{w1,w2,w3,w4,w5}中任意3个连续的分词片段组成的序列作为一个三元分词序列,即可确定出以下几个三元分词序列{w1,w2,w3}、{w2,w3,w4}、{w3,w4,w5},因此,针对语料w1w2w3w4w5,一共可获得上述7个分词序列。通过上述方式得到语料库中所有语料对应的二元分词序列和三元分词序列,然后统计各分词序列在语料库的各语料中出现的次数。
由于n越大,分词序列包含的分词片段越多,预测精准度越高,但同时统计词频数据的过程越复杂。根据测试发现,当n取2时,在统计词频数据时,只需要统计二元分词序列和三元分词序列在语料库的各语料中出现的次数,统计过程相对简单,同时又能保证预测过程中的精准度。
具体实施时,不同的语料可能会对应相同的分词序列,统计过程中,相同的分词序列只对应一个统计结果。例如,语料库中存在3个语料“介绍一下青花瓷eos”、“介绍一下北京eos”、“介绍一下北京的美食eos”,针对这3个语料都会得到分词序列{介绍,一下},因此,二元分词序列{介绍,一下}在语料库的各语料中出现的次数为3次,分词序列{介绍,一下,北京}、和{一下,北京}在语料库的各语料中出现的次数为2次,其他分词序列在语料库的各语料中出现的次数为1次。
具体实施时,参考图4,基于统计得到的词频数据,在语音信号处理过程中,可通过如下方式在线获取第二分词序列之后的下一个分词片段为结束字符的预测概率:
s401、从词频数据中获取第二分词序列对应的次数m。
例如,临时识别结果为w1w2…wm-1wm,则第二分词序列为{wm-n+1,…,wm}。然后,从词频数据中获取第二分词序列为{wm-n+1,…,wm}在语料库出现的次数。
本步骤中的n是根据词频数据中的分词序列的长度确定的。例如,如果步骤s302中的n取2,则第二分词序列中包含的分词片段的数量为2,此时,若临时识别结果为w1w2…wm-1wm,第二分词序列为{wm-1,wm}。
s402、从词频数据中获取第三分词序列对应的次数k,第三分词序列为在第二分词序列之后增加结束字符得到的序列。
例如,第二分词序列为{wm-n+1,…,wm},则第三分词序列为{wm-n+1,…,wm,eos}。然后,从词频数据中获取第三分词序列{wm-n+1,…,wm,eos}对应的次数。
s403、根据k和m,确定第二预测概率。
作为一种可能的实施方式,可通过如下公式确定第二预测概率:p=k/m。具体地,若m=0,则不执行步骤s403,直接确定第二预测概率等于0。
举例说明,假设n=2,临时识别结果为“介绍一下”,则分词结果为“介绍”、“一下”,第二分词序列为{介绍,一下},第三分词序列为{介绍,一下,eos},从词频数据中获取{介绍,一下}对应的次数为1000次,从词频数据中获取{介绍,一下,eos}对应的次数为2次,则第二分词序列{介绍,一下}之后出现结束字符的第二预测概率为2/1000=0.002。对下一次临时识别结果“介绍一下青花瓷”进行处理,得到分词结果为“介绍”、“一下”、“青花瓷”,第二分词序列为{一下,青花瓷},第三分词序列为{一下,青花瓷,eos},从词频数据中获取{一下,青花瓷}对应的次数为20次,从词频数据中获取{一下,青花瓷,eos}对应的次数为12次,则第二分词序列{一下,青花瓷}之后出现结束字符的第二预测概率为12/20=0.6。
作为另一种可能的实施方式,还可通过如下公式确定第二预测概率:p=k/(m+β),其中,β为一个远小于m的数据,例如,β可以取1、0.1等数值,以防止出现m=0的情况。
作为再一种可能的实施方式,还可通过如下公式确定预测概率:p=ak/bm,其中,a和b为加权系数,0<a≤1,0<b≤1,可以根据实际应用场景配置加权系数的具体取值。
上面给出了根据k和m确定预测概率的三种可能的实现方式,但本发明实施例中不限定确定预测概率的具体实现方式,只要基于k和m得到预测概率的方式均适用于本发明实施例中。
具体实施时,还可以根据词频数据,预先计算出基于语料库中的语料确定出的各n元分词序列对应的预测概率,得到概率数据。具体地,可通过如下方式计算各n元分词序列之后出现结束字符的预测概率:从词频数据中获取n元分词序列{w1,…,wn}对应的次数u;在n元分词序列{w1,…,wn}之后增加结束字符,得到序列{w1,…,wn,eos},从词频数据中获取序列{w1,…,wn,eos}对应的次数v;根据u和v,确定该n元分词序列{w1,…,wn}对应的预测概率。最终得到的概率数据包括基于语料库中的语料确定出的各n元分词序列之后出现结束字符的预测概率。可将n元分词序列{w1,…,wn}和该n元分词序列对应的预测概率关联存储,方便在语音信号处理过程中,快速查找n元分词序列对应的预测概率。其中,根据u和v确定该n元分词序列{w1,…,wn}对应的预测概率的具体实现方式可参见上述根据k和m确定预测概率的具体实现方式,此处不再赘述。
具体实施时,可通过以下方式更新语料库中的语料:
第一种方式、获取人工干预后的具有完整语义的文本,在文本之后添加结束字符,将添加结束字符的文本作为新增的语料添加到语料库中。
具体实施时,可通过人工处理的方式获取具有完整语义的文本,并在这些具有完整语义的文本之后添加结束字符得到新增的语料,并添加到语料库中。例如,运营人员可以对智能设备采集到的语音数据对应的文本数据进行人工干预以得到具有完整语义的文本,并添加结束字符得到新增的语料添加到语料库中;又如,运营人员可以对录制的语音数据对应的文本数据进行人工干预以得到具有完整语义的文本,并添加结束字符得到新增的语料添加到语料库中;再如,运营人员可以从第三方(如网络等)获取具有完整语义的文本,并添加结束字符得到新增的语料添加到语料库中。
第二种方式、在语音信号处理过程中,若步骤s204中的第三预测概率小于或等于概率阈值,且通过语音端点检测得到的所述音频流数据中的语音起始点和语音结束点,在语音起始点和语音结束点之间的音频流数据对应的最终识别结果之后添加结束字符,将添加结束字符的最终识别结果作为新增的语料添加到语料库中。
实际应用中,基于语音端点检测(vad)可定位出音频数据流所包含的语音起始点和语音结束点,从而将vad检测得到的语音起始点和语音结束点之间的音频数据流的临时识别结果确定为具有完整语义的最终识别结果,基于该最终识别结果进行后续的语义解析等处理。在得到最终识别结果后,可以清除已缓存的临时识别结果。与此同时,对之后采集到的音频流数据实时进行语音识别等处理。具体实施时,语音端点标识为用于标记音频流数据中语音结束时刻的标识,接收到语音端点标识即表明用户已经输入一段完整的语音,认为基于语音端点标识前的音频流数据得到的临时识别结果应当是具有完整语义的语句,即确定为最终识别结果。因此,如果基于临时识别结果确定出的第三预测概率一直小于或等于概率阈值,表明基于当前的词频数据无法实现截断,此时可在最终识别结果之后添加结束字符,将添加结束字符的最终识别结果作为新增的语料添加到语料库中。
基于上述任一实施例,具体实施时,若语料库中有新增的语料,对新增的语料进行分词处理,得到新增的语料对应的n元分词序列和n+1元分词序列;更新新增的语料对应的n元分词序列和n+1元分词序列对应的词频数据。更新词频数据的具体过程可参考图3所示的步骤,不再赘述。
因此,本发明实施例的方法,可根据智能设备采集的数据,实时在线更新语料库以及对应的词频数据,从而不断地优化处理结果,使得预测结果更加准确。
具体实施时,若词频数据发生更新,根据更新后的词频数据,更新各分词序列对应的预测概率。更新预测概率的具体过程可参考计算概率数据的步骤,不再赘述。例如,若n元分词序列{w1,…,wn}对应的次数发生更新,或者在n元分词序列{w1,…,wn}之后增加结束字符得到n+1元分词序列{w1,…,wn,eos}对应的次数发生更新,则基于更新后的次数,重新确定n元分词序列{w1,…,wn}对应的预测概率。
因此,本发明实施例的方法,还可以根据智能设备采集的数据,实时在线更新概率数据,从而不断地优化处理结果,使得预测结果更加准确。
在上述任一实施例的基础上,步骤s204可通过如下方式实现:获取智能设备对应的专属词频数据,根据获取的专属词频数据,确定第二分词序列之后的下一个分词片段为结束字符的第二预测概率;和/或获取通用词频数据,确定第二分词序列之后的下一个分词片段为结束字符的第二预测概率。
具体实施时,针对每个智能设备、每个用户、每个企业、每个业务线等不同的应用场景,可配置不同的专属语料库,其中,可以为专属语料库配置生效范围,所述生效范围包括但不限于:设备级生效范围、用户级生效范围、企业级生效范围、业务线级生效范围等。基于所配置的专属语料库中各语料形成的分词序列进行词频统计,得到不同专属语料库对应的专属词频数据,并确定每个专属词频数据的生效范围。其中,根据专属词频数据对应的专属语料库的生效范围,确定专属词频数据的生效范围。例如,基于一个专属语料库进行词频统计得到的专属词频数据的生效范围,配置为与该专属语料库的生效范围相同。又如,基于至少两个专属语料库进行词频统计得到的专属词频数据的生效范围,配置为与范围最大的专属语料库的生效范围相同。
实际应用中,可设置生效范围的优先级,例如设备级生效范围的优先级高于用户级生效范围的优先级,用户级生效范围的优先级高于企业级生效范围的优先级,企业级生效范围的优先级高于业务线级生效范围的优先级。针对同一智能设备,若存在多个对该智能设备生效的专属词频数据,则根据各专属词频数据的生效范围的优先级,选择生效范围的优先级最高的专属词频数据,基于该优先级最高的专属词频数据,对智能设备发送的音频数据的临时识别结果进行预测。例如,对智能设备a生效的专属词频数据包括用户级生效范围的专属词频数据qa、设备级生效范围的专属词频数据qb,则选择优先级较高的属词频数据qb进行预测。
具体地,智能设备上传音频流数据的同时上报该智能设备的标识信息,可通过智能设备的标识信息,获取对该智能设备生效的专属词频数据。
本发明实施例中的通用词频数据,是基于通用的语料库获得的词频数据。具体实施时,通用词频数据的生效范围可设置为全局生效,即所有智能设备均可使用该通用词频数据。
具体实施时,当用户不存在专属词频数据时,可使用通用词频数据确定第二分词序列之后的下一个分词片段为结束字符的第二预测概率。或者,当通过专属词频数据无法确定出预测概率时,可使用通用词频数据确定第二分词序列之后的下一个分词片段为结束字符的预测概率。或者,可使用通用词频数据确定第二分词序列之后的下一个分词片段为结束字符的预测概率,同时使用专属词频数据确定第二分词序列之后的下一个分词片段为结束字符的预测概率,根据基于通用词频数据确定的预测概率和基于专属词频数据确定的预测概率,确定第二分词序列对应的第二预测概率。
基于专属词频数据可确定出对应的专属概率数据,同样可为每个专属概率数据配置生效范围,具体配置方式可参考专属词频数据,不再赘述。
为此,在上述任一实施例的基础上,步骤s204可通过如下方式实现:获取智能设备对应的专属概率数据,根据获取的专属概率数据,确定第二分词序列之后的下一个分词片段为结束字符的第二预测概率;和/或获取通用概率数据,确定第二分词序列之后的下一个分词片段为结束字符的第二预测概率。
本发明实施例中的通用概率数据,是基于通用词频数据确定的。具体实施时,通用概率数据的生效范围可设置为全局生效,即所有智能设备均可使用该通用词频数据。
具体实施时,还可根据智能设备上传音频流数据的同时上报的智能设备的标识信息,获取对该智能设备生效的专属词频数据对应的语料库,将基于音频流数据对应的最终识别结果得到的新增语料添加到该语料库中,然后对该语料库对应的词频数据进行更新。或者,还可根据智能设备上传音频流数据的同时上报的智能设备的标识信息,获取对该智能设备生效的专属概率数据对应的语料库,将基于音频流数据对应的最终识别结果得到的新增语料添加到该语料库中,然后对该语料库对应的词频数据和概率数据进行更新。
因此,本发明实施例的方法,可针对每个智能设备、每个用户、每个企业、每个业务线等应用场景得到不同的语料库以及对应的专属词频数据或专属概率数据,以适应不同的用户或场景,并通过在线更新语料库的方式,能够在使用过程中对不同用户或场景的语料库进行微调,使得处理结果更加准确。
在上述任一实施例的基础上,本发明实施例的方法还以对临时识别结果之后可能出现的分词片段进行预测,具体包括以下步骤:若第三预测概率小于或等于概率阈值,根据词频数据,确定第二分词序列之后出现概率最大的分词片段;控制智能设备输出所确定的分词片段。
具体实施时,可从词频数据中确定出前n个分词片段为第二分词序列的n+1元分词序列,从确定出的n+1元分词序列中选出在各语料中出现的次数最大的n+1元分词序列,将选出的n+1元分词序列的最后一个分词片段,作为第二分词序列之后出现概率最大的分词片段。
举例说明,临时识别结果为“介绍一下”,假设n=2,则第二分词序列为{介绍,一下},从词频数据中确定出前两个分词片段为“介绍”和“一下”的三元分词序列{介绍,一下,青花瓷}、{介绍,一下,北京}、{介绍,一下,故宫},假设三元分词序列{介绍,一下,北京}对应的次数最大,则将三元分词序列{介绍,一下,北京}中最后一个分词片段“北京”作为第二分词序列{介绍,一下}之后出现概率最大的分词片段,控制智能设备输出分词片段“北京”,使得智能设备能够实现意图预测,并对预测到的意图进行展示。
基于上述任一实施例,当断句模型为二分类模型时,步骤s203具体包括:获取二分类模型输出的表征第一分词序列之后的下一个分词片段为结束字符的概率值,确定为第一预测概率。
例如,将第一分词序列输入二分类模型,二分类模型输出第一分词序列之后的下一个分词片段为结束字符的概率值为0.4,则第一分词序列对应的第一预测概率为0.4。
在一种可能的实施方式下,可通过如下方式训练二分类模型:获取多个语料样本以及每个语料样本的分类标注,分类标注用于标记语料样本之后是否为结束字符;根据语料样本和语料样本的分类标注,对二分类模型进行训练。
具体地,可以按照图5所示的流程训练二分类模型,该流程包括:
s501、获取语料样本集,该语料样本集中包含多个语料样本以及每个语料样本的分类标注,该分类标注用于标记语料样本之后是否为结束字符。
具体实施时,语料样本之后为结束字符的语料样本的分类标注可以为“1”,语料样本之后不是结束字符的语料样本的分类标注可以为“0”。
s502、对每个语料样本进行分词处理,得到每个语料样本对应的若干分词片段。
具体实施时,若确定语料样本对应的若干分词片段中包含稀有词语,则利用子词切分算法对每个稀有词语再次进行分词处理。
s503、将每个语料样本对应的若干分词片段形成的分词序列输入到深度学习模型中,得到该语料样本之后为结束字符的预测概率值,若预测概率值大于预设阈值,则确定预测结果为对应的语料样本之后为结束字符,否则,确定预测结果为对应的语料样本之后不是结束字符。
本步骤中,每个语料样本在进行分词处理后都会得到多个分词片段,该语料样本的分词序列可按照每个分词片段在该语料样本中的位置形成。比如,语料样本为“介绍一下青花瓷”,且该语料样本在进行分词处理后得到的分词片段包括“介绍”、“一下”、“青花瓷”,那么根据每个分词片段在该语料样本中的出现位置最终形成的分词序列为{介绍,一下,青花瓷}。
在具体实施时,将每个语料样本对应的分词序列输入到深度学习模型中之后,对分词序列中的每个分词片段,深度学习模型可分析分词序列中的各分词片段之间的上下文信息,进而根据分词片段之间的上下文信息确定分词序列之后出现结束字符的预测概率值,若预测概率值超过预设阈值,则确定该语料样本之后会出现结束字符,输出的预测结果为“1”,若预测概率值未超过预设阈值,则确定该语料样本之后不会出现结束字符,输出的预测结果为“0”。
s504、根据每个语料样本中的分类标注和对应的预测结果,调整深度学习模型的参数。
在具体实施时,可根据该语料样本原有的分类标注和深度学习模型输出的该语料样本对应的预测结果,计算用于确定两者偏差的损失函数,进而利用梯度下降算法对深度学习模型的参数进行调整以期减小损失函数,直至调整后的深度学习模型输出的语料样本对应的预测结果与语料样本原有的分类标注一致时,停止调整。
s505、利用测试样本对调整后的深度学习模型进行测试,根据测试结果确定深度学习模型的预测准确率。
其中,测试样本是标记有分类标注的语料。
s506、判断预测准确率是否大于预设的准确率,若否,则进入s507;若是,则进入s508。
s507、根据新的语料样本集对调整后的深度学习模型进行训练,将训练后的深度学习模型作为新调整后的深度学习模型,并返回s505。
其中,新的语料样本集中语料样本不同于之前在训练二分类模型时使用的语料样本。
s508、将调整后的深度学习模型作为建立的二分类模型。
基于上述任一实施例,当断句模型为标点标注模型时,步骤s203具体包括:获取标点标注模型输出的第一分词序列之后出现指定标点符号的概率值,确定为第一预测概率。
具体实施时,标点标注模型会输出第一分词序列之后可能出现的所有标点符号对应的概率值,从标点标注模型输出的数据中获取指定标点符号对应的概率值。其中,指定标点符号可以是表示一段文本结束的标点符号,例如,句号、问号、感叹号等。实际应用中,可根据实际应用需求,预先确定哪些标点符号属于指定标点符号,本申请实施例不作限定。
具体实施时,若仅获取到一个指定标点符号的概率值,则将该指定标点符号的概率值确定为第一预测概率。例如,将第一分词序列输入标点标注模型,标点标注模型输出“句号”对应的概率值为0.6,“逗号”对应的概率值为0.4,只有“句号”为指定标点符号,则确定该第一分词序列对应的第一预测概率为0.6。
具体实施时,若获取到多个指定标点符号的概率值,可以将这多个指定标点符号的概率值之和确定为第一预测概。例如,将第一分词序列输入标点标注模型,标点标注模型输出“句号”对应的概率值为0.4,“感叹号”对应的概率值为0.3,“逗号”对应的概率值为0.2,“顿号”对应的概率值为0.1,其中“句号”和“感叹号”为指定标点符号,则第一分词序列对应的第一预测概率为“句号”和“感叹号”对应的概率值之和,即第一预测概率为0.7。
具体实施时,若获取到多个指定标点符号的概率值,还可以将这多个指定标点符号的概率值中最大的概率值确定为第一预测概率。例如,将第一分词序列输入标点标注模型,标点标注模型输出“句号”对应的概率值为0.4,“感叹号”对应的概率值为0.3,“逗号”对应的概率值为0.2,“顿号”对应的概率值为0.1,其中“句号”和“感叹号”为指定标点符号,而“句号”的概率值高于“感叹号”的概率值,因此,第一分词序列对应的第一预测概率为“句号”的概率值,即第一预测概率为0.4。
实际应用中,还可以通过其他方式,根据标点标注模型输出标点符号的概率值确定第一预测概率,不限于上述实施方式。
在一种可能的实施方式下,可通过如下方式训练标点标注模型:获取多个语料句子以及每个语料句子的标点标注信息,标点标注信息包括该语料句子中出现的标点符号以及每个标点符号在语料句子中的位置;根据语料句子和语料句子的标点标注信息,对标点标注模型进行训练。具体地,训练标点标注模型的流程包括:
步骤一、获取预设数量的样本句子,其中,样本句子的句末带有标点符号。
步骤二、将部分或全部样本句子进行拼接,对每个拼接后的样本句子进行分割,并将分割后的样本句子确定为语料句子。
针对需要实时识别语音数据的情况,有可能本次识别出的字符序列有一部分和上次别出的字符序列才能构成一个句子,此时,如果对这些字符序列进行标点符号预测,标点符号很可能会出现在字符序列的中间位置,为了能很好地应对这种情况,我们希望用于建立标点标注模型的语料句子多样化,句子中标点符号也不要全部出现在句末。
为此,在获取预设数量的句末带有标点符号的样本句子之后,可以将部分或全部样本句子进行拼接,并对每个拼接后的样本句子进行分割,比如,按照设定步长进行分割或者随机进行分割,进而将分割后的样本句子作为用于建立标点标注模型的语料句子,这样,可降低标点符号出现在句末的概率,提升标点符号出现在句中的概率,更加贴合上述场景,后续,将建立的深度学习模型运用到上述场景时,深度学习模型的断句准确率也会更高。
步骤三、对每个语料句子进行分词处理,确定该语料句子包含的词语,若确定该语料句子包含的词语中有稀有词语,则利用子词切分算法对每个稀有词语再次进行分词处理。
步骤四、将每个语料句子在分词处理和切分处理后得到的词语形成的词语序列输入到深度学习模型中进行标点预测。
本步骤中,对语料句子对应的词语序列进行标点预测,即预测该语料句子中可能出现的标点符号以及每个标点符号在该语料句子中的位置。
本步骤中,每个语料句子在进行分词处理和切分处理后都会得到多个词语,该语料句子的词语序列可按照每个词语在该语料句子中的位置形成。比如,语料句子为“我想要去上学”,且该语料句子在进行分词处理和切分处理后得到的词语为“我”、“上学”、“去”、“想要”,那么根据每个词语在该语料句子中的出现位置最终形成的词语序列为{我、想要、去、上学}。
步骤五、根据每个语料句子的标点标注信息和深度学习模型输出的该语料句子对应的标点预测结果,调整深度学习模型的参数。
在具体实施时,可根据该语料句子的标点标注信息和深度学习模型输出的该语料句子对应的标点预测结果,计算用于确定两者偏差的损失函数,进而利用梯度下降算法对深度学习模型的参数进行调整以期减小损失函数,直至调整后的深度学习模型输出的该语料句子对应的标点预测结果与该语料句子的标点标注信息相同时,停止调整。
步骤六、利用测试句子对调整后的深度学习模型进行测试,根据测试结果确定深度学习模型的标注准确率。其中,测试句子是已知标点标注信息的句子。
步骤七、判断标注准确率是否大于预设的准确率,若否,则进入步骤八:若是,则进入步骤九。
步骤八、根据至少一个新的语料句子对调整后的深度学习模型进行训练,将训练后的深度学习模型作为新调整后的深度学习模型,并返回步骤六。其中,新的语料句子是新增加的语料句子,不同于之前在训练标点标注模型时使用的语料句子。
步骤九、将调整后的深度学习模型作为建立的标点标注模型。
本申请实施例中,二分类模型和断句模型可基于现有的任意一种深度学习模型训练得到,例如,卷积神经网络(convolutionalneuralnetworks,cnn)、循环神经网络(recurrentneuralnetwork,rnn)、是长短期记忆网络(longshort-termmemory,lstm)、深度神经网络(deepneuralnetwork,dnn)、深度置信网(deepbeliefnets,dbns)等神经网络。另外,本申请实施例还提供一种深度学习模型的网络结构:embedding->bilstm->softmax,箭头表示网络结构的顺序,其中,embedding层用于对语料样本所形成的分词序列中每个分词片段的语义进行编码;bilstm层用于根据分词序列中每个分词片段前后若干分词片段的语义编码分析该词语的上下文语义;softmax层用于根据每个分词片段的上下文语义确定分词序列之后出现结束字符的概率。
如图6所示,基于与上述语音信号处理方法相同的发明构思,本发明实施例还提供了一种语音信号处理装置60,包括语音识别模块601、分词处理模块602、第一预测模块603、第二预测模块604、确定模块605和解析模块606。
语音识别模块601,用于对智能设备实时采集到的音频流数据进行语音识别,得到临时识别结果;
分词处理模块602,用于对所述临时识别结果进行分词处理,得到若干分词片段;
第一预测模块603,用于将所述若干分词片段组成的第一分词序列输入到已训练的断句模型中,根据所述断句模型的输出确定所述第一分词序列之后能够进行断句的第一预测概率;
第二预测模块604,用于获取第二分词序列之后的下一个分词片段为结束字符的第二预测概率,所述第二预测概率为根据词频数据确定的,所述词频数据包括基于语料库中的语料确定出的各分词序列在各语料中出现的次数,所述第二分词序列为所述临时识别结果中最后的n个分词片段组成的序列,n为正整数;
确定模块605,用于根据所述第一预测概率和所述第二预测概率,确定第三预测概率;
解析模块606,用于若所述第三预测概率大于概率阈值,对所述临时识别结果进行语义解析。
可选地,第二预测模块604具体用于:
从所述词频数据中获取所述第二分词序列对应的次数m;从所述词频数据中获取第三分词序列对应的次数k,所述第三分词序列为在所述第二分词序列之后增加所述结束字符得到的序列;根据所述k和所述m,确定所述第二预测概率;
或者,从预先配置的各n元分词序列之后的下一个分词片段为结束字符的概率数据中,将所述第二分词序列对应的概率数据确定为第二预测概率,所述n元分词序列是基于所述语料库中的语料进行分词处理得到的,所述概率数据是根据所述n元分词序列对应的词频数据和在所述n元分词序列之后增加所述结束字符得到的n+1元分词序列对应的词频数据确定的。
可选地,本发明实施例的语音信号处理装置60还包括词频数据获取模块,用于:
对所述语料库中的各语料进行分词处理,得到各语料对应的分词片段;
将每个语料中连续的n个分词片段组成的序列确定为一个n元分词序列;
将每个语料中连续的n+1个分词片段组成的序列确定为一个n+1元分词序列;
统计每个所述n元分词序列和每个所述n+1元分词序列在所述语料库的各语料中出现的次数,得到所述词频数据。
可选地,n等于2。
可选地,通过如下方式更新所述语料库中的语料:
若所述第三预测概率小于或等于所述概率阈值,且已检测到所述音频流数据中的语音起始点和语音结束点,在所述语音起始点和所述语音结束点之间的音频流数据对应的最终识别结果之后添加所述结束字符,将添加所述结束字符的最终识别结果作为新增的语料添加到所述语料库中;
或者,获取人工干预后的具有完整语义的文本,在所述文本之后添加所述结束字符,将添加所述结束字符的文本作为新增的语料添加到所述语料库中。
可选地,通过如下方式更新所述词频数据:
若所述语料库中有新增的语料,对所述新增的语料进行分词处理,得到所述新增的语料对应的n元分词序列和n+1元分词序列;
更新所述新增的语料对应的n元分词序列和n+1元分词序列对应的词频数据。
可选地,通过如下方式更新各分词序列对应的概率数据:若所述词频数据发生更新,根据更新后的词频数据,更新各分词序列对应的概率数据。
可选地,本发明实施例的语音信号处理装置60还包括分词预测模块,用于:
若所述第三预测概率小于或等于所述概率阈值,根据所述词频数据,确定所述第二分词序列之后出现概率最大的分词片段;
控制所述智能设备输出所确定的分词片段。
可选地,所述断句模型为二分类模型,所述二分类模型用于预测输入的分词序列之后的下一个分词片段是否为结束字符的概率,所述第一预测模块603具体用于:获取所述二分类模型输出的表征所述第一分词序列之后的下一个分词片段为结束字符的概率值,确定为所述第一预测概率;
可选地,所述断句模型为标点标注模型,所述标点标注模型用于预测输入的分词序列之后出现各标点符号的概率值,所述第一预测模块603具体用于:获取所述标点标注模型输出的所述第一分词序列之后出现指定标点符号的概率值,确定为所述第一预测概率。
可选地,所述第一预测模块603具体用于:若获取到多个指定标点符号的概率值,将所述多个指定标点符号的概率值之和确定为所述第一预测概率,或者将所述多个指定标点符号的概率值中最大的概率值确定为所述第一预测概率。
可选地,通过如下方式训练所述二分类模型:
获取多个语料样本以及每个语料样本的分类标注,所述分类标注用于标记所述语料样本之后是否为结束字符;
根据所述语料样本和所述语料样本的分类标注,对二分类模型进行训练。
本发明实施例提的语音信号处理装置与上述语音信号处理方法采用了相同的发明构思,能够取得相同的有益效果,在此不再赘述。
基于与上述语音信号处理方法相同的发明构思,本发明实施例还提供了一种电子设备,该电子设备具体可以为智能设备内部的控制设备或控制系统,也可以是与智能设备通信的外部设备,如可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(personaldigitalassistant,pda)、服务器等。如图7所示,该电子设备70可以包括处理器701和存储器702。
存储器702可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器提供存储器中存储的程序指令和数据。在本发明实施例中,存储器可以用于存储语音信号处理方法的程序。
处理器701可以是cpu(中央处埋器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件)处理器通过调用存储器存储的程序指令,按照获得的程序指令实现上述任一实施例中的语音信号处理方法。
本发明实施例提供了一种计算机可读存储介质,用于储存为上述电子设备所用的计算机程序指令,其包含用于执行上述语音信号处理方法的程序。
上述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nandflash)、固态硬盘(ssd))等。
基于与语音信号处理方法相同的发明构思,本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现上述任一实施例中的语音信号处理方法。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明实施例的方法,不应理解为对本发明实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本发明实施例的保护范围之内。