本发明涉及计算机领域,尤其涉及一种柜台语音监控方法、装置、计算机设备及存储介质。
背景技术
目前,柜台人员主要负责对外业务处理,当前通过人工柜台办理业务时通常对柜台人员进行视频监控。当柜台人员出现语言粗鲁、业务处理不及时或态度恶劣等问题时,通过视频监控无法了解发生的事情,可能会给公司带来损失,影响公司形象。从而未对柜台人员进行实时语音监控且未对语音数据中敏感词进行监控,会导致对意外事件处理不及时的问题。
技术实现要素:
本发明实施例提供一种柜台语音监控方法、装置、计算机设备及存储介质,以解决对柜台人员不能实时语音监控而导致处理不及时的问题。
一种柜台语音监控方法,包括:
通过麦克风阵列采集原始语音数据,每一所述原始语音数据对应一麦克风阵列标识和采集时间;
对所述原始语音数据进行数据预处理,获取目标语音数据;
采用mfcc算法对所述目标语音数据进行声纹特征提取,获取目标声纹特征;
采用预先训练的语音识别模型对所述目标声纹特征进行识别,获取与所述目标声纹特征对应的目标文字数据;
采用敏感词识别模型对所述目标文字数据进行识别,获取识别结果;
若所述识别结果为所述目标文字数据包含敏感词,则在所述目标文字数据中对所述敏感词进行突出处理,获取敏感文字数据;
基于所述麦克风阵列标识和所述采集时间查询值班安排表,获取对应的柜台人员信息;
将所述敏感文字数据和所述柜台人员信息关联存储在数据库中。
一种柜台语音监控装置,包括:
采集模块,用于通过麦克风阵列采集原始语音数据,每一所述原始语音数据对应一麦克风阵列标识和采集时间;
预处理模块,用于对所述原始语音数据进行数据预处理,获取目标语音数据;
声纹提取模块,用于采用mfcc算法对所述目标语音数据进行声纹特征提取,获取目标声纹特征;
语音识别模块,用于采用预先训练的语音识别模型对所述目标声纹特征进行识别,获取与所述目标声纹特征对应的目标文字数据;
敏感词识别模块,用于采用敏感词识别模型对所述目标文字数据进行识别,获取识别结果;
敏感文字数据获取模块,用于若所述识别结果为所述目标文字数据包含敏感词,则在所述目标文字数据中对所述敏感词进行突出处理,获取敏感文字数据;
柜台人员信息获取模块,用于基于所述麦克风阵列标识和所述采集时间查询值班安排表,获取对应的柜台人员信息;
存储模块,用于将所述敏感文字数据和所述柜台人员信息关联存储在数据库中。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述柜台语音监控方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述柜台语音监控方法的步骤。
上述柜台语音监控方法、装置、计算机设备及存储介质,该方法包括:通过麦克风阵列采集原始语音数据,以便后续根据原始语音数据获取对应的身份数据和目标文字数据。通过对原始语音数据进行数据预处理,获取目标语音数据,以实现增强原始语音数据,降低原始语音数据噪声。采用mfcc算法对目标语音数据进行声纹特征提取,提取声纹特征简单方便,且可快速获取到目标声纹特征。采用预先训练的语音识别模型对目标声纹特征进行识别,以快速获取目标文字数据。采用敏感词识别模型对目标文字数据进行识别,识别过程简单快速,且可快速获取识别结果。若识别结果为目标文字数据包含敏感词,则在目标文字数据中对敏感词进行突出处理,以实现快速获取到包含敏感词的敏感文字数据,提高识别效率。基于麦克风阵列标识和采集时间查询值班安排表,可快速获取对应的柜台人员信息,将敏感文字数据和柜台人员信息关联存储在数据库中,以实现对该柜台人员信息对应的敏感文字数据进行及时监控。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中柜台语音监控方法的一应用环境示意图;
图2是本发明一实施例中柜台语音监控方法的一流程图;
图3是本发明一实施例中柜台语音监控方法的一流程图;
图4是本发明一实施例中柜台语音监控方法的一流程图;
图5是本发明一实施例中柜台语音监控方法的一流程图;
图6是本发明一实施例中柜台语音监控方法的一流程图;
图7是本发明一实施例中柜台语音监控方法的一流程图;
图8是本发明一实施例中柜台语音监控装置的一原理框图;
图9是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的柜台语音监控方法,可应用在如图1的应用环境中。该柜台语音监控方法应用在柜台语音监控系统中,该柜台语音监控系统包括用户端和服务端。其中,用户端通过网络与服务端进行通信,该网络可以是有线网络或者无线网络,用户端将接收到的原始语音数据发送至服务端,服务端对原始语音数据实时转写成目标文字数据,并对目标文字数据进行识别,将包含敏感词的目标文字数据与柜台人员信息进行存储至数据库,以便后续根据数据库中数据对相应的柜台人员进行及时处理,以解决不能对柜台人员进行实时监控而导致处理不及时的问题。其中,服务端和用户端之间通过网络进行连接,其中,用户端可以为采集原始语音数据的语音采集设备,于本实施例中,该用户端为麦克风阵列。服务端可以用独立的服务端或者是多个服务端组成的服务端集群来实现。
在一实施例中,如图2所示,提供一种柜台语音监控方法,以该方法应用在图1中的服务端为例进行说明,包括如下步骤:
s10:通过麦克风阵列采集原始语音数据,每一原始语音数据对应一麦克风阵列标识和采集时间。
其中,麦克风阵列标识为预先设定的麦克风阵列对应的标识,通过麦克风阵列标识可查找到唯一的麦克风阵列。采集时间是指麦克风阵列开始采集原始语音数据的时间。
其中,原始语音数据是通过麦克风阵列实时采集的柜台人员的语音数据。麦克风阵列是将不同麦克风按某种方式放置在不同的空间位置上。该麦克风陈列在空间上接收语音数据,经过一定的处理过程,可以提取语音数据的相关特征信息,如幅度、频率和方向等。麦克风阵列按麦克风在空间位置的不同分布,会有如下的拓扑结构:线性阵列、圆形阵列和球形阵列等。每一麦克风阵列对应一麦克风阵列标识,麦克风阵列采集到的原始语音数据与麦克风阵列标识对应,并将麦克风阵列采集原始语音数据的采集时间与原始语音数据对应。例如,麦克风阵列标识为a,通过麦克风阵列a采集原始语音数据,将该原始语音数据与a进行对应,并将原始语音数据的采集时间与原始语音数据进行对应。
具体地,预先确定每一麦克风阵列所在的位置,对麦克风阵列所在的的位置进行固定,并确定每一麦克风阵列对应的麦克风阵列标识。用户端与服务端通信连接,通过麦克风阵列实时采集柜台人员的原始语音数据,并将原始语音数据与麦克风阵列标识和采集时间一一对应。
s20:对原始语音数据进行数据预处理,获取目标语音数据。
其中,目标语音数据是指对柜台人员的原始语音数据进行预处理后的语音数据。
具体地,通过麦克风阵列采集柜台人员的原始语音数据,由于声音在传播过程中会发生反射等,麦克风阵列采集到的原始语音数据不仅采集到直射部分,还可采集到反射部分,并且反射部分的原始语音数据会产生相关噪声等,需对原始语音数据进行数据预处理,以去除原始语音数据中的噪声,有助于提高后续识别的准确性。本实施例中可通过tdoa(timedifferenceofarrival,到达时间差)技术先对原始语音数据进行时延估计,再通过tdoa技术进行声源定位,最后通过滤波算法对原始语音数据进行滤波,以实现对原始语音数据进行数据预处理,得到目标语音数据。服务端通过对原始语音数据进行预处理,使得获得的目标语音数据更精准,以便后续对目标语音数据进行相应的操作。
其中,tdoa技术是一种无线定位技术,通过测量原始语音数据到达麦克风的时间,可以确定原始语音数据到麦克风阵列中每个麦克风的距离,利用原始语音数据到各个麦克风的距离,就能确定原始语音数据的空间坐标,但是绝对时间一般比较难测量,通过比较原始语音数据到达各个麦克风的时延差,就能作出以麦克风为焦点,距离差为长轴的双曲线,双曲线的交点就是原始语音数据的起源位置,即该原始语音数据的说话人所在位置。
s30:采用mfcc算法对目标语音数据进行声纹特征提取,获取目标声纹特征。
其中,目标声纹特征是指柜台人员的目标语音数据提取的声纹特征。本实施例中,该目标声纹特征具体为mfcc特征。
其中,mfcc(mel-scalefrequencycepstralcoefficients,梅尔倒谱系数)是在mel标度频率域提取出来的倒谱参数,mel标度描述了人耳频率的非线性特性,采用mfcc算法对目标语音数据进行声纹特征提取,获取到的mfcc特征即为目标声纹特征。本实施例中,对目标语音数据进行声纹特征提取,获取目标声纹特征,具体包括以下步骤:
(1)对目标语音数据进行预加重处理,获取预处理语音数据。其中,通过对目标语音数据进行预加重处理,能够消除发声过程中声带和嘴唇等造成的干扰,可以有效补偿待识别语音被压抑的高频部分,并且能够突显待识别语音高频的共振峰,加强待识别语音的信号幅度,有助于提取目标语音数据的特征。
(2)采用分帧和加窗的方式对预处理语音数据进行处理,获取语音帧。其中,采用分帧和加窗的方式对加重处理声纹样本进行处理,主要是为了避免相邻两帧的变化过大,通过采用分帧方式进行处理,能够将预处理语音数据分成若干段的语音数据,可以细分预处理语音数据,便于预处理语音数据特征的提取,并通过加窗的方式进行处理,使得分帧后的信号变得连续,每一帧表现出周期函数的特征,便于预处理语音数据特征,其中,可采用汉明窗和汉宁窗来进行处理。
(3)对语音帧进行静默音分离处理,获取目标语音帧。其中,对语音帧进行静默音分离处理,使得获取的目标语音帧为有效的语音帧,将无效的语音帧进行滤除,有效的语音帧为有采集到柜台人员的原始语音数据的语音帧,为后续提取目标语音数据的特征提供重要的技术基础。
(4)对目标语音帧进行声纹特征提取,获取目标声纹特征。其中,对目标语音帧进行声纹特征提取,获取目标声纹特征,主要是将目标语音中可分性强、稳定性高等特性的声学或语言特征进行提取,以便后续通过目标声纹特征进行语音识别处理。
s40:采用预先训练的语音识别模型对目标声纹特征进行识别,获取与目标声纹特征对应的目标文字数据。
其中,语音识别模型是预先训练的模型,目标文字数据是指对目标声纹特征进行语音识别获取到的文字数据。
具体地,服务端获取目标声纹特征,将目标声纹特征输入至预先训练好的语音识别模型中,通过语音识别模型可获取到与目标声纹特征对应的目标文字数据。其中,语音识别模型是由声学模型、音素字典和语言模型等组成。声学模型是通过对语音数据进行训练所获得,输入的是目标声纹特征,输出的是音素。音素字典是音素与字的映射关系库,输入的是音素,输出的是字。语言模型是通过对大量的文本信息进行训练获得,可得到字与字之间的相关联概率,输入的是单个的字,输出的是目标文字数据(即将最大概率词序列数据作为目标文字数据)。更具体地,通过将目标声纹特征输入至语音识别模型中的声学模型,获取与目标声纹特征对应的音素,将音素输入至语音识别模型中的音素字典,获取与音素对应的目标字,将目标字输入至语音识别模型中的语言模型,获取与目标字对应的目标文字数据。
s50:采用敏感词识别模型对目标文字数据进行识别,获取识别结果。
其中,敏感词识别模型是指预先构建的识别模型,可用来对目标文字数据进行敏感词识别。识别结果分为两种,一种是目标文字数据中包含敏感词,另一种是目标文字数据中不包括敏感词。
具体地,服务端中包含预先构建的敏感词识别模型。当服务端通过预先训练的语音识别模型获取到与目标声纹特征对应的目标文字后,则获取敏感词识别模型,并通过敏感词识别模型对目标文字数据进行识别。本实施例中,敏感词识别模型中包括至少一颗dfa树。其中,采用敏感词识别模型对目标文字数据进行识别,主要是将敏感词识别模型中的dfa树遍历目标文字数据,判断目标文字数据中是否包含与dfa树相同的路径的文字,若目标文字数据中包含与dfa相同的路径的文字,则获取的识别结果为该目标文字数据包含敏感词,若目标文字数据中不包含与dfa相同的路径,则获取到的识别结果为该目标文字数据不包含敏感词。通过敏感词识别模型对目标文字数据实时进行识别,可快速获取到识别结果,且处理速度较快,以便后续根据识别结果对柜台人员的行为进行处理。
进一步地,敏感词识别模型可根据不同的需求点构建不同的敏感词识别模型。其中,需求点是指对敏感词进行分类,而获得不同的需求点。例如,需求点为辱骂讽刺,可预先构建与辱骂讽刺相关的敏感词识别模型d;需求点为引导投诉,可预先构建与引导投诉相关的敏感词识别模型c;需求点为投诉升级,可预先构建与投诉升级相关的敏感词识别模型b;需求点为紧急情况,可预先构建与紧急情况相关的敏感词识别模型a。通过每一敏感词识别模型对目标文字数据进行识别,以获取识别结果,以便后续根据不同的敏感词识别模型识别出的敏感词,对应不同的处理方式。
s60:若识别结果为目标文字数据包含敏感词,则在目标文字数据中对敏感词进行突出处理,获取敏感文字数据。
其中,敏感文字数据是指目标文字数据中包含敏感词的的文字数据。具体地,当服务端获取到的识别结果判定目标文字数据包含敏感词时,在目标文字数据中对敏感词所在位置进行突出处理,如加粗、倾斜和标红等处理,获取敏感文字数据,以便从敏感文字数据中迅速确定敏感词,并根据敏感词进行相应地的处理。例如,敏感词识别模型中某一路径为“不要轻举妄动”,通过敏感词别模型与目标文字数据进行匹配,若目标文字数据与“不要轻举妄动”匹配成功,则识别结果中判定目标文字数据包含敏感词“不要轻举妄动”,将目标文字数据中“不要轻举妄动”进行突出显示,获取敏感文字数据。
进一步地,当识别结果为目标文字数据包含敏感词时,根据原始语音数据的采集时间,获取预设时间段内的包含敏感词的目标文字数据作为敏感文字数据,且将敏感词进行突出显示。例如,可获取包含敏感词的原始语音数据的采集时间,根据该采集时间的预设时间段内(可以是采集时间之后的预设时间段内,也可以采集时间之前的预设时间段内,或者采集时间之前和之后的预设时间段内)对应的原始语音数据所识别出的目标文字数据作为敏感文字数据,以便后续通过敏感文字数据判断敏感等级。例如,当识别结果为目标文字数据包含敏感词时,获取敏感词对应的实时采集时间,获取采集时间之前的与麦克风阵列标识对应的x分钟内的目标文字数据,将敏感词在目标文字数据中进行突出处理,以获取敏感文字数据。通过提取预设时间段包含敏感词的目标文字数据作为敏感文字数据,使得提取出的敏感文字数据为关键文字数据,可根据敏感文字数据中的敏感词进行相应的处理。
更进一步地,通过不同的敏感词识别模型对目标文字数据进行识别,以获取识别结果,不同的敏感词识别模型对应的敏感等级不同,根据敏感等级不同,在目标文字数据中突出处理方式可不同,敏感等级越高,则突出处理显示的的敏感词越显眼。例如,如步骤s50中,与紧急情况相关的敏感词识别模型a对应的敏感等级最高,敏感词识别模型a中敏感词一般与“救命”、“打劫”和“不要轻举妄动”等有关;其次,敏感词识别模型b对应的敏感等级小于敏感词识别模型a的敏感等级,但大于敏感词识别模型c对应的敏感等级,敏感词识别模型d对应的敏感等级最低,通过敏感词识别模型a、敏感词识别模型b、敏感词识别模型c和敏感词识别模型d对目标文字数据进行同时识别,以加快识别速度。当某一敏感词识别模型识别出目标文字数据包含敏感词,则根据该敏感词识别模型对应的敏感等级对敏感词进行突出处理,获取敏感文字数据。不同敏感词识别模型对应不同的敏感等级,且对应不同的突出处理,使得后续根据敏感词文字数据快速了解敏感等级,根据敏感等级决定处理先后顺序。
s70:基于麦克风阵列标识和采集时间查询值班安排表,获取对应的柜台人员信息。
其中,值班安排表是预先设定的每一柜台位置对应的柜台人员的安排表,例如,x年x月x日,麦克风阵列标识为1对应的柜台人员是001,麦克风阵列标识为2对应的柜台人员是002。
具体地,每一原始语音数据对应一麦克风阵列标识和采集时间,根据麦克风阵列标识和采集时间查找数据库中的值班安排表,获取与麦克风阵列标识和采集时间均对应的柜台人员,获取柜台人员信息。其柜台人员信息为柜台人员的身份证号或姓名。例如,某一原始语音数据对应的麦克风阵列标识为1,采集时间为x年x月1日,通过查询值班安排表,获取值班安排表中x年x月1日与麦克风阵列1相对应的柜台人员。本实施例中,通过查询值班安排表,可获取到与敏感文字数据对应的柜台人员信息,以便后续通过敏感文字数据可查找到相对应柜台人员信息,以便对相对应柜台人员进行处理。
s80:将敏感文字数据和柜台人员信息关联存储在数据库中。
具体地,服务端获取到敏感文字信息时,获取与敏感文字信息对应的柜台人员信息,将敏感文字数据与柜台人员信息进行对应,并关联存储在数据库中。进一步地,可根据预设时间,将敏感文字数据和柜台人员发送至预设接口(例如管理人员对应的用户端),以便基于该预设接口对该敏感文字数据进行及时处理。
进一步地,将敏感文字数据和柜台人员信息关联存储至数据库时,触发数据库中提醒开关,向预设接口发送提醒消息,预设接口根据提醒消息可获取到敏感文字信息和柜台人员信息,以实现对柜台人员进行实时监控,并实时提醒。
步骤s10-s80中,通过麦克风阵列采集原始语音数据,以便后续根据原始语音数据获取对应的身份数据和目标文字数据。通过对原始语音数据进行数据预处理,获取目标语音数据,以实现增强原始语音数据,降低原始语音数据噪声。采用mfcc算法对目标语音数据进行声纹特征提取,提取声纹特征简单方便,且可快速获取到目标声纹特征。采用预先训练的语音识别模型对目标声纹特征进行识别,以快速获取目标文字数据。采用敏感词识别模型对目标文字数据进行识别,识别过程简单快速,且可快速获取识别结果。若识别结果为目标文字数据包含敏感词,则在目标文字数据中对敏感词进行突出处理,以实现快速获取到包含敏感词的敏感文字数据,提高识别效率。基于麦克风阵列标识和采集时间查询值班安排表,可快速获取对应的柜台人员信息,将敏感文字数据和柜台人员信息关联存储在数据库中,以实现对该柜台人员信息对应的敏感文字数据进行及时监控。
在一实施例中,如图3所示,步骤s50之前,即在采用敏感词识别模型对目标文字数据进行识别,获取识别结果的步骤之前,柜台语音监控方法还具体包括如下步骤:
s51:获取敏感词表,敏感词表包括至少两个原始敏感词。
其中,敏感词表为预先制定的包含所有原始敏感词的表格。本实施例中,服务端预先设置不同需求点,第一需求点对应的原始敏感词不同。例如,需要点为投诉升级,则对应的原始敏感词可以为“媒体曝光”、“法院起诉”、“报警”和“银行监管”等。
具体地,服务端获取预先制定的敏感词表,敏感词表中包括至少两个原始敏感词,还包括至少一个需求点。服务端通过获取敏感词表,以便后续根据敏感词表构建敏感词识别模型,且预先构建敏感词表,可对敏感词表中获取到的原始敏感词进行过滤,以得到有效的原始敏感词,以便后续根据有效的原始敏感词构建的敏感词识别模型,使得构建的敏感词识别模型更为精准。
s52:根据原始敏感词的首字是否相同,将原始敏感词划分成不同的敏感词子集。
其中,敏感词词子集是指原始敏感词首字相同的集合。
具体地,服务端获取敏感词表中每一原始敏感词,判断原始敏感词首字是否相同,将原始敏感词首字相同的原始敏感词放入敏感词子集中,以便后续根据不同的敏感词子集建立不同的dfa树。其中,dfa树与多叉树相似,根节点为原始敏感词的首字,原始敏感词中的每一字作为dfa树的节点。
进一步地,不同需求点构建与需求点对应敏感词识别模型,获取每一需求点对应的原始敏感词,判断属于同一需求点的原始敏感词首字是否相同,将原始敏感词首字相同的原始敏感词放入与需求点对应的敏感词子集中,以便后续根据不同需求点的敏感词子集构建不同dfa树。
s53:采用dfa算法对每一敏感词子集中的原始敏感词进行处理,获取与敏感词子集相对应的dfa树,将dfa树作为敏感词子集对应的敏感词识别模型。
其中,dfa(deterministicfiniteautomaton,确定有穷自动机)算法是一种实现文字过滤的算法,通过敏感词表可构建一个类似多叉树的dfa树,当判断目标文字数据中是否包含敏感词时减少检索的匹配范围,提高敏感词识别效率。
具体地,通过dfa算法对每一敏感词子集中的原始敏感词进行处理,构建一颗以原始敏感词首字为根节点的dfa树,获取每一敏感词子集对应的dfa树,若原始敏感词首字不相同,则直接构建与该原始敏感词对应的dfa树,将dfa树作为敏感词子集对应的敏感词识别模型,获取每一dfa树,将每一dfa树作为敏感表对应的一敏感词识别模型。
进一步地,将每一需求点对应的所有dfa树作为与需求点对应的敏感词识别模型,例如,某一需求点对应4棵dfa树,将该4棵树作为与该需求点对应的敏感词识别模型。
步骤s51-s53中,获取敏感词表,敏感词表包括至少两个原始敏感词,以便后续根据敏感词表构建敏感词识别模型。根据原始敏感词的首字是否相同,将原始敏感词划分成不同的敏感词子集,以便后续根据敏感词子集构建dfa树。采用dfa算法对每一敏感词子集中的原始敏感词进行处理,获取与敏感词子集相对应的dfa树,将dfa树作为敏感词子集对应的敏感词识别模型,实现敏感词识别模型的构建,通过dfa算法构建敏感词识别模型,其算法简单,且识别速度较快,以便后续根据敏感词识别模型对目标文字数据进行识别,快速获取识别结果。
在一实施例中,如图4所示,步骤s53中,即采用dfa算法对每一敏感词子集中的原始敏感词进行处理,获取与敏感词子集相对应的dfa树,具体包括以下步骤:
s531:将敏感词子集中相同的首字作为根节点。
其中,根节点是指在当前节点之上无其他的节点。
具体地,服务端获取敏感词子集,将敏感词子集中原始敏感词的首字作为dfa树的根节点。例如,某一敏感词子集中包含的原始敏感词为“法院投诉”和“法院起诉”,将原始敏感词的首字“法”作为根节点。
s532:判断原始敏感词中根节点的下一文字是否相同,若相同,则将根节点的下一文字作为根节点的中间节点,若不相同,则判断根节点的下一文字是否为原始敏感词的尾字,若是,则将根节点的下一文字作为根节点的叶子节点。
其中,中间节点是指在当前节点之下还包括其他节点。叶子节点是指在当前节点之下无其他的节点。
具体地,服务端将原始敏感词的首字作为根节点,并判断每一原始敏感词的首字之后的下一文字是否相同。若相同,则将根节点的下一文字作为中间节点。例如,两个原始敏感词为“法院投诉”和“法院起诉”,原始敏感词的根节点之后的下一文字为“院”,下一文字相同,则将“院”作为根节点的中间节点。若不相同,则判断根节点的下一文字是否为原始敏感词的尾字,若是,则将根节点的下一文字作为根节点的叶子节点,若否,则基于根节点的下一文字构建一条路径。
s533:若否,迭代判断原始敏感词中中间节点的下一文字是否相同,若相同,则将中间节点的下一文字更新为新的中间节点,若不相同,则将中间节点的下一文字作为叶子节点,直至不存在新的中间节点,获取dfa树。
具体地,基于步骤s532,迭代判断原始敏感词中每一中间节点的下一文字是否相同,若相同,则将中间节点的下一文字更新为新的中间节点,直至不存在新的中间节点,将新的中间节点的下一文字作为叶子节点,若不相同,则将中间节点的下一文字作为叶子节点,获取dfa树。例如,两个原始敏感词为“不要轻举妄动”和“不许动”,判断根节点“不”的下一文字是否相同,若不相同,则判断“许”和“要”是否为原始敏感词的尾字,若不是,基于“许”和“要”构建路径,则将“许”和“动”作为一条路径,将该与原始敏感词的尾字作为叶子节点,即“许动”中“许作为根节点“不”的中间节点,“动”为叶子节点,以构建dfa树;将“要”、“轻”、“举”、“妄”和“动”作为一条路径,即“要轻举妄动”中“要”、“轻”、“举”、“妄”作为中间节点,“动”为叶子节点,以构建dfa树。其中,原始敏感词中的每一字作为dfa树的一节点。
步骤s531-s533中,将敏感词子集中相同的首字作为根节点,以实现基于首字相同的原始敏感词创建一颗dfa树。判断原始敏感词中根节点的下一文字是否相同,若相同,则将根节点的下一文字作为根节点的中间节点,减少后续匹配的路径,提高识别效率。若不相同,则判断根节点的下一文字是否为原始敏感词的尾字,若是,则将根节点的下一文字作为根节点的叶子节点,即构建完成一条路径,若否,迭代判断原始敏感词中中间节点的下一文字是否相同,若相同,则将中间节点的下一文字更新为新的中间节点,若不相同,则将中间节点的下一文字作为叶子节点,直至不存在新的中间节点,以实现构建完成一dfa树。
在一实施例中,麦克风阵列包括至少三个麦克风;麦克风阵列包括至少三个麦克风,麦克风阵列是由不同麦克风按照一定几何结构摆放而组成的整体结构,其中,麦克风阵列中各个麦克风的间距和具体的摆放位置对接收到的原始语音数据起着决定性的作用。
如图5所示,步骤s20中,对原始语音数据进行数据预处理,获取目标语音数据,具体包括如下步骤:
s21:采用gcc估计算法估计原始语音数据到达第一麦克风和第二麦克风的时延差。
其中,gcc估计算法(generalizedcrosscorrelation,即广义加权相关时延)估计算法,相关函数和功率谱密度函数是一对傅里叶变换对,在频域利用不同的加权函数对功率谱密度函数进行处理,从而实现原始语音数据的白化处理,即增强信噪比,具有很短的判决时延和较好的跟踪能力,适用于低混响环境,是tdoa技术中常用的估计算法。其中,白化处理是指将原始语音数据进行傅里叶变换,由时间域变到频率域;在有效的频率范围内进行分频率;对分频原始语音数据进行傅里叶反变换,由频率域变到时间域;对各时间域原始语音数据进行时变增益;最后将时变增益原始语音数据重新合成,获取白化处理后的原始语音数据,即获得目标语音数据。
具体地,预先通过gcc估计算法估计出各个麦克风间获取原始语音数据的时延差,主要是求出原始语音数据到达每一麦克风的互功率谱;在一定的频率内进行加权处理,白化处理原始语音数据和噪音,同时增强语音原始语音数据中信噪比的频率比重,进而抑制噪音的功率;最后反变换到时域得到广义互相关函数,使的互相关函数更加尖锐,提高时延估计的准确性,通过互相关函数获取原始语音数据到达麦克风的时延差。
s22:基于原始语音数据到达第一麦克风和第二麦克风的时延差,采用几何定位法获取原始语音数据的空间坐标。
具体地,服务端基于原始语音数据到达第一麦克风和第二麦克风的时延差,通过几何公式获取到原始语音数据的空间坐标。例如,获取原始语音数据到达麦克风1(第一麦克风)和麦克风2(第二麦克风)的时延差,通过几何公式获取到原始语音数据的空间坐标,其中,定位公式为||s-m1||-||s-m2||=τ12*v,s为原始语音数据的空间坐标,1和2为麦克风标识,m1为麦克风1的空间坐标,m2为麦克风2的空间坐标,τ12为原始语音数据到达麦克风1和麦克风2的时延差,v为声速。即通过定位公式求出s。采用几何定位方法实现定位,其算法简单,计算量小。
s23:基于原始语音数据的空间坐标,确定每一麦克风对应的权重,采用加权公式对原始语音数据进行加权处理,获取待滤波语音数据;其中,加权公式为
具体地,服务端基于计算得出的原始语音数据的空间坐标,获取每一麦克风对应的权重,其中,权重是依据原始语音数据的空间坐标与麦克风坐标间的距离进行确定的,若原始语音数据的空间坐标与麦克风的距离越近,则配置的权重越高。通过加权公式进行计算,加权公式为
s24:采用维纳滤波算法对待滤波语音数据进行滤波处理,获取目标语音数据。
其中,维纳滤波(wienerfiltering)一种基于最小均方误差准则,使得输出与期望输出之间的均方误差为最小的滤波器。维纳滤波器的输出与期望输出之间的均方误差为最小,因此,它是一个最佳滤波系统。
具体地,服务端获取到待滤波语音数据,采用维纳滤波算法对待滤波语音数据进行滤波,主要是通过维纳滤波算法提取被平稳噪声所污染的待滤波语音数据,从连续的或离散的待滤波语音数据中滤除噪声和干扰,以提取有用信息作为目标语音数据。
步骤s21-s24中,通过采用gcc估计算法估计原始语音数据到达每一麦克风的时延,以实现时延估计,以便后续根据时延计算距离差。基于原始语音数据到达每一麦克风的时延,采用几何定位法获取原始语音数据的空间坐标,以实现原始语音数据的空间坐标定位,以便后续根据空间坐标确定每一麦克风的权重。基于原始语音数据的空间坐标,确定每一麦克风对应的权重,采用加权公式对原始语音数据进行加权处理,获取待滤波语音数据,对接近空间坐标的麦克风配置高权重,使得获取的原始语音数据更加精准,以实现增强语音数据。采用维纳滤波算法对待滤波语音数据进行滤波处理,获取目标语音数据,以实现待滤波语音数据的滤波处理,使得目标语音数据中不掺杂噪声和干扰。
在一实施例中,如图6所示,步骤s21中,即采用gcc估计算法估计原始语音数据到达第一麦克风和第二麦克风的时延差,具体包括如下步骤:
s211:基于第一麦克风和第二麦克风,获取第一麦克风和第二麦克风的原始互相关函数。
具体地,预设麦克风阵列中包括至少三个麦克风,麦克风所采集到的原始语音数据为x1(t)=s(t-τ1)+n1(t),x2(t)=s(t-τ2)+n2(t),其中,1和2为麦克风标识,x1(t)和x2(t)分别为麦克风1(第一麦克风)和麦克风2(第二麦克风)对应的原语音数据,s(t)为预设麦克风所采集到的原始语音数据,τ1和τ2为原始语音数据到达麦克风1和麦克风2的时延差,n1(t)和n2(t)分别为麦克风1和麦克风2接收到的高斯白噪声,那么麦克风1和麦克风2的原始互相关函数为r12(τ)=e[x1(t)x2(t-τ)];化简为r12(τ)=e[s(t-τ1)s(t-τ1-τ)]=rss(τ-(τ1-τ2)),r12(τ)为原始互相关函数,通过原始互相关函数来描述麦克风1和麦克风2共同的特征。
s212:对原始互相关函数做傅里叶变换,获取互功率谱。
其中,傅里叶变换(fastfouriertransformation,简称fft),指利用计算机计算离散傅里叶变换的高效、快速计算方法的统称,简称fft。采用这种算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数越多,fft算法计算量的节省就越显著。
具体地,将原始互相关函数r12(τ)=e[s(t-τ1)s(t-τ1-τ)]=rss(τ-(τ1-τ2))进行傅里叶变换,获取互功率谱为
s213:对互功率谱进行加权处理,获取加权互功率谱,并对加权互功率谱做反傅里叶变换,获取目标互相关函数。
具体地,通过对互功率谱
s214:基于目标互相关函数,获取目标互相关函数的极大值,将极大值作为原始语音数据到达第一麦克风和第二麦克风的时延差。
具体地,服务端获取目标互相关函数
步骤s211-s214中,基于第一麦克风和第二麦克风,获取第一麦克风和第二麦克风的原始互相关函数,以实现通过原始互相关函数来描述麦克风和麦克风共同的特征。对原始互相关函数做傅里叶变换,获取互功率谱,以编后续根据互功率谱进行加权处理。对互功率谱进行加权处理,获取加权互功率谱,并对加权互功率谱做反傅里叶变换,获取目标互相关函数,以实现对原始语音数据进行白化处理信号和降低噪音,同时增强语音信号中信噪比的频率比重,进而抑制噪音的功率,使得互相关函数据中峰值更加尖锐。基于目标互相关函数,获取目标互相关函数的极大值,将极大值作为原始语音数据到达第一麦克风和第二麦克风的时延差,以实现根据互相关函数据中峰值确定时延差。
在一实施例中,步骤s212中,即基于原始语音数据到达第一麦克风和第二麦克风的时延差,采用几何定位法获取原始语音数据的空间坐标中,具体包括:原始语音数据到达第一麦克风和第二麦克风的时延差和每一麦克风的空间坐标,采用定位公式获取原始语音数据的空间坐标;其中,定位公式为||s-mi||-||s-mj||=τij*vi=1,...,n(j=1,...,n),s为原始语音数据的空间坐标,i和j为麦克风标识,mi为第i个麦克风的空间坐标,mj为第j个麦克风的空间坐标,τij为原始语音数据到达麦克风i和麦克风j的时延差,v为声速。
具体地,通过步骤s214可估算出原始语音数据到达第一麦克风和第二麦克风的时延差,获取每一麦克风的空间坐标。其中,在麦克风阵列中已固定麦克风几何结构和位置,当通过几何定位法进行定位时,麦克风阵列中包括至少三个麦克风,采用定位公式对原始语音数据的空间坐标进行定位,即求出定位公式||s-mi||-||s-mj||=τij*v,(i=1,...,n)(j=1,...,n)中的s,以获取到空间坐标。例如,麦克风阵列中包括麦克风1、麦克风2和麦克风3,其中,原始语音数据到达麦克风1和麦克风2的时延差为τ12,原始语音数据到达麦克风1和麦克风3的时延差为τ13,通过定位公式可得||s-m1||-||s-m2||=τ12*v和||s-m1||-||s-m3||=τ13*v,将预设原始语音数据的空间坐标和每一麦克风坐标导入公式中,可得
在一实施例中,语音识别模型包括声学模型、音素字典和语言模型。
如图7所示,步骤s40中,采用预先训练的语音识别模型对目标声纹特征进行识别,获取与目标声纹特征对应的目标文字数据,具体包括以下步骤:
s41:采用声学模型对目标声纹特征进行转换,获取音素数据。
具体地,服务端采用mfcc算法对目标语音数据进行声纹特征提取,获取目标声纹特征,其目标声纹特征可以为mfcc特征,假设声学特征为12维,n列的矩阵(即总帧数),则mfcc特征中包括12维n列矩阵,根据人耳的生理特性,将每一帧波形用12维的向量表示。其中,若干帧波形对应一个状态,每三个状态组合成一个音素,通过声学模型确定每帧波形对应的状态,并根据状态转换成音素数据。进一步地,声学模型由隐马尔可夫模型(hiddenmarkovmodel,hmm)对训练语音数据进行训练所获得的模型。其中,隐马尔可夫模型(hiddenmarkovmodel,hmm)是一种统计分析模型,用来描述一个含有隐含未知参数的马尔可夫过程,即从可观察的参数中确定该过程的隐含参数。
通过将目标声纹特征输入至声学模型中,通过声学模型中状态模型计算声学特征每一帧波形属于某一状态的概率,通过将最大概率作为目标状态,通过音素模型计算声学特征中每一状态属于某一音素的概率,将最大概率对应的音素作为目标音素,以实现将目标声纹特征转换为音素数据。
s42:根据音素字典中音素与字的映射关系,将音素数据转换为目标字。
其中,英语中单词的音标是由音素构成,常用的音素集是卡内基梅隆大学的一套由39个音素构成的英语音素集,汉语中用声母和韵母的组合(即拼音)作为汉语音素集。具体地,建立英语音素集与单词的映射关系,并建立汉语音素集与汉字的映射关系,以获取到音素字典,并根据音素字典将音素数据转换为目标字。
s43:采用语言模型将目标字转换为目标文字数据。
其中,语言模型是由n-gram对训练文字数据进行训练所获得的语言模型,n-gram模型利用上下文中相邻词间的搭配信息,在需要把连续无空格的目标字转换成词序列数据(即句子)时,可以计算出具有最大概率的句子,从而实现目标字与词序列数据间的自动转换,无需用户手动选择,避开了许多汉字对应一个相同的拼音的重码问题。
具体地,采用语言模型将目标字转换成目标文字数据,具体包括以下步骤:
(1)通过语言模型将目标字转换成m个词序列,其中,m为大于1的正整数。
其中,将获取到的目标字前后组合得到m个词序列。其中,词序列是指将目标字按照某种标准进行排列的序列。通过获取目标字进行组合,获取到不同的词序列,以便后续根据词序列获取到文字数据。
(2)基于m个词序列获取至少一个词序列数据,计算每个词序列数据的发生概率。
其中,词序列数据是指将m个词序列按照某种标准进行排列形成的数据,根据(1)中获取到的词序列数据,对每个词序列数据进行发生概率计算,得到m个词序列形成的词序列数据的发生概率。对词序列进行发生概率计算具体可使用马尔科夫假设理论公式进行计算,其马尔可夫公式为:
通过计算出每一词序列数据的发生概率,以便后续根据发生概率获取到目标词序列。
(3)从至少一个词序列数据的发生概率中,选取最大发生概率对应的词序列数据,作为目标词序列。
具体地,获取每个词序列数据的发生概率,选取最大的发生概率对应的作为有效发生概率,进而找到有效发生概率对应的词序列数据,将该词序列数据作为目标词序列。通过将最大发生概率对应的词序列数据作为目标词序列,从而使得选取的目标词序列更为接近当事人表达的含义,提高了转换文字的准确率。
(4)从语言模型中获取与目标词序列对应的文字,作为目标字对应的目标文字数据。
具体地,获取目标词序列,将目标词序列组成文字数据,并将文字数据作为目标字对应的目标文字数据。通过将目标词序列的文字数据作为目标字对应的目标文字数据,以获取到的目标文字数据更加准确。
步骤s41-s43中,采用声学模型对目标声纹特征进行转换,获取音素数据,通过将最匹配路径对应的音素作为目标音素,以便获取到的音素数据更加准确。根据音素字典中音素与字的映射关系,将音素数据转换为目标字,实现音素与字之间的转换。采用语言模型将目标字转换为目标文字数据,使得获取到的的目标文字数据更加接近用户端表达的含义。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种柜台语音监控装置,该柜台语音监控装置与上述实施例中柜台语音监控方法一一对应。如图8所示,该柜台语音监控装置包括采集模块10、预处理模块20、声纹提取模块30、语音识别模块40、敏感词识别模块50、敏感文字数据获取模块60、柜台人员信息获取模块70和存储模块80。
采集模块10,用于通过麦克风阵列采集原始语音数据,每一原始语音数据对应一麦克风阵列标识和采集时间。
预处理模块20,用于对原始语音数据进行数据预处理,获取目标语音数据。
声纹提取模块30,用于采用mfcc算法对目标语音数据进行声纹特征提取,获取目标声纹特征。
语音识别模块40,用于采用预先训练的语音识别模型对目标声纹特征进行识别,获取与目标声纹特征对应的目标文字数据。
敏感词识别模块50,用于采用敏感词识别模型对目标文字数据进行识别,获取识别结果。
敏感文字数据获取模块60,用于若识别结果为目标文字数据包含敏感词,则在目标文字数据中对敏感词进行突出处理,获取敏感文字数据。
柜台人员信息获取模块70,用于基于麦克风阵列标识和采集时间查询值班安排表,获取对应的柜台人员信息。
存储模块80,用于将敏感文字数据和柜台人员信息关联存储在数据库中。
在一实施例中,在敏感词识别模块50之前,柜台语音监控装置还包括敏感词表获取单元51、划分单元52和识别模型构建单元53。
敏感词表获取单元51,用于获取敏感词表,敏感词表包括至少两个原始敏感词。
划分单元52,用于根据原始敏感词的首字是否相同,将原始敏感词划分成不同的敏感词子集。
识别模型构建单元53,用于采用dfa算法对每一敏感词子集中的原始敏感词进行处理,获取与敏感词子集相对应的dfa树,将dfa树作为敏感词子集对应的敏感词识别模型。
在一实施例中,识别模型构建单元53包括根节点确定子单元531、第一构建子单元532和第二构建子单元533。
根节点确定子单元531,用于将敏感词子集中相同的首字作为根节点。
第一构建子单元532,用于判断原始敏感词中根节点的下一文字是否相同,若相同,则将根节点的下一文字作为根节点的中间节点;若不相同,则判断根节点的下一文字是否为原始敏感词的尾字,若是,则将根节点的下一文字作为根节点的叶子节点。
第二构建子单元533,用于若否,迭代判断原始敏感词中中间节点的下一文字是否相同,若相同,则将中间节点的下一文字更新为新的中间节点,若不相同,则将中间节点的下一文字作为叶子节点,直至不存在新的中间节点。
在一实施例中,麦克风阵列包括至少三个麦克风。预处理模块20包括时延差估计单元21、空间坐标获取单元22、加权处理单元23和滤波单元24。
时延差估计单元21,用于采用gcc估计算法估计原始语音数据到达第一麦克风和第二麦克风的时延差。
空间坐标获取单元22,用于基于原始语音数据到达第一麦克风和第二麦克风的时延差,采用几何定位法获取原始语音数据的空间坐标。
加权处理单元23,用于基于原始语音数据的空间坐标,确定每一麦克风对应的权重,采用加权公式对原始语音数据进行加权处理,获取待滤波语音数据;其中,加权公式为
滤波单元24,用于采用维纳滤波算法对待滤波语音数据进行滤波处理,获取目标语音数据。
在一实施例中,时延差估计单元21包括原始互相关函数获取子单元211、互功率谱获取子单元212、目标互相关函数获取子单元213和时延差获取子单元214。
原始互相关函数获取子单元211,用于基于第一麦克风和第二麦克风,获取第一麦克风和第二麦克风的原始互相关函数。
互功率谱获取子单元212,用于对原始互相关函数做傅里叶变换,获取互功率谱。
目标互相关函数获取子单元213,用于对互功率谱进行加权处理,获取加权互功率谱,并对加权互功率谱做反傅里叶变换,获取目标互相关函数。
时延差获取子单元214,用于基于目标互相关函数,获取目标互相关函数的极大值,将极大值作为原始语音数据到达第一麦克风和第二麦克风的时延差。
在一实施例中,空间坐标获取单元还包括:基于原始语音数据到达第一麦克风和第二麦克风的时延差和每一麦克风的空间坐标,采用定位公式获取原始语音数据的空间坐标;其中,定位公式为||s-mi||-||s-mj||=τij*vi=1,...,n(j=1,...,n),s为原始语音数据的空间坐标,i和j为麦克风标识,mi为第i个麦克风的空间坐标,mj为第j个麦克风的空间坐标,τij为原始语音数据到达麦克风i和麦克风j的时延差,v为声速。
在一实施例中,语音识别模型包括声学模型、音素字典和语言模型。语音识别模块40包括音素数据获取单元41、目标字获取单元42和目标文字数据获取单元43。
音素数据获取单元41,用于采用声学模型对目标声纹特征进行转换,获取音素数据。
目标字获取单元42,根据音素字典中音素与字的映射关系,将音素数据转换为目标字。
目标文字数据获取单元43,用于采用语言模型将目标字转换为目标文字数据。
关于柜台语音监控装置的具体限定可以参见上文中对于柜台语音监控方法的限定,在此不再赘述。上述柜台语音监控装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一实施例中,提供了一种计算机设备,该计算机设备可以是服务端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储身份数据和标准声纹特征等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种柜台语音监控方法。
在一实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中柜台语音监控方法的步骤,例如,图2所示的步骤s10至步骤s80。或者,处理器执行计算机程序时实现上述实施例中柜台语音监控装置中的各模块/单元/子单元的功能,例如,图8所示模块10至模块80的功能。为避免重复,此处不再赘述。
在一实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中柜台语音监控方法,或者,该计算机程序被处理器执行时实现上述装置中柜台语音监控的各模块/单元/子单元的功能。为避免重复,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。