pydub音频处理库的使用

在使用pydub这个模块之前应确保你的libav或者FFmpeg

  • Mac上安装libav或FFmpeg

brew install libav --with-libvorbis --with-sdl --with-theora # 安装libav
brew install ffmpeg --with-libvorbis --with-sdl2 --with-theora # 安装ffmpeg
  • Linux(使用apt 安装)
apt-get install libav-tools libavcodec-extra # libav
apt-get install ffmpeg libavcodec-extra # ffmpeg

模块的使用

  • 安装模块
pip install pydub
  • 打开文件

  

from pydub import AudioSegment

wav_file = AudioSegment.for_wav("filepath") # 读取wav文件
mp3_file = AudioSegment.for_mp3("filepath") # 读取mp3文件
ogg_file = AudioSegment.for_ogg("filepath") # 读取ogg文件
flv_file = AudioSegment.for_flv("filepath") # 读取flv文件
mp4_file = AudioSegment.for_file("filepath") # 读取mp4文件
m4a_file = AudioSegment.for_file("filepath") # 读取m4a文件
# 使用for_file可以获取其他ffmpeg支持的其他音频格式
  • 对音频进行切片
ten_seconds = 10 * 1000
first_10_seconds = wav_file[:ten_seconds] # 前10秒
last_5_seconds = wav_file[-5000:] # 后5秒
  • 音量调节
beginning = first_10_seconds + 6 # 增加6dB
end = last_5_seconds - 3 # 降低3dB
  • 拼接音频
without_the_middle = beginning + end
  • 获取音频长度
without_the_middle.duration_seconds # 获取音频长度(浮点型)
  • 音频反转
backwards = wav_file.reverse()
  • 淡入
with_style = beginning.append(end,crossfade=1500)
  • 重复
do_it_over = with_style * 2
  • 淡出
awesome = do_it_over.fade_in(2000).fade_out(3000)
  • 保存
awesome.export("mashup.mp3", format="mp3")
  • 使用标记保存结果
awesome.export("mashup.mp3", format="mp3", tags={'artist': 'Various artists', 'album': 'Best of 2011', 'comments': 'This album is awesome!'})
  • 播放音频
from pydub.playback import play
sound = AudioSegment.from_file("test.wav")
play(sound)

  

pydub音频处理库的使用的更多相关文章

  1. libZPlay 音频编码解码器库

    libZPlay 音频编码解码器库 http://www.oschina.net/p/libzplay libZPlay 播放音乐并显示 FFT 图形 :http://www.oschina.net/ ...

  2. 介绍几个python的音频处理库

    一.eyeD3 直接在google上搜索python mp3 process ,推荐比较多的就是这个第三方库了.先来看看官方介绍吧. About eyeD3 is a Python tool for ...

  3. EasyDarwin开源音频解码项目EasyAudioDecoder:EasyPlayer Android音频解码库(第二部分,封装解码器接口)

    上一节我们讲了如何基于ffmpeg-Android工程编译安卓上的支持音频的ffmpeg静态库:http://blog.csdn.net/xiejiashu/article/details/52524 ...

  4. 音频处理库—librosa的安装与使用

    序言 Librosa是一个用于音频.音乐分析.处理的python工具包,一些常见的时频处理.特征提取.绘制声音图形等功能应有尽有,功能十分强大.本文主要介绍librosa的安装与使用方法. 一.lib ...

  5. 安装Ubunutu音频视频库

    sudo apt-get install ubuntu-restricted-extras

  6. FreeSWITCH第三方库(音频)的简单介绍(一)

    FreeSWITCH使用了大量的第三方库,本文档主要介绍音频相关库的信息: 视频相关库的信息介绍参考:http://www.cnblogs.com/yoyotl/p/5488890.html 其他相关 ...

  7. 【改】利用ALSA库进行音频重采样

    转自:http://www.voidcn.com/article/p-snamarwr-p.html 一.ALSA介绍: 1.简介: 高级Linux声音体系(英语:Advanced LinuxSoun ...

  8. EasyDarwin开源音频解码项目EasyAudioDecoder:基于ffmpeg的安卓音频(AAC、G726)解码库(第一部分,ffmpeg-android的编译)

    ffmpeg是一套开源的,完整的流媒体解决方案.基于它可以很轻松构建一些强大的应用程序.对于流媒体这个行业,ffmpeg就像圣经一样的存在.为了表达敬意,在这里把ffmpeg官网的一段简介搬过来,ff ...

  9. python常用库

    本文由 伯乐在线 - 艾凌风 翻译,Namco 校稿.未经许可,禁止转载!英文出处:vinta.欢迎加入翻译组. Awesome Python ,这又是一个 Awesome XXX 系列的资源整理,由 ...

随机推荐

  1. 用Activator.CreateInstance代替new实现类的实例化

    一直想得到这样一个函数,输入一个类的名称为参数,返回一个相应的类的实例. 这在工厂模式中是非常有用的 这样,可以使程序有更高的扩展性,例如,,下面的例子 如果现在有一个类,专门用来计算交通工具的速度, ...

  2. codeblocks 使用汇总

    codeblocks 使用汇总 http://www.cnblogs.com/-clq/archive/2012/01/31/2333247.html

  3. caffe训练时报错

    转自:https://www.cnblogs.com/haiyang21/p/7614669.html F0717 :: math_functions.cu:] Check failed: statu ...

  4. JavaScript Basics_Fundamentals Part 1_Variables

    JavaScript Variables JavaScript 变量(Variables)是用于存储数据值的容器. 创建一个 JavaScript 变量,可以使用关键字 let. Example le ...

  5. includes()函数的用法

    在ES5,Array已经提供了indexOf用来查找某个元素的位置,如果不存在就返回-1,但是这个函数在判断数组是否包含某个元素时有两个小不足,第一个是它会返回-1和元素的位置来表示是否包含,在定位方 ...

  6. 交换机配置-----monitor session

    目录 交换机配置-----monitor 1.前言 2.monitor session的作用 3.配置命令 4.使用 交换机配置-----monitor 1.前言 本文章适用于Dell Network ...

  7. ping不通github

    Linux 下 host文件在 /etc/hosts Windows下 host文件在C:\Windows\System32\drivers\etc 在host文件的最后面加上: Linux sudo ...

  8. POI读取Excel数据

    POI读取Excel表格数据 * {所需相关jar下载: * commons-collections4-4.4.jar * commons-compress-1.19.jar * poi-4.1.1. ...

  9. linux下top命令的使用

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器 视图参数含义 top视图分为两部分:操作系统资源概况信息和进程信息.首先分析资源 ...

  10. JavaScript 对象中this的指向问题

    this运行在哪个对象下,就指向哪个对象.