随着语音编辑软件(如Adobe Audition、Gold Wave、All Editor等)的广泛使用及其功能的不断增强,人们对数字语音的篡改变得越来越容易。经篡改后的语音材料一旦被用于法政、行政以及媒体传播等场合,很容易造成事实真相的歪曲。针对数字语音的常见篡改行为有:删除、插入和拼接。其中,拼接操作通常都会伴随着插入和删除操作,是最为典型的一类篡改行为。按拼接语音片段的来源可分为同源和异源拼接两类[1-2],实际场景中异源拼接更为常见。
目前在数字语音篡改取证[3]领域取得了许多研究成果。文献[4]对数字语音篡改取证技术所取得的成果进行了总结,分析了当前存在的主要问题,并对数字语音篡改取证技术的未来进行了展望。文献[5]提出了一种基于背景噪声的数字语音取证方法。该文首先分析了传统噪声估计算法中存在频谱泄露的问题,提出将几何变换谱减法和多带谱减法相结合来更加准确地估计出环境的背景噪声;然后,利用从待检测语音中估计出的背景噪声与不同环境下背景噪声的相关性来判定带检测语音信号的完整性。文献[6]通过峰度不变性,估计语音片段每个点的噪声值,最后通过噪声值的差异性来定位篡改的位置。此类基于噪声的方法有个共同问题就是噪声难以提取或难以估计。研究表明当篡改操作发生后,MP3的帧结构会被破坏。文献[7-8]利用MP3帧结构的偏移来定位篡改位置;但是该方法的检测结果受压缩码率的影响很大。近年来,通过分析电网频率(Electric Network Frequency, ENF)特性来检测语音篡改的方法获得了广泛的关注。当录音设备通过电网供电时,其录制的数字语音中会残留有ENF信号,因此可以通过分析数字语音信号中残留的ENF信号来检测待语音。文献[9]通过从测试语音和数据库获得的ENF信号之间的绝对误差映射(Absolute Error Mapping, AEM),深入分析绝对误差映射(AEM)的特性后, 能够准确判定待检测语音是否被篡改过以及篡改的位置。文献[10]中指出一般的插入操作会导致ENF信号的不连续性,因此ENF信号的连续性可以作为判定待检测语音的一个重要特征。该文首先采用基于ESPRIT(Estimation of Signal Parameters via Rotational Invariance Techniques)的ENF估计技术,然后计算ENF信号的峰度特征,最后通过峰度是否具有突变性来检测待检测语音。虽然基于ENF信号角度取得了一定的研究成果,但也有一定的局限性。如:ENF信号相对于语音信号十分微弱,致使其也难以提取,并且现在还没有权威的ENF对照库。
综上所述,数字语音篡改取证技术已经引起了人们的广泛关注,并且取得了一定研究成果。然而,依然存在许多问题亟待解决。在此基础上, 本文提出了一种基于噪声一致性的数字语音异源拼接篡改检测算法。该算法首先提取语音中背景噪声,再提取背景噪声的方差特征,最后通过突变点检测算法检测方差是否存在突变来判定篡改的具体位置和内容。在我们创建语音库上进行实验的结果表明,该算法具有较好的篡改检测效果。
1 异源拼接数据库目前在数字语音篡改取证领域暂未出现一个公认的语音数据库,各研究团队或学者基本都是根据具体实验要求自建小型数据库,或直接使用语音识别、说话人辨认等相近领域中典型的数据库。本文是在NOIZEUS[11]语音库上创建符合实验要求的篡改语音库,图 1是篡改语音库的制作流程,有关NOIZEUS语音库的介绍和篡改库的具体制作步骤如下。
NOIZEUS是Loizou实验室开发的噪声语音库。噪声数据库包括30个由三位男性和三位女性发音的IEEE语句[12]。这些语句以不同信噪比被现实世界中的8种噪声污染。噪声信号来自于AUROROA数据库[13],包括火车站、机场、展览馆、街道和餐厅的噪声,以及汽车噪声、市郊火车的噪声、多人说话的babble噪声。噪声信号按照0 dB、5 dB、10 dB、15 dB的不同信噪比添加到语音信号中。表 1列出了噪声语音库中的部分句子,这些语音的长度为2~3 s,采样率为8000 Hz,声道数为单声道,量化精度为16位。
为了验证所提出算法的有效性,本文构建了一个符合研究目的的篡改语音数据库。制作篡改语音库所用原始语料库为NOIZEUS,最后得到的篡改语音库如表 2所示。语音库的子样本库中,0-5表示原始语音的信噪比为0 dB,插入片段语音的信噪比为5 dB,其他列依次类推。原始语料库中含有7种不同背景噪声,排列组合后每一个子样本库中含有42种类型的样本,而每一种类型的样本有30个,则每一个子样本库含有的样本数为1260。篡改语音库的构建步骤如下:
1) 待插入片段的获得。对于某一给定的带噪语音,选择一个大小在该语音长度范围之内的随机数。该随机数代表截取片段的起始位置,截取片段长度控制在大约1 s左右。最后将截取的语音片段保存为wav格式。重复以上操作4次,即得到该带噪语音的4个不同位置的片段。
2) 拼接操作的实现。以0-5子样本库为例:对于某一环境的原始语音(信噪比为0 dB),通过伪随机生成器确定最终插入片段要插入的位置。用步骤1)产生的待拼接片段(不同环境下信噪比为5 dB)在插入点位置实现拼接;最后以原始采样率保存拼接得到的语音。0 dB和10 dB与0 dB和15 dB的插入操作亦是如此。
2 篡改检测 2.1 噪声估计算法噪声估计算法主要基于以下几个现象:1)在闭塞音合段,频谱能量趋于零或接近噪声水平,但这不是语音中仅有的无声段;2)即使是在语音活动期间,带噪语音信号在单个频带的功率通常会衰减到噪声的功率水平;3)每个平带能量的直方图显示,出现频率最高的值对应于特定频带的噪声水平。基于以上现象产生了三类主要的噪声估计算法:最小值跟踪算法[14-15]、时间递归平均算法[16-19]、基于直方图的算法[20]。本文采用文献[16]中提出的一种递归平均型的噪声估计算法(简称Freq)。该算法的核心思想是通过在时频域检测语音片段中是否有语音出现来准确估计带噪语音中的噪声。该算法的流程如图 2所示,该算法对语音信号进行噪声估计的具体步骤如下。
1) 假设语音y(i)=s(i)+n(i),其中,s(i)是语音信号,n(i)是噪声信号。首先对语音进行加窗分帧处理,再对其进行快速傅里叶变换:
$Y\left( {\lambda, k} \right) = S\left( {\lambda, k} \right) + N\left( {\lambda, k} \right)$ | (1) |
其中,S(λ, k)和N(λ, k)是s(i)和n(i)的傅里叶变换系数。
2) 对Y(λ, k)作频谱平滑:
${\rho _Y}\left( {\lambda, k} \right) = \mathop \sum \limits_{v = - D}^D b\left( v \right){P_Y}\left( {\lambda, {{\left( {\left( {k - v} \right)} \right)}_K}} \right)$ | (2) |
其中,((m))K表示m模K,K为谱的长度。窗函数b(v)用于频谱加权,
3) 频谱最小值跟踪:
$ {\rho _{\min }}\left( {\lambda, k} \right) = \min (\rho \left( {\psi, k} \right)|\lambda - {D_{\min }} < \psi \le \lambda ) $ | (3) |
其中:ψ是一个整数;Dmin=U*V为语音存在时期的折中选择[26]。
4) 噪声周期图估计:
$ {P_{\hat N}}\left( {\lambda, k} \right) = \left\{ \begin{array}{l} {R_{\min }}\left( \lambda \right){\rho _{\min }}\left( {\lambda, k} \right){\rm{ }}D\left( {\lambda, k} \right) = 1, \\ {P_Y}\left( {\lambda, k} \right){\rm{ }}\;\;\;\;\;\;\;{\rm{ }}D\left( {\lambda, k} \right) = 0. \end{array} \right. $ | (4) |
其中:
$ {R_{\min }}\left( \lambda \right) = \left\{ \begin{array}{l} {R_{\min }}\left( {\lambda-1} \right){\rm{, }}\sum\limits_{k = 0}^{K-1} {D\left( {\lambda, k} \right) > 0, } \\ {\alpha _{\min }}{R_{\min }}\left( {\lambda {\rm{-1}}} \right){\rm{ + }}\left( {{\rm{1 - }}{\alpha _{\min }}} \right){{\tilde R}_{\min }}\left( \lambda \right){\rm{, }}\\ {\rm{ }}\;\;\;\;\;\;\;\;\;\;\sum\limits_{k = 0}^{K - 1} {D\left( {\lambda, k} \right) = 0} \end{array} \right. $ |
$ {{\tilde R}_{\min }}\left( \lambda \right) = \sum\limits_{k = 0}^{K-1} {{P_{\hat N}}\left( {\lambda, k} \right)} /\sum\limits_{k = 0}^{K-1} {{\rho _{{\rm{min}}}}\left( {\lambda, k} \right)} $ |
式中D(λ, k)判定语音是否存在。
5) 噪声功率谱估计:
$ {{\tilde P}_{\hat N}}\left( {\lambda, k} \right) = {R_{\min }}\left( \lambda \right){\rho _{\min }}\left( {\lambda, k} \right) $ | (5) |
6) 利用语音信号的相位信息和估计得到的噪声功率谱计算增强后的语音ŝ(i),最后将y(i)和ŝ(i)作差估计出噪声Noise(i)。
图 3(a)是一段信噪比为0 dB语音的语谱图,图 3(b)是利用该方法估计得到噪声的语谱图。从图 3(a)中可以看到,该语音信号中出现了明显的共振峰,说明有语音信号存在;而图 3(b)中几乎没有语音成分。以上现象说明,该噪声估计算法能够准确地从带噪语音中估计出噪声。
在统计突变点检测[21-22]方面,Lavielle等[23-24]作出了重要贡献。基于惩罚代价函数的突变点检测算法[25]是其中较为经典的一种(简称DCPC)。假设待检测序列Variance=(x1, x2, …, xn),序列Variance的统计分布依赖于参数β,在未知的时间点(α1* < α2* < … < αK*-1*,K*-1为设置的突变点的个数),当参数β发生了突变,要求估计K*-1的值以及序列(α1*, α2*, …, αK*-1*)。
设k为一个整数,记α=(α1*, α2*, …, αK*-1*),其中0 < α1 < α2 < … < αK-1 < n。对于变量k(1≤k≤K),构造一个用于估计参数β的惩罚代价函数
$ \begin{array}{l} M\left( {{x_{{\alpha _{k-1}} + 1}}, {x_{{\alpha _{k-1}} + 2}}, \ldots, {x_{{\alpha _K}}};\hat \beta \left( {{x_{{\alpha _{k-1}} + 1}}, {x_{{\alpha _{k - 1}} + 2}}, \ldots, {x_{{\alpha _K}}}} \right)} \right)\\ \le M\left( {{x_{{\alpha _{k - 1}} + 1}}, {x_{{\alpha _{k - 1}} + 2}}, \ldots, {x_{{\alpha _K}}};\beta } \right) \end{array} $ | (6) |
定义惩罚代价函数:
$ \begin{array}{l} J\left( {\alpha, s} \right) = \frac{1}{n}\mathop \sum \limits_{k = 1}^K M\left( {{x_{{\alpha _{k-1}} + 1}}, {x_{{\alpha _{k-1}} + 2}}, , \ldots, {x_{{\alpha _K}}};} \right.\\ \;\;\;\;\;\;\;\;\;\hat \beta \left( {{x_{{\alpha _{k-1}} + 1}}, {x_{{\alpha _{k - 1}} + 2}}, , \ldots, {x_{{\alpha _K}}}} \right) \end{array} $ | (7) |
其中:α0=0;αK=n;s为待检测序列Variance=(x1, x2, …, xn)。
假设待检测序列S可建模为信号模型:xi=θi+τi μi(i=1, 2, …, n),其中μi是均值为0、方差为1的随机变量。若S发生了方差突变,则:
$\begin{array}{l} M\left( {{x_{{\alpha _{k - 1}} + 1}}, {x_{{\alpha _{k - 1}} + 2}}, \ldots, {x_{{\alpha _K}}};{\tau ^2}} \right) = \\ ({\alpha _k} - {\alpha _{k - 1}}){\rm{lb}}\left( {{\tau ^2}} \right) + \frac{1}{{{\tau ^2}}}\mathop \sum \limits_{i = {\alpha _{k - 1}} + 1}^{{\alpha _K}} {\left( {{x_i} - \theta } \right)^2} \end{array}$ | (8) |
由式(7)得到:
$J\left( \alpha ,s \right)=\frac{1}{n}\sum\limits_{k=1}^{K}{\left( {{\alpha }_{k}}-{{\alpha }_{k-1}} \right)}\operatorname{lb}\left( \hat{\tau }_{{{\alpha }_{k-1}}+1:{{\alpha }_{k}}}^{2} \right)$ | (9) |
其中:
假设待检测语音信号为y(i)=s(i)+n(i),其中,s(i)是语音信号,n(i)是噪声信号。篡改检测具体流程如下:
1) 利用式(5)估计出噪声的功率谱密度
2) 对估计得到的噪声Noise(i)=(m1, m2, …, mi)进行加窗分帧处理,然后求取每一帧语音的方差特征组成方差序列Variance=(x1, x2, …, xn)。
3) 将2)中方差序列Variance作为输入数据,通过突变点检测算法检测实际的篡改位置和篡改内容。
为了验证提出算法的有效性,从制作的篡改语音库中选取一个样本,然后利用上述算法对其进行篡改检测。图 4(a)是原始未经篡改的语音:The lazy cow lay in the cool grass,该语音的背景噪声为car,噪声信噪比为0 dB。插入片段语音为:Hedge apples,其背景噪声为babble,噪声信噪比为5 dB。经插入操作后得到的语音如图 4(b)所示,其中黑色虚线之间的区域为插入片段。图 4(c)是篡改检测的结果,其中黑色虚线之间的区域为插入的片段。从图 4(c)中可以看出,被篡改区域的方差明显低于未被篡改区域的方差。该检测算法能够准确地判定出篡改的起始位置,且能够检测出整个被篡改的区域。
实验使用1.2节制作的样本库。该样本库包含9个子样本库,每个子样本库含有1260个样本。样本采样率为8 kHz,声道数为单声道,量化精度为16位,长度为3~4 s。Freq算法主要参数为:γ″=6,γ′=0.05。DCPC算法主要参数为:Kmax=3,α=1E-5,Lmin=1。
3.1 信噪比估计噪声估计的有效性将直接影响最终篡改检测的结果。由式(4)可知,对于Freq噪声估计算法,U、V参数将影响ρmin的追踪,而ρmin对
为了评价引入平均识别精确度(precision)和平均召回率(recall)作为客观指标评价篡改检测的性能,计算式如下:
$ percision = \left( {\mathit{\tilde \Omega } \cap \mathit{\Omega }} \right)/\mathit{\tilde \Omega } $ | (10) |
$ recall = \left( {\mathit{\tilde \Omega } \cap \mathit{\Omega }} \right)/\mathit{\Omega } $ | (11) |
$ F = \frac{{2*percision*recall}}{{percision + recall}} $ | (12) |
其中: Ω表示实际篡改的区域;
在前面篡改检测算法的基础上,将优化后的Freq算法和另外的六种噪声估计算法:Martin[13]、Mcra[16]、Mcra2[18]、Imcra[17]、Dob[14]、Hirsch[19]在0-5的子样本库上作了篡改检测结果对比,其中Freq的结果在U=5、V=2时取得,具体结果如表 5所示。从表 5可知,算法Freq的precision值明显高于其他算法的precision值,达到了0.8969;, 算法Martin的recall值最大达到0.9199,算法Freq的recall值次之,为0.9142;算法Freq的F值明显高于其他算法的F值,达到0.9055。该实验结果表明,在本文提出的篡改检测算法中运用Freq噪声估计算法能产生更好的篡改检测结果。
通过3.1节分析可知,Freq算法中U、V参数对于算法的性能影响很大,因此本实验通过调节U、V的值来寻找最优的篡改检测结果,其中篡改检测结果用F值来表示。考虑到U、V的值不易过大或者过小,因此将U的值限定为2、3、4、5,将V的值限定为2、3、4、5、6、7、8。在不同的子样本库下,分别利用这28种参数组合进行篡改检测,结果如表 6~9所示。从表 6中可知:0-0子样本库在U=3,V=6时算法检测准确率最好,虽然检测结果相对于别的子样本库较差,但是其F值也达到了0.7931;在0-5、0-10、0-15子样本库上,当U=5、V=2时其F值分别达到0.9055、0.9497、0.9587。
从表 6~9可以得出,在同一个子样本库下不同的U、V值对篡改检测结果影响很明显,并且当U、V值都较小或U、V值都较大时,篡改检测结果较差。从表 7~9可以看出,若未被篡改语音和插入片段语音的信噪比不同,则当U=5、V=2时,其篡改检测结果最好。从表 7~9可以看出,当原始语音与插入片段语音信噪比不同,则在所有的U、V值下其检测结果都明显优于原始语音和插入片段信噪比相同时的检测结果,并且当原始语音与插入语音的信噪比相差越大其检测结果越好。
为了分析噪声强度对于算法检测结果的影响,对所有的子样本库使用上述篡改检测算法求取不同U、V参数下的F值,然后在相应的子样本上求取F的平均值,最后得出噪声强度差值相同的子样本库对应的F平均值的变化趋势,结果如图 5所示。图 5中,信噪比相同曲线表示0-0、5-5、10-10、15-15子样本库下F的平均值变化趋势,信噪比差值5 dB曲线、信噪比差值10 dB曲线分别表示0-5、5-10、10-15和0-10、5-15子样本库下F的平均值变化趋势。从图 5中可以看出,当噪声差值相同时,噪声强度越小,其检测结果越差。在实际场景当中亦是如此,即噪声强度越小,噪声越难提取,相应的检测结果就会越差。
功能强大的语音编辑软件的出现使得语音篡改取证变得越来越困难,本文提出一种基于噪声估计的语音异源篡改检测算法。首先从待检测语音中提取背景噪声,然后提取背景噪声的方差特征,最后通过检测背景噪声的方差是否存在突变来判定待检测语音是否被篡改过以及篡改的内容,实验表明该算法具有较好的效果。但是针对信噪比相同的篡改语音本文算法的效果不是很好,在今后的工作中会致力于此问题的研究。
[1] | CHEN J, XIANG S, HUANG H, et al. Detecting and locating digital audio forgeries based on singularity analysis with wavelet packet[J]. Multimedia Tools and Application, 2016, 75(4): 2303-2325. DOI:10.1007/s11042-014-2406-3 |
[2] | SMITH J. Digital and multimedia forensics[J]. Journal of the Audio Engineering Society, 2015, 63(9): 750-751. |
[3] | 钟巍. 音频取证综述[C]//第九届全国信息隐藏暨多媒体信息安全学术大会会议论文集. 北京: 中国电子学会, 2010: 377-386. (ZHONG W. Audio forensics review[C]//Proceedings of CIHW2010. Beijing:Chinese Institute of Electronics, 2010:377-386.) |
[4] | ZAKARIAH M, KHAN M K, MALIK H. Digital multimedia audio forensics:past, present and future[J/OL]. Multimedia Tools and Applications, 2017:1-32.[2017-04-10]. http://www.doc88.com/p-3847424809545.html. |
[5] | IKRAM S, MALIK H. Digital audio forensics using background noise[C]//Proceedings of the 2010 IEEE International Conference on Multimedia and Expo. Piscataway, NJ:IEEE, 2010:106-110. |
[6] | PAN X, ZHANG X, LYU S. Detecting splicing in digital audios using local noise level estimation[C]//Proceedings of the 2012 IEEE International Conference on Acoustics. Piscataway, NJ:IEEE, 2012:1841-1844. |
[7] | YANG R, QU Z H, HUANG J W. Detecting digital audio forgeries by checking frame offsets[C]//Proceedings of the 200810th ACM Workshop on Multimedia and Security. New York:ACM, 2008:21-26. |
[8] | YANG R, QU Z H, HUANG J W. Exposing MP3 audio forgeries using frame offsets[J]. ACM Transactions on Multimedia Computing Communications & Applications, 2012, 8(2S): Article No. 35. |
[9] | HUA G, ZHANG Y, GOH J, et al. Audio authentication by exploring the absolute-error-map of ENF signals[J]. IEEE Transactions on Information Forensics and Security, 2016, 11(5): 1003-1016. DOI:10.1109/TIFS.2016.2516824 |
[10] | GALDO G D. Audio authentication using the kurtosis of ESPRIT based ENF estimates[C]//Proceedings of the 201610th IEEE International Conference on Signal Processing and Communication Systems. Piscataway, NJ:IEEE, 2016:1-6. |
[11] | HU Y, LOIZOU P C. Subjective comparison of speech enhancement algorithms[C]//Proceedings of the 2016 IEEE International Conference on Acoustics, Speech, and Signal Processing. Piscataway, NJ:IEEE, 2006:153-156. |
[12] | IEEE. IEEE recommended practice for speech quality measurements[S]. Piscataway, NJ:IEEE, 1969:255-246. |
[13] | HIRSCH H, PEARCE D. The aurora experimental framework for the performance evaluation of speech recognition systems under noise conditions[EB/OL].[2017-04-10]. http://www.isca-speech.org/archive/archive_papers/icslp_2000/i00_4029.pdf. |
[14] | MARTIN R. Noise power spectral density estimation based on optimal smoothing and minimum statistics[J]. IEEE Transaction son Speech and Audio Processing, 2001, 9(5): 504-512. DOI:10.1109/89.928915 |
[15] | DOBLINGER G. Computationally efficient speech enhancement by spectral minima tracking in subbands[EB/OL].[2017-04-10]. http://pdfs.semanticscholar.org/5516/b12d0c398f0476743aef045414a2da7f7ff6.pdf. |
[16] | SØRENSEN K V, ANDERSEN S V. Speech enhancement with natural sounding residual noise based on connected time-frequency speech presence regions[J]. EURASIP Journal of Applied Signal Processing, 2005, 2005(18): 2954-2964. |
[17] | COHEN I, BERGUGO B. Noise estimation by minima controlled recursive averaging for robust speech enhancement[J]. IEEE Signal Processing Letters, 2002, 9(1): 12-15. DOI:10.1109/97.988717 |
[18] | COHEN I. Noise spectrum estimation in adverse environments:improved minima controlled recursive averaging[J]. IEEE Transactions on Speech and Audio Processing, 2003, 11(5): 466-475. DOI:10.1109/TSA.2003.811544 |
[19] | RANGACHARI S, LOIZOU P C. A noise estimation algorithm for highly non-stationary environments[J]. Speech Communication, 2006, 48(2): 220-231. DOI:10.1016/j.specom.2005.08.005 |
[20] | HIRSCH H G, EHRLICHER C. Noise estimation techniques for robust speech recognition[C]//Proceedings of the 1995 IEEE International Conference on Acoustics, Speech, and Signal Processing. Piscataway, NJ:IEEE, 1995:153-156. |
[21] | 苏卫星, 朱云龙, 刘芳, 等. 时间序列异常点及突变点的检测算法[J]. 计算机研究与发展, 2014, 51(4): 781-788. (SU W X, ZHU Y L, LIU F, et al. Outliers and change-points detection algorithm for time series[J]. Journal of Computer Research and Development, 2014, 51(4): 781-788. DOI:10.7544/issn1000-1239.2014.20120542) |
[22] | 曹杰, 陶云, 田永丽. 时间序列转折突变点检测的线性函数方法[J]. 高原气象, 2002, 21(5): 518-521. (CAO J, TAO Y, TIAN Y L. The linear function method for detecting transit jump point of a time series[J]. Plateau Meteorology, 2002, 21(5): 518-521.) |
[23] | LAVIELLE M, LEBARBIE E. An application of MCMC methods to the multiple change-points problem[J]. Signal Processing, 2001, 81(1): 39-53. DOI:10.1016/S0165-1684(00)00189-4 |
[24] | LAVIELLE M. Detection of multiple changes in a sequence of dependent variables[J]. Stochastic Processes and their Applications, 1999, 83(1): 79-102. DOI:10.1016/S0304-4149(99)00023-X |
[25] | LAVIELLE M. Using penalized contrasts for the change-point problem[J]. Signal Processing, 2005, 85(8): 1501-1510. DOI:10.1016/j.sigpro.2005.01.012 |
[26] | MARTIN R. Noise power spectral density estimation based on optimal smoothing and minimum statistics[J]. IEEE Transactions on Speech & Audio Processing, 2001, 9(5): 504-512. |