나는 avakar와 nico에 동의하지만 좀 더 설명을 추가하고 싶습니다. 두 가지에 해당하지 않는 한 PCM 오디오의 샘플 속도를 낮추는 것은 사소한되지 않습니다 :
귀하의 신호는 1/2보다 더 중요한 주파수 낮은 포함하는 새로운 샘플링 속도 (Nyquist rate). 이 경우 앤티 앨리어싱 필터가 필요하지 않습니다.
정수 값으로 다운 샘플링합니다. 이 경우, N에 의한 다운 샘플링은 모든 N 번째 샘플을 유지하고 나머지를 제거하는 것을 요구한다.
이러한 사항이 사실이라면 일정한 간격으로 샘플을 내려서 샘플링하면됩니다. 그러나 합성 신호 이외의 다른 신호를 처리하는 경우에는 둘 다 맞지 않을 수 있습니다.
문제 1을 해결하려면 오디오 샘플을 저역 통과 필터로 필터링하여 결과 신호가 새 샘플링 속도의 최대 1/2 주파수 내용 만 포함하는지 확인해야합니다. 이것이 수행되지 않으면 높은 주파수가 정확하게 표시되지 않고 적절하게 표현 될 수있는 주파수로 다시 별칭을 지정하여 큰 왜곡을 일으 킵니다. 앨리어싱에 대한 설명은이 위키 백과 문서의 critical frequency 섹션을 확인하십시오. 특히, 샘플링 속도가 너무 낮기 때문에 샘플만으로 구별 할 수없는 3 가지 신호를 보여주는 그림 7을 참조하십시오.
어드레싱 문제 2는 여러 가지 방법으로 수행 할 수 있습니다. 때로는 업 샘플링과 다운 샘플링의 두 단계로 수행되기 때문에 샘플링 속도를 합리적으로 변경합니다. 보간 또는 다른 기술을 사용하여 수행 할 수도 있습니다. 근본적으로 해결해야 할 문제는 새로운 신호의 샘플이 원래 신호의 샘플과 시간을 맞추지 않는다는 것입니다.
오디오에서 리샘플링이 상당히 복잡 할 수 있으므로 nico의 조언을 듣고 기존 라이브러리를 사용합니다. 필터 단계를 올바르게 시작하려면 신호 처리 및 주파수 분석에 대해 많은 것을 배워야합니다.전문가 일 필요는 없지만 시간이 좀 걸립니다.
일반적으로 가능한 경우 내 프로그램에서 미니멀리즘을위한 것이므로 약간의 형식을 알고 있으면 좋을 것입니다. 나에게 샘플 속도와 채널을 변경하는 것이 상대적으로 쉽지만, 물론 틀릴 수도 있습니다. – kaykun
자신의 오디오 프로세싱 코드를 굴린 후에는 프로그램이 "최소"가되지 않습니다. 라이브러리를 사용하는 경우, 어쨌든 이미 라이브러리를 가지고 있으며 몇 줄의 코드를 호출 할 가능성이 있습니다. –