오디오 시간 늘리기 및 피치 스케일링

**시간 늘리기**()는 음높이에 영향을 주지 않으면서 오디오 신호의 속도 또는 지속 시간을 변경하는 과정이다. **피치 스케일링**()은 그 반대로, 속도에 영향을 주지 않으면서 음높이를 변경하는 과정이다. 피치 시프트는 이펙터에 구현되어 라이브 공연을 위한 피치 스케일링이다. 피치 컨트롤은 녹음 속도를 늦추거나 빠르게 하여 음높이와 속도에 동시에 영향을 미치는 더 간단한 과정이다.

이러한 과정은 미리 녹음된 두 클립을 다시 연주하거나 다시 샘플링할 수 없을 때 믹싱을 위해 음높이와 템포를 맞추는 데 자주 사용된다. 시간 늘리기는 종종 라디오 광고 및 텔레비전 광고의 오디오를 사용 가능한 30초 또는 60초에 정확히 맞추는 데 사용된다. 이는 1시간 방송과 같이 더 긴 자료를 지정된 시간 슬롯에 맞추는 데 사용될 수 있다.

## 리샘플링
오디오 녹음의 지속 시간이나 음높이를 변경하는 가장 간단한 방법은 재생 속도를 변경하는 것이다. 디지털 오디오 녹음의 경우, 이는 샘플 레이트 변환을 통해 달성할 수 있다. 이 방법을 사용할 때, 녹음의 주파수는 항상 속도와 동일한 비율로 스케일링되어, 그 과정에서 음높이를 위아래로 조옮김한다. 지속 시간을 늘리기 위해 녹음을 늦추면 음높이도 낮아지고, 더 짧은 지속 시간을 위해 녹음을 빠르게 하면 음높이가 각각 높아져 소위 칩멍크 효과를 만든다. 오디오를 현저히 낮은 음높이로 리샘플링할 때는 원본 오디오의 샘플 레이트가 더 높을수록 좋을 수 있는데, 재생 속도를 늦추면 더 낮은 해상도의 오디오 신호가 재생되어 소리의 인지된 선명도가 감소하기 때문이다. 오디오를 현저히 높은 음높이로 리샘플링할 때는 보간 필터를 통합하는 것이 좋을 수 있는데, 나이퀴스트 진동수(오디오 재생 소프트웨어 또는 장치의 샘플링 속도에 의해 결정됨)를 초과하는 주파수는 에일리어싱으로 인해 소리 왜곡을 생성하기 때문이다.

## 주파수 영역
### 위상 보코더

음높이에 영향을 주지 않고 신호의 길이를 늘리는 한 가지 방법은 플래너건(Flanagan), 골든(Golden), 포트노프(Portnoff)의 위상 보코더를 구축하는 것이다.

기본 단계:
# 짧고 겹치며 부드럽게 창화된 샘플 블록의 이산 푸리에 변환인 STFT를 사용하여 신호의 순간 주파수/진폭 관계를 계산한다.
# 푸리에 변환 크기와 위상에 일부 처리(예: FFT 블록 리샘플링)를 적용한다.
# 각 덩어리에 역 푸리에 변환을 수행하고 결과 파형 덩어리를 추가하여 역 STFT를 수행한다. 이를 오버랩 앤 애드(OLA)라고도 한다.

위상 보코더는 사인파 구성 요소를 잘 처리하지만, 초기 구현에서는 모든 비정수 압축/확장 비율에서 과도음("비트") 파형에 상당한 번짐을 유발하여 결과가 위상적이고 확산되게 만들었다. 최근의 개선 사항은 모든 압축/확장 비율에서 더 나은 품질의 결과를 허용하지만, 잔류 번짐 효과는 여전히 남아 있다.

위상 보코더 기술은 또한 피치 시프팅, 코러스, 음색 조작, 하모니, 기타 특이한 수정에도 사용될 수 있으며, 이 모든 것은 시간의 함수로 변경될 수 있다.

섬네일|300px|사인파 분석/합성 시스템( 기준)

### 사인파 스펙트럼 모델링

시간 늘리기를 위한 또 다른 방법은 신호의 스펙트럼 모델에 의존한다. 이 방법에서는 신호의 STFT를 사용하여 프레임에서 피크를 식별하고, 인접 프레임의 피크를 연결하여 사인파 "트랙"을 생성한다. 그런 다음 트랙은 새로운 시간 스케일로 다시 합성된다. 이 방법은 다성음악 및 타악기 자료 모두에서 좋은 결과를 산출할 수 있으며, 특히 신호가 서브밴드로 분리될 때 더욱 그렇다. 그러나 이 방법은 다른 방법보다 계산 요구량이 더 많다.

섬네일|200px|right|단성음을 원통 영역을 갖는 함수의 나선형을 따라 관찰하는 것으로 모델링하기

## 시간 영역
### SOLA

1978년 라비너와 셰이퍼(Schafer)는 시간 영역에서 작동하는 대안적인 해결책을 제시했다. 즉, 일부 음높이 감지 알고리즘(일반적으로 신호 자기상관의 피크 또는 때로는 켑스트럼 처리)을 사용하여 파형의 주어진 섹션의 주기(또는 동등하게 기본 주파수)를 찾고, 한 주기를 다른 주기로 크로스페이드하는 것이다.

이를 시간 영역 고조파 스케일링 또는 동기화된 오버랩-애드(SOLA) 방식이라고 하며, 느린 기계에서는 위상 보코더보다 다소 빠르게 작동하지만, 복잡한 하모닉(예: 관현악단 곡)을 가진 신호의 주기를 자기상관이 잘못 추정할 때 실패한다.

어도비 오디션(이전 Cool Edit Pro)은 사용자가 지정하는 중앙 주기(템포의 정수배이며 30 Hz에서 가장 낮은 베이스 주파수 사이)에 가장 가까운 주기를 찾아 이 문제를 해결하는 것으로 보인다.

이것은 위상 보코더 기반 처리보다 범위가 훨씬 제한적이지만, 실시간 애플리케이션을 위해 훨씬 적은 프로세서 집약적인 작업으로 만들 수 있다. 이는 음성 또는 음악적으로 단음적인 악기 녹음과 같은 단일 음높이 사운드에 가장 일관된 결과를 제공한다.

고급 상업용 오디오 처리 패키지는 두 가지 기술을 결합하거나(예를 들어 신호를 사인파 및 과도 파형으로 분리하여), 웨이블릿 변환 또는 인공 신경망 처리에 기반한 다른 기술을 사용하여 최고 품질의 시간 늘리기를 생성한다.

### 프레임 기반 접근 방식
섬네일|450px|많은 TSM 절차의 프레임 기반 접근 방식

오디오 신호의 음높이를 유지하면서 지속 시간을 늘리거나 압축하기 위해 많은 시간 스케일 수정(TSM) 절차는 프레임 기반 접근 방식을 따른다.
원본 이산 시간 오디오 신호가 주어지면, 이 전략의 첫 번째 단계는 신호를 고정 길이의 짧은 분석 프레임으로 분할하는 것이다. 분석 프레임은 분석 홉 크기 H_a\in\mathbb{N}라고 불리는 고정된 수의 샘플 간격으로 배치된다. 실제 시간 스케일 수정을 달성하기 위해 분석 프레임은 합성 홉 크기 H_s\in\mathbb{N}를 갖도록 시간적으로 재배치된다. 이 프레임 재배치는 스트레칭 계수 \alpha=H_s/H_a에 의해 신호의 지속 시간을 수정한다. 그러나 수정되지 않은 분석 프레임을 단순히 중첩하면 일반적으로 위상 불연속성 또는 진폭 변동과 같은 원치 않는 아티팩트가 발생한다. 이러한 종류의 아티팩트를 방지하기 위해 분석 프레임은 시간 스케일이 수정된 출력 신호를 재구성하기 전에 합성 프레임을 형성하도록 조정된다.

합성 프레임을 분석 프레임에서 도출하는 전략은 서로 다른 TSM 절차 간의 주요 차이점이다.

## 스피드 히어링 및 스피드 토킹
특히 음성의 경우, 시간 늘리기는 PSOLA를 사용하여 수행될 수 있다.

시간 압축 음성은 압축된 시간으로 언어 텍스트를 표현한 것이다. 속도를 높이면 이해력이 저하될 것이라고 예상할 수 있지만, 허브 프리드먼(Herb Friedman)은 "실험 결과 뇌는 귀를 통해 음성으로 전달되는 정보 속도가 '평균' 읽기 속도인 분당 약 200~300단어일 때 가장 효율적으로 작동하지만, 평균 음성 속도는 분당 100~150단어 정도이다"라고 말했다.

시간 압축 음성을 듣는 것은 속독과 동등하게 여겨진다.

## 피치 스케일링

이러한 기술은 속도나 지속 시간을 일정하게 유지하면서 오디오 샘플을 조옮김하는 데에도 사용될 수 있다. 이는 시간을 늘린 다음 원래 길이로 다시 샘플링하여 달성할 수 있다. 또는 사인파 모델에서 사인파의 주파수를 직접 변경하고 적절한 시간 스케일로 신호를 재구성할 수도 있다.

조옮김은 관점에 따라 진동수 스케일링 또는 피치 시프트라고 불릴 수 있다.

예를 들어, 모든 음의 음높이를 완전 5도 위로 이동시키면서 템포는 동일하게 유지할 수 있다. 이 조옮김을 "피치 시프팅"으로 볼 수 있는데, 피아노 건반에서 각 음을 7개의 건반 위로 "이동"시키거나, 멜 척도에서 고정된 양을 추가하거나, 선형 피치 공간에서 고정된 양을 추가하는 것이다. 동일한 조옮김을 "주파수 스케일링"으로 볼 수 있는데, 모든 음의 주파수를 3/2로 "스케일링"(곱하기)하는 것이다.

음악적 조옮김은 진폭 변조에 의해 수행되는 주파수 시프트와 달리 소리의 음색을 결정하는 고조파 주파수 비율을 보존한다. 진폭 변조는 모든 음의 주파수에 고정된 주파수 오프셋을 추가한다. (이론적으로는 음악적 피치 공간 위치가 스케일링되는 문자 그대로의 피치 스케일링을 수행할 수도 있지만 [더 높은 음은 더 낮은 음보다 선형 피치 공간에서 더 큰 간격으로 시프트된다], 이는 매우 드물고 음악적이지 않다.)

여기서는 시간 영역 처리가 훨씬 더 잘 작동하는데, 번짐 현상이 덜 눈에 띄기 때문이다. 그러나 보컬 샘플을 스케일링하면 포먼트가 앨빈과 슈퍼밴드와 같은 효과로 왜곡되는데, 이는 바람직할 수도 있고 바람직하지 않을 수도 있다. 음성의 포먼트와 특성을 보존하는 과정은 채널 보코더 또는 LPC 보코더와 여러 음높이 감지 알고리즘 중 하나로 신호를 분석한 다음 다른 기본 주파수로 재합성하는 것을 포함한다.

피치 시프팅을 위한 오래된 아날로그 녹음 기술에 대한 자세한 설명은 에서 찾을 수 있다.

## DJing
시간 늘리기 및 피치 스케일링은 DJ들이 비트매칭 외에도 세트를 연주하고 만들 때 광범위하게 사용된다. 두 트랙을 원활하게 혼합하기 위해 한 트랙의 템포를 다른 트랙과 일치시켜 비트가 정렬되도록 조정할 수 있다. 피치 스케일링은 트랙의 음높이를 유지하기 위해 일반적으로 사용된다. 피치 스케일링은 DJ들이 하모닉 믹싱을 위해 트랙을 호환 가능한 키로 변환하여 함께 믹스했을 때 듣기 좋게 들리도록 하는 데에도 사용된다. 시간 늘리기 및 피치 스케일링은 최신 DJ 하드웨어(CDJ 및 DJ 컨트롤러) 및 소프트웨어(VirtualDJ, Mixxx, Serato 및 Rekordbox 등)에 포함되어 있다.

## 음악 제작
시간 늘리기 및 피치 스케일링은 디지털 오디오 워크스테이션 소프트웨어에서 음악 루프, 즉 반복 및 조옮김하여 노래를 형성할 수 있는 사운드 클립으로 작업하는 데 사용된다. 여러 루프의 음높이와 템포가 정렬되어 트랙을 생성한다. 주목할 만한 소프트웨어로는 "Acidized" 루프 기능을 가진 Acid Pro와 FL 스튜디오가 있다.

## 소비자 소프트웨어에서
음높이 보정 오디오 시간 늘리기는 모든 최신 웹 브라우저에 미디어 재생을 위한 HTML 표준의 일부로 포함되어 있다. 유사한 제어 기능은 GStreamer 및 Unity와 같은 미디어 애플리케이션 및 프레임워크에서 널리 사용된다.

## 같이 보기
* 비트매칭
* 다이내믹 토널리티 — 다이내믹 튜닝 및 다이내믹 팀버의 실시간 변경
* 피치 보정
* 스크러빙 (오디오)
* 나이트코어

## 각주


## 외부 링크
* Time Stretching and Pitch Shifting Overview A comprehensive overview of current time and pitch modification techniques by Stephan Bernsee
* Stephan Bernsee's smbPitchShift C source code C source code for doing frequency domain pitch manipulation
* pitchshift.js from KievII A JavaScript pitchshifter based on smbPitchShift code, from the open source KievII library
* The Phase Vocoder: A Tutorial - A good description of the phase vocoder
* New Phase-Vocoder Techniques for Pitch-Shifting, Harmonizing and Other Exotic Effects
* A new Approach to Transient Processing in the Phase Vocoder
* PICOLA and TDHS
* How to build a pitch shifter Theory, equations, figures and performances of a real-time guitar pitch shifter running on a DSP chip
* ZTX Time Stretching Library Free and commercial versions of a popular 3rd party time stretching library for iOS, Linux, Windows and Mac OS X
* Elastique by zplane commercial cross-platform library, mainly used by DJ and DAW manufacturers
* Voice Synth from Qneo - specialized synthesizer for creative voice sculpting
* TSM toolbox Free MATLAB implementations of various Time-Scale Modification procedures
*, a well-known algorithm for extreme (>10&times;) time stretching
* Bungee open source and commercial libraries for real time audio stretching
* Rubber Band — open source library for time stretching and pitch shifting
* SoundTouch — open-source library for changing the tempo, pitch and playback rate

분류:디지털 신호 처리