ai-pronunciation-trainer / lambdaTTS.py
thiagohgl's picture
First repository code commit
28d0c5f
raw
history blame
1.09 kB
import models
import soundfile as sf
import json
import AIModels
#from flask import Response
import utilsFileIO
import os
import base64
sampling_rate = 16000
model_TTS_lambda = AIModels.NeuralTTS(models.getTTSModel('de'), sampling_rate)
def lambda_handler(event, context):
body = json.loads(event['body'])
text_string = body['value']
linear_factor = 0.2
audio = model_TTS_lambda.getAudioFromSentence(
text_string).detach().numpy()*linear_factor
random_file_name = utilsFileIO.generateRandomString(20)+'.wav'
sf.write('./'+random_file_name, audio, 16000)
with open(random_file_name, "rb") as f:
audio_byte_array = f.read()
os.remove(random_file_name)
return {
'statusCode': 200,
'headers': {
'Access-Control-Allow-Headers': '*',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'OPTIONS,POST,GET'
},
'body': json.dumps(
{
"wavBase64": str(base64.b64encode(audio_byte_array))[2:-1],
},
)
}