< python音频库:Windows下pydub安装配置、过程出现的问题及常用API >

背景

  • 刚从B站上看过倒放挑战之后也想体验下,心血来潮一个晚上完成了基本的实现。其中倒放与播放部分使用了pydub这个音频库,十分快捷方便,但是它完整一套的配置让我还是踩了几个坑。特将其配置过程记录于此,方便大家。

  • Windows10系统

  • < Pydub in Github >

  • 附带我做的倒放挑战程序:< BackwardsToChallenge倒放挑战小程序 >

安装Pydub

  • Anaconda:打开Anaconda promptactivate切换至工作环境下,键入pip install pydub

  • Pycharmsettingproject,将pydub安装进pip环境

安装FFmpeg(或选择libav

  1. 下载FFmpeg

    • < FFmpeg官网 > :找到对应的系统版本下载。

    • 将压缩包解压到任意目录。

    • 将安装安装目录下的bin文件夹添加到系统的Path环境变量中。

    • 如果添加环境变量成功后,打开cmd,键入ffmpeg -version,就可以看到版本信息。

  2. 下载FFmpeg

    • 除了按完成以上下载之外,还需要在python中导入FFmpeg

    • 同上Pydub包导入 - pip install FFmpeg

安装Pyaudio

  • 可以仅使用纯Pydub打开或保存WAV文件。为了打开或保存非WAV文件——比如MP3——你需要ffmepg或是libav。而如果需要播放音频,则需要安装以下包:

    • simpleaudio

    • pyaudio

    • ffplay (通常随ffmpeg安装)

    • avplay ((通常随libav安装)

  • 官网是强烈推荐安装simpleaudio,而我选择的是pyaudio,因为之后程序的其他部分还需要用到,所以就直接选择了pyaudio

  • 包安装同上Pydub - pip install pyaudio

  • 至此安装配置工作完成,可试验以下代码看是否能运行。

from pydub import AudioSegment
from pydub.playback import play sound = AudioSegment.from_file("0.mp3", "mp3")
play(sound)

问题:[Errno 13] Permission denied

  • 安装了pydubffmpeg,但是缺少播放音频的包,安装后不再显示。

问题 [WinError 2] 系统找不到指定的文件

  • 安装了ffmpeg其中的一项,还缺少另外一项,安装后不再显示。

常用API

打开一个XXX类型文件:

mp4_version = AudioSegment.from_file("never_gonna_give_you_up.mp3", "mp3")
wma_version = AudioSegment.from_file("never_gonna_give_you_up.wav", "wav")
aac_version = AudioSegment.from_file("never_gonna_give_you_up.mp4", "mp4")

对音频段切片

# pydub做任何操作的时间尺度都是毫秒
ten_seconds = 10 * 1000 first_10_seconds = song[:ten_seconds]
last_5_seconds = song[-5000:]

连接音频段

without_the_middle = beginning + end

让开头更响和让结束更弱

# 声音增益6dB
beginning = first_10_seconds + 6 # 声音减弱3dB
end = last_5_seconds - 3

重复

# 将片段重复两遍
do_it_over = with_style * 2

倒放

# 读取想要倒放的音频文件
ted = AudioSegment.from_file("ted.mp3")
# 将音频倒放赋给变量 backwards
backwards = ted.reverse()

保存结果 / 音频格式转换

awesome.export("mashup.mp3", format="mp3")

批量处理音频

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")

举个例子:

from glob import glob
from pydub import AudioSegment playlist_songs = [AudioSegment.from_mp3(mp3_file) for mp3_file in glob("*.mp3")] first_song = playlist_songs.pop(0) # 让我们只包含第一首歌的前30秒 (切片以毫秒为单位)
beginning_of_song = first_song[:30*1000] playlist = beginning_of_song
for song in playlist_songs:
# 我们不想让结尾听起来像是突然停止,所以我们给它加上10秒的淡化
playlist = playlist.append(song, crossfade=(10 * 1000)) # 让我们给最后一首歌的结尾加上淡出
playlist = playlist.fade_out(30) # 唔……我还想知道它有多长( len(audio_segment)返回值同样是以毫秒计的 )
playlist_length = len(playlist) / (1000*60) # 现在保存下来!
out_f = open("%s_minute_playlist.mp3" % playlist_length, 'wb') playlist.export(out_f, format='mp3')

< python音频库:Windows下pydub安装配置、过程出现的问题及常用API >的更多相关文章

  1. Windows 下如何安装配置Snort视频教程

    Windows 下如何安装配置Snort视频教程: 第一步: http://www.tudou.com/programs/view/UUbIQCng360/ 第二部: http://www.tudou ...

  2. [转载]Apache在windows下的安装配置

    Apache在windows下的安装配置 转载自:http://blog.sina.com.cn/s/blog_536f16b00100cfat.html     1 Apache的下载 Apache ...

  3. Windows下Redis安装配置和使用注意事项

    Windows下Redis安装配置和使用注意事项 一:下载 下载地址: https://github.com/microsoftarchive/redis/releases 文件介绍: 本文以3.2. ...

  4. windows下如何安装配置mysql-5.7-m14-winx64(zip格式的安装)

    win7 64位下如何安装配置mysql-5.7.4-m14-winx64 1.   mysql-5.7.4-m14-winx64.zip下载 官方网站下载地址:http://dev.mysql.co ...

  5. Windows下CVSNT安装配置

    首先要说明:X64下安装此软件会报 “cvs [login aborted]: WIN-4H9CRJO1TRA\Administrator: Switch to user failed due to  ...

  6. 【原创】Superset在windows下的安装配置

    Superset是由Airbnb(知名在线房屋短租公司)开源BI数据分析与可视化平台(曾用名Caravel.Panoramix),该工具主要特点是可自助分析.自定义仪表盘.分析结果可视化(导出).用户 ...

  7. Clion+Cmake+Qt5+Qwt+msys2+MinGW在Windows下的安装配置使用教程

    摘要: CLion, a cross-platform C/C++ IDE. 本文主要介绍基于Clion作为IDE, MinGW作为编译器,CMake作为项目构建工具,开发基于Qt5.qwt的C++图 ...

  8. windows下caffe安装配置、matlab接口

    一.CommonSettings.props caffe下载后解压.源代码文件夹caffe-master,到该文件夹下的windows文件夹下,将CommonSettings.props.exampl ...

  9. Hadoop在Windows下的安装配置

    由于本人近期近期一段时间 都在学习Hadoop,接触了比較多的理论,可是想要深入的去学习Hadoop整个平台,那就必须实战的训练,首先第一步,当然是先搭建好一个Hadoop平台为先.可是比較坑爹的是. ...

随机推荐

  1. 解决大数据难题 阿里云MaxCompute获科技大奖

    摘要: 据介绍,MaxCompute(大规模分布式的数据计算平台)是国内最早自研的大数据计算平台之一,主要应用于大规模数据处理场景.目前,这项源自浙江.解决世界级难题的成果已拥有EB(百京)级别的数据 ...

  2. day7_python之面向对象item系列(__getitem__,__setitem__,__delitem__)

    class Foo: def __getitem__(self, item): print('=====>get') return self.__dict__[item] def __setit ...

  3. 使用sqlyog链接多个主机的数据库

  4. H3C 用交换机扩展以太网拓扑

  5. H3C CSMA/CD冲突检测和退避

  6. windows/Linux/Mac下安装maven,maven作用

    Linux下安装maven 1.首先到Maven官网下载安装文件,目前最新版本为3.0.3,下载文件为apache-maven-3.3.9-bin.tar.gz,下载可以使用wget命令: 2.进入下 ...

  7. Python--day69--pythonDjango终端打印SQL语句、在Python脚本中调用Django环境

    Django终端打印SQL语句 在Django项目的settings.py文件中,在最后复制粘贴如下代码: LOGGING = { 'version': 1, 'disable_existing_lo ...

  8. poj 3572 Hanoi Tower

    Hanoi Towers Time Limit : 10000/5000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other) Total ...

  9. css写一个计算器叭

    显示效果如图,emoji可替换为数字.

  10. Python--day61--Django ORM关系的简单梳理

    models.py中的代码和数据库中的表对应