通话状态检测方法、装置、计算机系统和介质与流程
本公开涉及计算机技术领域,更具体地,涉及一种通话状态检测方法、装置、计算机系统和介质。
背景技术:
在语音通话过程中,语音通话产品(例如手机)接收到来自网络侧的远端信号并经过扬声器播放后,在声学通路产生回声信号,回声信号和近端语音被麦克风采集后,会被传送至另一通话端。为了消除回声信号,现有技术采用声学回声消除技术,该技术的原理为:利用自适应滤波器模拟回声路径,得到估计的回声信号,从麦克风采集的近端信号中减去估计的回声信号,实现了回声消除。
在回声消除技术中,需要检测出麦克风采集的近端信号中是否存存在近端语音,如果存在近端语音,则为双端通话状态,会影响自适应滤波器系数的更新过程,导致滤波器系数发散。对于通话状态检测技术,现有技术中主要基于能量的检测方法以及基于双滤波的检测方法。
在实现本公开构思的过程中,发明人发现现有技术中至少存在如下问题:现有技术进行通话状态检测时,不易实现在线检测和在使用较小计算量的前提下保证检测结果的准确度。
技术实现要素:
有鉴于此,本公开提供了一种能在线检测和在使用较小计算量的前提下保证检测结果的准确度的通话状态检测方法、装置、计算机系统和介质。
本公开的一个方面提供了一种通话状态检测方法,可以包括如下操作,首先,获得语音信号,然后,获取所述语音信号的语音特征,所述语音特征包括基于听觉特性的特征,并且与消除所述语音信号中回声的算法解耦,接着,将所述语音特征输入通话模式识别模型,确定所述语音信号的通话状态为单端通话状态或双端通话状态。
根据本公开的实施例,语音特征为基于听觉特性的特征,且与消除所述语音信号中回声的算法解耦,因此,无需借助其他算法如回声抵消算法(acousticechocancellation,简称aec)来获得特征量的估计,可以在线获得输入参数,且检测结果准确。
根据本公开的实施例,所述语音特征可以包括以下至少一种:梅尔频率倒谱系数特征、幅度调制频谱特征、相对频谱转换的感知线性预测系数特征和滤波器组功率谱特征。这样便于基于这些语音特征确定当前语音信号中是否包括两个相关度较高的语音信息,基于信息的相关度确定语音信号的通话状态。
根据本公开的实施例,所述语音特征还可以进一步包括辅助特征,其中,所述辅助特征与所述消除所述语音信号中回声的算法耦合。这样有助于提升通话状态的判断结果的准确度。
根据本公开的实施例,所述通话模式识别模型的拓扑结构为具有第一指定个数层的神经网络,其中,所述通话模式识别模型的输入为语音信号的当前帧,以及以下至少一种:当前帧之前第二指定个数帧、当前帧之后第三指定个数帧。加入指定个数上下文的帧的输入信息来做增强,使神经网络能够利用前后帧之间的相关信息做通话状态做更好的区分。此外,因为神经网络具有很好的非线性的建模能力,所以这里采用基于听觉特性的特征可以利用神经网络的这种建模能力学习到更有区分性的特征。
根据本公开的实施例,所述通话模式识别模型的输出包括二值掩蔽,所述二值掩蔽包括多个频率点的通话状态,其中,所述多个频率点为一帧语音信号的频谱图中包括的多个频率点。这种方式可以将输出判断划分为更细的粒度,然后通过判断在一帧里面所有频率点的值,来判断该帧是属于单端通话状态还是属于双端通话状态。
根据本公开的实施例,所述方法还可以包括如下操作,在确定所述语音信号的通话状态为单端通话状态或双端通话状态之后,利用滤波器对所述语音信号执行消除声学回声,其中,如果确定所述语音信号为单端通话状态,则更新所述滤波器的参数。这样便于避免所述滤波器的参数发散,且能提升回声消除的效果。
根据本公开的实施例,所述更新滤波器的参数可以包括如下操作,一方面,如果所述滤波器采用基于频域的回声消除算法,则基于各频率点的通话状态确定是否更新滤波器的参数,由于频率点为频域相关参数,因此,可以直接基于各频率点的通话状态确定是否更新滤波器的参数,提升控制精细度。另一方面,如果所述滤波器采用基于时域的回声消除算法,则基于所述二值掩蔽包括的多个频率点的通话状态确定当前帧语音信号的通话状态,然后基于所述当前帧语音信号的通话状态确定是否更新滤波器的参数,其中,所述多个频率点具有相同或不同的权重。
根据本公开的实施例,所述通话模式识别模型还可以包括分类层,所述分类层的输出包括所述语音信号的通话状态,这样可以由通话模式识别模型直接给出识别结果,无需再借助其它手段基于二值掩蔽确定一帧语音信号的通话状态。
根据本公开的实施例,其中,训练所述通话模式识别模型可以包括如下操作,首先,输入训练数据,所述训练数据为具有通话状态标注信息的语音信号,然后,调整所述通话模式识别模型的参数使得所述通话模式识别模型的输出趋近于所述训练数据的通话状态标注信息,得到所述通话模式识别模型的参数。
本公开的另一个方面提供了一种通话状态检测装置,该装置可以包括信号获得模块、特征获取模块和状态确定模块,其中,所述信号获得模块用于获得语音信号,所述特征获取模块用于获取所述语音信号的语音特征,所述语音特征为基于听觉特性的特征,且与消除所述语音信号中回声的算法解耦,所述状态确定模块用于将所述语音特征输入通话模式识别模型,确定所述语音信号为单端通话状态或双端通话状态。
根据本公开的实施例,所述语音特征包括以下至少一种:梅尔频率倒谱系数特征、幅度调制频谱特征、相对频谱转换的感知线性预测系数特征和滤波器组功率谱特征。
根据本公开的实施例,所述语音特征还包括辅助特征,其中,所述辅助特征与所述消除所述语音信号中回声的算法耦合。
根据本公开的实施例,所述状态确定模块的输入包括语音信号的当前帧,以及以下至少一种:当前帧之前第二指定个数帧、当前帧之后第三指定个数帧。
根据本公开的实施例,所述通话模式识别模型的输出包括二值掩蔽,所述二值掩蔽包括多个频率点的通话状态,其中,所述多个频率点为一帧语音信号的频谱图中包括的多个频率点。
根据本公开的实施例,所述装置还可以包括回声消除模块和参数更新模块,其中,所述回声消除模块用于在确定所述语音信号的通话状态为单端通话状态或双端通话状态之后,利用滤波器对所述语音信号执行消除声学回声,所述参数更新模块用于如果确定所述语音信号为单端通话状态,则更新所述滤波器的参数。
根据本公开的实施例,所述参数更新模块包括第一更新单元和第二更新单元,其中,所述第一更新单元用于如果所述滤波器采用基于频域的回声消除算法,则基于各频率点的通话状态确定是否更新滤波器的参数,所述第二更新单元用于如果所述滤波器采用基于时域的回声消除算法,则基于所述二值掩蔽包括的多个频率点的通话状态确定当前帧语音信号的通话状态,然后基于所述当前帧语音信号的通话状态确定是否更新滤波器的参数,其中,所述多个频率点具有相同或不同的权重。
根据本公开的实施例,所述通话模式识别模型还包括分类层,所述分类层的输出包括所述语音信号的通话状态。
根据本公开的实施例,所述装置还可以包括训练模块,该训练模块用于训练所述通话模式识别模型,可以包括输入单元和参数获取单元,其中,所述输入单元用于输入训练数据,所述训练数据为具有通话状态标注信息的语音信号,所述参数获取单元用于调整所述通话模式识别模型的参数使得所述通话模式识别模型的输出趋近于所述训练数据的通话状态标注信息,得到所述通话模式识别模型的参数。
本公开的另一个方面提供了一种计算机系统,包括一个或多个处理器以及存储装置,其中,所述存储装置用于存储可执行指令,所述可执行指令在被所述处理器执行时,实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1a示意性示出了根据本公开实施例的通话状态检测方法、装置、计算机系统和介质的应用场景;
图1b示意性示出了根据本公开实施例的适用于通话状态检测方法的系统架构图
图2示意性示出了根据本公开实施例的通话状态检测方法的流程图;
图3a示意性示出了根据本公开实施例的特征提取的示意图;
图3b示意性示出了根据本公开实施例的二值掩蔽的示意图;
图3c示意性示出了根据本公开另一实施例的通话状态检测方法的流程图;
图4示意性示出了根据本公开实施例的通话状态确定过程示意图;
图5示意性示出了根据本公开实施例的通话状态检测装置的框图;以及
图6示意性示出了根据本公开实施例的计算机系统的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。
图1a示意性示出了根据本公开实施例的通话状态检测方法、装置、计算机系统和介质的应用场景。
如图1a所示,用户10和用户20之间在进行通话,双方通话过程中,通话状态可以为单端通话状态或双端通话状态,其中,单端通话状态为一方说话,另一方听,双端通话状态为双方同时在说。如图1a所示,用户10说“下班去哪玩?”接着又说“你想去哪?”,用户20在听到用户10的提问“下班去哪玩”后就进行回复“你有没有好推荐?”,这就导致用户10的语音“你想去哪?”与用户20的语音“你有没有好推荐?”中至少部分同时发音,使得通话状态为双端通话状态。在利用滤波器对用户10和用户20的语音信号执行消除声学回声时,如果在双端通话状态下更新所述滤波器的参数,会导致滤波器的参数发散,降低声学回声的消除效果。
需要说明的是,除了上述两个用户通话的场景外,还可以适用于多人通话的场景,此外,远程会议中同样涉及到声学回声消除。因此,需要进行声学回声消除的场景通常都适用。
声学回声的存在会严重影响通话过程,甚至使通话过程无法正常的进行下去。所以在涉及通话的过程中,都会对声学回声进行消除。通话状态检测作为声学回声技术中的关键因素,检测的准确度会在很大的程序上决定声学回声消除的好坏。声学回声消除技术可以采用基于维纳滤波原理的最小均方(lms)簇算法来进行处理,在双端通话状态时,会影响算法滤波器系数的更新过程,导致滤波器系数发散。一般针对这种情况的解决方式是检测当前是否处于双端通话状态下,如果是,则停止滤波器系数的更新,如果不是,则更新滤波器参数,保证回声消除算法的快速收敛与实时更新。
现有的通话状态检测中的算法大致可以分为以下几类。
第一类,基于能量检测的geigel算法,这种算法计算量小,但是检测结果不够准确。
第二类,基于正交原理的通话状态检测算法。该类算法没有区分双端通话状态和回声路径变化,只是把自适应滤波器是否收敛作为滤波器系数更新的依据,导致滤波器系数更新的时机把握不准确。
第三类,基于互相关的通话状态检测算法。在滤波器收敛时具有比较高的判断准确率,但是对于多变的声学环境,检测性能无法得到保证。
第四类,基于高斯混合模型(gmm)的频域互相关的通话状态检测算法。该算法相比于基于互相关的时域双端讲话检测算法,可以显著的降低错误概率。但是这种算法需要借助如aec算法来获得特征量的估计,不能在线的获得输入参数。
通话状态检测从模式识别的角度来讲就是一个二分类的问题,不过需要考虑环境的多变性带来的影响以及非平稳信号的差异性所带来的影响。不过从本质上讲,通话状态检测就是需要判断当前信号所处于的状态是单端通话状态还是双端通话状态,从而去指导回声抵消算法是否选择更新滤波器的参数。
本公开的实施例提供了一种通话状态检测方法。该方法包括特征提取过程和模式识别过程。在特征提取过程中,获取所述语音信号的语音特征,所述语音特征包括基于听觉特性的特征,并且与消除所述语音信号中回声的算法解耦。在完成特征提取过程之后,进入模式识别过程,将所述语音特征输入通话模式识别模型,确定所述语音信号的通话状态为单端通话状态或双端通话状态。通过采用基于心理听觉特性的特征作为输入,可以在保证较高准确性的前提下避免借助使用其他的辅助算法来获得相应的特征估计,因而,可以准确的在线检测通话状态。
图1b示意性示出了根据本公开实施例的适用于通话状态检测方法的系统架构图。需要注意的是,图1b所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1b所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104进行语音交互。此外,终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有电话拨打功能的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机、智能手表、智能眼镜、智能音箱等等。
服务器105可以是提供各种服务的服务器,例如在用户使用的终端设备101与拨叫的终端设备102之间建立链路。又例如,对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的通话状态检测方法一般可以由终端设备执行。相应地,本公开实施例所提供的通话状态检测装置一般可以设置于终端设备中。
应该理解,终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2示意性示出了根据本公开实施例的通话状态检测方法的流程图。
如图2所示,该方法包括操作s201~操作s205。
在操作s201,获得语音信号。
在本实施例中,可以通过麦克风获取用户发出的语音信号,其中,麦克风获取的语音信号中可能包括回声信号和噪声信号,该回声信息可以是近端电子设备的麦克风接收到的近端电子设备的喇叭发出的回声的语音信号,该回声的语音信号是由远端电子设备发送给近端电子设备的。此外,回声信号也可以是因近端电子设备的电路失配而反弹的语音信号的电学信号。
在操作s203,获取所述语音信号的语音特征,所述语音特征包括基于听觉特性的特征,并且与消除所述语音信号中回声的算法解耦
在本实施例中,所述语音特征可以包括以下至少一种:梅尔频率倒谱系数(mel-scalefrequencycepstralcoefficients,简称mfcc)特征、幅度调制频谱(ams)特征、相对频谱转换的感知线性预测系数(rasta-plp)特征和滤波器组功率谱(gf)特征。
其中,mfcc特征是在mel标度频率域提取出来的倒谱参数特征,不依赖于信号的性质,对输入信号不做任何的假设和限制,又利用了听觉模型的研究成果,具有更好的鲁棒性,更符合人耳的听觉特征,而且当信噪比降低时仍然具有较好的识别性能。mfcc特征、ams特征、rasta-plp特征和gf特征都是基于心理听觉特性的特征,可以较好的模拟人耳对声音的感知能力,可以用来表征语音信号中是否包括两种不同的发声特点的信号。在单端通话状态和双端通话状态时,例如心理听觉特性的特征(以及一阶delta特征)和基于相关性的特征在频谱图中的能量分布相关性(介于0和1之间)是不一样的,mfcc特征可以为如40维(13阶mfcc特征以及一阶和二阶delta特征,再加一维能量特征)。基于心理听觉特性的特征是一种基于人耳的心理听觉特性,能量高的信号对能量低的信号具有一定的掩蔽作用,可以利用这种掩蔽作用得到在不同讲话状态下的频率点的掩蔽信息,该掩蔽信息可以用于确定当前语音信号的通话状态。
在通话状态检测过程中,一种相关技术在于通过分析对状态判定有效的区分特性,并选择相应的特征量作为输入,通过能量或者相关性分析等方法来进行判定。在这种方法中,通常采用的特征提取方法是借助于回声抵消算法,通过回声抵消算法的自适应过程,获得在时频变换中相应参数的值。由于通话状态检测的算法的准确度又会在一定程度上影响回声抵消算法的性能,所以回声抵消算法和通话状态检测算法存在着相互影响和相互制约的作用,即,该相关技术中提取的特征与回收抵消算法是相互耦合的。本公开的实施例采用的上述四种声学特征中任意一种可以消除由于其他辅助算法带来的这种相互影响和相互制约,即,本公开的语音特征与回收抵消算法是解耦的。
在另一个实施例中,所述语音特征还可以包括辅助特征。其中,所述辅助特征与所述消除所述语音信号中回声的算法耦合。即,辅助特征是由辅助函数回声抵消算法估计的相关函数。除了上述四种特征以外,还可以加入辅助特征,其依赖于回声抵消算法的互相关函数特征,可以加强神经网络的建模能力。
图3a示意性示出了根据本公开实施例的特征提取的示意图。
如图3a所示,对接收的语音信号进行特征提取,可以得到该语音信号的mfcc特征、ams特征、rasta-plp特征和gf特征,此外,还可以基于aec算法来获得特征量的估计,得到辅助特征。以mfcc特征为例进行说明,mfcc特征提取过程可以包括:预加重、分帧、加窗、时频变换、梅尔滤波器组件过滤信号、能量值取对数(log)、离散余弦变换和差分这几个步骤。
此外,语音特征还可以包括声纹特征等。例如,每个人都具有独特的声纹特征,因此,可以实现基于声纹特征进行身份认证。虽然回声的声纹特征与用户直接发出的语音信号的声纹特征之间可能存在一定差异,但是,这种差异通常是可耐受的。例如,语音信号中如果只存在两个相似度超过第一预设阈值的稳定性强的声纹特征时,则可以认为当前处于单端通话状态,且其中一个语音信号为回声信号。又例如,语音信号中如果存在相似度小于第二预设阈值的两个声纹特征时,则这两个语音信号可能分别属于不同的说话人,则当前可能处于双端通话状态,第二预设阈值小于第一预设阈值。例如,第一阈值可以为90%、95%、98%、99%等。
另外,所述语音特征还可以包括声学特征,所述声学特征包括以下至少一种:语音段(如指定个数帧语音信号、两次停顿之间的一帧或多帧语音信号)的信噪比、语音段的平均音量大小、语音段与主麦克风的关系夹角,其中,关系夹角是指语音段所属声源与主麦克风之间连线与水平线之间的夹角。其中,用户语音与回声的平均音量大小、信噪比存在明显的不同,不同用户的声源与主麦克风连线与水平线之间的夹角也通常不同,如图1a所示,两个用户的关系夹角相差很明显,可以用于确定当前是否存在两个声源,如果是,则有助于确定当前为双端通话状态。通过以上声学特征的选取,可以保证在线检测和尽量小的计算量的前提下,有效地提升通话状态的识别结果的准确度。
在其它实施例中,在获取了所述语音信号的语音特征之后,还可以基于所述语音特征获取语义特征,所述语义特征包括语义完整度。例如,从当前语音段(如两次停顿之间的多个语音帧或指定时长内的多个语音帧,该指定时长为用户能表达出一个完整语义所用时长的标定值)中提取所述语音特征,并根据当前语音段对应的语义理解结果确定当前语音段是否具有完整的语义。其中,语义特征的获取可以基于文法规则的语义理解、基于本体知识库的语义理解、基于模型的语义理解等,在此不做限定,当处于双端通话状态时,至少两个用户在进行语音表达,语音信号中会混杂不同的语义,因此无法解析出完整的语义。需要说明的是,语义特征仅为一个辅助确定当前通话状态的特征,需要配合语音特征来确定当前的通话状态,例如,语义特征的权重可以设置的比语音特征的权重小。
在操作s205,将所述语音特征输入通话模式识别模型,确定所述语音信号的通话状态为单端通话状态或双端通话状态。
在本实施例中,所述通话模式识别模型包括但不限于:回归分析、决策树、人工神经网络、贝叶斯网络、支持向量机等中至少一种。人工神经网络可以为深度神经网络(dnn)。
以下以神经网络为例进行说明。所述通话模式识别模型的拓扑结构为具有第一指定个数层的神经网络。
可选地,所述通话模式识别模型的输入为语音信号的当前帧的语音特征,以及以下至少一种:当前帧之前第二指定个数帧、当前帧之后第三指定个数帧的语音特征。例如,第一指定个数包括:3、4、5、7、9、15、20等中任意一种,第二指定个数可以和第三指定个数相同或不同,第二指定个数包括:0、1、2、3、5、7、10、15、20等,第二指定个数可以是根据经验设定的,也可以是依据一定规则标定的,如能表征前后帧之间的相关关系所需的帧数、表达一个完整语义所需的帧数等。
所述通话模式识别模型的输出包括二值掩蔽,所述二值掩蔽包括多个频率点的通话状态,其中,所述多个频率点为一帧语音信号的频谱图中包括的多个频率点。
在一个具体实施例中,可以采用5层的神经网络结构,加入前后5帧的输入信息来做增强,使得神经网络能够利用前后帧之间的相关信息更准确地确定通话状态。因为神经网络具有很好的非线性的建模能力,所以这里采用基于听觉特性的特征可以利用神经网络的这种建模能力学习到更有区分性的特征。
图3b示意性示出了根据本公开实施例的二值掩蔽的示意图。
如图3b所示,本公开选取的通话模式识别模型的输出是选用的理想二值掩蔽。将一帧信号经过短时傅里叶变换到频域,如图3b所示,在每一个频率区间(frequencybin)里面判断该频率点是属于单端通话状态(s=0)还是属于双端通话状态(d=1),这种方式可以将输出粒度划分为更细的粒度,然后通过判断在一帧里面所有频率点的值,来判断该帧是属于单端通话状态还是属于双端通话状态。其中,语音信号的原始数据经过快速傅里叶变换(fft)后得到的频谱图中,频率轴的频率间隔或分辨率,通常取决于采样率和采样点,frequencybin为采样率与采样点数相除的结果。如图3b所示,处于双端通话状态的频率点比处于单端通话状态的频率点多,因此,当前语音帧为双端通话状态。
在另一个实施例中,所述通话模式识别模型还包括分类层,所述分类层的输出包括所述语音信号的通话状态。参考图3b所示,分类层可以为一个全连接层,直接基于每个频率点的权重对二值掩蔽的输出进行加权求和、归一化等,确定所述语音信号的通话状态。
训练所述通话模式识别模型可以包括如下操作,首先,输入训练数据的语音特征,所述训练数据为具有通话状态标注信息的语音信号,然后,调整所述通话模式识别模型的参数使得所述通话模式识别模型的输出趋近于所述训练数据的通话状态标注信息,得到所述通话模式识别模型的参数。
需要说明的是,通话模式识别模型的输入还可以包括参考信号的语音特征,该参考信号是对扬声器输出的声音进行回采得到的参考信号,可以包括音乐信号等。
当然,本公开的实施例还可以利用滤波器对所述语音信号执行消除声学回声,期间,在确定所述语音信号的通话状态之后,还可以基于通话状态确定是否更新所述滤波器的参数。
图3c示意性示出了根据本公开另一实施例的通话状态检测方法的流程图。
如图3c所示,所述方法还可以包括操作s301。
在操作s301,在确定所述语音信号的通话状态为单端通话状态或双端通话状态之后,利用滤波器对所述语音信号执行消除声学回声。其中,如果确定所述语音信号为单端通话状态,则更新所述滤波器的参数。
在本实施例中,利用滤波器对所述语音信号执行消除声学回声的方法可以同现有技术,在此不做详述。为了保证滤波器系数在更新后不会发散,以保证滤波器的快速收敛和实时更新,需要确保所述语音信号的通话状态处于单端通话状态。如果所述语音信号的通话状态处于双端通话状态,则需要停止更新所述滤波器的参数。
在一个具体实施例中,所述更新滤波器的参数可以包括如下操作。
一方面,如果所述滤波器采用基于频域的回声消除算法,则基于各频率点的通话状态确定是否更新滤波器的参数。由于频率点是基于频域的信息,因此,可以基于各频率点的通话状态确定基于频域的回声消除算法的滤波器是否更新滤波器的参数。
另一方面,如果所述滤波器采用基于时域的回声消除算法,则基于所述二值掩蔽包括的多个频率点的通话状态确定当前帧语音信号的通话状态,然后基于所述当前帧语音信号的通话状态确定是否更新滤波器的参数,其中,所述多个频率点具有相同或不同的权重。当滤波器采用基于时域的回声消除算法时,则需要将频域信号转为时域信号,以便于对时域信号采用基于时域的回声消除算法进行回声消除。如采用dnn拓扑结构的通话模式识别模型,可以基于一帧中包括的多个频率点中,统计对应单端通话状态的频率点多,还是对应双端通话状态的频率点多,基于此确定当前帧的通话状态,如对应单端通话状态的频率点多于对应双端通话状态的频率点,则当前帧的通话状态为单端通话状态,可以更新滤波器的参数。此外,可以赋予不同频带不同的权重,如低频带包括的可以用于确定通话状态的信息更多,因此,可以给低频带设置更高的权重,一个频带可以包括多个频率点,同一个频带内的频率点的权重相同。这样就可以得到与频带的权重相关的一帧语音信号的通话状态,有助于提升确定的语音信号的通话状态的准确度。
图4示意性示出了根据本公开实施例的通话状态确定过程示意图。
如图4所示,本公开提供的通话状态检测方法包括模型训练阶段和检测阶段。其中,在模型训练阶段,先针对所选取的语音特征训练一个对通话状态有比较高区分性的神经网络,如从训练数据库中获取具有通话状态标注信息的语音信号,对语音信号进行特征提取,得到语音特征,然后,将语音信号的语音特征和所述语音信号对应参考信号的语音特征输入通话模式识别模型使得通话模式识别模型的输出趋近于所述语音信号的通话状态标注信息,以对通话模式识别模型进行模型训练,得到模型参数。在检测阶段,利用训练好的神经网络对一帧输入的语音信号做一个通话状态判断。具体地,对接收的一帧语音信号进行特征提取,得到所述一帧语音信号的语音特征,将所述一帧语音信号的语音特征和所述一帧语音信号对应参考信号的语音特征进行拼接后输入训练好的通话模式识别模型中,得到该一帧语音信号的通话状态或者该一帧语音信号中各频率点的通话状态。这样便于基于通话状态确定当前是否更新用于消除回声的滤波器的参数。其中,参考信号的作用就是给出更多信息来判断当前是处于哪种通话状态。例如,音箱播放音乐的时候,用户对音箱发出语音信号,此时,麦克风接收到的语音信号中包括经过房间卷积后的音乐信号和用户的语音信号等,此时,所述参考信号可以包括音箱当前播放的音乐信号,该音乐信号可以在音箱播放音乐的同时,对音箱播放的信号(如音箱当前接收到的待播放信号)进行回采得到的。又例如,音箱播放的音乐中除了乐器声音外,还包括了歌手的语音信号,则歌手的语音信号和用户的语音信号混在一起时,不利于确定当前的通话状态,可能会造成通话状态误判。此时,可以将基于回采得到参考信号的语音特征和麦克风采集得到语音信号的语音特征输入通话模式识别模型,确定当前通话状态,这样可以通过提升语音信号的鲁棒性来提升确定通话状态的准确度。
图5示意性示出了根据本公开实施例的通话状态检测装置的框图。
如图5所示,通话状态检测装置500包括信号获得模块510、特征获取模块530和状态确定模块550。
其中,所述信号获得模块510用于获得语音信号。
所述特征获取模块530用于获取所述语音信号的语音特征,所述语音特征为基于听觉特性的特征,且与消除所述语音信号中回声的算法解耦。
所述状态确定模块550用于将所述语音特征输入通话模式识别模型,确定所述语音信号为单端通话状态或双端通话状态。
在一个实施例中,所述语音特征包括以下至少一种:梅尔频率倒谱系数特征、幅度调制频谱特征、相对频谱转换的感知线性预测系数特征和滤波器组功率谱特征。
在另一个实施例,所述语音特征还可以包括辅助特征,其中,所述辅助特征与所述消除所述语音信号中回声的算法耦合。
此外,所述语音特征还可以进一步包括升学特征、声纹特征等能帮助确定当前发声源的个数和说话人个数的特征。具体可以参考方法中相关部分的说明。
其中,所述状态确定模块的输入包括语音信号的当前帧,以及以下至少一种:当前帧之前第二指定个数帧、当前帧之后第三指定个数帧。
所述通话模式识别模型的输出可以包括二值掩蔽,所述二值掩蔽包括多个频率点的通话状态,其中,所述多个频率点为一帧语音信号的频谱图中包括的多个频率点。
此外,所述装置500还可以包括回声消除模块570和参数更新模块590。
所述回声消除模块570用于在确定所述语音信号的通话状态为单端通话状态或双端通话状态之后,利用滤波器对所述语音信号执行消除声学回声。
所述参数更新模块590用于如果确定所述语音信号为单端通话状态,则更新所述滤波器的参数。
在一个具体实施例中,所述参数更新模块590包括第一更新单元和第二更新单元。
所述第一更新单元用于如果所述滤波器采用基于频域的回声消除算法,则基于各频率点的通话状态确定是否更新滤波器的参数。
所述第二更新单元用于如果所述滤波器采用基于时域的回声消除算法,则基于所述二值掩蔽包括的多个频率点的通话状态确定当前帧语音信号的通话状态,然后基于所述当前帧语音信号的通话状态确定是否更新滤波器的参数,其中,所述多个频率点具有相同或不同的权重。
另外,所述通话模式识别模型还可以包括分类层,所述分类层的输出包括所述语音信号的通话状态。
进一步地,所述装置500还可以包括训练模块。
该训练模块用于训练所述通话模式识别模型,可以包括输入单元和参数获取单元。
其中,所述输入单元用于输入训练数据,所述训练数据为具有通话状态标注信息的语音信号。
所述参数获取单元用于调整所述通话模式识别模型的参数使得所述通话模式识别模型的输出趋近于所述训练数据的通话状态标注信息,得到所述通话模式识别模型的参数。
根据本公开的实施例的模块、单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,信号获得模块510、特征获取模块530和状态确定模块550中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,信号获得模块510、特征获取模块530和状态确定模块550中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,信号获得模块510、特征获取模块530和状态确定模块550中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的计算机系统的方框图。图6示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,根据本公开实施例的计算机系统600包括处理器601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在ram603中,存储有系统600操作所需的各种程序和数据。处理器601、rom602以及ram603通过总线604彼此相连。处理器601通过执行rom602和/或ram603中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom602和ram603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,系统600还可以包括输入/输出(i/o)接口605,输入/输出(i/o)接口605也连接至总线604。系统600还可以包括连接至i/o接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器601执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom602和/或ram603和/或rom602和ram603以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除