from flask import jsonify, send_file, request from main import * import torch, torchaudio, io, base64, uuid, os def xtts_clone_func(text, audio_sample_path, output_path="output_xtts_audio.wav"): if xtts_model is None: return {"error": "XTTS model not initialized."} language = "en"; speaker_id = 0 try: with torch.no_grad(): wav = xtts_model.inference(text=text, language_id=language, speaker_id=speaker_id, voice_sample=audio_sample_path, temperature=0.7, length_penalty=1.0) except Exception as e: return {"error": f"XTTS inference failed: {e}"} torchaudio.save(output_path, wav, 24000); return output_path def xtts_api(inputs): text = inputs[0]; audio_sample_filepath = inputs[1] temp_audio_path = f"temp_audio_{uuid.uuid4()}.wav"; os.rename(audio_sample_filepath, temp_audio_path) output = xtts_clone_func(text, temp_audio_path); os.remove(temp_audio_path) if isinstance(output, dict) and "error" in output: return {"error": output["error"]} output_file = output with open(output_file, 'rb') as f: audio_content = f.read() audio_base64 = base64.b64encode(audio_content).decode('utf-8'); os.remove(output_file); return {"audio_base64": audio_base64, "mimetype": "audio/wav"} --- END OF FILE xtts_api.py ---