環境:macOS Mojave 10.14.4
目標:一からmp3やwavをnumpy内の配列データに落とし込み, いじれるようにする.
ffmpegのインストール
ターミナル上でffmpegをインストールします.brew install ffmpeg
ffmpegは結構容量が大きくて, 一部のモジュールだけを取り込む人も多いですが最初の段階ではとりあえず全部入れておくのが後々面倒がなくていいと思います.
pydubの使い方
pydubのインストール
$ pip install pydub
モジュールをインポート
from pydub import AudioSegment
import numpy as np
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings("ignore")
mp3の読み込み
formatをいじればwavを読み込むこともできる.sound = AudioSegment.from_file("xxx.mp3", format="mp3")
#"xxx.mp3"は同じディレクトリにあるようにする.
可視化
data = np.array(sound.get_array_of_samples())
x = data[::sound.channels]
plt.plot(x[::100000]) #数はmp3の容量により適宜調整の必要あり.
plt.grid()
plt.show()
例えば, このコードである曲のmp3を可視化したところ次のようになった.
参考
以下にjupyter上でのコードを掲載しているので、是非参考にしてください.
https://github.com/yohei-freelance/Audio_Transform/blob/master/tutorial_pydub.ipynb