Spaces:
Running
Running
File size: 1,618 Bytes
fba6023 | 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 | from __future__ import annotations
from fastapi import APIRouter, Request
from app.api.media import execute_operation
from app.core.response import SuccessResponse
from app.operations.compress import normalize_audio
from app.operations.concat import concat_audio
from app.operations.convert import convert_audio
from app.operations.extract_audio import (
extract_audio,
fade_audio,
noise_reduction,
remove_silence,
set_volume,
)
from app.operations.merge import merge_audio
from app.operations.trim import trim_audio
from app.services.media_service import Operation
router = APIRouter(prefix="/v1/audio", tags=["audio"])
def operation_route(path: str, name: str, operation: Operation) -> None:
async def endpoint(request: Request) -> SuccessResponse:
return await execute_operation(request, name, operation)
endpoint.__name__ = name.replace(".", "_")
router.add_api_route(
path, endpoint, methods=["POST"], response_model=SuccessResponse, name=name
)
operation_route("/extract", "audio.extract", extract_audio)
operation_route("/convert", "audio.convert", convert_audio)
operation_route("/normalize", "audio.normalize", normalize_audio)
operation_route("/trim", "audio.trim", trim_audio)
operation_route("/merge", "audio.merge", merge_audio)
operation_route("/concat", "audio.concat", concat_audio)
operation_route("/fade", "audio.fade", fade_audio)
operation_route("/volume", "audio.volume", set_volume)
operation_route("/remove-silence", "audio.remove_silence", remove_silence)
operation_route("/noise-reduction", "audio.noise_reduction", noise_reduction)
|