rzru/nightingale

Machine learning powered Karaoke app (with scores!)

해결하는 문제

Nightingale은 로컬 또는 네트워크 기반 음악 라이브러리의 어떤 곡이든 카라오케 트랙으로 변환할 수 있게 해줍니다. 보컬 제거, 가사 인식, 음악과의 동기화와 같은 어려운 과정을 자동화하여 사전에 제작된 카라오케 파일이 필요 없도록 합니다.

작동 방식

이 애플리케이션은 신경망 기반의 파이프라인을 사용하여 오디오 파일을 처리합니다:

  1. 스템 분리: UVR Karaoke 모델 또는 Demucs를 사용하여 인스트루멘탈 트랙에서 리드 보컬을 분리합니다.
  2. 음성 인식 및 동기화: WhisperX 또는 Parakeet v3를 사용하여 단어 수준 타임스탬프가 있는 가사를 인식합니다. CJK(중국어, 일본어, 한국어) 언어의 경우 문자 단위 강제 동기화 및 로마자 표기 제공.
  3. 재생: Tauri 기반 앱(Rust + React)이 인스트루멘탈 트랙을 재생하고, 동기화된 가사를 표시하며 마이크 입력을 통한 실시간 피치 점수를 제공합니다.

대상 사용자

Plex, Jellyfin, Navidrome 등에 호스팅된 곡을 포함해 기존 음악 컬렉션에서 어떤 곡이든 부를 수 있는 음악 애호가 및 카라오케 애호가.

주요 기능

  • 자동 설정: 첫 실행 시 Python, ffmpeg, ML 모델을 자동 다운로드하고 부트스트랩합니다.
  • 라이브러리 통합: 로컬 폴더, Plex, Jellyfin, Navidrome 서버에 연결 가능.
  • 고급 오디오 컨트롤: 키 및 템포 조정을 지원하며, 캐시된 변형을 통해 빠르게 재시도 가능.
  • 시각적 경험: 10종의 오디오 반응형 GPU 쉐이더와 Pixabay 동영상 배경 제공.
  • 피치 점수: 마이크 입력을 통한 실시간 감지, 별점 평가 및 곡별 스코어보드.
  • 다중 플랫폼: Windows, macOS, Linux용 단일 바이너리로 배포.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트