45 lines
961 B
Python
Executable File
45 lines
961 B
Python
Executable File
# Copyright (c) Alibaba, Inc. and its affiliates.
|
|
|
|
from struct import *
|
|
|
|
__all__=['wav2pcm', 'GetDefaultContext']
|
|
|
|
def GetDefaultContext():
|
|
"""
|
|
Return Default Context Object
|
|
"""
|
|
return {
|
|
'sdk': {
|
|
'name': 'nls-python-sdk',
|
|
'version': '0.0.1',
|
|
'language': 'python'
|
|
}
|
|
}
|
|
|
|
|
|
def wav2pcm(wavfile, pcmfile):
|
|
"""
|
|
Turn wav into pcm
|
|
|
|
Parameters
|
|
----------
|
|
wavfile: str
|
|
wav file path
|
|
pcmfile: str
|
|
output pcm file path
|
|
"""
|
|
with open(wavfile, 'rb') as i, open(pcmfile, 'wb') as o:
|
|
i.seek(0)
|
|
_id = i.read(4)
|
|
_id = unpack('>I', _id)
|
|
_size = i.read(4)
|
|
_size = unpack('<I', _size)
|
|
_type = i.read(4)
|
|
_type = unpack('>I', _type)
|
|
if _id[0] != 0x52494646 or _type[0] != 0x57415645:
|
|
raise ValueError('not a wav!')
|
|
i.read(32)
|
|
result = i.read()
|
|
o.write(result)
|
|
|