可能很多人看到题目会觉得奇怪,Praat用于音频分析处理的多,怎么会和电话号码泄露扯上关系?很多人都知道,我们手机或者座机进行拨号时会有拨号音,这个拨号音如果我们人耳听中听不出多大区别来的,但是我们结合Praat来进行分析,不要怀疑,真的可以知道哪个音是什么号码。
先来科普一下:双音多频信号(Dual-Tone Multi-Frequency, DTMF),电话系统中电话机与交换机之间的一种用户信令,通常用于发送被叫号码。
双音多频信号详见维基百科:双音多频
我们平时用的手机拨号时发出的就是这样频率的声音,一个音由一个高频与一个低频组成,对应的数据请看图1。
图1
下面是我用Praat进行录制的,我手机拨号时发出的1234567890的音频文件。为了不造成干扰,基频、音强、共振峰、脉冲这几个图形我们都不显示出来,只保留频谱图形(也就是下面的那层)。见图2。
图2
在频谱图上,我们已经隐约看见每个音都是有两段组成,也就是看起来颜色比较深的地方。如果只是这样就与DTMF图(图1)中的数据对比,那就很难把握了,每一段黑色的范围都比较大。下面我们来进行一下相关的设置。菜单【频谱】→【频谱设置】在打开的窗体中进行如下图所示的设置,见图3
图3
View range的最大值我们设置为2000就可以了,因为从图1上看,最高的不会超过2000Hz
Window length的值根据你的录音质量来决定吧,如果杂音比较大的话可能要设置大一点的值,我这里设置0.1就差不多了。
Dynamic range的值也是根据实际情况进行设置,可适当调小一点,直到频谱看起来基本上只剩一根线的时候就差不多了。注意要上下两根线都能看清楚,否则就提取不了数据了。
设置完之后我们再来看看得出来的图形是怎么样的,见图4
图4
这样看起来就很清晰了,下面我们来核对一下图1的数据。我们把鼠标定位在下图蓝色圈中的线上(见图5),我们顺着红色虚线向左看,显示的数值是1212Hz,下面的蓝圈对应的是696Hz(图略),我们与图1的数据对比,高频1212与1209相差不大,低频696和697也相差不大,这两个频率相交于1,那这个声音对应的号码就是1。
图5
参照上面的方法,你会发现2、3、4……所提取出来的频率确实与图1中的相差不大。
方法知道了,下面我们来实验一下:
这个试验音频是从维基百科上下载下来的。
看起来还是有点乱的,我们接下来对Praat进行设置。设置完后我进行了标注
标注第一层我标注的高频,第三层标注的是低频。我们来对比图1的数据后,得到的结果是:0696675356(已经标注在第二层)。这与维基百科上给出的一致。
看看,一个电话号码就这样从声音里提取出来了。所以,以后在公共场合时小心了,看看有没有人进行录音,要不然隐私什么时候泄露的都不知道。
附件中是我手机拨号的录音文件与几个号码的拨号,有兴趣的可以自己试试。
原创作品,未经授权不可进行转载。文中所述方法不得用于非法用途,由此造成的后果由使用个人负责,本站不承担由此带来的法律责任。