File size: 1,252 Bytes
3b211d2
 
 
b49bd76
dcb13fb
3b211d2
b49bd76
 
 
 
3b211d2
b49bd76
 
dcb13fb
b49bd76
 
 
dcb13fb
 
 
b49bd76
 
 
3b211d2
dcb13fb
 
 
3b211d2
b49bd76
dcb13fb
3b211d2
b49bd76
 
dcb13fb
3b211d2
 
b49bd76
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import gradio as gr
from kokoro_onnx import Kokoro
import soundfile as sf
from huggingface_hub import hf_hub_download
import os

# Download oficial e seguro (Método recomendado em 2026)
print("Baixando arquivos do modelo via HF Hub...")
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 modelo usando os caminhos locais seguros
model = Kokoro(model_path, voices_path)

def narrar_biblia(json_input):
    # O JSON recebido deve ser: {"texto": "O conteúdo aqui"}
    texto = json_input.get("texto", "")
    if not texto:
        return None
    
    # 'am_michael' é uma voz masculina profunda e solene, ideal para a Bíblia
    # speed 0.9 deixa a fala mais pausada e épica
    samples, sample_rate = model.create(texto, voice="am_michael", speed=0.9)
    
    output_path = "narracao.wav"
    sf.write(output_path, samples, sample_rate)
    return output_path

# Configuração da Interface e Endpoint da API
demo = gr.Interface(
    fn=narrar_biblia,
    inputs=gr.JSON(label="Entrada JSON"),
    outputs=gr.Audio(label="Áudio Gerado"),
    api_name="predict"
)

if __name__ == "__main__":
    demo.launch()