识别声纹的方法及设备转让专利

申请号 : CN201710434570.5

文献号 : CN107610708B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王健宗罗剑郭卉肖京

申请人 : 平安科技(深圳)有限公司

摘要 :

本发明适用于互联网技术领域,提供了一种识别声纹的方法及设备,该方法包括:建立并训练通用识别模型,所述通用识别模型用于表示预设通信媒介下语音特征的分布;获取所述预设通信媒介下的语音数据;根据所述语音数据构建对应的所述声纹向量;根据所述通用识别模型确定所述声纹向量对应的所述声纹特征。本发明通过构建和训练通用识别模型对语音数据进行处理,得到对应的声纹向量,从而确定声纹特征,并根据声纹特征识别发出声音的人,由于通用识别模型不限制声音的内容,因此使本声纹识别的使用比较灵活,增多了声纹识别的使用场景。

权利要求 :

1.一种识别声纹的方法,其特征在于,包括:建立并训练通用识别模型,所述通用识别模型用于表示预设通信媒介下语音特征的分布,所述通用识别模型为一组与说话人无关的语音特征分布,所述建立并训练通用识别模型,包括:建立初始识别模型;

根据迭代算法训练所述初始识别模型,以获得所述通用识别模型,所述根据迭代算法训练所述初始识别模型,以获得所述通用识别模型,包括:根据所述初始识别模型

获取用多个正态分布表示的当前声纹向量对应的似然概率p,其中,x表示当前语音数据,λ表示模型参数,所述模型参数包括ωi、μi和Σi,ωi表示第i个正态分布的权重,μi表示第i个正态分布的均值,Σi表示第i个正态分布的协方差矩阵,pi表示由第i个正态分布生成所述当前语音数据的概率,M为采样点的数量;

根据公式

计算第i个正态分布的概率,其中,D表示当前声纹向量的维度;

选择ωi、μi和Σi的参数数值以使

对数似然函数L最大;

获取每一步迭代更新的模型参数:

其中,i代表第i个正态分布,ωi′是更新后的所述第i个正态分布的权重,μi′是更新后的均值,Σ′i是更新后的所述协方差矩阵,θ为声纹向量与水平线的夹角;

根据公式

获取第i个正态分布的后验概率,其中,所述多个正态分布的后验概率之和为所述迭代后的通用识别模型;

获取所述预设通信媒介下的语音数据;

根据所述语音数据构建对应的所述声纹向量;

根据所述通用识别模型确定所述声纹向量对应的所述声纹特征,包括:对所述声纹向量进行解耦和;

利用多个图形处理单元并行处理所述声纹向量,以获取多个处理结果;

合并所述多个处理结果,以确定所述声纹特征。

2.如权利要求1所述的方法,其特征在于,所述根据所述语音数据构建对应的所述声纹向量,包括:对所述语音数据进行快速傅里叶变换,所述快速傅里叶变换的公式为:其中,x(n)为输入的语音数据,N表示傅里叶变换的点数。

3.一种计算机可读存储介质,所述计算机可读存储介质存储有识别声纹的程序,其特征在于,所述识别声纹的程序被至少一个处理器执行时,实现如权利要求1-2中任一项所述识别声纹的方法中的步骤。

4.一种识别声纹的设备,其特征在于,所述识别声纹的设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的识别声纹的程序,所述处理器执行所述识别声纹的程序时实现如下步骤:建立并训练通用识别模型,所述通用识别模型用于表示预设通信媒介下语音特征的分布,所述通用识别模型为一组与说话人无关的语音特征分布,所述建立并训练通用识别模型的步骤包括:建立初始识别模型;

根据迭代算法训练所述初始识别模型,以获得所述通用识别模型,所述根据迭代算法训练所述初始识别模型,以获得所述通用识别模型的步骤包括:根据所述初始识别模型

获取用多个正态分布表示的当前声纹向量对应的似然概率p,其中,x表示当前语音数据,λ表示模型参数,所述模型参数包括ωi、μi和Σi,ωi表示第i个正态分布的权重,μi表示第i个正态分布的均值,Σi表示第i个正态分布的协方差矩阵,pi表示由第i个正态分布生成所述当前语音数据的概率,M为采样点的数量;

根据公式

计算第i个正态分布的概率,其中,D表示当前声纹向量的维度;

选择ωi、μi和Σi的参数数值以使

对数似然函数L最大;

获取每一步迭代更新的模型参数:

其中,i代表第i个正态分布,ωi′是更新后的所述第i个正态分布的权重,μi′是更新后的均值,Σ′i是更新后的所述协方差矩阵,θ为声纹向量与水平线的夹角;

根据公式

获取第i个正态分布的后验概率,其中,所述多个正态分布的后验概率之和为所述迭代后的通用识别模型;

获取所述预设通信媒介下的语音数据;

根据所述语音数据构建对应的所述声纹向量;

根据所述通用识别模型确定所述声纹向量对应的所述声纹特征,包括:对所述声纹向量进行解耦和;

利用多个图形处理单元并行处理所述声纹向量,以获取多个处理结果;

合并所述多个处理结果,以确定所述声纹特征。

5.如权利要求4所述的识别声纹的设备,其特征在于,所述根据所述语音数据构建对应的所述声纹向量的步骤包括:对所述语音数据进行快速傅里叶变换,所述快速傅里叶变换的公式为:其中,x(n)为输入的语音数据,N表示傅里叶变换的点数。

说明书 :

识别声纹的方法及设备

技术领域

[0001] 本发明属于互联网技术领域,尤其涉及识别声纹的方法及设备。

背景技术

[0002] 现有技术中,在声纹识别过程中进行声纹特征提取时,准确率不高,为了尽可能达到声纹识别的准确,往往会要求用户读指定的内容,例如读“一、二、三”等,并对指定的内容进行声纹识别,这种方法可以在一定程度上提高声纹识别的准确性,但是,这种方式具有较大的局限性,由于用户必须朗读指定内容才能完成识别,因此限制了声纹识别的使用场景,例如在需要取证时,无法要求对方朗读指定的内容。
[0003] 针对现有技术中只能对指定内容进行声纹识别的问题,目前业界没有理想的解决办法。

发明内容

[0004] 有鉴于此,本发明实施例提供了识别声纹的方法及设备,以解决现有技术中只能对指定内容进行声纹识别的问题。
[0005] 本发明实施例的第一方面提供了一种识别声纹的方法,包括:
[0006] 建立并训练通用识别模型,所述通用识别模型用于表示预设通信媒介下语音特征的分布;
[0007] 获取所述预设通信媒介下的语音数据;
[0008] 根据所述语音数据构建对应的所述声纹向量;
[0009] 根据所述通用识别模型确定所述声纹向量对应的所述声纹特征。
[0010] 本发明实施例的第二方面提供了一种识别声纹的设备,该设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的识别声纹的程序,所述处理器执行所述识别声纹的程序时,实现如下步骤:
[0011] 建立并训练通用识别模型,所述通用识别模型用于表示预设通信媒介下语音特征的分布;
[0012] 获取所述预设通信媒介下的语音数据;
[0013] 根据所述语音数据构建对应的所述声纹向量;
[0014] 根据所述通用识别模型确定所述声纹向量对应的所述声纹特征。
[0015] 本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有识别声纹的程序,所述识别声纹的程序被至少一个处理器执行时,实现如下步骤:
[0016] 建立并训练通用识别模型,所述通用识别模型用于表示预设通信媒介下语音特征的分布;
[0017] 获取所述预设通信媒介下的语音数据;
[0018] 根据所述语音数据构建对应的所述声纹向量;
[0019] 根据所述通用识别模型确定所述声纹向量对应的所述声纹特征。
[0020] 本发明通过构建和训练通用识别模型对语音数据进行处理,得到对应的声纹向量,从而确定声纹特征,并根据声纹特征识别发出声音的人,由于通用识别模型不限制声音的内容,因此使本声纹识别的使用比较灵活,增多了声纹识别的使用场景。

附图说明

[0021] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0022] 图1是本发明实施例提供的识别声纹的方法的流程图;
[0023] 图2是本发明实施例提供的Mel频率滤波器组的示意图;
[0024] 图3是本发明实施例提供的数据存储结构的示意图;
[0025] 图4是本发明优选实施例提供的并行处理方法的流程图;
[0026] 图5是本发明实施例提供的识别声纹的装置的示意图;
[0027] 图6是本发明实施例提供的识别声纹的设备的示意图。

具体实施方式

[0028] 以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
[0029] 为了说明本发明的技术方案,下面通过具体实施例来进行说明。
[0030] 图1是本发明实施例提供的识别声纹的方法的流程图,如图1所示,该方法包括步骤S110至步骤S140。
[0031] 步骤S110,建立并训练通用识别模型,所述通用识别模型用于表示预设通信媒介下语音特征的分布。
[0032] 本通用识别模型可以表示一种通信媒介(例如麦克风或扩音器)下的所有人的语音特征分布,该识别模型既不是表示所有通信媒介下的语音特征分布,也不是只表示某一个人的语音特征分布,而是表示在某一种通信媒介下的语音特征分布。该模型包括一组高斯混合模型,该混合模型为一组与说话人无关的语音特征分布,该模型是由K个正态分布的高斯混合模型所组成,以展示所有人的语音特征,这里的K非常大,一般取值在几万至几十万,因此属于大型高斯混合模型。
[0033] 获取该通用识别模型往往包括2个步骤:
[0034] 步骤1,建立初始识别模型。
[0035] 通用识别模型是数学模型的一种,可以用于识别任意语音数据的发声体,通过该模型无需限制用户的说话内容即可对用户进行区分。
[0036] 初始识别模型是通用识别模型的初始模型,即初步选取的用于进行声纹识别的模型,通过后续步骤对该初始通用识别模型进行训练,调整相应的参数,可以得到比较理想的通用识别模型。
[0037] 选取初始模型的操作既可以由人工完成,即根据人的经验进行选择;也可以由相应的系统根据预设的规则来进行选择。
[0038] 以一个简单的数学模型进行举例,在二元坐标系中,如果对一条直线进行建模,那么初始模型为y=kx+b,该模型可以是人工选择,也可以是相应的系统选择的,系统中预存了对应关系表,该对应关系表中包含各种情况对应的初始模型。系统会根据读取到的信息选择对应的模型,例如,在进行图形函数识别时,当所有点的斜率均相等时,该系统根据对应关系表自动选取y=kx+b的模型。
[0039] 在确定初始的模型之后,可以基于一定方式对该模型进行训练,以得到模型参数k和b的值,例如读取该直线上任意2个点的坐标,并将坐标带入模型中,通过该方式对模型进行训练,可以得到k和b的值,从而得到准确的直线模型。在一些复杂的场景中,也可以对初始模型的选择进行预设,例如用户选择声纹识别,则确定对应的A初始模型;如果用户选择图像识别,则确定对应的B初始模型等等。在选择初始模型之后,除了上述比较简单的训练方式,还可以通过其他的方式对初始模型进行训练。例如步骤2中的方式。
[0040] 步骤2,根据迭代算法训练初始识别模型,以获得通用识别模型。
[0041] 通过训练,调整初始识别模型中的参数,可以得到更合理的通用识别模型。
[0042] 在训练中,首先可以根据所述初始识别模型
[0043]
[0044] 获取用多个正态分布表示的当前声纹向量对应的似然概率p,该似然概率的算法即为初始识别模型,根据预设的对应关系,可以通过概率进行声纹识别,其中,x表示当前语音数据,λ表示模型参数,模型参数包括ωi、μi和Σi,ωi表示第i个正态分布的权重,μi表示第i个正态分布的均值,Σi表示第i个正态分布的协方差矩阵,pi表示由第i个正态分布生成当前语音数据的概率,M为采样点的数量。
[0045] 然后可以根据公式
[0046]
[0047] 计算第i个正态分布的概率,其中,D表示当前声纹向量的维度。
[0048] 进而可以选择ωi、μi和Σi的参数数值以使
[0049]
[0050] 对数似然函数L最大。
[0051] 接着可以获取每一步迭代更新的模型参数:
[0052]
[0053]
[0054]
[0055] 其中,i代表第i个正态分布,ωi′是更新后的所述第i个正态分布的权重,μi′是更新后的均值,Σi′是更新后的所述协方差矩阵,θ为声纹向量与水平线的夹角。
[0056] 最后可以根据公式
[0057]
[0058] 获取第i个正态分布的后验概率,其中,所述多个正态分布的后验概率之和为所述迭代后的通用识别模型。
[0059] 步骤S120,获取预设通信媒介下的语音数据。
[0060] 本发明实施例中语音数据的发声体可以指发出声音的人,不同的人发出的声音是不同的,本发明实施例可以通过专门采集声音的设备来获取语音数据,该设备采集声音的部位可以有活动的膜片,膜片上有线圈,在膜片下面有一个永磁体,当人对着膜片讲话时,膜片上的线圈会在永磁体上移动,穿过膜片上线圈的磁通量会因为永磁体的移动而发生变化,因此膜片上的线圈就会产生感应电动势,该电动势会随着声波的变化而变化,该电动势通过电子放大电路后,就能得到大功率声音信号。
[0061] 上述步骤得到的大功率声音信号是模拟信号,本发明实施例可以进一步将该模拟信号转变成语音数据。
[0062] 将声音信号转换成语音数据的步骤可以包括采样、量化和编码。
[0063] 在采样步骤中,可以把时间连续的模拟信号转化成时间离散、幅度连续的信号。在某些特定时刻获取的声音信号幅值叫做采样,由这些特定时刻采样得到的信号称为离散时间信号。一般都是每隔相等的一段时间采样一次,其时间间隔称为取样周期,它的倒数称为采样频率。采样频率不应低于声音信号最高频率的两倍。
[0064] 在量化步骤中,把在幅度上连续取值的每一个样本转换为离散值表示,因此量化过程有时也称为模数转换,(Analog/Digital,简称为A/D)转换。
[0065] 在编码步骤中,采样通常有3个标准频率:44.1khz,22.05khz,和11.05khz。声音信号的量化精度一般为8b,12b,16b,数据率以kb/s为单位,压缩比一般大于1。
[0066] 通过上述步骤,可以获取到由发声体的声音转换而成的语音数据。
[0067] 步骤S130,根据语音数据构建对应的声纹向量。
[0068] 构建声纹向量的目的是从语音数据中提炼出声纹特征,即,无论说的什么内容,都可以通过语音数据识别出对应的发声体。
[0069] 为了能够准确识别人的声音,本发明实施例采用了基于梅尔频率的滤波器的声纹向量表示方法,梅尔频率比正常的对数倒频谱中的线性间隔的频带更能近似人类的听觉系统,从而可以更好的表示声音。
[0070] 本发明实施例从低频到高频这一段频带内按临界带宽的大小由密到疏安排一组带通滤波器,对语音数据进行滤波,将每个带通滤波器输出的信号能量作为语音数据的基本特征,对此特征经过进一步处理后就可以作为语音数据的向量分量。由于这种向量分量不依赖于语音数据的性质,对输入的语音数据不做任何的假设和限制,又利用了听觉模型的研究成果,因此,相比于其他表示方法,例如线性声道特征具有更好的鲁棒性,本发明实施例更符合人耳的听觉特性,而且当信噪比降低时仍然具有较好的识别性能。
[0071] 具体地,为了构建基于梅尔频率的向量,可以将每段语音被分为很多帧,每帧语音都对应于一个频谱(通过短时快速傅里叶计算,即FFT计算),频谱表示频率与能量的关系。为了能够展示地比较均衡,可以采用自功率谱,即各谱线的振幅都作了对数计算,所以其纵坐标的单位是dB(分贝),通过这个变换使那些振幅较低的成分相对高振幅成分得以拉高,以便观察掩盖在低幅噪声中的周期信号。
[0072] 在变换后,原先的时域上的语音就可以在频域上进行表示,而其中的峰值则称为共振峰,本发明实施例可以利用共振峰来构建声纹向量。为了能提取共振峰并且滤除噪声,本发明实施例利用了如下公式:
[0073] log X[k]=log H[k]+log E[k]
[0074] 其中X[k]表示原始的语音数据,H[k]表示共振峰,E[k]表示噪声。
[0075] 为了实现这一公式,本发明实施例采用了逆傅里叶变化,即IFFT。将共振峰转化到低时域区间,加载低通滤波器,最后获得共振峰。对于滤波器,本实施例采用梅尔频率公式如下:
[0076] Mel(f)=2595*log10(1+f/700)
[0077] 其中,Mel(f)表示在f频率处的梅尔频率。
[0078] 在实现过程中,为了满足后期处理需求,本发明实施例会对语音数据进行一系列的预处理,例如预加重、分帧和加窗等。预处理可以包括以下步骤:
[0079] 步骤1,对语音数据进行预加重。
[0080] 本发明实施例首先将语音数据通过一个高通滤波器:
[0081] H(Z)=1-μz-1
[0082] 其中,μ的值介于0.9-1.0之间,本发明实施例取经验常数0.97。预加重的目的是提升高频部分,使信号的频谱变得平坦,保持在低频到高频的整个频带中,能用同样的信噪比求频谱。同时,也可以消除发生过程中声带和嘴唇的效应,来补偿语音信号受到发音系统所抑制的高频部分,也为了突出高频的共振峰。
[0083] 步骤2,对语音数据进行分帧。
[0084] 在本步骤中,先将N个采样点集合成一个观测单位,一个观测单位在单位时间内采集的数据为一帧。通常情况下N的值为256或512,单位时间约为 20~30ms左右。为了避免相邻两帧的变化过大,因此会让两相邻帧之间有一段重叠区域,此重叠区域包含了M个取样点,通常M的值约为N的1/2或1/3。通常语音识别所采用语音数据的采样频率为8KHz或16KHz,以8KHz来说,若帧长度为256个采样点,则对应的时间长度是256/8000×1000=
32ms。
[0085] 步骤3,对语音数据进行加窗。
[0086] 将每一帧语音数据乘以汉明窗,可以增加帧左端和右端的连续性。假设分帧后的语音数据为S(n),n=0,1…,N-1,N为帧的大小,那么乘上汉明窗后 S′(n)=S(n)×W(n),汉明窗算法W(n)如下:
[0087]
[0088] 不同的a值会产生不同的汉明窗,本发明实施例中a取0.46。
[0089] 步骤4,对语音数据进行快速傅里叶变换。
[0090] 在加上汉明窗后,通常可以将语音数据转换为频域上的能量分布来观察,不同的能量分布,就能代表不同语音的特性。所以在乘上汉明窗后,每帧还必须再经过快速傅里叶变换以得到在频谱上的能量分布。对分帧加窗后的各帧数据进行快速傅里叶变换得到各帧的频谱,并对语音数据的频谱取模平方得到语音数据的功率谱,语音数据的傅里叶变换(DFT)的公式为:
[0091]
[0092] 其中,x(n)为输入的语音数据,N表示傅里叶变换的点数。
[0093] 步骤5,将语音数据输入三角带通滤波器。
[0094] 在本步骤中,可以将能量谱通过一组Mel尺度的三角形滤波器组,本发明实施例定义一个有M个滤波器的滤波器组(滤波器的个数和临界带的个数相近),采用的滤波器为三角滤波器,中心频率为f(m),m=1,2,...,M。图2是本发明实施例提供的Mel频率滤波器组的示意图,如图2所示,M可以取22-26。各 f(m)之间的间隔随着m值的减小而缩小,随着m值的增大而增宽。
[0095] 三角滤波器的频率响应定义为:
[0096]
[0097] 其中,f(x)表示频率x, 三角滤波器的用处在于可以将频谱进行平滑化,并消除谐波的作用,突显语音的共振峰。因此,一段语音的音调或音高,是不会呈现在梅尔频率倒谱系数(简称为MFCC系数)内,即,以 MFCC为特征的语音辨识系统,并不会受到输入语音的音调不同而有所影响。此外,通过该三角滤波器还可以降低运算量。
[0098] 步骤6,根据公式
[0099]
[0100] 计算每个滤波器组输出的对数能量,其中,s(m)即为对数能量。
[0101] 步骤7,经离散余弦变换(DCT)得到MFCC系数:
[0102]
[0103] 其中,C(n)表示第n个MFCC系数。
[0104] 将上述的对数能量带入离散余弦变换,求出L阶的梅尔倒谱参数。阶数通常取12-16。这里M是三角滤波器个数。
[0105] 步骤8,计算对数能量。
[0106] 一帧语音数据的音量,即能量,也是重要特征,而且容易计算。因此,通常再加上一帧语音数据的对数能量,即,一帧语音数据内的平方和,再取以10 为底的对数值,再乘以10,通过本步骤,可以使得每一帧基本的语音特征多出一个维度,包括一个对数能量和剩下的倒频谱参数。
[0107] 9.提取动态差分参数。
[0108] 本发明实施例提供的包括一阶差分和二阶差分。标准的MFCC系数只反映语音的静态特性,语音的动态特性可以用这些静态特征的差分谱来描述。把动态和静态特征结合起来可以有效提高系统的识别性能,差分参数的计算可以采用下面的公式:
[0109]
[0110] 其中,dt表示第t个一阶差分,Ct表示第t个倒谱系数,Q表示倒谱系数的阶数,K表示一阶导数的时间差,可取1或2。将上式的结果再代入就可以得到二阶差分的参数。
[0111] 上述动态差分参数即为声纹向量的向量分量,根据这些向量分量可以确定声纹向量。
[0112] 步骤S140,根据所述通用识别模型确定所述声纹向量对应的所述声纹特征。
[0113] 一般而言,现有技术通过中央处理单元(Central Processing Unit,简称为 CPU)进行计算,以确定声纹特征,而本发明实施例利用使用率不高的图形处理单元(Graphics Processing Unit,简称为GPU)进行声纹向量的处理。
[0114] CPU一般结构较复杂,一般既可以处理简单运算,也可以负责维持整个系统的运转;GPU结构简单,一般只能用于进行简单运算,多个GPU可以并行使用。
[0115] 如果CPU过多的资源被用来处理简单运算,那么整个系统的运转可能都会受到影响。由于GPU不用负责系统的运转,且GPU数量远大于CPU数量,如果 GPU可以处理声纹向量,那么可以分担CPU的部分压力,使CPU将更多的资源用于维护系统的正常运转。本发明实施例可以利用多个GPU并行处理声纹向量,为了达到该目的,需要进行以下两方面操作:
[0116] 一方面在于,本发明实施例重新确定了数据存储结构,即,将主要的数据从内存(Dual Data Rate,简称为DDR)转存到GPU内存上(Graphics Double Data Rate,简称为GDDR),图3是本发明实施例提供的数据存储结构的示意图,如图3所示,现有技术中,数据存储在内存中,以便CPU读取,本发明实施例将内存中的数据转移到GPU内存中,以便GPU读取。
[0117] 将数据转储的优点在于:GPU所有的流处理器都能够访问这些数据,考虑到现行GPU通常拥有超过1000个流处理器,那么将数据储存到GPU内存中就可以充分利用GPU高效的计算能力,使响应延迟更低,计算速度更快。
[0118] 另一方面在于,本发明实施例提供了一种GPU的并行处理算法,以对声纹向量进行并行处理。图4是本发明优选实施例提供的并行处理方法的流程图,如图4所示,该方法包括:
[0119] 步骤S410,对声纹向量进行解耦和。
[0120] 根据预设的解耦和算法,可以将原始处理算法中的顺序循环步骤打开,例如,在计算每一帧的FFT算法中,我们可以通过设置线程偏移算法进行解耦和,从而将所有的声纹向量计算并发起来。
[0121] 步骤S420,利用多个图形处理单元并行处理声纹向量,以获取多个处理结果。
[0122] 在解耦和完成后,可以充分利用GPU的计算资源,例如GPU流处理器、常量内存和纹理内存等,根据预设的调度算法进行并行计算,在该调度算法中,将调度资源分配为GPU线程束的整数倍,同时尽可能的覆盖所有需要计算的GPU 内存数据,已达到最优化的计算效率的需求。
[0123] 步骤S430,合并多个处理结果,以确定声纹特征。
[0124] 多个GPU并行处理声纹向量之后,合并处理结果,可以快速地确定声纹特征。合并的操作和上述解耦和的操作可以是可逆的。
[0125] 考虑到最后人机交互是以主机内存为基础,本发明实施例最后利用并发拷贝的算法,通过并发GPU线程执行拷贝程序,最大化利用主机的PCI总线带宽,降低数据传输延时。
[0126] 本发明实施例通过构建和训练通用识别模型对语音数据进行处理,得到对应的声纹向量,从而确定声纹特征,并根据声纹特征识别发出声音的人,由于通用识别模型不限制声音的内容,因此使本声纹识别的使用比较灵活,增多了声纹识别的使用场景。
[0127] 应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0128] 对应于上文实施例中识别声纹的方法,图5示出了本发明实施例提供的识别声纹的装置的结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。
[0129] 参照图5,该装置包括:
[0130] 建立模块51,用于建立并训练通用识别模型,所述通用识别模型用于表示预设通信媒介下语音特征的分布。
[0131] 获取模块52,用于获取所述预设通信媒介下的语音数据。
[0132] 构建模块53,用于根据所述语音数据构建对应的所述声纹向量。
[0133] 识别模块54,用于根据所述通用识别模型确定所述声纹向量对应的所述声纹特征。
[0134] 优选地,建立模块51包括:
[0135] 建立子模块,用于建立初始识别模型。
[0136] 训练子模块,用于根据迭代算法训练所述初始识别模型,以获得所述通用识别模型。
[0137] 优选地,训练子模块用于:
[0138] 根据所述初始识别模型
[0139]
[0140] 获取用多个正态分布表示的当前声纹向量对应的似然概率p,其中,x表示当前语音数据,λ表示模型参数,所述模型参数包括ωi、μi和Σi,ωi表示第i 个正态分布的权重,μi表示第i个正态分布的均值,Σi表示第i个正态分布的协方差矩阵,pi表示由第i个正态分布生成所述当前语音数据的概率,M为采样点的数量;
[0141] 根据公式
[0142]
[0143] 计算第i个正态分布的概率,其中,D表示当前声纹向量的维度;
[0144] 选择ωi、μi和Σi的参数数值以使
[0145]
[0146] 对数似然函数L最大;
[0147] 获取每一步迭代更新的模型参数:
[0148]
[0149]
[0150]
[0151] 其中,i代表第i个正态分布,ωi′是更新后的所述第i个正态分布的权重,μi′是更新后的均值,Σi′是更新后的所述协方差矩阵,θ为声纹向量与水平线的夹角;
[0152] 根据公式
[0153]
[0154] 获取第i个正态分布的后验概率,其中,所述多个正态分布的后验概率之和为所述迭代后的通用识别模型。
[0155] 优选地,构建模块53用于对所述语音数据进行快速傅里叶变换,所述快速傅里叶变换的公式为:
[0156]
[0157] 其中,x(n)为输入的语音数据,N表示傅里叶变换的点数。
[0158] 优选地,识别模块54包括:
[0159] 解耦子模块,用于对所述声纹向量进行解耦和。
[0160] 获取子模块,用于利用多个图形处理单元并行处理所述声纹向量,以获取多个处理结果。
[0161] 合并子模块,用于合并所述多个处理结果,以确定所述声纹特征。
[0162] 本发明实施例通过构建和训练通用识别模型对语音数据进行处理,得到对应的声纹向量,从而确定声纹特征,并根据声纹特征识别发出声音的人,由于通用识别模型不限制声音的内容,因此使本声纹识别的使用比较灵活,增多了声纹识别的使用场景。
[0163] 图6是本发明实施例提供的识别声纹的设备的示意图。如图6所示,该实施例的识别声纹的设备6包括:处理器60、存储器61以及存储在所述存储器 61中并可在所述处理器60上运行的计算机程序62,例如识别声纹的程序。所述处理器60执行所述计算机程序62时实现上述各个突发话题检测方法实施例中的步骤,例如图1所示的步骤S110至步骤S140。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各模块/单元的功能,例如图5 所示模块51至54的功能。
[0164] 示例性的,所述计算机程序62可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述识别声纹的设备 6中的执行过程。例如,所述计算机程序62可以被分割成建立模块、获取模块、构建模块和识别模块,各模块具体功能如下:
[0165] 建立模块用于建立并训练通用识别模型,所述通用识别模型用于表示预设通信媒介下语音特征的分布。
[0166] 获取模块用于获取所述预设通信媒介下的语音数据。
[0167] 构建模块用于根据所述语音数据构建对应的所述声纹向量。
[0168] 识别模块用于根据所述通用识别模型确定所述声纹向量对应的所述声纹特征。
[0169] 所述识别声纹的设备6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。本领域技术人员可以理解,图6仅仅是识别声纹的设备6的示例,并不构成对识别声纹的设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述识别声纹的设备还可以包括输入输出设备、网络接入设备、总线等。
[0170] 所称处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0171] 所述存储器61可以是所述识别声纹的设备6的内部存储单元,例如识别声纹的设备6的硬盘或内存。所述存储器61也可以是所述识别声纹的设备6的外部存储设备,例如所述识别声纹的设备6上配备的插接式硬盘,智能存储卡 (Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述识别声纹的设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述识别声纹的设备所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
[0172] 本发明实施例通过构建和训练通用识别模型对语音数据进行处理,得到对应的声纹向量,从而确定声纹特征,并根据声纹特征识别发出声音的人,由于通用识别模型不限制声音的内容,因此使本声纹识别的使用比较灵活,增多了声纹识别的使用场景。
[0173] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0174] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0175] 在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0176] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0177] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0178] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0179] 以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。