猜音谜——倒放音频挑战赛

前两天刷哔哩哔哩,看了两期《小翔哥是世界上最帅的男人》和《笑死人的倒放挑战》视频,视频里他们将语音或者音频倒着播放,特别搞笑。

看完之后就在想,诶,可不可以用 Python 来将音频倒放呢?经过一番搜索与尝试,很快我就准备了 10 个倒放音频给大家来猜,这里我们姑且称为“猜音谜”。

但由于公众号每篇文章只能放 3 条音频,那我们三个题目一轮,按照难度设置成初赛、复赛和决赛吧。

今天要举行的就是最简单的初赛,你——

准备好了吗?

# 1 初赛音谜

这简直就是送分题。。。

# 2 初赛音谜

提示:2 个字,地名(听到答案的你可能会哭出来。。。)

# 3 初赛音谜

3 个字,感觉提示了字数都能猜到,就不再做展开了~

欢迎留言你猜到的答案,相信答案也不会让你失望~


话题一转,来说说 Python 实现倒放音频的过程。直接在网上搜相关内容,的确有现成的音频处理库 pydub,体验了一下:特!别!好!用!

Pydub 支持 wav, mp3, ogg, flv, m4a, 以及其它 ffmpeg 所支持的格式文件的读取、倒放与转换。

附上 pydub 在 GitHub 的链接:https://github.com/jiaaro/pydub.git

倒放音频

首先是下载 pydub 库,可以直接 pip install pydub,如果使用 Pycharm 的话也可以在 Package 里添加 pydub:

导入之后,如果你已经准备好了相关的音频文件,倒放只需如下代码:

from pydub import AudioSegmentfrom pydub.playback import play# 读取想要倒放的音频文件ted = AudioSegment.from_file("ted.mp3")# 将音频倒放赋给变量 backwardsbackwards = ted.reverse()# 将倒放的音频存为 "倒放.mp3" 文件backwards.export("倒放.mp3",format="mp3")# 播放该文件play(backwards)

音频格式转化

因为要给大家准备音谜题目,在 Mac 上录音生成的是 m4a 格式的音频文件,最初找的在线转换网站将其转化为 mp3 格式,后来意外发现 Pydub 竟然可以通过 export 方法轻松实现相关的格式转换:

from pydub import AudioSegment
# 读取被转换的音频文件temp = AudioSegment.from_file(f"ted.m4a")# 通过 export 将其转换为目标格式文件temp.export("ted.mp3")# 顺便将其倒放backplay = temp.reverse()# 存为相关格式倒放文件backplay.export(f"倒放.mp3")

批量处理音频

你可能会觉得用 Python 来处理音频多此一举,找个音频处理软件操作一下不就好了。那么下面我来展示下 Python 的魔力:

首先我是用 Mac 电脑录了 10 个音频,将它们按顺序命名为 000.m4a, 001.m4a, ... , 009.m4a( Mac 自带录音软件存储格式为 m4a )。

接下来我要先将它们转换成 mp3 格式文件作为“音谜答案”,将其倒放的音频保存作为“音谜题目”。

因为倒放后的音频很难听出原本内容,又是用编号来整理,很容易搞乱。

但是用 Python 代码,下面几行就完成了全过程:

from pydub import AudioSegment
# i 从 0 到 9 取值for i in range(10): # 按顺序读取 00i.m4a 文件 temp = AudioSegment.from_file(f"00{i}.m4a") # 将 00i.m4a 转换为 答案00i.mp3 temp.export(f"答案00{i}.mp3") # 将音频倒放 backplay = temp.reverse()    # 将倒放音频存为 音谜00i.mp3    backplay.export(f"音谜00{i}.mp3")# 打印个 done 提示完成print("done")

怎么样,好玩不?

既然你都看到文章结尾了,给你放个福利吧,公众号后台回复“初赛答案”,即可获取今天初赛三个音谜题目的答案~(刚测试了下,自动回复的语音信息可能顺序被打乱,但题目简单也有提示,应该不难对应)

好玩的话,不妨点个在看~

以上,感谢阅读~

《小翔哥是世界上最帅的男人》视频链接:https://www.bilibili.com/video/av70564643/《笑死人的倒放挑战》视频链接:https://www.bilibili.com/video/av6835322代码上传 GitHub 链接:https://github.com/pengfexue2/reverse_play.git
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值