一种闽南语语音识别方法、系统、设备及介质与流程

文档序号:27143344发布日期:2021-10-30 01:02阅读:987来源:国知局
一种闽南语语音识别方法、系统、设备及介质与流程

1.本发明属于语音识别技术领域,尤其涉及一种闽南语语音识别方法、系统、设备及介质。


背景技术:

2.随着人工智能技术的发展,语音识别技术取得了巨大的进步,并开始进入家电、通信、汽 车、医疗等各个领域。语音识别是把人的语音通过机器进行信号处理和识别,转变为相应文本, 再通过语义分析和理解,最终让机器像人一样听懂我们的声音。
3.现有语音识别系统主要包括声学模型、语言模型和解码器三大模块。具体的,将带有标签 的训练语音数据输入语音识别系统后,经过特征提取,得到声学特征向量;声学特征向量经由 声学模型,得到每一声学特征向量对应的各个发音单元,解码器根据各个发音单元和语言模型 来得到最终的语音识别结果。
4.虽然普通话识别已达到实用的水准,但直至目前,以闽南语作为研究对象的语音识别系统, 尚未有成熟可靠的解决方案,实现闽南语语音识别系统将为闽南语各个片区提供友好的本地化 服务,也能够为闽南语教学,闽南文化的传承与弘扬,创建更为便捷的环境。闽南语声母18 个,韵母至少有85个,声调7个,声母、韵母、声调三者能结合和使用的音节在2300个左右, 与普通话只有1300多个音节相比,多了将近一倍的音节。
5.目前闽南语语音识别,主要是通过构建闽南语的声母表、韵母表和声调表来实现,即将闽 南语汉字直接转换成闽南语音素序列,由于闽南语音节数量大,导致转换成闽南语音素序列工 作量大。同时,声学模型作为闽南语语音识别系统的主要模块,其性能高低直接决定了闽南语 语音识别系统的识别准确率的高低。目前,由于语音数据标注错误等原因导致声学模型训练精 度不高,导致声学模型性能不高,进而导致识别准确率较低。


技术实现要素:

6.本发明的目的在于提供一种闽南语语音识别方法、系统、设备及介质,以克服现有闽南语 语音识别系统构建工作量大,效率低的问题,以及声学模型性能较低导致识别准确率较低的问 题。
7.第一方面,本发明提供一种闽南语语音识别方法,包括以下步骤:
8.获取闽南语语音原始数据,提取所述原始数据中的语音特征序列;将所述语音特征序列输 入至目标模型中,得到所述语音特征序列对应不同的预测音素序列的概率分布;
9.将汉语词典通过ctc算法映射到对应的音素标注序列,记为t.fst;
10.获取闽南语汉字信息,将所述闽南语汉字信息转换成多个汉语音素序列;多个所述汉语音 素序列经过分母lm训练得到基于音素的n

gram语言模型,记为g.fst;
11.对所述t.fst与所述g.fst进行组合操作得到分母图,记为fst;
12.根据所述概率分布以及分母图,通过目标函数计算得到最优的预测音素序列所对应的概率, 通过目标函数的值反向传播训练,得到训练好的声学模型;
13.识别时,将待识别语音特征序列输入至训练好的声学模型,得到待识别语音特征序列对应 不同的预测音素序列的概率,再结合语言模型,解码搜索得到最优的识别结果。
14.进一步地,所述语音特征序列的提取过程为:
15.对所述原始数据提取fbank特征,并获取fbank特征的一阶差分特征和二阶差分特征;
16.将当前帧的fbank特征与该fbank特征的一阶差分特征和二阶差分特征进行拼接;
17.对拼接后的特征进行倒谱均值方差归一化处理;
18.对经倒谱均值方差归一化处理后的特征进行降采样,得到所述语音特征序列。
19.进一步地,将所述汉语词典通过ctc算法映射到对应的音素标注序列的具体步骤为:
20.将所述汉语词典转换成多个汉语音素标注序列;
21.在所述汉语音素标注序列中添加空白符,使汉语词典中的特征序列与汉语音素标注序列对 齐;
22.去除掉添加了空白符的汉语音素标注序列中连续重复的字符;
23.去除掉所有空白符,得到对应的音素标注序列。
24.进一步地,所述目标函数通过最大化条件似然来定义,目标函数的具体表达式为:
[0025][0026]
其中,j
all
(θ)表示目标函数,α表示辅助因子,x表示输入的语音特征序列,θ表示模型 参数,π
m
表示所述语音特征序列x对应的第m个预测音素序列,m表示所述语音特征序列x对 应的不同的预测音素序列的数量,l表示所述语音特征序列x对应的音素标注序列,p(π
m
|x)表 示对于输入的语音特征序列为x,输出的预测音素序列为π
m
时的概率,p(l|x;θ)表示在模型参 数θ下,对于输入的语音特征序列为x,输出的音素标注序列为l时的概率。
[0027]
进一步地,在所述解码搜索时,识别结果所采用的打分函数为:
[0028]
s=logp(l|x)+βlogp
w
(l)
[0029]
其中,s表示识别结果的得分,p(l|x)表示所述声学模型输出的待识别语音特征序列为x, 对应的音素标注序列为l时的概率,β表示影响系数,p
w
(l)表示单词级别的语言模型中音素标 注序列l的概率。
[0030]
第二方面,本发明提供一种闽南语语音识别系统,包括:
[0031]
概率分布获取模块,用于获取闽南语语音原始数据,提取所述原始数据中的语音特征序列; 将所述语音特征序列输入至目标模型中,得到所述语音特征序列对应不同的预测音素序列的概 率分布;
[0032]
第一有限状态转换器模块,用于将汉语词典通过ctc算法映射到对应的音素标注序列,记 为t.fst;
[0033]
第二有限状态转换器模块,用于获取闽南语汉字信息,将所述闽南语汉字信息转换成多个 汉语音素序列;多个所述汉语音素序列经过分母lm训练得到基于音素的n

gram语言模型,记 为g.fst;
[0034]
分母图构建模块,用于对所述t.fst与所述g.fst进行组合操作得到分母图,记为fst;
[0035]
目标函数计算模块,用于根据所述概率分布以及分母图,通过目标函数计算得到最优的预 测音素序列所对应的概率,通过目标函数的值反向传播训练,得到训练好的声学模型;
[0036]
识别模块,用于识别时,将待识别语音特征序列输入至训练好的声学模型,得到待识别语 音特征序列对应不同的预测音素序列的概率,再结合语言模型,解码搜索得到最优的识别结果。
[0037]
进一步地,所述概率分布获取模块,具体用于:
[0038]
对所述原始数据提取fbank特征,并获取fbank特征的一阶差分特征和二阶差分特征;
[0039]
将当前帧的fbank特征与该fbank特征的一阶差分特征和二阶差分特征进行拼接;
[0040]
对拼接后的特征进行倒谱均值方差归一化处理;
[0041]
对经倒谱均值方差归一化处理后的特征进行降采样,得到所述语音特征序列。
[0042]
进一步地,所述第一有限状态转换器模块,具体用于:
[0043]
将所述汉语词典转换成多个汉语音素标注序列;
[0044]
在所述汉语音素标注序列中添加空白符,使汉语词典中的特征序列与汉语音素标注序列对 齐;
[0045]
去除掉添加了空白符的汉语音素标注序列中连续重复的字符;
[0046]
去除掉所有空白符,得到对应的音素标注序列。
[0047]
进一步地,所述目标函数计算模块中,目标函数的具体表达式为:
[0048][0049]
其中,j
all
(θ)表示目标函数,α表示辅助因子,x表示输入的语音特征序列,θ表示模型 参数,π
m
表示所述语音特征序列x对应的第m个预测音素序列,m表示所述语音特征序列x对 应的不同的预测音素序列的数量,l表示所述语音特征序列x对应的音素标注序列,p(π
m
|x)表 示对于输入的语音特征序列为x,输出的预测音素序列为π
m
时的概率,p(l|x;θ)表示在模型参 数θ下,对于输入的语音特征序列为x,输出的音素标注序列为l时的概率。
[0050]
第三方面,本发明提供一种设备,包括存储器、处理器以及存储在所述存储器上并可在所 述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的闽南语 语音识别方法的步骤。
[0051]
第四方面,本发明提供一种介质,所述介质上存储有计算机程序,所述计算机程序被处理 器执行时实现第一方面所述的闽南语语音识别方法的步骤。
[0052]
有益效果
[0053]
与现有技术相比,本发明的优点在于:
[0054]
本发明所提供的技术方案,使用普通话音素作为建模单元对闽南语进行识别,相较于传统 的使用闽南语音素作为建模单元,大幅减少了音素序列的数量,降低了基于音素的n

gram语言 模型的复杂度,降低了工作量,从而提高了建模效率;同时,在目标函数中引入条件随机场crf, ctc的状态后验可以看作是条件随机场的点势能,状态与状态之间的联系可以通过边势能引 入,改善了词错误率水平,提高了声学模型的性能,从而提高了识别准确率。
附图说明
[0055]
为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作简单地 介绍,显而易见地,下面描述中的附图仅仅是本发明的一个实施例,对于本领域普通技术人员 来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0056]
图1是本发明实施例中声学模型训练流程图;
[0057]
图2是本发明实施例中ctc的条件随机场表示图;
[0058]
图3是本发明实施例中ctc

crf所使用的条件随机场;
[0059]
图4是本发明实施例中闽南语语音识别流程图。
具体实施方式
[0060]
下面结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,显然, 所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明 保护的范围。
[0061]
为了便于理解,对于本发明实施例中出现的词语进行说明。
[0062]
音节:是用听觉可以区分清楚的语音基本单位,为人正常的发音单元,音节之间具有明显 可感知的界限;汉语音节中,一般一个汉字的读音为一个音节,示例性的,汉语文本“你”对 应的音节为{ni};
[0063]
音素:为音标,是构成音节的最小单位或最小的语音片段,是从音质的角度划分出来的最 小的线性的语音单位,音素间的界限模糊,其与上下文相关严重;
[0064]
状态:为一个音素被人为的分成多个没有物理意义的状态,可以认为单个状态内音素的特 征保持平稳,状态间的界限模糊,其与上下文相关严重;
[0065]
ctc:connectionist temporal classification,连接主义时序分类。ctc算法对于输入的x 能够给出非常多的y的条件概率输出,虽然ctc算法不要求输入输出严格对齐,但是为了方 便训练模型,需要一个将输入输出对齐的映射关系。
[0066]
fst:finite state transducer,有限状态转换器。fst可描述一组规则的转换或一组符号序 列到另一种符号序列的转换。
[0067]
wfst:weighted finite state transducer,加权有限状态转换器。在每一次状态转移时都有 一个权重,在每次的初始状态都有初始权重,在每次的终止状态都有终止权重,权重一般是转 移或初始/终止状态的概率或损失,权重会延每条路径进行累积,并在不同路径进行累加。
[0068]
crf:conditional random field,条件随机场。
[0069]
下面以具体地实施例对本技术的技术方案进行详细说明。下面这几个具体的实施例可以相 互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
[0070]
第一方面,为了更清楚的描述方案,在对本发明实施例所提供的闽南语语音识别方法进行 介绍之前,首先对声学模型训练的流程进行简单说明。
[0071]
如图1所示,本实施例声学模型的训练流程为:
[0072]
s110:获取闽南语语音原始数据,提取原始数据中的语音特征序列。
[0073]
闽南语语音原始数据为已有数据集,采用已有数据集便于对声学模型进行训练。对于语音 特征序列的提取分为以下几个步骤:
[0074]
s111:对原始数据提取40维的fbank特征,并获取fbank特征的一阶差分特征和二阶差分 特征。
[0075]
s112:将当前帧的fbank特征与该fbank特征的一阶差分特征和二阶差分特征进行拼接。
[0076]
s113:对拼接后的特征进行倒谱均值方差归一化处理。
[0077]
s114:对经倒谱均值方差归一化处理后的特征进行3倍降采样,得到语音特征序列。
[0078]
降采样的目的主要是为了训练和解码的速度,由于语音特征序列中包含了二阶差分特征, 可以认为降采样并没有损失精度。示例性的,闽南语语音原始数据对应的汉语标注文本数据为 我爱北京,提取的语音特征序列可以为4个,分别为“我”对应的语音特征帧,“爱”对应的 语音特征帧,“北”对应的语音特征帧,“京”对应的语音特征帧。
[0079]
s120:将步骤s114输出的语音特征序列输入至目标模型中,得到语音特征序列对应不同 的预测音素序列的概率分布。
[0080]
目标模型有多种形式,包括cnn(convolutional neural network,卷积神经网络)、lstm(longshort

term memory,长短时记忆网络)、rnn(simple recurrentneural network,循环神经网络) 等。本实施例中,目标模型选用lstm模型,为了解决rnn模型中梯度消失的问题,lstm 模型通过引入状态c来保持梯度,从而达到缓解梯度消失的问题。示例性的,目标模型为6层 双向lstm,隐层单元的数目设置为320,在每层lstm之间均添加了dropout层,并将保留 概率设置为0.5。可使用pytorch来构建双向lstm模型,使用adam作为参数学习的优化器。 一开始学习速率设置为0.001,当目标函数不再变化时,再将学习速率降为0.0001继续训练, 直到目标函数不再变化,并没有对双向lstm模型进行任何预训练。
[0081]
对于条件随机场模型crf,给定观测变量x,状态序列π的定义如下:
[0082][0083]
其中,π和x长度相等,θ为模型需要学习的参数。π通过一个ctc映射b:和 l联系起来。这个ctc映射b将状态序列π映射到了唯一的一个标注序列l。s
π
和s
l
分别是π和 l对应的符号表,m和l分别是π和l的长度,给定这些定义后,将p(l|x;θ)定义为
[0084][0085]
当x为输入的语音特征序列时,π即为对应的不同的预测音素序列,得到每个语音特征序 列对应的所有的预测音素序列{π1,π2,
……

m
},以及对应的预测音素序列的概率分布。如图2 所示,各个状态序列之间是相互独立的,要打破这种状态序列之间的相互独立,需要在ctc对 应的crf中加入边,加入了基于语言模型的边势能以取得更好的性能。在ctc对应的crf中 加入了边势能得到ctc

crf模型,加入了边势能的条件随机场如图3所示,边势能是提前计 算好的,而不是通过参数进行学习,边势能函数φ(π,x)定义为:
[0086][0087]
其中,l是状态序列π经过映射后得到的标注序列l=b(π)。式(3)中的第一项代表了点 势能,第二项代表了边势能,其中p
lm
(l)是通过一个音素级别的n

gram代表的wfst定义的。
[0088]
示例性的,语音特征帧“我”对应的不同的预测音素为“wo1”、“wo3”、“wo4”,语 音特征帧“爱”对应的不同的预测音素为“ai1”、“ai2”、“ai3”、“ai4”,其中,数字1 表示一声调,数字2表示二声调,数字3表示三声调,数字4表示四声调。
[0089]
s130:将汉语词典通过ctc算法映射到对应的音素标注序列,记为t.fst。
[0090]
ctc的基本思想是通过引入空白符来对齐语音特征序列和标注序列,并建立从添加了空白 序列的标注序列到实际的标注序列的映射,这个映射关系记为b,即ctc映射关系。ctc映 射的具体步骤为:
[0091]
s131:将汉语词典转换成多个汉语音素标注序列;
[0092]
s132:在汉语音素标注序列中添加空白符,使汉语词典中的特征序列与汉语音素标注序列 对齐;
[0093]
s133:去除掉添加了空白符的汉语音素标注序列中连续重复的字符;
[0094]
s134:去除掉所有空白符,得到对应的音素标注序列。
[0095]
示例性的,以状态序列a
‑‑‑
rr

r
‑‑
a

为例,首先去掉所有空白符之后的重复字符得到 a
‑‑‑
r

r
‑‑
a

,然后再去除掉所有的空白符得到arra,也就是b(a
‑‑‑
rr

r
‑‑
a

)=arra。
[0096]
s140:对t.fst与g.fst进行组合操作得到分母图,记为fst。
[0097]
为了避免在标注序列中随机插入静音音素导致分母图的估计不准确,选择不使用静音音素, 或者可以理解为采用空白符吸收了静音音素。
[0098]
daniel povey在2016年提出了词格无关最大化互信息训练lf

mmi。在lf

mmi中,用来 进行路径求和的分母图不是来自解码所得到得词格,而是来自一个预先准备好的分母图。该分 母图t代表汉语词典到音素标注序列的wfst,g代表一个基于音素的n

gram语言 模型。lf

mmi在gpu上实现分母图的估计。
[0099]
概念分布的获取步骤s110~s120与分母图的构建步骤s130~s140可以并列进行,没有时间 上的先后顺序。
[0100]
s150:根据概率分布以及分母图,通过目标函数计算得到最优的预测音素序列所对应的概 率,通过目标函数的值反向传播训练,得到训练好的声学模型。
[0101]
在训练过程中,考虑到加速收敛和加强训练稳定性,采用ctc目标函数作为辅助的目标函 数,因此,用于训练的目标函数为:
[0102][0103]
其中,j
all
(θ)表示目标函数,α表示辅助因子,x表示输入的语音特征序列,θ表示模型 参数,π
m
表示所述语音特征序列x对应的第m个预测音素序列,m表示所述语音特征序列x对 应的不同的预测音素序列的数量,l表示所述语音特征序列x对应的音素标注序列,p(π
m
|x)表 示对于输入的语音特征序列为x,输出的预测音素序列为π
m
时的概率,p(l|x;θ)表示在模型参 数θ下,对于输入的语音特征序列为x,输出的音素标注序列为l时的概率。本实施例中,α设 为0.1。
[0104]
示例性的,“我爱北京”对应的语音特征帧对应得到的预测音素序列“wo3 ai4 bei3 jing1
”ꢀ
的概率为1,预测音素序列“wo1 ai4 bei3 jing1”的概率为0.75,预测音素序列“wo1 ai2 bei3 jing1
”ꢀ
的概率为0.5,预测音素序列“wo1 ai2 bei1 jing1”的概率为0.25,预测音素序列“wo1 ai2 bei1jing3”的概率为0,等等。
[0105]
在得到训练好的声学模型之后,即将训练好的声学模型应用到闽南语语音识别中,如图4 所示,具体的闽南语语音识别过程包括:
[0106]
s210:识别时,将待识别语音特征序列输入至训练好的声学模型,得到待识别语音特征序 列对应不同的预测音素序列的概率。
[0107]
示例性的,声学模型输出“天安门”的概率为0.5,“天暗门”的概率为0.5。
[0108]
s220:结合词典,语言模型输出概率。
[0109][0110]
s230:根据声学模型输出的概率以及语言模型输出的概率解码搜索得到最优的识别结果。
[0111]
在解码搜索时,识别结果所采用的打分函数为:
[0112]
s=logp(l|x)+βlogp
w
(l)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0113]
其中,s表示识别结果的得分,p(l|x)表示所述声学模型输出的待识别语音特征序列为x, 对应的音素标注序列为l时的概率,β表示影响系数,p
w
(l)表示单词级别的语言模型中音素标 注序列l的概率。本实施例中,β设为1。示例性的,“天安门”的得分为s1=0.5+1
×
1=1.5,
ꢀ“
天暗门”的得分为s2=0.5+1
×
0.5=1,最后输出得分较高的识别结果作为最优的识别结果。
[0114]
闽南语语音识别引擎通过跨平台的多媒体处理框架gstreamer将引擎封装并构建一条完整 的语音识别pipeline,可支持wav、ogg、mp3等常用的格式,适配不同的声道和采样率;语音 识别引擎通过websocket或http协议向外提供服务,通过特征提取获取输入音频的特征,提 交至声学模型,并结合语言模型做综合解码搜索,输出识别结果。
[0115]
第二方面,本实施例还提供了一种闽南语语音识别系统,包括:
[0116]
概率分布获取模块,用于获取闽南语语音原始数据,提取所述原始数据中的语音特征序列; 将所述语音特征序列输入至目标模型中,得到所述语音特征序列对应不同的预测音素序列的概 率分布;
[0117]
第一有限状态转换器模块,用于将汉语词典通过ctc算法映射到对应的音素标注序列,记 为t.fst;
[0118]
第二有限状态转换器模块,用于获取闽南语汉字信息,将所述闽南语汉字信息转换成多个 汉语音素序列;多个所述汉语音素序列经过分母lm训练得到基于音素的n

gram语言模型,记 为g.fst;
[0119]
分母图构建模块,用于对所述t.fst与所述g.fst进行组合操作得到分母图,记为fst;
[0120]
目标函数计算模块,用于根据所述概率分布以及分母图,通过目标函数计算得到
最优的预 测音素序列所对应的概率,通过目标函数的值反向传播训练,得到训练好的声学模型;
[0121]
识别模块,用于识别时,将待识别语音特征序列输入至训练好的声学模型,得到待识别语 音特征序列对应不同的预测音素序列的概率,再结合语言模型,解码搜索得到最优的识别结果。
[0122]
优选地,所述概率分布获取模块,具体用于:
[0123]
对所述原始数据提取fbank特征,并获取fbank特征的一阶差分特征和二阶差分特征;
[0124]
将当前帧的fbank特征与该fbank特征的一阶差分特征和二阶差分特征进行拼接;
[0125]
对拼接后的特征进行倒谱均值方差归一化处理;
[0126]
对经倒谱均值方差归一化处理后的特征进行降采样,得到所述语音特征序列。
[0127]
优选地,所述第一有限状态转换器模块,具体用于:
[0128]
将所述汉语词典转换成多个汉语音素标注序列;
[0129]
在所述汉语音素标注序列中添加空白符,使汉语词典中的特征序列与汉语音素标注序列对 齐;
[0130]
去除掉添加了空白符的汉语音素标注序列中连续重复的字符;
[0131]
去除掉所有空白符,得到对应的音素标注序列。
[0132]
优选地,所述目标函数计算模块中,目标函数的具体表达式为式(4)。
[0133]
第三方面,本实施例还提供一种设备,包括存储器、处理器以及存储在所述存储器上并可 在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的闽 南语语音识别方法的步骤。
[0134]
本实施例中,处理器为中央处理单元、或是其他可编程的一般用途或特殊用途的微处理器、 数字信号处理器、可编程控制器、特殊应用集成电路、可编程逻辑装置、其他类似处理电路或 这些装置的组合。
[0135]
本实施例中,存储器为eeprom、内嵌式多媒体存储卡emmc、dram、快闪存储器或非 易失性随机存取存储器等等。
[0136]
第四方面,本发明提供一种介质,所述介质上存储有计算机程序,所述计算机程序被处理 器执行时实现第一方面所述的闽南语语音识别方法的步骤。
[0137]
所述介质为存储介质,具体为eeprom、内嵌式多媒体存储卡emmc、dram、快闪存储 器或非易失性随机存取存储器等等。
[0138]
以上所揭露的仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉 本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或变型,都应涵盖在本发 明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1