|
import os |
|
import sys |
|
import time |
|
import signal |
|
import psutil |
|
import io |
|
|
|
from fastapi import FastAPI, Request, status, Form, UploadFile |
|
from fastapi.staticfiles import StaticFiles |
|
from fastapi.middleware.cors import CORSMiddleware |
|
from pydantic import BaseModel, Field |
|
from fastapi.exceptions import RequestValidationError |
|
from fastapi.responses import JSONResponse |
|
|
|
import fn |
|
import gradio as gr |
|
from app import demo |
|
|
|
app = FastAPI() |
|
|
|
app.add_middleware( |
|
CORSMiddleware, |
|
allow_origins=['*'], |
|
allow_credentials=True, |
|
allow_methods=["*"], |
|
allow_headers=["*"], |
|
) |
|
|
|
gr.mount_gradio_app(app, demo, path="/gradio") |
|
|
|
fn.load_model() |
|
|
|
@app.post("/raw1") |
|
async def api_raw1(file: UploadFile = Form(...)): |
|
try: |
|
file_content = await file.read() |
|
file_stream = io.BytesIO(file_content) |
|
|
|
raw1, raw2 = fn.raw(file_stream) |
|
|
|
return Response(content=raw1, media_type="audio/wav") |
|
except Exception as e: |
|
return {"error": str(e)} |
|
|
|
@app.post("/raw2") |
|
async def api_raw2(file: UploadFile = Form(...)): |
|
try: |
|
file_content = await file.read() |
|
file_stream = io.BytesIO(file_content) |
|
|
|
raw1, raw2 = fn.raw(file_stream) |
|
|
|
return Response(content=raw2, media_type="audio/wav") |
|
except Exception as e: |
|
return {"error": str(e)} |
|
|