NA_base / app.py
NeuralAudio's picture
use real endpoint
934e329 verified
import streamlit as st
import requests
import base64
from io import BytesIO
# Backend API URL
API_URL = "https://www.neuralaudio.solutions/api/text2speache"
st.set_page_config(page_title="NeuralAudioAI TTS", layout="centered")
st.image("https://storage.googleapis.com/crypto-utils-1/Header%20with%20Pattern.png", use_container_width=True)
st.title("πŸ”Š Neural Audio AI - TTS Demo")
st.write("Enter text and generate speech using **NeuralAudioAI/NA_base**.")
# Text Input
text = st.text_area("πŸ“ Enter text to synthesize:", "Hello! This is Neural Audio AI speaking. How may I help you today?")
if st.button("πŸŽ™οΈ Generate Speech"):
if not text.strip():
st.warning("⚠️ Please enter some text.")
else:
with st.spinner("Generating audio... 🎢"):
try:
# Mimic the working frontend FormData:
# - "text" field with the text value.
# - "speaker_audio" left empty so backend uses its default.
files = {
"text": (None, text),
"speaker_audio": (None, "") # This will be treated as not provided.
}
response = requests.post(API_URL, files=files)
if response.status_code == 200:
audio_bytes = response.content
# Use BytesIO so st.audio plays the file directly from memory.
audio_io = BytesIO(audio_bytes)
st.audio(audio_io, format="audio/mpeg")
else:
try:
error_message = response.json().get("error", "Unknown error occurred")
except Exception:
error_message = response.text
st.error(f"❌ Failed to generate speech: {error_message}")
except requests.RequestException as e:
st.error(f"❌ Error communicating with the server: {e}")