スポンサーリンク

SciPyで音声/音楽データを読み込むscipy.io.wavfile.read【Python】

Sound

Pythonの科学技術計算ライブラリであるSciPyで、音声/音楽データを読み込むにはscipy.io.wavfile.readを用いる。

SciPyライブラリ内にある音源を、サンプル音源として用いるため以下コードを実行して、音源のパスを得る。

from os.path import dirname, join as pjoin
from scipy.io import wavfile
import scipy.io

data_dir = pjoin(dirname(scipy.io.__file__), 'tests', 'data')
wav_fname = pjoin(data_dir, 'test-44100Hz-2ch-32bit-float-be.wav')

scipy.io.wavfile.readの使い方

第一引数filenameに、音源のパスを指定する。返り値は、サンプリング周波数と、信号の値で、’numpy.ndarray’で読み込まれる。

import matplotlib.pyplot as plt

samplerate, data = wavfile.read(filename=wav_fname)
print(data.shape)
# (441, 2)
print(type(data))
# <class 'numpy.ndarray'>
print(samplerate)
# 44100

scipy.io.wavfile.readで読み込み可能なファイル形式

scipy.io.wavfile.readで読み込み可能なファイル形式は、WAV形式のみで以下のフォーマットに対応している。フォーマットによってNumpyの型が変わるので注意が必要した方がよい。

WAV formatMinMaxNumPy dtype
32-bit floating-point-1.0+1.0float32
32-bit integer PCM-2147483648+2147483647int32
24-bit integer PCM-2147483648+2147483392int32
16-bit integer PCM-32768+32767int16
8-bit integer PCM0255uint8

関連記事、関連資料

  • GitHubコード
python-sampler/scipy-io-wavfile-read.ipynb at main · take-tech-09/python-sampler
Contribute to take-tech-09/python-sampler development by creating an account on GitHub.

コメント