python pydub用法(1)

来源:互联网 发布:软件企业投标资质 编辑:程序博客网 时间:2024/05/24 02:32

AudioSegment()

#打开音频文件from pydub import AudioSegmentsound1 = AudioSegment.from_file("/path/to/sound.wav", format="wav")sound2 = AudioSegment.from_file("/path/to/another_sound.wav", format="wav") # 调整音量大小louder = sound1 + 6quieter = sound1 - 3.5 # sound2 连接在sound1 后面combined = sound1 + sound2 # sound1 重复3次repeated = sound1 * 3 # 持续时间duration_in_milliseconds = len(sound1) # sound1 前5秒beginning = sound1[:5000] # sound1 最后5秒end = sound1[-5000:] # 创建原始二进制音频:sound = AudioSegment(    # raw audio data (bytes) 二进制数据    data=b'…',     # 2 byte (16 bit) samples 采样sample    sample_width=2,     # 44.1 kHz frame rate 采样频率    frame_rate=44100,     # stereo 声道    channels=2)

 

当两个音频文件拼接时,AudioSegment objects 会检查channels, frame rate, sample rate, bit depth, 等是否匹配,不匹配则会修改质量较低的音频使之与较高的音频匹配。

 

读入音频

AudioSegment(…).from_file(path/handle,format)

打开一个音频文件作为AudioSegment实例

from pydub import AudioSegment# wave and raw don’t use ffmpegwav_audio = AudioSegment.from_file("/path/to/sound.wav", format="wav")raw_audio = AudioSegment.from_file("/path/to/sound.raw", format="raw",                                   frame_rate=44100, channels=2, sample_width=2)# all other formats use ffmpegmp3_audio = AudioSegment.from_file("/path/to/sound.mp3", format="mp3")# use a file you've already opened (advanced …ish)with open("/path/to/sound.wav", "rb") as wav_file:audio_segment = AudioSegment.from_file(wav_file, format="wav")

 

format参数:默认 MP3.同时支持  "wav" "raw" ,其他格式需要 ffmpeg支持.

 "raw"需要额外三个参数, sample_width, frame_rate, and channels,

sample_width:1 8-bit音频,2  16-bit (CD quality)4  32-bit.

channels 1 单声道, 2 立体声.

frame_rate通常采样率为 44100 (44.1kHz - CD audio), 或者 48000 (48kHz - DVD audio)


导出音频

AudioSegment.export(path/handle,format)

把一个AudioSegment对象导出文件,返回值为文件句柄

from pydub import AudioSegmentsound = AudioSegment.from_file("/path/to/sound.wav", format="wav")# simple exportfile_handle = sound.export("/path/to/output.mp3", format="mp3")# more complex exportfile_handle = sound.export("/path/to/output.mp3",                           format="mp3",                           bitrate="192k",                           tags={"album": "The Bends", "artist": "Radiohead"},                           cover="/path/to/albumcovers/radioheadthebends.jpg")

export的第一个参数可以是文件输出路径或者句柄


format:默认"mp3"。支持"wav""raw" ,其他格式需要ffmpeg.

codec:有些音频格式需要额外的解码器,你可以在此定义你所需要的解码器。例如,OGG格式通常是用“libVorbis“解码器(需要ffmpeg)。

bitrate:比特率,该参数决定了解码器所使用的比特率(例如‘128k’用于压缩格式)(需要ffmpeg).每种codec所要求的比特率不同(参见ffmpeg documentation(bitrate通常用-b, -ba or -a:b).

tags:允许你为音频添加标签,例如{"album": "1989", "artist": "Taylor Swift"} (需要ffmpeg).不是所有的音频格式都支持tagMP3格式支持).

parameters:调用ffmpeg时的额外参数;需要是list格式,例如["-ac", "2"]

id3v2_version:默认4,设置ffmpegID3v2版本ffmpeg来为输出文件添加标签。If you want Windows Exlorer to display tags, use "3" here (source).

cover:允许你为音频设置封面,目前只有MP3格式支持,图片格式为png, bmp, tiff 。 例如: "/path/to/imgfile.png"


AudioSegment.empty()

创建一个空的AudioSegment.

from pydub import AudioSegmentempty = AudioSegment.empty()len(empty) == 0#This is useful for aggregation loops:from pydub import AudioSegmentsounds = [  AudioSegment.from_wav("sound1.wav"),  AudioSegment.from_wav("sound2.wav"),  AudioSegment.from_wav("sound3.wav"),]playlist = AudioSegment.empty()for sound in sounds:  playlist += sound


原创粉丝点击