답변:
예, 우리 중 일부는 피치에 영향을 미치지 않고 속도를 높이거나 늦출 수 있습니다. 일부 사람들은이 시간 스트레치 응용 프로그램을 호출합니다. 다른 방법으로 할 수 있습니다. 주파수 도메인 또는 시간 도메인에서 할 수 있습니다. 선택해야합니다. 당신에게 가장 적합한 것은 각각의 장점과 단점을 찾을 수 있습니다.
시간 영역 :
Time Domain에서는 다음과 같은 기술을 시도해 볼 수 있습니다.
장점 : 빠르며, 일부 알고리즘은 이해하기 쉽고 단 음성 사운드에서 좋은 품질입니다.
단점 : 일반적으로 올바른 위치에 스플 라이스하기 위해서는 아주 좋은 피치 트랙이 필요합니다. :-( 따라서 피치 트랙이 실패하거나 Poliphonic 사운드에서 작동하지 않으면이 알고리즘은 많은 결함 / 인공물을 줄 것입니다 출력 사운드에서.
주파수 영역 :
주파수 영역에서 알고있는 모든 시간 스트레치는 위상 보코더 기술을 기반으로 합니다.
장점 : 대음 또는 단음에서 작동합니다.
단점 : 모든 수학을 이해하는 것은 고통스럽고 구현은 약간 어렵습니다. 시간 도메인 코드와 같이 빠르지 않습니다. 음성에 대해서는 시간 도메인 결과를 선호하며 표준 단계 보코더의 결과를 향상시키는 몇 가지 트릭은 공유되지 않습니다.
나는 창과 홉 크기가 위상 보코더 품질의 열쇠 중 하나라고 말할 수 있습니다. 일반적으로 우리는 4x
재 합성을 위해 오버랩을 선택합니다. 크기의 한 창 크기 4096
는 귀에 충분합니다 (물론이 크기에 대한 처리 능력이있는 경우) 표준 위상 보코더는 일부 잔향 효과를 추가하여 위상을 잠글 필요가있는 이런 종류의 문제를 피할 수 있습니다.
데이터에 대해서는 Miller Puckette 및 Portnoff 용지를 참조하십시오.
44100 * 60 = 2646000
, 그래서 같은 처리를 실시간으로 시도 잊지 번 과정에 지점 이 ,
설명하는 도구 / 이론은 실제로 오디오 타임 스케일 수정이라고하는 음악 기술에 대한 광범위한 연구 분야입니다. 이 필드의 큰 구성 요소는 시간이 늘어난 후 주파수의 가청 변경을 방지 할 수있는 방법입니다. 이는 애플리케이션의 제약이나 목표에 따라 주파수 및 시간 도메인 방법으로 접근 할 수 있습니다. 오디오 타임 스케일 / 피치 수정에 대한 wikipedia 항목은 좋은 출발점입니다.
주파수 / 웨이블릿 기준을 사용하여 접근하려는 경우 창 크기와 기준 선택은 신호를 지역화 할 수있는 정도에 영향을줍니다. STFT를 예로 사용하면 고정 된 정현파에서는 긴 창이 잘 작동하지만 과도 전류는 파괴됩니다. 더 짧은 창은 주파수 영역 위치를 결정하는 데있어 바람직한 과도 응답을 제공합니다. 다른 웨이블릿베이스의 성능은 신호의 프로젝션 특성에 따라 달라집니다.
다음은 Stephan M. Bernsee의 C ++ (smbPitchShift.cpp)에서 간단하고 유용한 자습서 기능에 대한 링크입니다. 피치 기능을 변경하지 않고도 음악을 느리게하거나 빠르게 만들 수 있습니다.
그는 WOL (Wide Open License)에 따라이 코드를 발표했습니다. 내 응용 프로그램 내 에서 mp3 파일을 재생하고 동시에 해당 mp3 신호에서 피치 감지를 수행하는 동안 실시간으로 음악 속도를 늦추는 기능을 조정할 수있었습니다 .
또한 음악과 같은 오디오 신호의 시간 스트레칭 및 피치 시프 팅에 대한 자세한 설명이 포함 된 Bernsee 웹 사이트에 대한 링크도 포함했습니다.
time stretch
. Pitch Shift
이 경우 결합해야하는 시간 스케일 수정을 적용하려면 Pitch Shifit + Resample (interpolation)
Bernsee의 코드는 4096
1 옥타브 (위 또는 아래)의 피치 시프트를 수행 할 수있는 크기의 창을 사용하여 잘 작동합니다. 즉, 2.0x-0.5x 사이의 요소를 사용하여 좋은 품질로만 시간 스케일을 만들 수 있으며, 잘 구축 된 위상 보코더는 동일한 창 크기를 사용하여 더 나은 결과를 얻을 수 있으며,이를 추정 할 수 있습니다. 품질이 더 좋은 요소
8192
은 다운로드 페이지의 코드에서 창 크기 = 이므로 처리에 4 배 더 많은 포인트를 수행해야합니다 , 나는 반 창 크기로 8192/2=4096
당신은 위상 보코더의 비밀을 사용하여 동일한 작업을 수행 할 수 있다고 말합니다. 여기서 요점은 훨씬 적은 처리로 품질을 유지할 수 있다는 것입니다.