首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python实现音频倒放

Python实现音频倒放

作者头像
Crossin先生
发布2019-10-24 20:13:54
2.8K0
发布2019-10-24 20:13:54
举报

来说说 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 AudioSegment
from pydub.playback import play
# 读取想要倒放的音频文件
ted = AudioSegment.from_file("ted.mp3")
# 将音频倒放赋给变量 backwards
backwards = 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")

怎么样?觉得好玩的话,不妨点个在看~

代码已上传 Github,大家可以用来制作自己的倒放音频。

《小翔哥是世界上最帅的男人》视频链接:
https://www.bilibili.com/video/av70564643/
《笑死人的倒放挑战》视频链接:
https://www.bilibili.com/video/av6835322
代码上传 GitHub 链接:
https://github.com/pengfexue2/reverse_play.git

以上,感谢阅读~

作者:TED

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Crossin的编程教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档