Spaces:
Running
Running
File size: 829 Bytes
e3f5ff0 ff704b5 e3f5ff0 a3044d1 e3f5ff0 ff704b5 e3f5ff0 ff704b5 e3f5ff0 |
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 |
from fastapi import FastAPI, Response
from fastapi.responses import FileResponse
from kokoro import KPipeline
import soundfile as sf
import os
app = FastAPI()
# Initialize pipeline once at startup
pipeline = KPipeline(lang_code='a')
@app.post("/generate")
async def generate_audio(text: str, voice: str = "af_heart", speed: float = 1.0):
# Generate audio
generator = pipeline(
text,
voice=voice,
speed=speed,
split_pattern=r'\n+'
)
# Save first segment only for demo
for i, (gs, ps, audio) in enumerate(generator):
sf.write(f"output_{i}.wav", audio, 24000)
return FileResponse(
f"output_{i}.wav",
media_type="audio/wav",
filename="output.wav"
)
return Response("No audio generated", status_code=400) |