< python音频库:Windows下pydub安装配置、过程出现的问题及常用API >
2020-01-04 23:35
2236 查看
< python音频库:Windows下pydub安装配置、过程出现的问题及常用API >
背景
刚从B站上看过倒放挑战之后也想体验下,心血来潮一个晚上完成了基本的实现。其中倒放与播放部分使用了pydub这个音频库,十分快捷方便,但是它完整一套的配置让我还是踩了几个坑。特将其配置过程记录于此,方便大家。
Windows10
系统
安装Pydub
Anaconda
:打开Anaconda prompt
,activate
切换至工作环境下,键入pip install pydub
Pycharm
:setting
下project
,将pydub
安装进pip
环境
安装FFmpeg
(或选择libav
)
- 下载
FFmpeg
< FFmpeg官网 > :找到对应的系统版本下载。
将压缩包解压到任意目录。
将安装安装目录下的
bin
文件夹添加到系统的Path
环境变量中。如果添加环境变量成功后,打开
cmd
,键入ffmpeg -version
,就可以看到版本信息。- 下载
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
- 安装了
pydub
和ffmpeg
,但是缺少播放音频的包,安装后不再显示。
问题 [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')
相关文章推荐
- (最全)Windows上Anaconda+Python+Pycharm+CUDA+CUDnn实现tensorflow-gpu安装以及安装tenfolw-gpu过程中出现的各种问题以及相应解决办法
- 遇到问题----win7安装apache服务出现 <OS 10013> 以一种访问权限不允许的方式做了一个访问套接字的尝试
- 遇到问题----win7安装apache服务出现 <OS 10013> 以一种访问权限不允许的方式做了一个访问套接字的尝试
- Arch64安装配置过程出现的问题
- Android SDK更新过程中出现connection refused 或者 error问题(Windows 和Ubuntu安装过程中的问题)
- (详细)Ubuntu 16.04 | 配置深度学习环境 | 安装windows常用软件 | 常见问题的解决| 双系统彻底卸载Ubuntu
- VM8.0下安装遇到了问题“windows cannot read the<product key> setting from the unattend answer file”解决方法
- WAMP(Windows、Apache、MySQL、php)安装配置过程常见问题
- windows下python-nmap运行过程中出现的问题及解决办法
- windows下python-nmap运行过程中出现的问题及解决办法
- ubuntun16.04 +cuda8.0+cudnn5+opencv2.3+python+caffe安装过程中出现的一些问题
- VM8.0下安装遇到了问题“windows cannot read the<product key> setting from the unattend answer file”解决方法
- windows 7或者windows 10 vs2008-vs2013 下boost_1_47_0 安装的过程和出现的问题详解
- python库numpy,scipy,matplotlib安装配置过程中遇到的问题及解决方法
- python中安装过程中,出现的问题异常
- Hadoop 安装配置过程中出现问题总结
- hadoop安装配置过程中出现的问题
- 关于windows安装python过程中出现error 2503 2502错误的解决方法
- Python的开发插件PyDev在Eclipse下的安装过程(解决mylyn的问题in Windows)