基于端点检测的蒙藏维语音片段数据集
基于端点检测的蒙藏维语音片段数据集 作者:韦向峰 袁毅 张全 吐尔逊·卡得 2019年12月30日 |
|
摘要&关键词
编辑摘要:在“中国少数民族地区蒙藏维言语录音2015数据集”的语音数据基础上,采用短时能量和短时过零率的双门限端点检测方法,得到一个句子语音的多个语音片段文件。本语音片段数据集包含蒙古语语音片段1657个、藏语语音片段666个、维吾尔语语音片段756个,数据总量大小约为111 MB。通过软件自动切分和语言专家的多重审核校对得到高质量的蒙藏维多语种的语音片段数据,可应用于少数民族的语音识别、端点检测、语音增强、语音合成和语言教学等领域。
关键词:语音片段;端点检测;蒙古语;藏语;维吾尔语;语音数据
Abstract & Keywords
编辑Abstract: Based on the speech data in Mongolian, Tibetan, and Uyghur speech data from Chinese minority regions in 2015, we adopted a double threshold Voice Activity Detection method with short-time energy and short-time zero-crossing rate to obtain multiple voice fragments of each sentence speech. The result dataset contains 1657 Mongolian speech fragments, 666 Tibetan speech fragments and 756 Uygur speech fragments. The total volume of the data is about 111 MB. Through automatic software segmentation and multiple auditing and proofreading by language experts, we have obtained high-quality voice fragment data of Mongolian, Tibetan and Uygur, which can be applied to minority speech recognition, voice activity detection, speech enhancement, speech synthesis and language teaching.
Keywords: speech fragment; voice activity detection; Mongolian; Tibetan; Uyghur; speech data
数据库(集)基本信息简介
编辑数据库(集)名称 | 基于端点检测的蒙藏维语音片段数据集 |
数据作者 | 韦向峰、袁毅、张全、吐尔逊·卡得 |
数据通信作者 | 韦向峰(wxf@mail.ioa.ac.cn) |
数据时间范围 | 2015年 |
地理区域 | 中国内蒙古、青海、西藏、新疆 |
数据量 | 111 MB |
数据格式 | *.mp3 |
数据服务系统网址 | http://www.sciencedb.cn/dataSet/handle/788 |
基金项目 | 中国科学院信息化专项科学大数据工程(一期),多民族语言资源特色数据库,XXH13505-03-203;中国科学技术信息研究所富媒体数字出版内容组织与知识服务重点实验室开放基金项目,面向语音与文本内容的富媒体关联研究与技术实现;国家社科基金项目,维吾尔语方言语音声学参数库研制,13BYY34。 |
数据集组成 | 数据集分为蒙古语、藏语、维吾尔语3个语种,分别保存到meng、zang、wei 3个目录,每个目录包含相应语种的语音片段文件,蒙古语语音片段1657个、藏语语音片段666个、维吾尔语语音片段756个。 |
Dataset Profile
编辑Title | A dataset of Mongolian, Tibetan and Uyghur speech fragments based on voice activity detection |
Data corresponding author | Wei Xiangfeng (wxf@mail.ioa.ac.cn) |
Data authors | Wei Xiangfeng, Yuan Yi, Zhang Quan, Tursun Kadir |
Time range | 2015 |
Geographical scope | Inner Mongolia, Qinghai, Tibet and Xinjiang in China |
Data volume | 112 MB |
Data format | *.mp3 |
Data service system | <http://www.sciencedb.cn/dataSet/handle/788> |
Sources of funding | Multi-Layer Multi-Lingual Resource Characteristic Database,Scientific Big Data Project (Phase I), Special Project for Informatization in Chinese Academy of Sciences, XXH13505-03-203; Research and Technical Implement on Rich Media Linkage between Speech and Text, Open Fund Project of Key Laboratory of Rich Media Digital Publishing Content Organization and Knowledge Service, Institute of Scientific and Technical Information of China; Research and Development of Acoustic Parameter Database of Uygur Dialect, National Social Science Fund Project, 13BYY34. |
Dataset composition | The dataset is divided into three languages: Mongolian, Tibetan and Uygur, which are saved to three directories: meng, zang and wei. Each directory contains speech fragment files of corresponding languages, including 1657 Mongolian speech fragments, 666 Tibetan speech fragments and 756 Uygur speech fragments. |
引 言
编辑随着人工智能技术的蓬勃发展,数据特别是已标注数据在其中起到了关键的基础作用,许多人工智能系统的启动和模型训练已经离不开数据或已标注数据。在人机语音交互的语音识别、语音合成等领域,语音片段语料具有重要的价值和实际应用。例如在语音识别系统中,经过端点检测的语音片段可以节省存储空间,提高识别的速度,去除非语音内容和部分噪音,改善后续处理的性能和效率。
我国是一个多民族的国家,少数民族的语音数据和语音处理技术与汉语相比还有很大的差距,少数民族的语言资源处理由于各种原因存在研究力量少、可供交流共享的数据少、研究力量和数据资源分散,以及规范标准不统一等问题。在汉语或英语的语音信号端点检测中,常用的方法有基于短时能量、短时过零率、倒谱特征和信息熵的方法[1][2][3][4]。针对蒙古语的语音信号处理,有研究者提出了基于支持向量机(Support Vector Machine,SVM)的蒙古语语音端点检测方法,在参考借鉴汉语、藏语等语种的语音端点检测技术基础上,实现了对蒙古语的语音段和非语音段的分类检测,取得了良好效果[5]。近年来由于人工神经网络技术的兴起,有研究者利用深度神经网络和卷积神经网络作为分类模型,结合多通道的语音信号对不同噪声环境类型进行分类处理,结果表明多通道的语音信号可以有效提升分类效果,且对不同类型噪声环境具有一定的鲁棒性[6]。此外,还有针对彝语孤立词的端点检测,通过引入经验模态分解与改进的过零率法相结合,对于较低信噪比环境下的带噪彝语孤立词,可以得到比经典方法相对更加准确的端点检测结果[7];针对佤语语音语料的端点检测,利用多窗谱估计谱减法去除语音的背景噪音以提高信噪比,然后再使用能熵比算法进行端点检测,仿真结果表明,与常规的能熵比算法相比,该种端点检测方法的准确率提高了34%[8]。由于基于SVM和人工神经网络的方法需要标注好的大量训练语料,而基于短时能量和短时过零率的方法不需要训练语料、在信噪比高的条件下就可获得较好的结果,所以本文在缺乏少数民族语言端点检测训练语料且所处理语音语料具有高信噪比的条件下,选用了基于短时能量加短时过零率的方法。
本文数据集的语音片段数据主要是使用端点检测中的双门限(短时能量)加短时过零率检测方法,对《2015年中国少数民族地区蒙藏维言语录音数据集》[9]蒙古语、藏语和维吾尔语的语音数据进行了端点检测,把句子级的语音信号切分成多个纯语音片段,再通过人工审核和校对处理得到符合要求的人类语音片段,不含人类语音的语音片段被舍弃。这些语音片段可作为蒙藏维语音识别系统中端点检测的标准语料,测试端点检测的准确率;进一步加工后也可以作为蒙藏维语音识别系统的评测语料,评测语音识别系统的错误率;还可以用于蒙藏维语音合成系统中的停顿、节奏、语气等韵律研究。本文希望通过数据集的开放共享,为少数民族特别是蒙藏维等民族的语音数据资源提供不同层次、不同角度的研究数据,促进蒙藏维言语数据、语音分析和语音处理系统的开发研究,同时为民族地区科技研究、社会发展和语言信息化做出贡献。
1 数据采集和处理方法
编辑本数据集是对《2015年中国少数民族地区蒙藏维言语录音数据集》[10]中语音文件的加工, 该数据集中的每一个语音文件(mp3格式)对应一个句子。因此,一个句子的语音文件经过端点检测技术加工后,得到多个语音片段结果文件(也是mp3格式),语音片段结果文件是句子语音的一部分,不包含静音段或噪声段。
为了得到句子中的人类语音信号,去除句子中的静音段或噪声段,需要进行以下步骤的处理:(1)数据预处理;(2)计算短时能量和过零率;(3)获取语音段。数据预处理是把句子的语音信号转化为标准的语音信号,以便后续步骤的处理和数据的规范。计算短时能量和过零率是对语音信号进行分帧和加窗处理,然后根据公式计算每一帧的短时能量和短时过零率。获取语音段是根据一定的算法,判断语音信号中人类发声语音段的起始位置和终止位置,并把这些语音片段信号切分出来。以下是对这三个步骤的更具体的描述。
1.1 数据预处理
编辑加工前的语音信号数据[10],在本文中既有单通道的,也有多通道的;采样率包括8 KHz、16 KHz、44.1 KHz等。为了保证数据的统一规范和后续数据处理的便利,本文使用FFmpeg软件对语音信号文件进行了数据转化,统一转化为16 KHz、单声道的音频数据文件。FFmpeg软件可以对音视频数据(如wav、mp3、mp4格式的文件)进行转化和处理,得到不同格式不同参数标准的数据文件。以下命令是把一个mp3文件转换为规范的单声道、采样率为16 KHz的mp3文件:
FFmpeg.exe -i 2019-1.mp3 -ac 1 -ar 16000 2019-2.mp3
经过数据预处理后的语音数据文件可以用于语音信号的分帧、能量计算、时频转换、参数提取等,为后续步骤提供标准规范的数据。
1.2 短时能量和短时过零率
编辑语音信号虽然是典型的非平稳信号,但在一个很短的时间内(20–30 ms)可以看作一个短时平稳过程,在一个短时间内可以假设信号的频谱参数和物理特征不变。在处理语音信号时通常取20 ms为一个“帧”,从而可以计算帧的短时物理特征。在对语音信号进行分帧处理时,为了使帧与帧之间的过渡能够平稳,前一帧与后一帧之间可以有重叠的部分,称为帧移(帧移可以取0–1/2的帧长)。在对时域信号进行处理时,每次只能对有限长度的信号进行快速傅里叶变换(Fast Fourier Transform,FFT),如果分帧处理时截断的时间不是周期的整数倍,那么就会产生信号截断或者信号泄露。为了避免这种信号截断效应,需要对一帧语音进行加窗处理,即用一个窗函数W(n)乘以一帧语音信号x(n),得到加窗后的语音信号xw(n)=W(n)*x(n)。
常用的窗函数有矩形窗和汉明窗,它们的数学函数表示分别如下:
(1)矩形窗函数:
\(W_{(n)}=\left\{\begin{matrix}1 & 0\leqslant n\leqslant L-1\\ 0&others \end{matrix}\right.\) (1)
(2)汉明窗函数:
\(W_{(n)}=\left\{\begin{matrix}0.54-0.46cos \left ( \frac{2\pi n}{L-1} \right ) & x< 0\leqslant n\leqslant L-1\\ 0&others \end{matrix}\right.\) (2)
其中,L为时域中窗的长度。一般而言,在处理语音的时域信号时选择使用矩形窗,在处理语音的频域信号时选择使用汉明窗。
语音信号中第n帧的短时能量(使用矩形窗)定义如下:
\({E}_{n}=\sum _{m=-\infty }^{+\infty }{\left[x\left(m\right)W\left(n-m\right)\right]}^{2}=\sum _{m=n-\left(N-1\right)}^{n}{\left[x\left(m\right)W\left(n-m\right)\right]}^{2}=\sum _{m=n-\left(N-1\right)}^{+\infty }{x}^{2}\left(m\right)\) (3)
其中,N为一帧中采样点的个数(即帧长)。在不同的帧中,静音片段的语音信号与人类语音片段的短时能量显然是不同,因此可以通过短时能量的计算区分出静音信号和人类语音信号。但是,人类的语音信号中又分为清音和浊音,清音的能量较小,浊音的能量大。所以用短时能量的方法很容易把清音归入到静音片段中,造成端点检测的准确率下降。而短时过零率则可以区分出清音和浊音,因为清音的能量多集中在较高的频率上,清音的短时过零率要高于浊音。对语音的时域信号而言,短时过零率就是一帧语音波形穿过横轴(过零)的次数。对离散信号而言,可以通过相邻采样点的取值是否发生变化来判断是否穿过横轴(过零)。因此,短时过零率的计算公式为:
\({Z}_{n}=\frac{1}{2}\sum _{i=2}^{N}\left|sign\left({x}_{n}\left(i\right)\right)-sign\left({x}_{n}\left(i-1\right)\right)\right|\) (4)
其中,sign为符号函数,即:
\(sign(x)=\left\{\begin{matrix}1 &x< 0 \\ -1&x\geqslant 0 \end{matrix}\right.\) (5)
这样,通过对语音信号的分帧、加窗处理,计算出每一帧的短时能量和短时过零率,然后通过设置人类语音与噪音、静音之间的短时能量门限,可以判断该帧语音信号是否为人类语音;通过设置短时过零率的门限,可以把清音、浊音、噪音区分开来,避免把清音作为静音处理,从而提高对语音信号端点检测的准确率。
1.3 获取语音片段
编辑在计算出每一帧的短时能量和短时过零率之后,可以用双门限加短时过零率的门限来判断人类语音信号片段的起始帧位置和结束帧位置。因为人类发声是一个从无声到逐渐增强,在逐渐减弱到无声的过程,所以利用这一发声的能量特性可以得到语音信号中的人类发声语音片段。首先,设定一个较高的门限T1,当某一帧语音信号的短时能量大于门限T1时,可以认为是语音片段的一个开始位置B1;当另一帧语音信号的短时能量小于门限T1时,可以认为是语音片段的一个结束位置E1。这里获得的开始位置和结束位置有一定的误差,还需要进一步精细化边界。其次,设定一个较低的门限T2,从前面获得的起始位置B1往前面的帧寻找低于门限T2的帧,找到的第一个帧就是新的起始位置B2;同理,从前面获得的结束位置E1往后寻找低于门限T2的帧,找到的第一个帧就是新的结束位置E2。起始位置B2到结束位置E2之间的语音信号段即为基于短时能量双门限判断得到的人类发声语音片段。由于使用这种方法仍然有可能漏掉一些清音,所以还需要使用短时过零率的门限进一步进行边界的精细化。第三,设定一个过零率的门限T3,从起始位置B2往前面的帧寻找低于门限T3的帧,找到的第一个帧就是新的起始位置B3;同理,从起始位置E2往后寻找低于门限T3的帧,找到的第一个帧就是新的结束位置E3。此时,获得的起始位置B3和结束位置E3就是人类发声语音片段的最终起止位置(需要说明的是,在第二步中可能找不到低于门限T2的帧,则起始位置仍为B1或者结束位置仍为E1;在第三步中,若找不到低于门限T3的帧,则仍以前面步骤获得的起止位置为最终起止位置)。
具体的实现步骤如下[11]:
(1)对语音信号进行分帧、加窗处理;
(2)以帧为单位,计算每一帧的短时能量En 和短时过零率Zn;
(3)算出前m帧(如6–10帧)语音信号的短时能量和过零率的门限值,计算公式如下:
\(t_{0}=0.03\left ( \underset{n= 1,2,...,m}{max}\left \{ E_{n} \right \}-\underset{n= 1,2,...,m}{min}\left \{ E_{n} \right \} \right )+\underset{n= 1,2,...,m}{max}\left \{ E_{n} \right \}\) (6)
\(t_{1}=4*\underset{n= 1,2,...,10}{min}\left \{ E_{n} \right \}\) (7)
\({T}_{2}=\mathrm{m}\mathrm{i}\mathrm{n}\left\{{t}_{0},{t}_{1}\right\}\) (8)
\({T}_{1}=5*{T}_{2}\) (9)
\({T}_{3}=\mathrm{m}\mathrm{i}\mathrm{n}\left\{25,\mu +2\sigma \right\}\) (10)
其中,m为帧数,μ 为m帧信号的过零率的平均值, σ 为标准差。
(4)使用短时能量和过零率的门限值T1、T2和T3,搜寻得到语音片段的最终起止位置,方法如下:
从第m+1帧开始,找到第一个短时能量大于t0的帧(假设帧号为b),从b往后检查每一帧的短时能量,如果在超过T1之前都比t0小的话,帧号b作为起始位置的资格作废,按步骤(3)继续寻找下一个帧号b。直到找到第一个短时能量大于T1的帧,这就是语音段的起始位置B1。然后从b往前到b−25帧,依次比较过零率,如果有3帧以上的过零率大于或者等于T3,则满足此条件的最前面的帧作为起始位置B3,否则起始位置仍为B1。
从起始位置开始,往后面寻找第一个短时能量小于T2的帧(假设帧号为e),得到结束位置E2。从e往后到e+25帧,依次比较过零率,如果有3帧以上的过零率等于或者大于T3,则满足此条件的最后面的帧作为结束位置E3,否则结束位置仍为E2。
从结束位置的后一帧继续寻找获得新的语音片段的起始位置和结束位置,直到整个语音信号的末尾。
这样,就可以获得语音信号中的多个语音片段的各自起始位置和结束位置,而静音段和噪声段的语音信号被舍弃。根据语音片段的起始位置和结束位置可以从语音信号中截取出新的语音片段文件。在本文中语音片段的保存格式是mp3格式。
2 数据样本描述
编辑本数据集包含蒙古语、藏语和维吾尔语3个语种的语音片段数据文件,分别保存于不同的3个文件目录:meng、zang、wei。藏语和维吾尔语的语音片段文件命名方式与蒙古语的类似。其中,蒙古语的语音片段数据文件有1657个,藏语的语音片段数据文件有666个,维吾尔语的语音片段数据文件有756个;对应的蒙古语、藏语和维吾尔语的原始语音文件个数分别为:498个、83个和200个。
本数据集的样本为多个语音文件,文件格式为mp3格式,每个语音文件存储一个语音片段。文件名称第一部分的数字编号相同的语音文件,其中的某些语音片段可能来自于同一个原始语音信号文件[10]。
2.1 蒙古语的语音片段
编辑蒙古语的语音片段文件共1657个,部分蒙古语语音片段文件如图1所示。
图1 蒙古语的语音片段文件示例
图1中文件名称的第一部分数字(如“302”)表示原始的语音文件编号(即在《2015年中国少数民族地区蒙藏维言语录音数据集》[10]中的编号),见图2。文件名称的第二部分数字(如“600”)表示该语音片段在原始语音文件中的起始时间位置,文件名称的第三部分数字(如“4400”)表示该语音片段在原始语音文件中的结束时间位置,时间位置的单位为ms(毫秒)。
图2 蒙古语原始语音文件的名称和编号示例
蒙古语的语音片段切分之前的原始语音文件为一个完整句子的录音,蒙古语的原始语音文件共498个,部分蒙古语原始语音文件和编号如图2所示。
2.2 藏语的语音片段
编辑藏语的语音片段文件共666个,部分藏语语音片段文件如图3所示。
图3 藏语的语音片段文件示例
图3中文件名称的第一部分数字(如“4134”)表示原始的语音文件编号(即在《2015年中国少数民族地区蒙藏维言语录音数据集》[10]中的编号),见图4。文件名称的第二部分数字(如“2300”)表示该语音片段在原始语音文件中的起始时间位置,文件名称的第三部分数字(如“3700”)表示该语音片段在原始语音文件中的结束时间位置,时间位置的单位为ms(毫秒)。
图4 藏语原始语音文件的名称和编号示例
藏语的语音片段切分之前的原始语音文件为一个完整句子的录音,藏语的原始语音文件共83个,部分藏语原始语音文件和编号如图4所示。
2.3 维吾尔语的语音片段
编辑维吾尔语的语音片段文件共756个,部分维吾尔语语音片段文件如图5所示。
图5 维吾尔语的语音片段文件示例
图5中文件名称的第一部分数字(如“3001”)表示原始的语音文件编号(即在《2015年中国少数民族地区蒙藏维言语录音数据集》[10]中的编号),见图6。文件名称的第二部分数字(如“600”)表示该语音片段在原始语音文件中的起始时间位置,文件名称的第三部分数字(如“5400”)表示该语音片段在原始语音文件中的结束时间位置,时间位置的单位为ms(毫秒)。
图6 维吾尔语原始语音文件的名称和编号示例
维吾尔语的语音片段切分之前的原始语音文件为一个完整句子的录音,维吾尔语的原始语音文件共200个,部分维吾尔语原始语音文件和编号如图6所示。
3 数据质量控制和评估
编辑本数据集的基础是《2015年中国少数民族地区蒙藏维言语录音数据集》[10],该数据集的语音数据文件质量高、信噪比高,因此在该数据集的基础上加工得到的语音片段文件具有很高的准确率。为了进一步确保数据的质量和准确性,对于蒙古语、藏语和维吾尔语三个语种的语音片段文件,每个语种请两位语言专家对照原始语音文件进行审核校对,对于错误的语音片段文件,定位其在原始语音文件中的位置,利用语音标注软件Praat等软件工具进行重新标注和修正,并对相邻的语音片段文件也进行了重新校对。通过软件和算法(参见本文第1章的数据处理方法),可以自动得到一个原始语音文件的多个语音片段,再通过专家之间的相互审核校对,就得到了最终的准确度高、保证质量的蒙古语、藏语和维吾尔语的语音片段数据集。
4 数据价值
编辑本数据集中的蒙古语、藏语和维吾尔语的语音片段数据,可以直接作为相应少数民族语种语音识别系统端点检测模块的测试基准,测试端点检测结果的准确程度;也可以分析研究其中的语音特征参数、各语种语音特征的特点和难点,改进端点检测算法,进一步提高端点检测的准确率,增强端点检测算法在低信噪比和噪声背景下的自适应能力和鲁棒性。通过语音文件对应的文本、语音片段对应的文本,本数据集也可以作为测试少数民族相应语种语音识别系统的测试数据,测试语音识别系统的性能,进一步提取语音片段的参数特性,分析改进语音识别系统的方法。本数据集还可以作为少数民族相应语种的语音合成系统的数据基础,用于分析相应语种的发音特点、停顿特点、韵律节奏特点;经过进一步的加工可以从中提取词汇级、短语级的对应语音和文本,直接作为相应语种语音合成系统的数据基础。总之,本数据集的语音片段数据,包含了人类发音的基本信号和信息,从中可以分析语音信号特征和测试语音信号处理系统,从而应用到相应的语音识别、语音增强、语音合成和语音教学等多个领域。
参考文献
编辑- ↑ 崔冬青, 李治柱. 一种噪声环境下连续语音识别的快速端点检测算法[J]. 计算机工程与应用, 2003, 32(23):97–101.
- ↑ 徐大为, 吴边. 一种噪声环境下的实时语音端点检测算法[J]. 计算机工程与应用, 2003, 32(l):115–117.
- ↑ 刘庆生, 徐霄鹏. 一种语音端点检测方法的探究[J]. 计算机工程, 2003, 29(3) :120–123.
- ↑ 夏敏磊. 语音端点检测技术研究[D]. 杭州: 浙江大学, 2005.
- ↑ 朝木日乐格. 基于支持向量机的蒙古语语音端点检测方法研究[D]. 呼和浩特: 内蒙古大学, 2011.
- ↑ 王思蒙. 基于神经网络的多通道语音端点检测方法研究[D]. 呼和浩特: 内蒙古大学, 2018.
- ↑ 杨喜敬. 带噪汉、彝孤立词的端点检测方法对比研究[D]. 昆明: 昆明理工大学, 2015.
- ↑ 和丽华, 江涛, 潘文林, 等. 佤语语音语料端点检测算法[J]. 云南大学学报(自然科学版), 2019, 28(2): 186–190.
- ↑ 韦向峰, 袁毅, 张全, 等. 2015年中国少数民族地区蒙藏维言语录音数据集[J/OL]. 中国科学数据, 2016, 1(2). DOI: 10.11922/csdata.120.2015.0024.
- ^ 10.0 10.1 10.2 10.3 10.4 10.5 10.6 韦向峰, 袁毅, 张全, 等. 2015年中国少数民族地区蒙藏维言语录音数据集[DB/OL]. Science Data Bank. (2015-10-23). DOI: 10.11922/scidb.120.30.
- ↑ 姜璐璐. 汽车噪声背景下孤立词语音信号的去噪处理与识别[D]. 青岛: 青岛大学, 2014.
数据引用格式
编辑韦向峰, 袁毅, 张全, 吐尔逊·卡得. 基于端点检测的蒙藏维语音片段数据集[DB/OL]. Science Data Bank, 2019. (2019-07-22). DOI: 10.11922/sciencedb.788.