zzk1st's picture
Copy code from github
96ea36d
raw
history blame
1.64 kB
from genericpath import exists
import os
import os.path
import logging
import yaml
from model import VoiceParser
from flask import Flask, request, jsonify
with open('config.yaml', 'r') as file:
config = yaml.safe_load(file)
service_port = config['Voice-Parser']['service-port']
vp_device = config['Voice-Parser']['device']
# Configure the logging format and level
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s'
)
# Create a FileHandler for the log file
os.makedirs('services_logs', exist_ok=True)
log_filename = 'services_logs/Voice-Parser.log'
file_handler = logging.FileHandler(log_filename, mode='w')
file_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
# Add the FileHandler to the root logger
logging.getLogger('').addHandler(file_handler)
# Initialize the model here
vp = VoiceParser(device=vp_device)
logging.info('VoiceParser is loaded ...')
app = Flask(__name__)
@app.route('/parse_voice', methods=['POST'])
def parse_voice():
# Receive the text from the POST request
data = request.json
wav_path = data['wav_path']
out_dir = data['out_dir']
logging.info(f'Parsing {wav_path} ...')
try:
vp.extract_acoustic_embed(wav_path, out_dir)
# Return success message and the filename of the generated audio
return jsonify({'message': f'Sucessfully parsed {wav_path}'})
except Exception as e:
# Return error message if something goes wrong
return jsonify({'API error': str(e)}), 500
if __name__ == '__main__':
app.run(debug=False, port=service_port)