Files
ths-speech/python-server/filesystem.py
2018-08-27 13:45:07 +02:00

65 lines
2.0 KiB
Python

import base64
import os.path
import audiosegment_wrapper as AudioSegment
def save_audio(filename, base64_string):
decoded = None
orig_filename = filename[:-4]+"_orig"
with open("latestBase64","wb") as f:
f.write(base64_string)
try:
decoded = base64.b64decode(base64_string)
except TypeError:
return b"ERROR_INVALID_ENCODING_64"
#if os.path.isfile(filename):
# return b"ERROR_FILE_EXISTS"
with open(orig_filename,"wb") as f:
f.write(decoded)
seg = AudioSegment.from_file(orig_filename)
seg = seg.resample(sample_rate_Hz=32000, sample_width=2, channels=1)
seg.export(filename,format="wav")
return b"SUCCESS"
def save_audio_chain(file_str_tupels):
completeAudio = None
for fname, base64_string in file_str_tupels:
print("Filename: {}".format(fname))
decoded = None
orig_filename = fname[:-4]+"_orig"
try:
decoded = base64.b64decode(base64_string)
except TypeError:
return b"ERROR_INVALID_ENCODING_64"
with open(orig_filename,"wb") as f:
f.write(decoded)
if completeAudio == None:
completeAudio = AudioSegment.from_file(orig_filename)
else:
completeAudio += AudioSegment.from_file(orig_filename)
if not completeAudio:
return b"ERROR_AUDIO_CONCAT_FAILED"
else:
completeAudio = completeAudio.resample(sample_rate_Hz=32000, sample_width=2, channels=1)
completeAudio.export(file_str_tupels[0][0],format="wav")
return b"SUCCESS"
def save_transcript(filename, transcript):
if os.path.isfile(filename):
pass
with open(filename + "_transcript","w") as f:
f.write(transcript)
def get_transcript(filename):
if os.path.isfile(filename):
with open(filename + "_transcript","r") as f:
return f.read()
def filelist():
return ""
def fileinfo(filename):
return ""
def copy_to_output(filename):
return ""