pythonでwavファイルのサンプリングビット数(量子化ビット数)を変換する
00
はじめに

pythonでwavファイルのサンプリングビット数(量子化ビット数)を変換します。

簡単にできるかと思いきや、調べてもあまり見つからなかったので自分でもまとめておきます。

やり方

PySoundFileライブラリで実現できるようなので、インストールします。

$ pip install pysoundfile

以下が実際のpythonのコードです。wavファイルを読み込み、サンプリングビット数をsubtypeで指定して書き込み。これで完了です。読み込み時のwavファイルは16, 24, 32bitのどれでも16bitとして書き込みできそうです。私は「32bit読み込み → 16bit書き込み」しか試していません。

import soundfile

data, fs = soundfile.read('input.wav')
soundfile.write('output.wav', data, fs, subtype='PCM_16')

指定できるサンプリングビット数は以下のようです。32bitはないんですね。読み込み時は32bitのwavファイルでも問題なく読み込めました。

subtype説明
PCM_24Signed 24 bit PCM
PCM_16Signed 16 bit PCM
PCM_S8Signed 8 bit PCM
参考文献
TOP
プロフィール
icon
シロワニさん
twitter
@shirowanisan
ソフトウェア