2009-07-07 4 views
2

나중에 표준 PCM 플레이어를 통해 재생할 웹 서버에서 PCM 데이터를 다운로드하는 프로그램이 있습니다. PCM 데이터가 재생되는 동안 사용자가 PCM 데이터의 음높이를 변경할 수있게하려고합니다.C#의 PCM 데이터 피치 변경

누구든지이 작업을 수행하는 방법을 알고 있습니까?

답변

2

가장 간단한 해결 방법은 사운드를 재생하는 것입니다 : .NET에서 이동 피치 완전한 소스 샘플 것 같다 녹음 된 것보다 높은 샘플링 속도로 - 44 kHz에서 22 kHz 파일을 재생하면 피치가 두 배가됩니다. 사운드에서 일부 샘플을 버리거나 (나쁜 품질) 또는 사운드를 리샘플링하여 (Sinc 보간과 같은 좋은 알고리즘을 사용하면 좋은 품질) 동일한 결과를 얻을 수 있습니다.

하지만 의존성이 있습니다. 다른 샘플링 속도로 재생하여 피치를 변경하면 피치가 변경 될뿐만 아니라 사운드 길이도 변경됩니다. 지속 시간과 피치를 독립적으로 변경할 수는 있지만 좋은 품질을 얻기 위해서는 공정이 단순하고 공정이 많이 필요합니다. 일반적으로 Fast Fourier Transformations를 사용하여 주파수 영역에서 수행됩니다.