GNURadio助你听清Laurel与Yanny的声音奥秘

本文通过GNURadio软件对网络热门音频"Laurel/Yanny"进行信号处理实验,使用低通和高通滤波器分离不同频率成分,揭秘听觉差异的技术原理,并提供完整操作指南和代码仓库链接。

GNURadio助你听清Laurel与Yanny的声音奥秘

今天感觉效率太高有点不自在?我有个解药——结合网络迷因和信号处理来浪费你几分钟。一起来用Laurel、Yanny和GNURadio消磨时间吧。

这个音频争议已经持续了好几天,你可能已经对这段音频的解释争论感到厌倦。简单来说,有些人听这段音频时清楚听到"Laurel",而另一些人则明确听到"Yanny"。虽然学术界尚未达成共识解释,但这似乎与音频的低频和高频成分有关。这立刻让我想到如何使用GNURadio处理声音,为听众产生两种不同的解释。

此时你可能在想两件事:“这人肯定有更好的事情要做"和"你不能用无线电软件处理音频!"。虽然我承认第一点,但你确实可以用GNURadio做这种事情。尽管GNURadio是为处理无线电信号设计的,但它实际上拥有大量通用信号处理能力,其中许多可以应用于任何你想要的数字化信号——包括价值可疑的音频信号。

我构建了以下流图来产生剪辑的三种不同变体:原始版本、Laurel化版本和Yanny化版本:

音频接收器(本质上是你的声卡)播放由选择器块选择的音频流,你可以通过QT GUI选择器进行控制。如果选择"Original"选项,你将听到原始WAV文件的未修改版本(这对我来说非常清楚地像"Laurel”,但如果你是那些疯狂的Yanny人群之一……更多权力给你)。

如果选择"Laurel"按钮,你将获得通过低通滤波器的音频流,该滤波器移除高于4.5 kHz的频率。

最后,选择"Yanny"按钮会产生高通滤波版本,移除低于2 kHz的任何频率。这个版本的音频还会被有理重采样块稍微减慢,但这只是为了稍微澄清声音。

如果你想自己尝试,可以在以下地址克隆我的项目:https://github.com/paulgclark/laurel-yanny

你需要在机器上安装GNURadio,在Ubuntu系统上可以通过输入以下命令完成:

1
sudo apt-get install gnuradio

(这不会给你最新版本的GNURadio,但对这个项目来说已经足够新了)

然后你可以进入laurel-yanny目录并输入:

1
gnuradio-companion laurel-yanny.grc

点击工具栏中的小播放按钮将运行流图:

我发现当我选择"Yanny"按钮并将高通滤波器截止频率向左移动时,“Laurel"声音变得更加清晰。

向右移动则增强了我听到"Yanny"声音的能力。在中点时,我的大脑音频解释实际上开始在两者之间来回切换。我甚至能够想到其中一个词并诱导我的大脑感知它。这真是太疯狂了。


*Paul Clark拥有Factoria Labs,一个致力于推广软件定义无线电的组织。你们中比较偏执的人可能会怀疑这篇文章只是一个策略,目的是让你开始使用GNURadio,看看它有多棒。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计