TTSIA / app.py
AlexandreScriptsMT's picture
Update app.py
b6eacae verified
import gradio as gr
from kokoro_onnx import Kokoro
import soundfile as sf
from huggingface_hub import hf_hub_download
import os
# Download seguro - Apontando para o repositório estável
print("Baixando modelos...")
try:
# Usando o repositório que contém os arquivos ONNX confirmados
model_path = hf_hub_download(repo_id="v006/kokoro", filename="kokoro-v0_19.onnx")
voices_path = hf_hub_download(repo_id="v006/kokoro", filename="voices.bin")
except Exception:
# Fallback para o repositório principal caso o acima falhe
model_path = hf_hub_download(repo_id="hexgrad/Kokoro-82M", filename="kokoro-v0_19.onnx")
voices_path = hf_hub_download(repo_id="hexgrad/Kokoro-82M", filename="voices.bin")
# Inicializa o motor TTS
model = Kokoro(model_path, voices_path)
def narrar(data):
texto = data.get("texto", "")
if not texto:
return None
# 'am_michael' é a voz masculina ideal: profunda, clara e solene
# speed=0.9 para dar o ritmo de leitura bíblica
samples, sample_rate = model.create(texto, voice="am_michael", speed=0.9)
output_file = "audio.wav"
sf.write(output_file, samples, sample_rate)
return output_file
# Interface Gradio configurada como API JSON
demo = gr.Interface(
fn=narrar,
inputs=gr.JSON(label="Input JSON"),
outputs=gr.Audio(label="Narração"),
api_name="predict"
)
if __name__ == "__main__":
demo.launch()