convertPCM.py
0.00MB
Vocalizer로 다국어 검증을 하다 특정 명령어를 파일로 떨구고 싶은데 이게 RAW 데이터로 필요한 경우가 있다.
Vocalizer의 Generate wave 기능은 말그대로 wave 파일을 생성해주기 때문에 wav 파일을 pcm으로 변환할 필요가 있었고, 파이썬을 뒤적이다 좋은 코드가 있어 퍼왔다.
#!/usr/bin/python
import sys
import os.path
ext = None
def convert_wave_to_pcm(filename):
file = open(filename, 'rb')
byteBuffer = bytearray(file.read())
file.close()
fn_ext = os.path.splitext(filename)
if fn_ext[1] == '.wav':
out_filename = fn_ext[0] + '.pcm'
else:
out_filename = fn_ext[0] + fn_ext[1] + '.pcm'
print 'Out file name: %s' % out_filename
out_file = open(out_filename, 'wb')
out_file.write(byteBuffer[44:])
out_file.close()
if len(sys.argv) is 1:
YesNo = raw_input('Do you want to convert *.wav to *.pcm? (Yes or No): ')
if 'yes' in YesNo:
filename = '.wav'
print('Convert *.wav to *.pcm !!!')
else:
print('Please try it again with a filename or .wav !!!')
exit(0)
else:
filename = sys.argv[1]
while True:
fn_ext = os.path.splitext(filename)
if (not fn_ext[1]) & fn_ext[0].count('.'):
if fn_ext[0] == '.':
print 'Input file name is invalid!!!'
exit(0)
else:
print 'Input file name has the only ext!!!'
ext = fn_ext[0]
break
else:
try:
convert_wave_to_pcm(filename)
break
except:
print '[Error] No such file: %s' % filename
filename = raw_input('Please type file name: ')
if ext is not None:
folder = os.getcwd()
print 'folder: %s' % folder
for filename in os.listdir(folder):
print filename
if filename.endswith(ext):
convert_wave_to_pcm(filename)
raw_input('Press Enter to exit')
exit(0)
'Personal Posting > Python' 카테고리의 다른 글
py 파일 exe 파일로 변환 (0) | 2023.04.12 |
---|---|
Pythonista로 아이폰에서 코드 빌드하기 (0) | 2020.04.09 |