voice-tts2 / app.py
KiranRand's picture
Update app.py
3cf914c verified
raw
history blame
1.37 kB
import os
import torch
import gradio as gr
from TTS.api import TTS
# ✅ Accept Coqui License Automatically
os.environ["COQUI_TOS_AGREED"] = "1"
# ✅ Ensure CPU-only execution (disable GPU)
device = "cpu"
# ✅ Manually Load XTTS Model (Without `XttsConfig`)
model_name = "tts_models/multilingual/multi-dataset/xtts_v2"
model_path = f"{os.getenv('HOME')}/.local/share/tts/{model_name.replace('/', '--')}" # Custom model path
tts = TTS(model_name=model_name).to(device)
def generate_cloned_voice(text, reference_audio, language):
output_path = "output.wav"
# Generate cloned speech with language specification
tts.tts_to_file(text=text, speaker_wav=reference_audio, file_path=output_path, language=language)
return output_path
print(tts.languages)
# Create the Gradio interface
interface = gr.Interface(
fn=generate_cloned_voice,
inputs=[
gr.Textbox(label="Enter Translated Text"),
gr.Audio(label="Upload Reference Audio", type="filepath"),
gr.Dropdown(["en", "fr", "de", "es", "it"], label="Select Target Language", value="en")
],
outputs=gr.Audio(label="Generated Cloned Voice"),
title="Free Voice Cloning API",
description="Upload a sample voice and input text. Select a language, and the system will generate the text in the same voice."
)
# Launch the Gradio app
interface.launch()