python pydubの使い方(1)

4016 ワード

AudioSegment()クラス
#      
from pydub import AudioSegment
sound1 = AudioSegment.from_file("/path/to/sound.wav", format="wav")
sound2 = AudioSegment.from_file("/path/to/another_sound.wav", format="wav")
 
#       
louder = sound1 + 6
quieter = 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
)

 
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 ffmpeg
wav_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 ffmpeg
mp3_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パラメータ:デフォルトMP 3.「wav」と「raw」を同時にサポートし、その他のフォーマットはffmpegサポートが必要である.
「raw」には追加の3つのパラメータが必要です.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.1 kHz-CD audio)、または48000(48 kHz-DVD audio)
オーディオのエクスポート
AudioSegment.export(path/handle,format)
AudioSegmentオブジェクトをファイルにエクスポートし、ファイルハンドルに戻ります.
from pydub import AudioSegment
sound = AudioSegment.from_file("/path/to/sound.wav", format="wav")

# simple export
file_handle = sound.export("/path/to/output.mp3", format="mp3")

# more complex export
file_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:デフォルトはmp 3です.「wav」、「raw」をサポートし、その他のフォーマットにはffmpegが必要です.
codec:オーディオフォーマットによっては、追加のデコーダが必要な場合があります.ここで必要なデコーダを定義できます.例えば、OGGフォーマットは、通常、「libVorbis」デコーダ(ffmpegが必要)を用いる.
bitrate:デコーダが使用するビットレート(例えば「128 k」が圧縮フォーマットに用いられる)を決定するビットレート(ffmpegが必要)である.各codecに要求するビットレートは異なる(ffmpeg documentation参照)(bitrateは通常-b,-ba or-a:bを用いる).
tags:オーディオにラベルを追加できます.たとえば、「album」:「1989」、「artist」:「Taylor Swift」}(ffmpegが必要です).すべてのオーディオフォーマットがtag(MP 3フォーマットサポート)をサポートするわけではない.
parameters:ffmpegを呼び出すときの追加パラメータ;リスト形式である必要があります.たとえば、[-ac],[2]].
id3v2_バージョン:デフォルト「4」で、ffmpegのID 3 v 2バージョンffmpegを設定して出力ファイルにラベルを追加します.If you want Windows Exlorer to display tags, use "3"here (source).
cover:オーディオの表紙を設定できます.現在はMP 3形式しかサポートされていません.画像形式はpng、bmp、tiffです.例:「/path/to/imgfile.png」
AudioSegment.empty()
空のAudioSegmentを作成します.
from pydub import AudioSegment
empty = AudioSegment.empty()
len(empty) == 0
#This is useful for aggregation loops:
from pydub import 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