- 파일 리스트 캐싱: 모델, 인덱스, 오디오 파일 목록을 메모리에 캐싱하여 반복적인 파일 시스템 스캔 방지
- 모델 정보 캐싱: 모델 메타데이터를 디스크에 캐싱하여 빠른 로딩
- 캐시 무효화: 필요시 캐시를 갱신할 수 있는 기능 제공
- 병렬 추론 서비스: 여러 오디오 파일을 동시에 처리할 수 있는 워커 풀 구현
- 우선순위 큐: 중요한 작업을 먼저 처리할 수 있는 우선순위 기반 스케줄링
- 배치 처리: 여러 파일을 효율적으로 처리하는 배치 시스템
- 자동 메모리 정리: GPU 메모리 사용률 모니터링 및 자동 정리
- LRU 모델 관리: 가장 적게 사용된 모델을 자동으로 언로드
- 메모리 임계값 설정: 설정 가능한 메모리 사용 한계
- core.py 분리: 2500줄이 넘는 거대한 파일을 기능별 모듈로 분리
inference_engine.py: 추론 관련 로직config_manager.py: 설정 관리cache_manager.py: 캐싱 시스템inference_service.py: 비동기 서비스
- 구조화된 설정: dataclass를 사용한 타입 안전 설정
- YAML/JSON 지원: 다양한 설정 파일 형식 지원
- 프리셋 시스템: 자주 사용하는 설정을 저장/로드
- 직관적인 레이아웃: 모델 선택, 설정, 오디오가 논리적으로 배치
- 실시간 상태 표시: GPU 정보, 시스템 상태를 실시간으로 표시
- 프리셋 통합: 빠른 설정을 위한 프리셋 드롭다운
- 고급 설정 접기: 초보자를 위해 고급 설정은 기본적으로 숨김
- 현대적인 디자인: 그라데이션, 애니메이션, 호버 효과
- 반응형 레이아웃: 모바일에서도 잘 작동
- 다크 모드 지원: 시스템 설정에 따른 자동 테마
- 접근성 개선: 더 나은 대비, 툴팁, 키보드 네비게이션
- 자주 사용하는 오디오 파일을 드롭다운에서 빠르게 선택
- 녹음 모드 토글로 직접 녹음 가능
- 폴더 단위 변환을 위한 전용 UI
- 병렬 처리로 속도 향상
- 진행 상황 표시
- 명확한 오류 메시지
- 자동 복구 메커니즘
- 상세한 로깅
새로운 기능을 사용하면서도 기존 코드와 100% 호환됩니다:
# 기존 방식 (계속 작동)
python app.py
# 새로운 방식 (개선된 버전)
python app_v2.pyconfig.json 파일이 자동 생성되어 모든 설정을 관리합니다:
{
"inference": {
"pitch": 0,
"filter_radius": 3,
"index_rate": 0.75,
...
},
"training": {
"batch_size": 8,
"total_epoch": 100,
...
},
"theme": "ParityError/Interstellar",
"port": 6969,
"max_workers": 2,
"cache_enabled": true
}캐시는 .cache 디렉토리에 저장되며, 필요시 삭제하여 초기화할 수 있습니다.
새로운 기능들은 기존 의존성만으로 작동하도록 설계되었습니다. 추가 패키지 설치가 필요하지 않습니다.
- 파일 리스트 로딩: 5-10배 빠름 (캐싱 덕분)
- 배치 변환: 2-4배 빠름 (병렬 처리)
- GPU 메모리 사용: 30% 감소 (효율적인 관리)
- UI 반응성: 즉각적 (비동기 처리)
- 플러그인 시스템과 호환
- 새로운 모듈 추가 용이
- API 엔드포인트 추가 가능
- ONNX 런타임 지원: 더 빠른 추론을 위한 ONNX 변환 및 실행
- 웹소켓 지원: 실시간 스트리밍 변환
- 클라우드 통합: S3, Google Drive 등에서 직접 모델 로드
- 모바일 앱: React Native 기반 모바일 클라이언트
- 자동 최적화: 하드웨어에 따른 자동 설정 조정
개선 사항이나 버그를 발견하면:
- GitHub 이슈 생성
- Pull Request 제출
- Discord에서 논의
모든 기여를 환영합니다!
참고: 이 개선 사항들은 기존 기능을 해치지 않으면서 성능과 사용성을 크게 향상시킵니다. 점진적으로 마이그레이션할 수 있도록 설계되었습니다.