2010-05-05 5 views
4

피치는 "인식 된 주파수"를 의미합니다. 좋은. 그러나 OpenAL에서 피치를 매우 낮게 설정하면 소리가 훨씬 오래 재생됩니다. 내가 그것을 아주 높게 만들면, 소리는 매우 짧지 만 높은 빈도로 재생됩니다. 나를 위해, 논리적으로 느리거나 더 빨리 만드는 결과.오디오 프로그래밍 컨텍스트에서 피치와 속도가 동일한 것입니까?

또는 pitch! = speed입니까?

+0

API가 일정주기 또는 일정 시간 재생됩니까? –

+0

모릅니다. 그들은 문서에서 언급하지 않습니다. 그들은 심지어 어떤 값이 피치에 대해 수용 가능한지 언급하지 않습니다.) – dontWatchMyProfile

답변

3

폴 R은 꽤 좋은 답변을 가지고 있지만 조금 더 확장하고 싶습니다. 사운드를 일련의 펄스 (그리고 그 종류)라고 생각하면, 높은 피치는 초당 더 많은 펄스 (높은 주파수)를 가지며 낮은 피치는 적은 (낮은 주파수)을 갖습니다. 기존 사운드의 피치를 낮추려면 해당 사운드를 다른 사운드와 멀리 떨어 뜨려야합니다. 결과적으로, 펄스 수가 줄어들지 않아 사운드의 지속 시간이 길어지고, 방금 펄스 간격을 더 좁혔습니다 (초당 발생 횟수가 적음). 피치를 높이려고하면 반대가 발생합니다. 펄스가 더 가까워 지므로 사운드의 지속 시간이 짧아집니다.

기록 된 피치의 변화에 ​​관계없이 지속 시간을 일정하게 유지하려면 정보를 멀리 (낮은 피치) 또는 제조 정보 (높은 피치)로 던져야합니다. 여기서 멋진 처리가 이루어집니다. 안전하게 버릴 수있는 것은 무엇입니까? 무엇이 안전하게 복제되거나 구성 될 수 있습니까?

+0

그래서 샘플을 삽입해야합니까? – dontWatchMyProfile

+1

* "정보를 멀리 던져야 (낮은 피치) 또는 제조 정보 (높은 피치)"* - erm, 다른 방법으로 사용하지 않아도됩니까? –

+0

@ mystify : 예, 지속 시간을 일정하게 유지하면서 피치를 올리려는 경우 나는 당신이 실제로 고품질 출력을 원한다면 이것이 심각하지 않다는 것을 짐작하고있다. – jadero

1

pitchrate을 함께 변경하는 것은 상대적으로 쉽습니다. 샘플 재생 속도를 변경하기 만하면되기 때문입니다. 샘플을 원하는 속도의 절반으로 재생하면 피치가 반으로 줄어들고 사운드가 절반 속도로 나옵니다 (잘못된 속도로 작동하는 테이프 데크에 대해 생각하십시오). 반대로 샘플을 의도 한 것보다 빨리 재생하면 피치가 증가하고 모든 것이 더 빨라집니다.

독립적 pitchrate 다를 수 있지만, 통상적으로 분석의 일종을 이용하여 재 합성 알고리즘 (연설 예컨대 PSOLA)이 할 수있는 많은 프로세싱 걸린다.

+0

은 소스의 일부 AL 속성입니다. – dontWatchMyProfile

+0

아니요 - 샘플링 된 오디오를 재생할 때 속도와 음높이의 기본 개념과 이들이 어떻게 관련되어 있는지 설명하려고했습니다. –

0

OpenAL에서 설명하는 알고리즘을 사용하면 피치 = f (속도), 속도 = f '(피치)입니다.

다른 알고리즘을 사용하여 이러한 매개 변수를 다소 독립적으로 변경할 수 있습니다. 이것을하기위한 다양한 알고리즘이 있습니다.

문제의 알고리즘은 주파수 도메인 (보코더, 주파수 도메인 컨볼 루션) 또는 시간 도메인 (PSOLA, WSOLA, 확장 WSOLA) 또는 둘 다 동시에 존재할 수 있습니다 (시간 도메인 방법을 사용하는 하이브리드 모델 트랜지언트 섹션 및 톤 섹션의 보코더 메서드).