Spaces:
Configuration error
Configuration error
File size: 2,236 Bytes
313814b 3a14175 bf48682 7cc3853 8f3dcc9 313814b d0feed8 e0e6882 313814b 307e23f bf48682 8f3dcc9 d0feed8 313814b dc4f25f 8f3dcc9 dc4f25f aada575 bf48682 ede9e6a bf48682 ede9e6a 7cc3853 bf48682 3a14175 bf48682 3a14175 dcbab06 307e23f dcbab06 3a14175 bf48682 7cc3853 313814b bf48682 8f3dcc9 bf48682 9d4a9a2 bf48682 4e64465 bf48682 4e64465 bf48682 |
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
from __future__ import annotations
from contextlib import asynccontextmanager
import logging
import platform
from typing import TYPE_CHECKING
from fastapi import (
FastAPI,
)
from fastapi.middleware.cors import CORSMiddleware
from faster_whisper_server.dependencies import ApiKeyDependency, get_config, get_model_manager
from faster_whisper_server.logger import setup_logger
from faster_whisper_server.routers.list_models import (
router as list_models_router,
)
from faster_whisper_server.routers.misc import (
router as misc_router,
)
from faster_whisper_server.routers.stt import (
router as stt_router,
)
if TYPE_CHECKING:
from collections.abc import AsyncGenerator
def create_app() -> FastAPI:
config = get_config() # HACK
setup_logger(config.log_level)
logger = logging.getLogger(__name__)
logger.debug(f"Config: {config}")
if platform.machine() == "x86_64":
from faster_whisper_server.routers.speech import (
router as speech_router,
)
else:
logger.warning("`/v1/audio/speech` is only supported on x86_64 machines")
speech_router = None
model_manager = get_model_manager() # HACK
@asynccontextmanager
async def lifespan(_app: FastAPI) -> AsyncGenerator[None, None]:
for model_name in config.preload_models:
model_manager.load_model(model_name)
yield
dependencies = []
if config.api_key is not None:
dependencies.append(ApiKeyDependency)
app = FastAPI(lifespan=lifespan, dependencies=dependencies)
app.include_router(stt_router)
app.include_router(list_models_router)
app.include_router(misc_router)
if speech_router is not None:
app.include_router(speech_router)
if config.allow_origins is not None:
app.add_middleware(
CORSMiddleware,
allow_origins=config.allow_origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
if config.enable_ui:
import gradio as gr
from faster_whisper_server.gradio_app import create_gradio_demo
app = gr.mount_gradio_app(app, create_gradio_demo(config), path="/")
return app
|