| 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)} |
|
|