kokoro-tts-ptbr / app.py
multija's picture
Update app.py
4693a7c verified
import os
import sys
import requests
import soundfile as sf
# adiciona a pasta src no path para importar o F5-TTS
sys.path.append("/usr/local/lib/python3.10/site-packages/f5_tts") # ajuste se necessário
sys.path.append("src") # caso esteja no repo clonado
from f5_tts.inference import inference
# URLs dos arquivos
MODEL_URL = "https://huggingface.co/firstpixel/F5-TTS-pt-br/resolve/main/pt-br/model_last.safetensors"
CONFIG_URL = "https://raw.githubusercontent.com/SWivid/F5-TTS/main/src/f5_tts/configs/F5TTS_Base.yaml"
VOCAB_URL = "https://huggingface.co/SWivid/F5-TTS/raw/main/F5TTS_Base/vocab.txt"
# Pastas locais
os.makedirs("model", exist_ok=True)
os.makedirs("config", exist_ok=True)
os.makedirs("vocoder", exist_ok=True)
MODEL_FILE = "model/model_last.safetensors"
CONFIG_FILE = "config/config.yaml"
VOCAB_FILE = "vocoder/vocab.txt"
# Função para baixar arquivos
def download_file(url, path):
if not os.path.exists(path):
print(f"⬇️ Baixando {url} ...")
r = requests.get(url)
r.raise_for_status()
with open(path, "wb") as f:
f.write(r.content)
print(f"✅ Salvo em {path}")
else:
print(f"✔️ Já existe: {path}")
# Baixa os arquivos necessários
download_file(MODEL_URL, MODEL_FILE)
download_file(CONFIG_URL, CONFIG_FILE)
download_file(VOCAB_URL, VOCAB_FILE)
# Texto de teste
texto = "Olá, seja bem-vindo ao teste do F5-TTS em português."
# Faz inferência
print("🎙️ Gerando áudio...")
wav = inference(
text=texto,
model_path=MODEL_FILE,
config_path=CONFIG_FILE,
vocab_path=VOCAB_FILE
)
# Salva o resultado
sf.write("output.wav", wav, 24000)
print("✅ Áudio salvo em output.wav")