swahili-tts-model / spaces_app.py
mosha255's picture
Debug gradio queue
143549e unverified
import gradio as gr
import os
import sys
import logging
import requests
from tts import TTS
# Add the current directory to the path so we can import from app
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
# Configure logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
# Function to fetch audio from a URL
def fetch_audio(input_text):
# Replace with the actual backend URL for generating audio
backend_url = "http://localhost:8080/api/text_to_speech"
response = requests.get(backend_url, params={"text": input_text})
if response.status_code == 200:
logger.info(f"Generated audio from text: {input_text}")
logger.info(f"Audio URL: {response.url}")
return response.url # Return the URL of the generated audio
else:
return None
def generate_audio(input_text):
try:
audio_array = TTS.generate(input_text)
return (44100, audio_array)
except Exception as e:
logger.error(f"Error generating audio: {e}")
return None
# Gradio interface
def create_gradio_interface():
# Create the Gradio interface
with gr.Blocks(title="Swahili TTS Model") as demo:
gr.Markdown("# Swahili TTS Model")
gr.Markdown("Generate Swahili speech from text.")
with gr.Row():
with gr.Column():
input_text = gr.Textbox(label="Input Text", lines=5)
generate_btn = gr.Button("Generate Speech")
with gr.Column():
# show generated audio from a url on output, href = "https://sample.com/audio.wav"
output = gr.Audio(label="Generated Audio", type="filepath")
generate_btn.click(
fn=generate_audio,
inputs=input_text,
outputs=output,
queue=False,
)
return demo
app = create_gradio_interface()
# Launch the app
if __name__ == "__main__":
app.launch(server_name="0.0.0.0", server_port=9090)