Pythonで音声・動画編集!Pydubで音声データ(mp3,wav)の音量を上げたり切り取ったりする

プログラミング

プログラミングで音声データを操作したいと思い,Pythonでやってみようと考えました.

前回は,その準備としてffmpegをインストールしました.

今回は,実際に音声データ(mp3,wav)を読み込み,音声を編集して,出力します.

実行環境は,Windowsです.

下準備

今回,音声の編集にはPythonのPydubというモジュールを用います.

そのためには,以下の準備が必要です.

・Pythonのインストール

・ffpegのインストール

これらの説明は本記事では省略しますので,まだ準備が済んでいない方は以下の記事をご覧下さい.

Pythonのインストール

データ分析の第一歩! Python(パイソン)をインストールしましょう【Windows編】

ffpegのインストール

音声・動画編集の第一歩!Windowsにffmpegをインストールする方法

Pydubのインストール

pipのみでインストールできます.

pip install pydub

Pydubで音声編集

ここから,Pythonコードの説明をしていきます.

モジュールインストール

from pydub import AudioSegment

音声データの取り込み

実行するPythonソースファイルと同じディレクトリに,audio.mp3のような音声データを置いておき,以下を実行するとファイルを読み込めます.

# ファイルの読み込み
sourceAudio = AudioSegment.from_mp3("audio.mp3")

wavファイルの場合は

sourceAudio = AudioSegment.from_wav(“audio.wav”)

です.

音声データの情報を取得

#動画の長さを取得
AudioLength = sourceAudio.duration_seconds
#音声のフレームレート
FrameRate = sourceAudio.frame_rate

編集する

# 音量を上げる
processedAudio = sourceAudio + 20
# 音量を下げる
processedAudio = sourceAudio - 5
#音声を切り取る(最初の5秒)
processedAudio = processedAudio[:5*1000]

音声ファイルを出力する

以下で,実行ファイルと同じディレクトリに編集した音声データファイルが出力されます.

#音声をファイル出力する
processedAudio.export("out.mp3", format='mp3')

実践してみる(まとめコード)

上で紹介したことを,実践してみます.以下のソースコードを用意します.

#音声編集ソースコード

from pydub import AudioSegment

# ファイルの読み込み
sourceAudio = AudioSegment.from_mp3("audio.mp3")
#sourceAudio = AudioSegment.from_wav("audio.wav")

#動画の長さを取得
AudioLength = sourceAudio.duration_seconds
print('動画の秒数', AudioLength, 'sec')

#音声のフレームレート
FrameRate = sourceAudio.frame_rate
print('フレームレート', FrameRate, 'frame')

#以下,動画の編集--------------------------------------------
# 音量を上げる
processedAudio = sourceAudio + 20
# 音量を下げる
#processedAudio = sourceAudio - 5

#音声を切り取る(最初の5秒)
processedAudio = processedAudio[:5*1000]
print('編集後の動画の秒数', processedAudio.duration_seconds, 'sec')

#-----------------------------------------------------------

#音声をファイル出力する
processedAudio.export("out.mp3", format='mp3')

また,このソースコードと同じディレクトリにこちらのサイトからダウンロードしたサンプル音声データを置きます.データは,audio.mp3にします.

コードを実行すると,コンソールに以下が出力されます.

動画の秒数 24.006530612244898 sec
フレームレート 44100 frame
編集後の動画の秒数 5.0 sec

また,実行ディレクトリに編集された音声データout.mp3が生成されます.

音を大きくしたので,少し雑音っぽいところが目立ちますね.

次回は,もう少し実践的な動画の編集をプログラミングでやってみたいと思います.

コメント

タイトルとURLをコピーしました