몇 주 동안 다른 장르의 음악을 포함하는 라이브러리에서 비슷한 노래를 일치 / 찾기하는 방법을 찾기 위해 실험했습니다.
첫 번째 시도는 그룹을 형성하기 위해 템포와 같은 기능을 감지하거나 곡에 저음이 얼마나 많은지를 감지하는 것이었지만 송 비트의 약 20 %가 계산되지 않기 때문에이 방법 (볼륨 변경 기반 비트 감지)으로 멀리 가지 못했습니다. 항상 그들 중 1/2 또는 1/3이 항상 구현할 수 없었습니다.
몇 주 동안 실패한 후에이 포스트의 뒷부분에서 설명하는 새로운 아이디어를 얻었습니다. 간단히 파일의 스펙트럼 샘플을 가져 와서 "평균 스펙트럼 파일"과 같은 것을 만들어 비교하면됩니다. 예를 들어 Hardstyle은 평균 록 음악보다 훨씬 더 많은 저음을 가지고 있다는 것이 아이디어였습니다. 나는 또한 Audacity의 일부 Spectrums를 보면서 이것을 확인했습니다.
- 파일 1 : 전체 파일 FFT 스펙트럼 가져 오기 (2048 샘플 크기 atm, 진폭 로그 스케일)
- 모든 스펙트럼 배열을 합산하고 각 빈의 평균을 취합니다.
- 다른 파일과 동일하게 모든 결과 저장
- 파일 1과 다른 파일 간의 FFT 값 목록 차이점
- 파일 1과 파일 X 사이의 평균 차이 만들기
- 이 평균을 기준으로 오름차순 정렬
- "차이 값"이 가장 낮은 곡은 비슷한 것으로 간주됩니다.
좋은 지식을 가진 일부 사람들이 이것이 내 아이디어를 구현하는 올바른 방법인지 말해 줄 수 있습니까?