공부 정리 블로그

[음성신호처리12]-pitch 본문

대학원 수업/음성신호

[음성신호처리12]-pitch

따옹 2023. 5. 17. 20:36

Pitch

사람의 vocal tract 에서 purse train이 있고 vocal tract의 출력을 거쳐서 나오는 게 음성이다.

유성음의 경우, purse traind의 주파수를 pitch frequency라고 부름

source filter 모델에 있어서(생성 모델)

유성음

유성음인 경우, pulse train의 주파수를 pitch 라 부름

• Subjective definition(사람이 느낄 때는 listener에 의해서 더 복잡한 pure tone의 frequency를 pitch라 부름)

▫ Frequency of a pure tone that is matched by the listener to a more complex (usually periodic) signal

 

• Pitch detection = fundamental frequency estimation (기본적인 주파수를 추정하는 과정)

일반적으로 저주파에 해당하는 신호기 때문에

 

• Dudley’s slope filter를 통해 low path filter를 해서 저주파 신호를 dominant하게 만듦

만약, 두 개의 frequency 신호가 섞인 것이 입력으로 들어오면, dudely 신호를 거치면,

low는 gaindl 많이 안 떨어지는데, high는 많이 떨어져서 제일 마지막 그림과 같은 신호가 나오게 됨

 

Some Difficulties in Pitch Detection

unvoiced에서는 pitch를 보기 쉽지 않음

pitch detection 이 어려운 이유

(a) pitch의 range가 매우 넓어서 detection이 쉽지 않음

(b) pitch가 시간에 따라 특성이 크게 바뀔 수 있음 

(c) vocal tract 이 시간에 따라 변하기 때문에, 주파수는 비슷할지 몰라도 모양이 다르게 신호가 나올 수 있음

(d) 뒤에는 voiced, 앞은 unvoiced 에 따라서, unvoiced에서는 pitch detection 이 어려움

(e) 전화에서는 몇 백 신호만 transition 하기 때문에, 임계치 아래는 날라가므로, 음성의 pitch 신호가 날아가는 문제점

(f) acoustic이 섞여 있어서 pitch 정보를 구하기 쉽지 않음

low-pass filtering 으로 pitch를 찾아낼 수 있다 / pitch 는 크게 바뀌지 않음

 

 

Signal Processing to Improve Pitch Detection (2)

pitch는 purse train이므로 일종의

주파수 domain

impurse 에 purse shaping이 입혀져 있음

linear filter 형태(envelop 결정 신호) 에 입혀져서 음성이 나오게 됨

all-pole filter를 거쳐서 음성이 나오게 됨

입력 신호가 들어오면
엔벨롭이 있고 pitch 주파수에 따라 신호(굴곡이 있는)가 만들어짐

smooth -> group detector

모든 band에서 filter를 거쳐서 합하면 음성이 출력됨

 

Full wave raptication?

 

real+가상을 FWR
입력/출력(pitch정보를 detection)

출력에서 pitch 정보를 detect할 수 있따

 

Inverse filtering

▫ Hypothesis 

The speech is the convolution of an excitation and a vocal tract filter.

To get the glottal waveform(exitation) 을 얻어내려면

▪ The speech signal could be passed through a filter with a spectrum inverse to that of the vocal tract filter.

 

Comb filtering

음성을 나타낼 때, corrlation을 줌

입력신호에 계속적으로 delay를 줘서 corrlation를 측정하고

corr이 가장 큰 time delay를 찾고 그 time delay에 대한 간격을 pitch period라 함(역수는 pitch corr)

 

이 것을 좀 더 systemical하게 하기 위해 time delay를 주고 time delay 신호에 대해 corr해서 가장 비슷한 구간이 어디인지 찾아냄

linear filtering 관점에서는,

ptich와 매칭되는 부분의 출력이 최대 / pitch가 안 맞으면 출력이 작게나옴

comb filtering 은 여러 다른 주기성을 가지고 있는 신호를 가지고 처리할 수 있으므로,

주파수(pitch)가 잘 안 맞을 때, 출력이 약하게 나올 수 있음

 

그러므로, 출력이 크게 나오는 주파수 주기를 찾는 것

 

Cepstral analysis

▫ Deconvolution of the source and filter(source filter 모델을 가정)

입력 신호가 source*filter(x(t)입력 신호 = s(t)vocal cord * h(t) vocal tract에 대한 신호)를 가정

▫ The high-time portion of the cepstrum contains a very clear hint about the fundamental frequency

 

soruce filter model FTF / log scale 시킴

log |H(w)| = vocal track

cepstrum = filter + source(factcheck 필요)

 

 

pitch period (로그 앞 부분)

The Use of Parallelism for Pitch Detection

입력 음성 -> filtering -> 여러가지 pitch 추정 estimator를 만들고, 입력을 적절하기 filtering -> peak를 찾고 -> 여러가지 갖거나 다른 filter 를 사용 -> pitch period 계산을 종합 -> pitch 추정

step 3 pitch 추정

setp 4 종합

=> pitch 추정

구체적인 estimator는 간단한 걸 씀 정확하지 않더라도 종합해서 결과가 믿을만하게 나올 수 있게 하는 방식

 

Median Smoothing to Fix Errors

Physiological constraints on fundamental frequency variations

▫ Advantageous in correcting errors

 Sequence: 5, 6, 12, 7, 8 -> outlier: 12

위와 같은 결과치가 나옴, 해당 결과치 중에 12는 여기서 나타날 수 없는 것인데, double이 돼서 이런 값이 나온 것을 추정

이런 상황에서 튀는 값은 나올 수 없는 값이어서 outlier는 버리고, 

 New sequence: 5, 6, 7, 7, 8 -> median: 7 

이 공간에는 meidan value로 넣고, 최종 출력값 '7'을 만들어 냄

여러가지 출력을 만들어 내고, 출력을 가공해서 가장 robust한 pitch 주파수를 만들어 냄

 

 

pitch 추정의 정석은 없음 Heuristics

1. corr(단순)

2. cepstrum(복잡)

다양한 방법들 많음

 

입력으로 들어오는 신호의 주기성을 찾는 것 => pitch