Python中音频处理库pydub的使用教程
作者:gent__chen 发布时间:2023-07-15 20:22:54
前言
pydub是Python中用户处理音频文件的一个库。本文主要介绍了关于Python音频处理库pydub使用的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:
安装:
1、安装pip工具:sudo apt-get install python-pip
2、安装pydub:sudo pip install pydub
3、pydub依赖于ffmpeg,所以还需要安装ffmpeg,由于Ubunbtu14.04官方源移除了ffmpeg,因此通过ppa源安装:
sudo apt-add-repository ppa:mc3man/trusty-media
sudo apt-get update
sudo apt-get install ffmpeg
使用:
AudioSegment方法能够将一个音频文件打开成AudioSegment示例,并使用各种方法处理音频,使用前先调用from pydub import AudioSegment
打开音频:
sound1 = AudioSegment.from_file("/path/to/sound.wav", format="wav") //默认mp3格式
sound2 = AudioSegment.from_file("/path/to/another_sound.mp3", format="mp3")等价于sound1
= AudioSegment.from_mp3("/path/to/sound.mp3")
音量处理:
louder = sound1 + 6 //sound1 声音提高6dB
quieter = sound1 - 6 //sound1 声音降低6dB
combined = sound1 + sound2 //sound1 和sound2叠加
duration_in_milliseconds = len(sound1) //获取sound的时长
beginning = sound1[:5000] //获取sound1的前5秒音频数据
end = sound1[-5000:] //获取sound1的后5秒音频数据
注意:
1、对于多个音频的计算,需要多个音频之间的通道数、帧数、采样率以及比特数都一样,否则低质量的音频会向高质量的转换,单声道会向立体声转换,低帧数向高帧数转换。
2、AudioSegment原生就支持wav和raw,如果其他文件需要安装ffmpeg。raw还需要,sample_width,frame_rate,channels三个参数。
生成文件:
export()
方法可以使一个AudioSegment对象转化成一个文件。
sound = AudioSegment.from_file("/path/to/sound.wav", format="wav")
file_handle = sound.export("/path/to/output.mp3", format="mp3") //简单输出
file_handle = sound.export("/path/to/output.mp3",
format="mp3",
bitrate="192k",
tags={"album": "The Bends", "artist": "Radiohead"}) //复杂输出
AudioSegment.empty():
AudioSegment.empty()
用于生成一个长度为0的AudioSegment对象,一般用于多个音频的合并。
sounds = [
AudioSegment.from_wav("sound1.wav"),
AudioSegment.from_wav("sound2.wav"),
AudioSegment.from_wav("sound3.wav"),
]
playlist = AudioSegment.empty()
for sound in sounds:
playlist += sound
AudioSegment.silent():
ten_second_silence = AudioSegment.silent(duration=10000) //产生一个持续时间为10s的无声AudioSegment对象
获取参数:
此外,还能通过AudioSegment获取音频的参数,同时还能修改原始参数。
具体详见:https://github.com/jiaaro/pydub/blob/master/API.markdown
来源:http://blog.csdn.net/gent__chen/article/details/52931728


猜你喜欢
- 前言最近在完成软件体系结构上机实验时,遇到一个有点点小难度的选做题,题目信息如下:利用套接字技术实现应用程序中对数据库的访问。应用程序只是利
- 爬虫简介 根据百度百科定义:网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社
- 1.找到缺失值导入数据集df=pd.read_csv("nba.csv")df.head(10)替换异常值(数据集中异常
- 通常表中会有一个Create date 创建日期的字段,其它数据库均有默认值的选项。MySQL也有默认值timestamp,但在MySQL中
- proxytable代理根路径的同时增加其他代理Vue 项目有一个需求,需要对根路径 ‘/’ 进行代
- 最近的uniapp开发中遇到了H5调微信授权登录的业务,记录一下解决方法微信授权微信授权分为两种类型:静默授权:scope=snsapi_b
- 以下是通过Excel 的VBA连接Oracle并操作Oracle相关数据的示例Excel 通过VBA连接数据库需要安装相应的Oracle客户
- 本文教大家调用电脑摄像头进行实时人脸+眼睛识别+微笑识别,供大家参考,具体内容如下一、调用电脑摄像头进行实时人脸+眼睛识别# 调用电脑摄像头
- 问题描述: 有2个数组如下a = [3,3,3,4,4,4,5,6,7]b = [3,3,4,4]第1题:从数组a中删除所有在数组b中出现过
- 一、打开、关闭文件 open的返回值用来确定打开文件的操作是否成功,当其成功时返回非零值,失败时返回零
- 1. 引言元组是Python中一种重要的内置数据类型。与列表一样,我们经常使用元组将多个对象保存为相应的数据容器。然而,与列表不同的是元组的
- 前言:什么是分布式事务?银行跨行转账业务是一个典型分布式事务场景,假设A需要跨行转账给B,那么就涉及两个银行的数据,无法通过一个数据库的本地
- 背景公司一个golang的项目,使用到了公司的私有仓库,去执行go mod tidy(下载依赖)的时候,到download公司私有库的时候就
- function utf8_substr($str,$len) { for($i=0;$i<$len;$i++) { $temp_st
- 发送端代码:#!/usr/bin/python# -*- coding: UTF-8 -*-import socketimport stru
- 二元函数为y=x1^2+x2^2,x∈[-5,5]NIND=121; %初始种群的个数(Number of individual
- 一、什么是sql注入呢? 所谓SQL注入,就是
- 整个安装流程如下: 1,首先安装apache:我安装的版本是: httpd-2.2.16-win32-x86-openssl-0.9.8o.
- Django文件上传,供大家参考,具体内容如下需求1、完成学生信息注册操作2、将学生信息入库3、将上传文件存放至项目下media文件夹下4、
- 一、准备阶段 获取私钥官方文档 https://kf.qq.com/faq/161222N...获取私钥证书的序列号 https: