2014-09-04 7 views
0

나는 사용자가 노래에서 리드 보컬리스트를 취할 수 있도록 Android 용 뮤직 플레이어 앱을 작성하려고합니다. 오디오 스트림에 사용자 정의 AudioEffect을 적용 할 수있는 가능한 방법이 있나요안드로이드에서 가능한 리드 싱어 효과를 제거 하시겠습니까?

amount_of_removal * ((left * (balance)) - (right * (1 - balance))) + (1 - amount_of_removal)*(left + right) 

:

관련된 수학과 같이인가? 파일을 열어서 직접 해독했다고해도?

+1

이론상 (나는 성공적으로 시도한 바 있습니다.) 채널 중 하나를 가져 와서 "수직으로"뒤집 으면 보컬을 제거해야합니다 (또는 보컬 만 남겨두고 전체 노래에서이 부분을 강조해야합니다. 절차를 잘 기억하지 못함). 이 동영상은 YouTube에 있습니다. 그러나 나는 당신이 안드로이드에서 이것을 어떻게 할 수 있는지 정말로 모른다. –

+0

Frank의 방법 외에도 기본적으로 사운드의 "가운데"부분을 제거합니다. 보컬이 중심에있는 경향이 있기 때문에 대부분의 경우 작동합니다. 그러나 그것은 정말로 노래에 달려 있습니다. 보컬이 "걷다"면 제거가 덜 효율적입니다. 안타깝게도, 나는 결코이 영역을 만지지 않기 때문에 안드로이드에서 어떻게해야할지 모른다. –

+0

답변을 제공해 주었고 너무 일반적인 것에 대한 중요한 단점을 지적했습니다. 다행히도, 그것은 일을 엄청나게 단순화합니다. – Raceimaztion

답변

1

좋아, 내가이 질문을 게시했을 때 약간 중요한 정보를 간과 한 것처럼 보입니다.

대부분의 음악 형식은 오디오 파형을 구성하는 모든 것을 저장하지 않기 때문에 대부분의 음악 형식이 소위 "손실"이라고합니다. 예를 들어, MP3은 기본적으로 파형을 구성 요소 주파수로 분해하지만 가장 큰 신호 만 저장하므로 더 조용한 신호는 무시합니다.

몇 가지 스타일의 음악에서 리드 싱어가 가장 큰 부분 (특히 노래를 부를 때)이고 음향 품질에 문제가있는 경우 리드 싱어가 가면을 숨길 필요가 없으므로 이제는 필요합니다.

이것은 읽는 데 가장 적합한 형식이 실제로 무손실 형식임을 의미하며, 가장 쉬운 방법 중 하나는 고대 WAV 파일입니다.

  • 가 버퍼에 사용자 지정 오디오 효과를 적용

    1. 로드 오디오 파일합니다 (WavFile 클래스를 사용, this answer에 지정된대로) :

      전반적으로, 내가하고 싶은 일을하는 데 필요한 단계는 아마도이 같은 것입니다 - 한 번에 전체 파일.

    2. 사운드 카드에 처리 된 오디오의 전체 버퍼를 통과 바로 사용하는 것으로, 여기에서 볼 수있는 유일한 단점은 (아직 테스트 한하지 않음)

    성능 문제 가능성이 있습니다 (this example 같은 것을 사용) Java는 다소 느릴 수 있습니다.