프로젝트는 대학 과제용으로 시작된 API 서비스 프로젝트입니다. 모든 코드는 main.py
파일에 작성되어 있으며, FastAPI 프레임워크를 사용하여 API 서비스를 구현하였습니다.
- Python 3.8
- requirements.txt
- 저장소를 클론합니다.
- 파이썬 가상환경 설정(3.8)
- 의존성 설치
- 프로젝트 실행 (uvicorn 사용)
- localhost/docs 를 통해 API 테스트
위 코드는 FastAPI와 Spleeter를 사용하여 음원 분리 API를 구현하는 예시입니다.
FastAPI는 웹 애플리케이션을 쉽게 만들 수 있도록 도와주는 Python 웹 프레임워크이며, Spleeter는 딥 러닝 기반의 음원 분리 라이브러리입니다.
이 예제에서는 /audio
API 엔드포인트를 통해 음원 파일을 업로드하고, Spleeter를 사용하여 분리된 음원을 생성합니다. 분리된 음원은 /output
API 엔드포인트를 통해 다운로드할 수 있습니다.
다음은 각 함수의 역할에 대한 간단한 설명입니다.
audio
: POST 요청을 처리하는 함수로, 업로드된 음원 파일을 분리하여 저장하고, 분리된 음원 파일의 다운로드 링크를 반환합니다.get_audio
: GET 요청을 처리하는 함수로, 분리된 음원 파일을 다운로드할 때 사용합니다.model_name
: 사용할 Spleeter 분리 모델을 지정하는 변수입니다.separator
: 지정된 분리 모델을 로드하는 객체입니다.output_dir
: 분리된 음원 파일을 저장할 디렉토리 경로입니다.
이 예시 코드는 다음과 같은 순서로 동작합니다.
audio
함수가 POST 요청을 받아 음원 파일을 저장하고, Spleeter를 사용하여 분리된 음원 파일을 생성합니다.- 생성된 분리된 음원 파일의 다운로드 링크를 반환합니다.
get_audio
함수가 GET 요청을 받아 분리된 음원 파일을 전송합니다.
이 코드를 실행하려면, FastAPI와 Spleeter를 설치하고, Python 파일을 실행하면 됩니다. 또한, output_dir
변수에 지정된 경로에 쓰기 권한이 있어야 합니다.
이 코드를 참고하여, FastAPI와 Spleeter를 사용하여 음원 분리 기능을 구현하는 데 도움이 되길 바랍니다.