基于有监督机器学习的语音端点检测方法及装置
技术领域
本发明涉及语音识别技术领域,具体涉及基于有监督机器学习的语音端点检测方法及装置。
背景技术
语音端点检测(Voice Activity Detection,VAD)指是从连续的音频流中检测出有效的语音段,包括检测出有效语音的起始点即前端点和检测出有效语音的结束点即后端点两个方面。在语音应用中进行语音的端点检测是很必要的,首先,在存储或传输语音的场景下从连续的语音流中分离出有效语音,可以降低存储或传输的数据量。其次,在人机交互等具体应用场景中,使用端点检测可以起到简化作用,比如在录音的场景中,语音后端点检测可以省略结束录音的操作。因此,准确的语音端点检测将提高信道的利用率和减少语音处理的数据量。
如图5所示,给出了一段包含两个单词的语音,根据图5可以直观的看出,一段音频首尾的静音部分声波的振幅很小,而有效语音部分的振幅比较大,一个信号的振幅从直观上表示了信号能量的大小,静音部分能量值较小,有效语音部分的能量值较大。语音信号是一个以时间为自变量的一维连续函数,计算机处理的语音数据是语音信号按时间排序的采样值序列,这些采样值的大小同样表示了语音信号在采样点处的能量。
早期的端点检测算法有基于短时能量和过零率、倒谱距离、谱熵检测等。但是这些方法难以在识别性能和处理速度方面达到平衡。
其它的端点检测方法还有时域参数方法,变换域参数方法以及统计模型方法。时域参数方法仅适用于平稳噪声的检测,对不同噪声背景的鲁棒性较差。变换域参数方法只能支持SNR>0db的带噪声语音,对于噪音与语音信号有类似变换域特征的情况,该方法会失效。统计模型方法计算量太大,且对不同噪声背景可能需要建立不同的统计模型。
而随着智能机器人的不断发展和应用,亟需一种准确高效的语音端点检测方法。
发明内容
针对现有技术中的缺陷,本发明提供的一种基于有监督机器学习的语音端点检测方法及装置,通过判断当前所处的场景,将场景作为RNN模型的输入参数之一,提升RNN模型的判断的准确性,提高了语音端点检测的准确性和效率。
第一方面,本发明提供了一种基于有监督机器学习的语音端点检测方法,包括:
步骤S1,从获取的音频中检测出静音段、过度段和结束段;
步骤S2,将静音段和结束段输入预先构建的背景噪声模型,识别所述音频所属的当前场景;
步骤S3,将待识别语音段用向量表示,其中,待识别语音段为除去所述静音段、所述过度段和所述结束段的音频;
步骤S4,将识别的所述当前场景和向量化后的待识别语音段输入预先构建的RNN模型,识别语音端点,其中,语音端点包括语音段的起始点、语音段的终点。
优选地,所述从获取的音频中检测出静音段、过度段和结束段,包括:采用短时能量和过零率方法进行过渡段、静音段和结束段检测。
优选地,所述背景噪声模型的构建方法包括:
分析每个特定场景下的音频,得到每个特定场景下的背景噪音的特点,对特定场景下的背景噪音进行建模,得到背景噪声模型。
优选地,所述RNN模型的构建方法包括:
收集大量的语音,标注每条所述语音的静音段、过渡段、有效语音段的起始点和终点、结束段,同时标记语音所处的场景;
对语音段进行分割采样,将分割得到的每个语音片段转化为相同维度的向量表示;
通过线性回归变换将所有的语音片段合成为一个向量,得到所述语音段的向量表示;
将所述语音段的向量表示、所述有效语音段的起始点和终点、语音所处的场景作为RNN的输入进行训练,获得可以根据输入语音输出语音起始点和终点的RNN模型。
优选地,在所述步骤S4之前还包括:将所述待识别语音段输入所述用户特征模型,得到讲话者的特征;
所述步骤S4包括:将识别的所述当前场景、所述讲话者的特征和向量化后的待识别语音段输入预先构建的RNN模型,识别语音端点,其中,语音端点包括语音段的起始点、语音段的终点。
优选地,在所述步骤S1之前还包括:
从获取的音频中检测指令词;
将所述指令词对应的音频段输入用户特征模型,得到所述指令词对应的讲话者的特征并存储;
获取新的音频输入用户特征模型得到多个人的特征,识别与存储的所述讲话者的特征最相似的音频,通过声源定位技术获取所述讲话者后续的音频。
优选地,在步骤S1之前还包括:
从获取的音频中检测指令词;
将所述指令词对应的音频段输入用户特征模型,得到所述指令词对应的讲话者的特征并存储;
通过摄像头获取实时图像,识别所述实时图像中多个人的面部特征,结合所述讲话者的特征,找出当前的讲话者,并记录下当前的讲话者的面部特征;
通过所述摄像头获取新的图像,从图像中识别出与记录的所述讲话者的面部特征最相似的人脸,定位最相似人脸所处的空间位置;
根据所述空间位置,结合声源定位技术获取所述讲话者的音频。
优选地,所述用户特征模型的构建方法包括:
收集大量有效语音段,标注每条所述有效语音段中讲话者的特征;其中,特征包括:用户的年龄和性别;
并按照标注的特征将所述有效语音段进行分类;
对每一类中的有效语音段进行频域、时域统计,获得不同特征的用户语音包含的语音特性,建立可以根据有效语音段判断讲话者特征的用户特征模型。
第二方面,本发明提供了一种基于有监督机器学习的语音端点检测装置,包括:
分段检测模块,用于从获取的音频中检测出静音段、过度段和结束段;
场景识别模块,用于将静音段和结束段输入预先构建的背景噪声模型,识别所述音频所属的当前场景;
向量化模块,用于将待识别语音段用向量表示,其中,待识别语音段为除去所述静音段、所述过度段和所述结束段的音频;
语音端点识别模块,用于将识别的所述当前场景和向量化后的待识别音段输入预先构建的RNN模型,识别语音端点,其中,语音端点包括语音段的起始点、语音段的终点。
优选地,所述分段检测模块具体用于:采用短时能量和过零率方法进行过渡段和静音段和结束段。
优选地,所述背景噪声模型的构建方法包括:
分析每个特定场景下的音频,得到每个特定场景下的背景噪音的特点,对特定场景下的背景噪音进行建模,得到背景噪声模型。
优选地,所述RNN模型的构建方法包括:
收集大量的语音,标注每条所述语音的静音段、过渡段、有效语音段的起始点和终点、结束段,同时标记语音所处的场景;
对语音段进行分割采样,将分割得到的每个语音片段转化为相同维度的向量表示;
通过线性回归变换将所有的语音片段合成为一个向量,得到所述语音段的向量表示;
将所述语音段的向量表示、所述有效语音段的起始点和终点、语音所处的场景作为RNN的输入进行训练,获得可以根据输入语音输出语音起始点和终点的RNN模型。
优选地,还包括多人场景识别模块,用于:
从获取的多人音频中检测指令词;
将所述指令词对应的音频段输入用户特征模型,得到所述指令词对应的讲话者的特征;
通过摄像头获取实时图像,结合所述讲话者的特征,判断当前的讲话者,并从所述多人音频中获取当前讲话者对应的音频。
优选地,所述用户特征模型的构建方法包括:
收集大量有效语音段,标注每条所述有效语音段中讲话者的特征;其中,特征包括:用户的年龄和性别;
并按照标注的特征将所述有效语音段进行分类;
对每一类中的有效语音段进行频域、时域统计,获得不同特征的用户语音包含的语音特性,建立可以根据有效语音段判断讲话者特征的用户特征模型。
第三方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一所述的方法。
附图说明
图1为本发明实施例一所提供的一种基于有监督机器学习的语音端点检测方法的流程图;
图2为本发明实施例一所提供的一种基于有监督机器学习的语音端点检测方法的优选流程图;
图3为本发明实施例四所提供的一种基于有监督机器学习的语音端点检测装置的结构框图;
图4为本发明实施例四所提供的一种基于有监督机器学习的语音端点检测装置的优选结构框图;
图5为一段包含两个单词的语音信号图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只是作为示例,而不能以此来限制本发明的保护范围。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
实施例一
如图1所示,本实施例提供了一种基于有监督机器学习的语音端点检测方法,包括:
步骤S1,从获取的音频中检测出静音段、过度段和结束段;
步骤S2,将静音段和结束段输入预先构建的背景噪声模型,识别所述音频所属的当前场景。
其中,场景可以基于具体产品的使用环境和使用场景确定,如:对于定位为智能家居服务的产品,其使用场景可以大致分为休息场景、阅读场景、观影场景、游戏场景、聚会场景等。
其中,所述背景噪声模型的构建方法包括:分析每个特定场景下的音频,得到每个特定场景下的背景噪音的特点,对特定场景下的背景噪音进行建模,得到背景噪声模型。由于静音段和结束段语音的波幅代表了背景噪音包含的能量,通过分析静音段、结束段可以获得特定场景下背景噪音的特点,对特定场景下的背景噪音进行建模。具体可以采用以下的方法进行建模:使用概率统计的方法建模、使用K-means聚类的方法建模、使用CNN的方法建模。其中,使用K-means方法聚类的时候,K值可以通过经验判断语音所处场景的数量而进行有效的预置。
通过上述方法构建的背景噪声模型,在实际进行语音端点检测的时候,通过将静音段和噪音段作为背景噪音模型的输入,即可获得当前语音所处的具体场景。
步骤S3,将待识别语音段用向量表示,其中,待识别语音段为除去所述静音段、所述过度段和所述结束段的音频。
其中,将待识别语音段用向量表示的方法具体包括:对语音进行分割采样,将每个语音片段转化为相同维度的向量表示,然后通过线性回归变换将这些语音片段合成为一个向量,这个合成后的向量就是语音的向量表示。
步骤S4,将识别的所述当前场景和向量化后的待识别语音段输入预先构建的RNN模型,识别语音端点,其中,语音端点包括语音段的起始点、语音段的终点。
其中,所述RNN(recurrent neural network,递归神经网络)模型的构建方法包括:
收集大量的语音,标注每条所述语音的静音段、过渡段、有效语音段的起始点和终点、结束段,同时标记语音所处的场景;
对语音段进行分割采样,将分割得到的每个语音片段转化为相同维度的向量表示;
通过线性回归变换将所有的语音片段合成为一个向量,得到所述语音段的向量表示;
将所述语音段的向量表示、所述有效语音段的起始点和终点、语音所处的场景作为RNN的输入进行训练,获得可以根据输入语音输出语音起始点和终点的RNN模型。
其中,步骤S1的优选实施方式包括:采用短时能量和过零率方法进行过渡段、静音段和结束段检测。
其中,短时能量和过零率方法包括:
步骤S101,分别对短时能量和过零率设置两个门限值energy_low,energy_high和zcr_low,zcr_high;其中,energy_high>energy_low,zcr_high>zcr_low。
步骤S102,计算一帧语音的短时能量enegry和过零率zcr,若enegry>energy_low且zcr>zcr_low,则表示语音开始进入过渡段;若enegry>energy_high且zcr>zcr_high,此时还不能断定语音开始,继续计算几帧短时能量和过零率,若enegry>energy_high且zcr>zcr_high,则可判定语音开始。
本实施例提供的基于有监督机器学习的语音端点检测方法,通过判断当前所处的场景,将场景作为RNN模型的输入参数之一,提升RNN模型的判断的准确性,提高了语音端点检测的准确性和效率。
为了提高语音端点的检测精度,本实施例还可以识别音频中讲话者的特征,将讲话者的特征作为RNN模型的输入参数之一,提升RNN模型的判断的准确性。其中,讲话者的特征可以是讲话者的音色、语调等声音特质,也可以是从声音中进一步推断出讲话者的性别、年龄等特征。
具体地,通过以下方法建立用户特征模型,包括:
收集大量有效语音段,标注每条所述有效语音段中讲话者的特征,其中,特征包括:音色、语调等声音特质,用户的年龄、性别等;
并按照标注的特征将所述有效语音段进行分类;
对每一类中的有效语音段进行频域、时域统计,获得不同特征的用户语音包含的语音特性,建立可以根据有效语音段判断讲话者特征的用户特征模型。
应用时,将自然采集到的语音输入用户特征模型,即可得到讲话者的特征。
在训练RNN模型时,将训练用的语音处理后输入用户特征模型,即可得到讲话者的特征,将其标注到训练语音中,作为RNN模型的输入参数之一,使得训练得到的RNN模型能够根据输入的语音段的向量表示、语音所处的场景以及讲话者的特征,输出语音起始点和终点。
如图2所示,在步骤S4之前还包括:步骤S5,将所述待识别语音段输入所述用户特征模型,得到讲话者的特征。
相应地,步骤S4包括:将识别的所述当前场景、所述讲话者的特征和向量化后的待识别语音段输入预先构建的RNN模型,识别语音端点,其中,语音端点包括语音段的起始点、语音段的终点。
通过将讲话者的特征作为RNN模型的输入参数之一,可以有效降低外界的干扰,识别真正的讲话者的语音段,提高了语音端点检测的准确性。还可以根据讲话者的声音特征,在多人场景中实现对讲话者的追踪和定位,提高了多人场景的语音识别精度。
实施例二
在人机交互时,在复杂的场景中,机器人会获取到多个讲话者的声音,为了实现在多人同时发声的情形下识别的讲话者,在实施例一的基础上,本实施例提供的另一种适用于多人场景的语音端点检测方法,包括:
步骤S10,从获取的音频中检测指令词。
其中,获取的音频中可能会包含有多个人的声音。
其中,指令词需要根据具体情况预设,比如,在智能家居场景下,指令词可能包含:打开空调、调小音量、关闭台灯、开始放映等。具体执行过程中,当从用户语音中识别到上述指令词,则通过分析讲话者的特征跟踪讲话者的回复和反馈。
步骤S20,将所述指令词对应的音频段输入用户特征模型,得到所述指令词对应的讲话者的特征并存储。
其中,所述用户特征模型的构建方法参见前实施例一。
步骤S30,通过摄像头获取实时图像,识别所述实时图像中多个人的面部特征,结合所述讲话者的特征,找出当前的讲话者,并记录下当前的讲话者的面部特征。
其中,讲话者的特征为用户的年龄和性别。面部特征识别采用通用的人脸识别技术实现,可实现用户年龄和性别的估计。
步骤S40,通过所述摄像头获取新的图像,从图像中识别出与记录的所述讲话者的面部特征最相似的人脸,定位最相似人脸所处的空间位置。
这样,根据记录的讲话者的面部特征可以实现对讲话者的跟踪和定位。
其中,通过图像定位空间位置属于现有技术,在此不再赘述。
步骤S50,根据所述空间位置,结合声源定位技术获取所述讲话者的音频。针对获取的音频即可进行语音端点识别。
其中,声源定位技术采用现有方法实现,分为单麦克风方法和多麦克风方法。多麦克风方法为采用多个分布于不同位置的声音接收设备接收声音,通过比较声音接收采集的声音信号的强弱、先后,可以对声源进行定位,即可以获得用户(讲话者)所处的位置,能够区分不同位置的用户发出的声音,进行分别的采集。单麦克风方法采用一个声音接收设备获取空间内的多个声音,通过后期的算法对声音进行处理,处理方法为现有技术,在此不再赘述。
步骤S60,从讲话者的音频中检测出静音段、过度段和结束段。
步骤S70,将静音段和结束段输入预先构建的背景噪声模型,识别所述音频所属的当前场景。
其中,所述背景噪声模型的构建方法参见前实施例一。
步骤S80,将待识别语音段用向量表示,其中,待识别语音段为除去所述静音段、所述过度段和所述结束段的音频。
其中,将待识别语音段用向量表示的方法参见前实施例一。
步骤S90,将识别的所述当前场景和向量化后的待识别语音段输入预先构建的RNN模型,识别语音端点,其中,语音端点包括语音段的起始点、语音段的终点。
其中,RNN(recurrent neural network,递归神经网络)模型的构建方法参见前实施例一。
例如,在人机交互时,用户通过唤醒词唤醒机器人后,机器人可以通过对声源进行定位获得用户(讲话者)所处的位置,但当该位置有几个人在同时交谈时,机器人往往无法进行正确的拾音。基于本实施例的方法,机器人对唤醒词进行处理时可以获取到当前所处的场景,如果场景属于几个人同时交谈的时候,机器人通过将唤醒词对应的语音段输入模型可以估计出讲话者的年龄和性别,从而帮助机器人通过摄像头获取的图像判断讲话者(排除非讲话者)。经过上述处理后,机器人可以正确识别到当前的场景及讲话人,拾音后,将拾取的语音、当前场景作为RNN模型的输入,获得语音的端点,提高了多人发声的场景下,语音识别的准确性,并能够通过人脸识别技术对讲话者进行跟踪和定位,在多人环境下,实现人机之间的多轮次交互。
为了提高语音端点的检测精度,本实施例还可以识别音频中讲话者的特征,将讲话者的特征作为RNN模型的输入参数之一,提升RNN模型的判断的准确性。具体实施方法参考实施一相关部分。
实施例三
在人机交互时,在复杂的场景中,机器人会获取到多个讲话者的声音,为了实现在多人同时发声的情形下识别的讲话者,在实施例一的基础上,本实施例提供的另一种适用于多人场景的语音端点检测方法,包括:
步骤S100,从获取的音频中检测指令词。
其中,获取的音频中可能会包含有多个人的声音。
其中,指令词需要根据具体情况预设,比如,在智能家居场景下,指令词可能包含:打开空调、调小音量、关闭台灯、开始放映等。具体执行过程中,当从用户语音中识别到上述指令词,则通过分析讲话者的特征跟踪讲话者的回复和反馈。
步骤S200,将所述指令词对应的音频段输入用户特征模型,得到所述指令词对应的讲话者的特征并存储。
步骤S300,获取新的音频输入用户特征模型得到多个人的特征,识别与存储的所述讲话者的特征最相似的音频,通过声源定位技术获取所述讲话者后续的音频。
其中,所述用户特征模型的构建方法参见前实施例一。
其中,声源定位技术采用现有方法实现,分为单麦克风方法和多麦克风方法。多麦克风方法为采用多个分布于不同位置的声音接收设备接收声音,通过比较声音接收采集的声音信号的强弱、先后,可以对声源进行定位,即可以获得用户(讲话者)所处的位置,能够区分不同位置的用户发出的声音,进行分别的采集。单麦克风方法采用一个声音接收设备获取空间内的多个声音,通过后期的算法对声音进行处理,处理方法为现有技术,在此不再赘述。
步骤S400,从讲话者的音频中检测出静音段、过度段和结束段。
步骤S500,将静音段和结束段输入预先构建的背景噪声模型,识别所述音频所属的当前场景。
其中,所述背景噪声模型的构建方法参见前实施例一。
步骤S600,将待识别语音段用向量表示,其中,待识别语音段为除去所述静音段、所述过度段和所述结束段的音频。
其中,将待识别语音段用向量表示的方法参见前实施例一。
步骤S700,将识别的所述当前场景和向量化后的待识别语音段输入预先构建的RNN模型,识别语音端点,其中,语音端点包括语音段的起始点、语音段的终点。
其中,RNN(recurrent neural network,递归神经网络)模型的构建方法参见前实施例一。
例如,在人机交互时,用户通过唤醒词唤醒机器人后,机器人可以通过对声源进行定位获得用户(讲话者)所处的位置,但当该位置有几个人在同时交谈时,机器人往往无法进行正确的拾音。基于本实施例的方法,机器人对唤醒词进行处理时可以获取到当前所处的场景,如果场景属于几个人同时交谈的时候,机器人通过将唤醒词对应的语音段输入模型可以估计出讲话者的年龄和性别,从而帮助机器人通过摄像头获取的图像判断讲话者(排除非讲话者)。经过上述处理后,机器人可以正确识别到当前的场景及讲话人,拾音后,将拾取的语音、当前场景作为RNN模型的输入,获得语音的端点,提高了多人发声的场景下,语音识别的准确性,并能够通过讲话者声音的特征对讲话者进行跟踪和定位,在多人环境下,实现人机之间的多轮次交互。
为了提高语音端点的检测精度,本实施例还可以识别音频中讲话者的特征,将讲话者的特征作为RNN模型的输入参数之一,提升RNN模型的判断的准确性。具体实施方法参考实施一相关部分。
实施例四
基于与上述实施例相同的发明构思,本实施例提供了一种基于有监督机器学习的语音端点检测装置,如图3所示,包括:
分段检测模块,用于从获取的音频中检测出静音段、过度段和结束段;
场景识别模块,用于将静音段和结束段输入预先构建的背景噪声模型,识别所述音频所属的当前场景;
向量化模块,用于将待识别语音段用向量表示,其中,待识别语音段为除去所述静音段、所述过度段和所述结束段的音频;
语音端点识别模块,用于将识别的所述当前场景和向量化后的待识别音段输入预先构建的RNN模型,识别语音端点,其中,语音端点包括语音段的起始点、语音段的终点。
其中,所述分段检测模块具体用于:采用短时能量和过零率方法进行过渡段和静音段和结束段。
其中,所述背景噪声模型的构建方法包括:分析每个特定场景下的音频,得到每个特定场景下的背景噪音的特点,对特定场景下的背景噪音进行建模,得到背景噪声模型。
其中,所述RNN模型的构建方法包括:
收集大量的语音,标注每条所述语音的静音段、过渡段、有效语音段的起始点和终点、结束段,同时标记语音所处的场景;
对语音段进行分割采样,将分割得到的每个语音片段转化为相同维度的向量表示;
通过线性回归变换将所有的语音片段合成为一个向量,得到所述语音段的向量表示;
将所述语音段的向量表示、所述有效语音段的起始点和终点、语音所处的场景作为RNN的输入进行训练,获得可以根据输入语音输出语音起始点和终点的RNN模型。
优选地,如图4所示,还包括用户特征识别模块,用于:将所述待识别语音段输入所述用户特征模型,得到讲话者的特征。所述用户特征识别模块的输出端与所述语音端点识别模块的输入端连接。
相应的,所述语音端点识别模块用于:将识别的所述当前场景、所述讲话者的特征和向量化后的待识别语音段输入预先构建的RNN模型,识别语音端点,其中,语音端点包括语音段的起始点、语音段的终点。
优选地,还包括第一多人识别模块,用于:
从获取的音频中检测指令词;
将所述指令词对应的音频段输入用户特征模型,得到所述指令词对应的讲话者的特征并存储;
获取新的音频输入用户特征模型得到多个人的特征,识别与存储的所述讲话者的特征最相似的音频,通过声源定位技术获取所述讲话者后续的音频。
所述第一多人识别模块的输出端与所述分段检测模块的输入端连接。
优选地,还包括第二多人识别模块,用于:
从获取的音频中检测指令词;
将所述指令词对应的音频段输入用户特征模型,得到所述指令词对应的讲话者的特征并存储;
通过摄像头获取实时图像,识别所述实时图像中多个人的面部特征,结合所述讲话者的特征,找出当前的讲话者,并记录下当前的讲话者的面部特征;
通过所述摄像头获取新的图像,从图像中识别出与记录的所述讲话者的面部特征最相似的人脸,定位最相似人脸所处的空间位置;
根据所述空间位置,结合声源定位技术获取所述讲话者的音频。
所述第二多人识别模块的输出端与所述分段检测模块的输入端连接。
其中,所述用户特征模型的构建方法包括:
收集大量有效语音段,标注每条所述有效语音段中讲话者的特征;其中,特征包括:用户的年龄和性别;
并按照标注的特征将所述有效语音段进行分类;
对每一类中的有效语音段进行频域、时域统计,获得不同特征的用户语音包含的语音特性,建立可以根据有效语音段判断讲话者特征的用户特征模型。
本实施例提供的基于有监督机器学习的语音端点检测装置与上述基于有监督机器学习的语音端点检测方法出于相同的发明构思,具有相同的有益效果,此处不再赘述。
实施例五
基于与上述实施例一、二相同的发明构思,本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现实施例一、二中任一所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。