最近我突然迷上了声音这玩意儿,不是说听音乐,是想看看我这把破嗓子,到底能弄出什么花儿来。说白了,就是想搞个东西,把我说话的声音,实时变成颜色,看看它们俩能不能搭上线。
起心动念:为什么要做这个?
这事儿得从我那个五岁的皮小子说起。他让我讲睡前故事,我讲得正起劲,他突然来一句:“爸,你的声音怎么一直是灰色的?”
我当时就懵了。灰色?我寻思着我讲的是《西游记》,那是七彩大闹天宫的剧情,怎么到他耳朵里就变灰色了?这事儿让我琢磨了好几天。我这人就这样,一旦脑子里塞了个奇怪的问题,不把它弄明白,晚上觉都睡不安稳。
我决定要证明给他看,我的声音不是灰色,它是有颜色的。
抓起工具,开始折腾
我这人不是搞专业的,就是瞎折腾。第一步,我得想办法把声音“抓住”。
我翻箱倒柜,找出了以前买的那个USB麦克风,质量不咋地,但好歹能用。我立马打开电脑,找了一个很基础的声音分析软件,这软件能干啥?它能把声音分成高音和低音,还有声音的大声和小声。
我第一次尝试,是直接把声音的高低(频率)跟颜色挂钩。我心想声音越高,就用越亮的颜色,声音越低,就用越暗的颜色。
- 我设定了一个范围,比如最低的低频,我扔给它红色。
- 最高的频段,我安排了蓝色。
- 中间的,就掺合着来。
结果?我对着麦克风“”了一声,屏幕上出来的东西,简直是一团屎黄色,时不时闪一下蓝光,丑得要命。而且颜色变化特别快,根本看不出规律,就是一团乱麻。儿子看了直摇头,说:“爸,你这不就是坏掉的电视雪花点吗?”
不行,这路子走不通。太简单粗暴了。
转弯:深度挖掘声音的细节
我意识到,声音的“颜色”不能只看频率。说话的时候,我们还得考虑音量(就是响不响),以及声音的能量分布(是闷着说还是清晰地说)。
我花了整整一个周末,开始研究怎么把这几个要素融合起来。
我调整了我的映射逻辑:
- 亮度(Value):这个我让它跟音量挂钩。说话越响,颜色就越亮,几乎是白的;小声低语,颜色就暗下去,趋近于黑。这样至少能看出我说话的轻重缓急。
- 色相(Hue):这个还是跟频率有关,但不是简单的高低。我尝试了把声音的主要能量集中区算出来。如果我的声音偏低沉、磁性,能量就集中在低频,我分配给它暖色调,比如深红和橘黄,显得稳重。如果我声音高亢、激动,我就给了它冷色调,比如青色和紫色。
- 饱和度(Saturation):这玩意儿我用来表示声音的“复杂度”,或者说“纯净度”。如果我的声音非常平稳,像唱歌一样,饱和度就拉满,颜色很纯;如果我说话像机关枪一样,各种频率混杂在一起,饱和度就低,颜色看起来就灰蒙蒙的。
我写了一个小小的程序,把麦克风输入的声音数据,一股脑塞进去,实时计算出这三个颜色数值,然后吐出来一个色块。
这回效果好多了!我对着麦克风讲个故事,我的声音低沉描述背景时,屏幕上是温暖的深红色;当我模仿孙悟空大喊“呔!”的时候,屏幕瞬间炸出一片高饱和度的青蓝色光芒。
包装成“游戏”:让色彩动起来
光看一个色块多没意思,这叫什么记录分享?我得把它弄成一个能玩的“游戏”,这样才符合我给这篇记录起的名字。
我捣鼓了一个非常简单的界面。不是啥大制作,就是弄了几个小方块,让他们跟着声音跳舞。
我定义了一个“色彩碰撞”的规则:
- 第一个方块,显示我声音的“主色调”(Hue)。
- 第二个方块,显示我声音的“激情度”(Loudness/Brightness)。
- 我加入了一个时间累积的功能。我说话的时间越长,颜色就会在屏幕上留下更深的印记。如果你一直用很单调的声调说话,屏幕就会被一种灰色或单一的颜色覆盖。只有当我说话有起伏,声音色彩才会丰富起来。
我把这东西丢给儿子玩。他对着麦克风一会儿吼,一会儿小声嘟囔。他发现,只有他用像演戏一样的语调说话时,屏幕上的颜色才会爆发出最丰富的变化,一会儿红一会儿绿,像个万花筒。
他玩了半小时,放下麦克风,兴奋地跟我说:“爸,我刚才的声音是彩虹色的!”
实践带来的收获
这玩意儿虽然不是什么高科技,但确实帮我搞明白了,声音的“颜色”就是情感的体现。当我的声音是“灰色”的时候,不是我的频率不对,而是我的情感表达太单调,声音缺乏起伏和能量。
每当我要给别人做演示或者讲故事的时候,我都会偷偷打开这个小工具,看一眼我的声音颜色是不是足够丰富。
我的实践记录到这里就告一段落了。 这套声音变颜色的逻辑,我打算再优化优化,争取以后能直接做成一个手机上能用的App,让大家都能看看,自己到底是不是一个“彩色”的人。
折腾这个东西,费了好些个周末,但值了。至少我儿子现在知道,他爹的声音,能有各种各样的颜色。