Tridora-CPU/utils/wav2tdrau.py

29 lines
708 B
Python

import sys
import random, struct
import wave
freq = 16000
BIAS = 32768
def convert(srcpath, destpath):
outdata = bytearray()
with wave.open(srcpath, mode="rb") as f:
params = f.getparams()
print(params.nchannels, params.sampwidth, params.framerate)
frames = f.readframes(2*1024*1024)
for i in range(0, len(frames), 2):
v = int.from_bytes(frames[i:i+2], "little", signed=True)
v += BIAS
hi = (v & 0xFF00) >> 8
lo = (v & 0x00FF)
outdata.append(hi)
outdata.append(lo)
with open(destpath, mode="wb") as f:
f.write(outdata)
if __name__ == "__main__":
sourcefilename = sys.argv[1]
destfilename = sys.argv[2]
convert(sourcefilename, destfilename)