AIVoiceBot / app.py
Noobjay's picture
Update app.py
e67afbf verified
Raw History Blame Contribute Delete
1.12 kB
from bark import SAMPLE_RATE, generate_audio, preload_models
from scipy.io.wavfile import write as write_wav
import torch
import os
from fastapi import FastAPI, Request, Form
from fastapi.responses import FileResponse
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
# Patch torch.load for PyTorch 2.6+
if hasattr(torch, 'serialization'):
torch.serialization.add_safe_globals([
"numpy.core.multiarray.scalar"
])
# Create FastAPI app
app = FastAPI()
# Mount static and templates folder
app.mount("/static", StaticFiles(directory="static"), name="static")
templates = Jinja2Templates(directory="templates")
# Preload Bark models
preload_models()
@app.get("/")
def index(request: Request):
return templates.TemplateResponse("index.html", {"request": request})
@app.post("/synthesize")
def synthesize(request: Request, text: str = Form(...)):
audio_array = generate_audio(text)
output_path = "static/output.wav"
write_wav(output_path, SAMPLE_RATE, audio_array)
return FileResponse(output_path, media_type="audio/wav", filename="output.wav")