听出打电话拨的什么号码,以及巫术/神迹/天赋/技艺/科学/技术

有些画面,有些声音,只有你具有那些知识,或者受过那些训练,才能体会其中的情感。只有这样,你才参与历史其间,它也才能融入为你的一部分。

  1. 缘起

曲同学分享了一段视频,感慨了一代老家伙的共同记忆。是一段声音的的频谱图,把时间通过在空间中的延展表现出来。时间从过去到未来,频率从低频到高频,构成平面。在这个平面上下凸起凹陷的,是特定时间、特定频率的声强,像山峰或者海浪。动态频谱图对应的声音,也同步播放出来。

image1

典同学说,能听出来这段声音是什么的,年龄也都不小了。

先是持续的"嘟--"电话拔号音。在手机没有流行以前,有一种叫做座机的电话,没有屏幕。与有屏幕的手机不同,需要先把电话听筒拿起来,响起表示线路空闲的"嘟--",此时才能拨号。

接下来是拨号,滴滴嗒嗒嘟嘟。

最后是zizi~~gagadidi持续一顿响。这是你的调制解调器在与对端的调制解调器对话,然后就建立连接,可以开始传输数据了。当年的163、169、互联网,还有更古老的BBS就是这样通信的。在《魔鬼终结者》等电影里也能听到这个声音,当时还挺先进的。如今这种联网方式甚至电话本身,都已经成为了时代的陈迹。

我听了一会儿,感叹了一会儿,说出了这7位电话号码。

157 xxxx xxxx。归属地重庆,可能是刚刚或者最近两年做着玩儿的?

微信图片_20220427021403

  1. 巫术、神迹、天赋、技艺、科学、技术

以前有过新闻,说有个小伙在新闻里听到有人拨打某企业家的电话,他靠耳朵听出了号码,给那位企业家打电话,得到了不错的工作岗位。当时谁给我讲的这个段子来着,我可能没有表达出预期的惊讶。

当年有人做了个3d游戏,应该就是给游戏引擎加了些素材,可能脚本都不一定需要。当时NZG推荐给我,我看了以后也没有表达出应有的尊重。NZG同学说,你行你上啊。我觉得不值得,没意思,还挺花时间的,没有也做一个。

听电话号码这个,记得我当时讲了下原理,对方也没有表达我期待的认同。

你行你上。还是这样,如果我不展示一下我也行,挺容易的,你就会觉得我是吹牛。如果不是你花个十几分钟就能学会,你就会觉得这玩意是巫术、神迹。

原理非常简单,我一会儿说。

那小伙能用肉耳朵听出来,确实是需要一些技艺的。技艺,就得花些时间训练。受过音乐训练的人,学习这个应该很容易。米特尼克、乔布斯、莫里斯这些老一辈的黑客传记里提到过一个人,他也能听出电话号码,作者特意提到这家伙的家里有一架钢琴。还有一个人,能用口哨吹出早期电话的调试员的拨号音接通免费电话。

需要特定人物实施,无法由你通过常规办法检验的,我说了你就得信,那是巫术或者神迹。

需要特定人物实施,你可以通过常规办法检验的,是天赋或者技艺。天赋可以重现验证,是你可能永远学不会。技术能学会,可能要花些时间。肉耳朵听出电话号码,还有绝对音高听钢琴、小提琴,甚至能听到椅子腿摩擦地板的和弦。这种谁都能检验,但是除非训练你不能做到,甚至训练也做不到的,是天赋或者技艺。要么你也做不到,要么挺难的,就像知道生在伯努利家就有出息,或者苦学数十年就知道自己的数学天份不行了,所以知道也没有用处。

借助一些非常容易找到的工具,不要求是专用工具。或者没有这些专用工具,替代品也非常容易找到,借助这些,几分钟就能识别出电话号码,你也能,谁都能。这是科学或者技术。科学或技术与巫术、神迹、天赋、技艺的区别就是,借助(根据原理研发的或者现成的普通)工具,而不是借助信念、不可改变的素质、极难的训练,就能在短时间内由任何人类达成。

只要我行,你就也行。

微信图片_20220427021405

  1. 技术路线

操作是这样的,一共五步。如果工具装好了,就是几分钟的事。比肉耳朵慢,但是绝对有效,甚至更有效。

第一步 保存为mp4

文件命名为modem拔号音.mp4。

第二步 转换为mp3

ffmpeg -i modem拔号音.mp4 m.mp3

ffmpeg也可以替换为任意一款格式转换软件,用录音机也行。

image2

第三步 切一段

我用audacity(GNU开源、免费)在m.mp3上把拔号音那7个音切了下来,从时域的波形 (横坐标时间,纵坐标声强) 上,用视觉比听觉更很容易找到是7个音,在哪一段。用听力确认切得对。

audacity也可以换成任意一种声音编辑软件。这一步可以省略,也为了发博客的时候如果能贴声音,可以更容易说清楚是哪一段。

image3

第四步 频谱分析

audacity 菜单,分析|频谱分析,找到2个峰,记下这2个频率。如下图,左上角从7个拨号音中选择了一段拨号音,频谱分析的结果2个频率的尖峰分别是698Hz和1337Hz。

下图,选中的是左边的尖峰,测量显示为698Hz。

image4

下图,选中的是右边的尖峰,测量显示为1337Hz。

image5

这步操作,也可以换成origin、MATLAB、python之类的软件或语言完成,只要能做FFT的都行。Excel也行,麻烦一点。还有个办法,不需要工具,只需要耳朵,需要一点听力基础,参见下一步。

第五步 参考DTMF码表

698Hz和1337Hz,这两个频率构成“和弦”的声音决定了唯一的号码。

参见下表,接近698Hz的是697,接近1337Hz的是1336。697这一行和1336这一列的交点是2。这个“和弦”声音对应的拨号是2。

image6表格来自[https://www.cnblogs.com/xiangyuecn/p/13200894.html#%E4%BA%8Cdtmf%E9%A2%91%E7%8E%87%E6%8C%89%E9%94%AE%E5%AF%B9%E7%85%A7%E8%A1%A8]。如果链接失效,在网上搜索 “DTMF码表”,有很多公开的页面。

按下拨号盘上的每个按键,都会同时发出2个频率的声音,叠加在一起。按2这个数字,发出的声音就是697Hz和1336Hz。这个声音与我上一步从7个拨号音中选择了的那段拨号音“听”起来一样。是的,需要点听力,不完全一样,就像小提琴拉do和钢琴弹do,音色和音量都不同,但是你能听出来是同一个音。如果这有点难,听出来两个按键的音不同,你一定能。

所以,上一步我提到的不需要工具的方法来了。在网上找个 DTMF声音生成器 (DTMF tone generator),有许多在线版本。挨个键按一遍,听听哪个和这一段的声音“听”起来一样,就是它。或者挨个排除那些“听”起来不一样的,剩下的唯一那个就是了。一般地,你不需要上述16个数字,只试0~9就行了。

这样,我就得到了视频中的电话号码:157 XXXX XXXX。

第六步 复现

这一步对于听出电话号码并非必须,只是为了说服你真的有效。

用audacity测量,得到每个拨号音持续100毫秒时长,空白100毫秒。

下图是拨号时长0.96秒,约100毫秒。

image7

下图是空白时长0.96秒,约100毫秒。

image8

找几个拨号音生成器,发出声音来,你可以用肉耳朵听出来是不是一样的。这些拨号音生成器(DTMF tone generator)也可以用来在第五步中不经过频谱、仅使用肉耳机比对。

[https://www.venea.net/web/dtmf_generator]

可调节拔号间时长和空白时长。不能保存。可使用录屏,导出声音。

[https://www.audiocheck.net/audiocheck_dtmf.php]

可下载wav。

[https://aggemam.dk/code/dtmf]

php的,可下载au文件。

微信图片_20220427021406

  1. 原理

原理说起来也不复杂。每个拨号音都由两个频率的声音唯一标识,这就是DTMF中的DT(Dual Tone)双频所暗示的。频谱分析,或者FFT(快速傅里叶变换),可以由时域(横从标时间,纵坐标强度)向频域(横坐标频率,纵坐标强度,可以简单假设这小段声音期间频率不变)变换,从而方便测量出这两个频率是什么。然后查表就可以根据这两个频率知道对尖的按键。

image9

如上图所示,时间、频率(低频、高频)、强度,形成三维空间。线路空闲是双频长时间持续的,与第一个拨号音有部分重叠,用灰色文字标出。图中的红圈内,是3个拨号音,每个号码有两个频率。

事实上,人类的肉耳机是优秀的频谱分析仪,所以虽然脱口说出频率的精确数字有点困难,但是判断未知号码含有两个频率组分的声音 和 另外由生成器得到的9个样本中的哪一个相同,是较容易做到的。

即使有绝对音高听力,由于这些音与钢琴上的按键都不一样,听起来可能是某个键的跑调,大概不太容易识别。从这一点上看,使用工具的科学和技术不仅人人可用,也更加稳定和有效。

有的同学可能会说,如果科学与技术如此强大,磨练技艺无论多久,也比不上凝结了人类智慧的工具吧。练一辈子,在围棋上能战胜阿尔法狗么?如果功利的看,非常可能是这样,人生而有之的天赋和后来艰辛训练方能点滴进步的技艺,在几千年以来正在被人类发明的工具不断超越。似乎人类除了大脑,其余的都不足道哉。并非如此。发挥天赋,磨练技艺,让自己成为更快、更高、更强,更有趣的人,这些本身就很好玩,本身就是目的。并不是要让自己成为更强有力的工具,而是我们自身,就是目的本身。同样的,发挥智慧的天赋,磨练智慧的技艺,与锻炼肌肉、手指、眼力一样,也很有意思。

有些画面,有些声音,只有你具有那些知识,或者受过那些训练,才能体会其中的情感。只有这样,你才参与历史其间,它也才能融入为你的一部分。

微信图片_20220427021400

Leave a Reply

Your email address will not be published. Required fields are marked *