<pythonオーディオライブラリ:Windowsでのpydubインストール構成、プロセスで発生した問題、および共通API>
4479 ワード
背景
Windows10
システム取付
Pydub
Anaconda
:Anaconda prompt
activate
を開いて作業環境に切り替えるには、pip install pydub
Pycharm
:setting
下project
、pydub
をpip
環境取付
FFmpeg
(またはlibav
を選択)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
のいずれかが取り付けられており、もう1つが欠けており、取り付け後は表示されません.共通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')