waveモジュールのWave_write.setparamsでヘッダ部分は作ってくれるようなので、あとはWave_write.writeframesで生PCMを書き出せばよいと思います。
上述のsetparamsでエンディアン指定できるかは未調査です。
参考:Pythonでサイン波(正弦波)をつくる
追記
上記例で正しいWaveファイルが作成できない場合は、生PCMのエンディアンをbig->littleに変換して書き込んでみてはいかがでしょうか?
以下はbig -> littleにエンディアン変換する例です。
Python
1# サンプルデータ big
2from struct import *
3dat_big = pack( '>4h', 0, 1, 255, 256) # > = big (signed short)
4print(dat_big) # b'\x00\x00\x00\x01\x00\xff\x01\x00'
5
6# big -> little
7import array
8dat_little = array.array('h',dat_big)
9dat_little.byteswap() # big -> little
10print(bytes(dat_little)) # b'\x00\x00\x01\x00\xff\x00\x00\x01'
11
12# テスト書込
13with open('dat_big.dat', 'wb') as f:
14 f.write(dat_big)
15
16with open('dat_little.dat', 'wb') as f:
17 f.write(dat_little)
退会済みユーザー
2017/10/19 15:39 編集
2017/10/20 01:06
退会済みユーザー
2017/10/20 09:42