29 lines
708 B
Python
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)
|