좋아, 내가이 질문을 게시했을 때 약간 중요한 정보를 간과 한 것처럼 보입니다.
대부분의 음악 형식은 오디오 파형을 구성하는 모든 것을 저장하지 않기 때문에 대부분의 음악 형식이 소위 "손실"이라고합니다. 예를 들어, MP3
은 기본적으로 파형을 구성 요소 주파수로 분해하지만 가장 큰 신호 만 저장하므로 더 조용한 신호는 무시합니다.
몇 가지 스타일의 음악에서 리드 싱어가 가장 큰 부분 (특히 노래를 부를 때)이고 음향 품질에 문제가있는 경우 리드 싱어가 가면을 숨길 필요가 없으므로 이제는 필요합니다.
이것은 읽는 데 가장 적합한 형식이 실제로 무손실 형식임을 의미하며, 가장 쉬운 방법 중 하나는 고대 WAV 파일입니다.
가 버퍼에 사용자 지정 오디오 효과를 적용
- 로드 오디오 파일합니다 (WavFile 클래스를 사용, this answer에 지정된대로) :
전반적으로, 내가하고 싶은 일을하는 데 필요한 단계는 아마도이 같은 것입니다 - 한 번에 전체 파일.
- 사운드 카드에 처리 된 오디오의 전체 버퍼를 통과 바로 사용하는 것으로, 여기에서 볼 수있는 유일한 단점은 (아직 테스트 한하지 않음)
성능 문제 가능성이 있습니다 (this example 같은 것을 사용) Java는 다소 느릴 수 있습니다.
이론상 (나는 성공적으로 시도한 바 있습니다.) 채널 중 하나를 가져 와서 "수직으로"뒤집 으면 보컬을 제거해야합니다 (또는 보컬 만 남겨두고 전체 노래에서이 부분을 강조해야합니다. 절차를 잘 기억하지 못함). 이 동영상은 YouTube에 있습니다. 그러나 나는 당신이 안드로이드에서 이것을 어떻게 할 수 있는지 정말로 모른다. –
Frank의 방법 외에도 기본적으로 사운드의 "가운데"부분을 제거합니다. 보컬이 중심에있는 경향이 있기 때문에 대부분의 경우 작동합니다. 그러나 그것은 정말로 노래에 달려 있습니다. 보컬이 "걷다"면 제거가 덜 효율적입니다. 안타깝게도, 나는 결코이 영역을 만지지 않기 때문에 안드로이드에서 어떻게해야할지 모른다. –
답변을 제공해 주었고 너무 일반적인 것에 대한 중요한 단점을 지적했습니다. 다행히도, 그것은 일을 엄청나게 단순화합니다. – Raceimaztion