KR100516678B1 - 음성 코덱의 음성신호의 피치검출 장치 및 방법 - Google Patents

음성 코덱의 음성신호의 피치검출 장치 및 방법 Download PDF

Info

Publication number
KR100516678B1
KR100516678B1 KR10-2003-0045550A KR20030045550A KR100516678B1 KR 100516678 B1 KR100516678 B1 KR 100516678B1 KR 20030045550 A KR20030045550 A KR 20030045550A KR 100516678 B1 KR100516678 B1 KR 100516678B1
Authority
KR
South Korea
Prior art keywords
pitch
autocorrelation function
value
open loop
signal
Prior art date
Application number
KR10-2003-0045550A
Other languages
English (en)
Other versions
KR20050005605A (ko
Inventor
서정욱
김환
이양현
배건성
김시호
이승원
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR10-2003-0045550A priority Critical patent/KR100516678B1/ko
Priority to US10/883,968 priority patent/US20050021325A1/en
Publication of KR20050005605A publication Critical patent/KR20050005605A/ko
Application granted granted Critical
Publication of KR100516678B1 publication Critical patent/KR100516678B1/ko

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/90Pitch determination of speech signals
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders

Abstract

음성부호화기에서 입력되는 음성신호의 피치를 검출하는 장치가, 입력되는 음성신호를 역필터링 및 대역확장하여 대역확장된 잔차신호를 발생하는 대역확장부와, 입력되는 음성신호를 소정 주파수 대역으로 저역여파하는 저역여파기와, 대역확장된 잔차신호의 시간 및 주파수의 자기상관함수들을 각각 계산한 후 혼합하고, 혼합된 자기상관함수에서 구한 피치를 더블피치 검색하여 가장 큰 값을 가지는 자기상관함수를 개루프 피치로 검출하며, 검출된 개루프피치가 소정의 기준값 보다 작으면 저역여파된 음성신호의 시간 자기상관함수를 계산한 후 더블피치 검색하여 개루프피치를 검출하는 피치분석부와, 검출된 개루프 피치가 이전 프레임의 설정 범위를 벗어나면 개루프피치를 평균피치 값으로 보정하는 피치보정부와, 조정된 개루프피치를 설정된 레벨로 양자화하여 출력하는 피치양자화부로 구성된다.

Description

음성 코덱의 음성신호의 피치검출 장치 및 방법{DEVICE AND METHOD FOR DETECTING PITCH OF VOICE SIGNAL IN VOICE CODEC}
본 발명은 음성코덱 장치 및 방법에 관한 것으로, 특히 음성 코덱 장치에서 사용하는 파라미터들 중에서 피치를 분석하여 양자화할 수 있는 장치 및 방법에 관한 것이다.
일반적으로 음성부호화 방식은 부호화하는 방법에 따라 크게 세가지로 나눌 수 있다. 첫 번째 방법은 음성신호의 파형을 직접 양자화하여 부호화하는 파형부호화(waveform coding)방법이다. 두 번째 방법은 음성신호를 디지털 시스템으로 모델링하여 얻어지는 선형예측계수, 피치, 이득, 유/무성음 정보 등과 같은 파라미터를 부호화하는 보코딩(vocoding)이라는 불리는 파라미터 부호화(parameter coding) 방법이다. 세 번째의 방법은 위 두 가지 방법의 장점을 적절하게 혼합하여 사용하는 혼합부호화(hybrid coding) 방법이 있다.
상기 파형부호화 방법은 원음과 가까운 매우 양호한 음질을 얻을 수 있으나, 전송속도가 주로 32kbps 이상으로 비교적 높으며, PCM(Pulse Coded Modulation) 및 ADPCM(Adaptive Differential PCM) 등과 같은 PCM의 변형된 형태가 대표적이다. 상기 보코딩 방법은 일반적으로 3kbps 이하로 전송속도를 낮출 수 있는 장점이 있으나, 음질이 자연스럽지 못한 단점을 가진다. 보코딩 방법을 사용하는 대표적인 음성부호화기로는 미국방성 표준인 LPC-10e 보코더와 이의 개선된 형태인 MELP(Mixed Excitation Linear Prediction) 보코더가 있다. 혼합 부호화 방식은 위 두가지 방법의 장점을 취해서 일반적으로 4.8kbsp - 16kbps의 전송속도에서 양호한 음질을 얻을 수 있다. 대표적인 방법으로는 CELP(Code Excited Linear Prediction) 계열의 음성부호화기가 있으며, 전세계에서 다양한 형태로 변형, 발전되어 통신서비스의 표준안으로 사용되고 있다.
그러나 상기와 같은 방법을 사용하는 음성 코덱들에서는 4kbps 이하의 저속 비트율에서는 코드북을 표현하기 위한 비트할당이 부족해서 급격한 음질 저하를 보이게 되며, 이로인해 저속음성부호화기의 구현에 한계를 가지게 된다. CPU의 성능 및 메모리 크기의 제약을 가지는 장치, 예를들면 휴대용 무선통신장치(핸드폰, PDA 등)는 중저속 음성부호화기를 사용하는 것이 유리하다. 상기와 같은 중저속 음성부호화 방법을 구현하려면 양호한 합성음의 음질 보장 및 연산량을 고려해서 음성신호의 특징 파라미터 추출과 효율적인 비트할당 방법이 선행되어야 한다. 상기와 같은 음성 부호화 방법들 중에서 음성신호의 특징을 나타내는 주요한 파라미터로서는 대역통과 유성음 강도, 선형 예측계수, 피치, 이득, 선형예측잔차신호들이 될 수 있다.
따라서 본 발명의 목적은 음성코덱에서 음성신호의 피치를 검출할 수 있는 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 음성코덱에서 입력되는 음성신호를 대역확장한 후, 상기 대역확장된 신호로부터 피치를 검출할 수 있는 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 음성코덱에서 입력되는 음성신호의 시간 및 주파수영역에서 각각 자기상관함수를 구하며, 상기 구해진 자기상관함수들을 이용하여 피치를 검출할 수 있는 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 음성 코덱에서 검출된 피치를 중심으로 합성의 스펙트럼과 원음성의 스펙트럼의 오차를 최소화시킨 피치를 검출할 수 있는 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 입력되는 음성신호를 대역확장하고, 대역확장된 음성신호의 시간 및 주파수영역에서 각각 자기상관함수를 구하며, 상기 구해진 자기상관함수들을 이용하여 피치를 검출하며, 상기 검출된 피치를 중심으로 합성의 스펙트럼과 원음성의 스펙트럼의 오차를 최소화시킨 피치를 검출할 수 있는 장치 및 방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른음성부호화기의 피치 검출 장치는, 입력되는 음성신호를 역필터링 및 대역확장하여 대역확장된 잔차신호를 발생하는 대역확장부와, 상기 대역확장된 잔차신호의 시간 및 주파수의 자기상관함수들을 각각 계산한 후 혼합하며, 상기 혼합된 자기상관함수에서 구한 피치를 정수배로 나누어 가면서 구한 자기상관함수값을 피치에서의 자기상관함수값과 비교하여 가장 큰 값을 가지는 지점(또는 위치)을[자기상관함수를] 개루프 피치로 검출하는 피치분석부와, 상기 검출된 개루프 피치가 이전 프레임의 설정 범위를 벗어나면 상기 개루프피치를 평균피치 값으로 보정하는 피치보정부와, 상기 조정된 개루프피치를 설정된 레벨로 양자화하여 출력하는 피치양자화부로 구성된 것을 특징으로 한다.
또한 상기 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 음성부호화기의 피치 검출 장치는, 입력되는 음성신호를 역필터링 및 대역확장하여 대역확장된 잔차신호를 발생하는 대역확장부와, 상기 입력되는 음성신호를 소정 주파수 대역으로 저역여파하는 저역여파기와, 상기 대역확장된 잔차신호의 시간 및 주파수의 자기상관함수들을 각각 계산한 후 혼합하고, 상기 혼합된 자기상관함수에서 구한 피치를 더블피치 검색하여 가장 큰 값을 가지는 지점(또는 위치)을[자기상관함수를] 개루프 피치로 검출하며, 상기 검출된 개루프피치에서의 자기상관함수 값이[가] 소정의 기준값 보다 작으면 상기 저역여파된 음성신호의 시간 자기상관함수를 계산한 후 상기 더블피치 검색하여 개루프피치를 검출하는 피치분석부와, 상기 검출된 개루프 피치가 이전 프레임의 설정 범위를 벗어나면 상기 개루프피치를 평균피치 값으로 보정하는 피치보정부와, 상기 조정된 개루프피치를 설정된 레벨로 양자화하여 출력하는 피치양자화부로 구성된 것을 특징으로 한다.
그리고 상기 목적을 달성하기 위한 본 발명의 실시예에 따른 음성부호화기에서 입력되는 음성신호로부터 피치를 검출하는 방법은, 입력되는 음성신호를 역필터링 및 대역확장하여 대역확장된 잔차신호를 발생하는 과정과, 상기 대역확장된 잔차신호의 시간 및 주파수의 자기상관함수들을 각각 계산한 후 혼합하며, 상기 혼합된 자기상관함수에서 구한 피치를 정수배로 나누어 가면서 구한 자기상관함수값을 피치에서의 자기상관함수값과 비교하여 가장 큰 값을 가지는 지점(또는 위치)을[자기상관함수를] 개루프 피치로 검출하는 과정과, 상기 검출된 개루프 피치가 이전 프레임의 설정 범위를 벗어나면 상기 개루프피치를 평균피치 값으로 보정하는 과정과, 상기 조정된 개루프피치를 설정된 레벨로 양자화하여 출력하는 과정으로 이루어짐을 특징으로 한다.
또한 상기 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 음성부호화기에서 음성신호의 피치를 검출하는 방법은, 입력되는 음성신호를 역필터링 및 대역확장하여 대역확장된 잔차신호를 발생하는 과정과, 상기 입력되는 음성신호를 소정 주파수 대역으로 저역여파하는 과정과, 상기 대역확장된 잔차신호의 시간 및 주파수의 자기상관함수들을 각각 계산한 후 혼합하고, 상기 혼합된 자기상관함수에서 구한 피치를 더블피치 검색하여 가장 큰 값을 가지는 지점(또는 위치)을[자기상관함수를] 개루프 피치로 검출하며, 상기 검출된 개루프피치에서의 자기상관함수 값이[가] 소정의 기준값 보다 작으면 상기 저역여파된 음성신호의 시간 자기상관함수를 계산한 후 상기 더블피치 검색하여 개루프피치를 검출하는 과정과, 상기 검출된 개루프 피치가 이전 프레임의 설정 범위를 벗어나면 상기 개루프피치를 평균피치 값으로 보정하는 과정과, 상기 조정된 개루프피치를 설정된 레벨로 양자화하여 출력하는 과정으로 이루어짐을 특징으로 한다.
이하 본 발명의 바람직한 실시예들의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 동일한 구성들은 가능한 한 어느 곳에서든지 동일한 부호들을 나타내고 있음을 유의하여야 한다.
현재 일반적으로 사용되는 음성부호화 방법은 CELP(Code Excited Linear Prediction) 부호화 방법, HSX(Harmonic Stochastic eXcitation) 부호화 방법, 그리고 MELP(Mixed Excitation Linear Prediction) 부호화 방법들이다. 이들 부호화 방법들 중에서 유/무성음 성분을 혼합한 MELP 방식에 기반한 혼합여기신호(mixed excitation)와 선형예측 합성 필터를 이용하는 음성 합성 모델을 이용하여 음성 코덱을 중저속 음성 부호화 알고리즘을 구현할 수 있다. 이런 합성 모델을 이용할 때 필요한 음성신호의 특징을 나타내는 주요 파라미터는 대역통과 유성음 강도, 선형예측계수, 피치, 이득 및 선형예측잔차신호들이 될 수 있다. 상기한 바와 같은 5가지의 주요한 특징을 기반으로 MELP 음성 부호화기의 음성 분석 및 양자화 과정은 하기 도 1과 같은 구성을 가진다.
상기 도 1을 참조하면, DC제거부10은 입력되는 신호를 고역여파하여 부호화하고자 하는 신호의 DC성분을 제거한다.
대역별 음성신호판정부20은 상기 DC 성분이 제거된 신호를 적어도 2개의 대역으로 대역여파하여 대역별로 유성음의 강도를 분석한 파라미터 bpvc신호를 발생한다.
선형예측부(Linear Predict Ananysis and Quantization part)30은 매 프레임 마다 윈도우를 취해서 얻어지는 음성신호의 자기상관함수 값으로부터 Levinson 알고리즘으로 선형예측계수(Linear Predict Coefficient: LPC)를 추출하며, 상기 추출된 선형예측계수는 양자화와 보간 특성이 우수한 LSF(Line Spectral Frequency)로 변환되어 양자화되며, 상기 양자화된 LSF는 합성필터의 임펄스 응답 특성을 구하기 위해 다시 선형예측계수로 변환된다.
피치검출부(Pitch Analysis and Quantization part)40은 입력신호를 대역확장(bandwidth expansion)하며, 시간영역과 주파수 영역에서 각각 구해진 자기상관함수를 이용하여 상기 대역확장된 신호의 개루프 피치(open loop pitch)를 검사한다. 그리고 상기와 같이 구해진 개루프 피치를 중심으로 합성음의 스펙트럼과 원음성의 스펙트럼의 오차를 최소화시키는 피치를 검색하는 정밀 피치 검색(fine pitch search)를 수행한 후, 이를 양자화한다.
선형예측잔차신호검출부(LPC Residual Signal Analysis and Quantization part)50에서 상기 LPC 잔차신호의 크기 스펙트럼(magnitude spectrum)은 여기신호를 구성할 때, 보다 원신호에 가까운 특성을 가지도록 다수(여기서는 20개로 가정함)의 하모닉스 성분을 찾아서 다음과 같이 양자화한다. 먼저 양자화된 LSF 벡터로부터 양자화된 선형예측계수를 구한다. 두 번째로 양자화된 예측계수를 사용하여 LPC 잔차신호를 생성한다. 세 번째로 상기 생성된 LPC 잔차신호에 상기 LPC 분석에서 사용된 윈도우를 취하고, 제로 패딩(zero padding)을 한 후 퓨리에 변환(여기서는 512 point Fast Fourier Transform을 사용할 수 있다)을 한다. 네 번째로 상기 퓨리에 변환 크기(FFT magnitude)에서 하모닉 성분을 스펙트랄 피크-피킹 알고리즘(spectral peak-picking algorithm)으로 탐색한다. 그리고 상기 하모닉 성분들을 탐색한 후, RMS 값을 이용하여 정규화시키고, 다수개의 코드벡터(여기서는 256개)를 가진 코드북을 사용하여 양자화한다.
이득검출부(gain analysis and Quantization part)는 상기 입력신호의 이득을 구한 후 이를 양자화한다.
따라서 상기 도 1에 도시된 바와 같은 구조를 가지는 음성코덱은 먼저 입력되는 음성신호를 고역여파하여 음성신호에 포함된 DC성분을 제거한다. 이후 상기 DC 성분이 제거된 음성신호를 이용하여 부호화를 위한 파라미터들을 생성한다. 이때 상기 파라미터들은 상기한 바와 같이 각 대역별 유성음의 강도(bpvc), 선형 예측계수의 주파수(LSF), 피치(pitch), 선형예측잔차신호(Residual Mag.), 이득(gain)들이 되며, 이들 각 파라미터들은 각각 양자화되어 파라미터 멀티플렉서70에 인가되어 다중화된다. 그리고 상기 다중화되는 파라미터들은 도시하지 않은 부호화기에서 부호화된다.
상기 도 1에서 피치검출부40은 크게 하기와 같은 3가지의 단계를 수행하면서 입력되는 음성신호의 피치를 검출한다. 먼저 피치검출부40은 상기 DC제거부10에서 출력되는 음성신호의 대역을 확장한다. 그리고 두 번째로 상기 대역확장된 음성신호의 시간 영역과 주파수 영역에서 각각 자기상관함수를 구한 후, 구해진 자기상관함수들을 이용하여 개루프 피치를 검색한다. 이후 상기와 같이 구해진 개루프 피치를 중심으로 합성의 스펙트럼과 원음성의 스펙트럼의 오차를 최소화시키는 피치를 검색하는 미세 피치 검색 절차를 수행한다. 그리고 네번째로 상기와 같이 검출된 피치를 양자화하여 멀티플렉서70에 인가한다.
도 2는 도 1의 피치검출부40의 구성을 도시하고 있다.
상기 도 1을 참조하면, 대역확장부210은 입력되는 음성신호의 왜곡을 보상하기 위하여 대역을 확장한다. 그리고 피치분석부230은 상기 대역확장(bandwidth expansion)된 잔차 신호(residual signal)와 저역여파기220에서 출력되는 1kHz 저역통과 필터링된 신호를 입력하며, 상기 입력되는 두 신호를 이용하여 개루프 피치(open loop pitch)를 분석한다. 피치보정부240은 상기 피치분석부230에서 출력되는 개루프 피치 검출신호에서 급격한 피치 변화를 방지하기 위해 피치 조정(pitch smoothing) 동작을 수행한다. 그리고 미세피치조정부250은 마지막으로 상기 개루프 피치 검출 과정에서 생기는 오차를 정정하기 위해 미세 피치 조정(fine pitch search) 동작을 수행한다. 그리고 피치갱신부260은 상기 미세피치조정부250에서 출력되는 최종 검출된 피치를 이용하여 상기 피치분석부230 및 미세피치조정부250에서 사용될 평균 피치(average pitch)를 갱신한다. 또한 상기 미세피치조정부250에서 출력되는 피치신호는 피치양자화부270에서 양자화된 후 멀티플렉서70에 인가된다.
상기 도 2와 같은 구성을 가지는 피치검출부40의 동작을 구체적으로 살펴본다.
먼저 대역확장부(inverse filtering & bandwidth expansion part)210의 동작을 살펴본다.
상기 피치분석부230에서 사용되는 신호들은 상기 입력신호의 대역확장된 잔차 신호 및 1kHz 저역통과된 신호이다. 일반적으로 개루프 피치 검출에서 자기상관함수의 입력신호는 잔차신호(residual signal)를 사용한다. 이때 상기 잔차 신호를 구하기 위한 역필터링(inverse filtering) 과정에서 포만트(formant) 주파수가 피치 하모닉(harmonic)에 존재할 경우에는 도 3a와 같이 해당 하모닉 성분이 왜곡되는 현상이 발생한다. 그러나 상기 입력신호를 역필터링하는 과정에서 입력신호를 대역확장하면 도 3b와 같이 역필터링하는 과정에서 발생될 수 있는 상기 하모닉 성분의 왜곡 현상을 해결할 수 있다.
하기의 <수학식 1>은 대역확장된 잔차신호를 구하기 위한 수학식이다.
상기 <수학식 1>에서 gamma 는 가중치 요소(weight factor)로써, gamma 값이 1에 가까울수록 필터링된 신호는 원신호에 가깝고 0에 가까울수록 잔차신호에 가깝다. 따라서 상기 <수학식 1>과 같이 처리된 신호는 원신호와 잔차신호의 중간형태를 취하고 있음을 알 수 있다. 여기서 상기 gamma =0.8을 사용할 수 있다.
본 발명의 실시예에서 상기 대역확장부210은 상기 <수학식 1>에 나타낸 바와 같이 입력되는 신호를 역필터링할 때 대역확장을 같이 수행한다. 상기 대역확장부210에서 수행하는 역필터링 과정은 원신호에서 잔차신호를 만드는 과정이다. 즉, 상기 역필터링 동작은 원신호의 스펙트럼을 평탄하게 만드는 과정으로 도 3a에 도시된 바와 같이 원신호를 1/A(z)로 나누어(또는 A(z)로 곱하여) 잔차신호를 얻을 수 있다. 그러나 도 3a에 도시된 바와 같이 상기 역필터링 과정에서 필터의 특성이 포만트 주파수에서 뾰족하게 나타나며, 이때 첫 번째 하모닉 주파수가 포만트 주파수에 겹쳐있을 경우에는 잔차신호의 첫 번째 하모닉 성분이 찌그러지게 된다. 여기서 첫 번째 하모닉 성분이 찌그러졌다는 것은 시간축에서 보면 피치에 해당하는 주기 성분이 사라졌음을 의미한다. 그리고 상기 도 3a에 도시된 바와 같이 하모닉 성분이 찌그러진 잔차신호를 이용하여 상관계수를 구할 경우 피치 근처에서 상관계수 값이 작게 검색된다. 이를 방지하기 위하여, 본 발명의 실시예에서는 대역확장부210에서 역필터링(inverse filtering) 동작을 수행할 때, 상기 원신호에 A(z/ gamma )을 첨가(즉, bandwidth expansion)하므로써 도 3b에 도시된 바와 같이 뾰족한 부분을 제거하며, 이로인해 상기 잔차신호의 하모닉 성분이 유지된다.
두 번째로 상기 피치분석부230의 동작을 살펴본다. 상기 피치분석부230에서 개루프 피치 검출(open loop pitch analysis) 과정을 수행하는 절차는 도 4와 같은 순서로 진행된다.
상기 도 4는 크게 두가지 방법으로 개루프 피치를 구하는 예를 도시하고 있다. 그 한 가지 방법은 피치 검출시 대역확장된 잔차신호를 이용하여 개루프 피치를 검출하는 방법이며, 다른 한가지 방법은 상기 대역확장된 잔차신호 및 소정주파수 이하의 저역여파된 신호를 이용하여 개루프피치를 검출하는 방법이다.
상기 전자의 방법의 경우에는 상기 도 4에서 422단계-434단계를 수행하지 않는다. 즉, 대역확장된 잔차신호로부터 시간 및 주파수 자기상관함수를 구한 후 이를 혼합하여 더블피치 검색을 하면서 개루프 피치를 검출한다.
이런 경우 상기 피치분석부가 상기 개루프피치를 검출하는 방법은 상기 대역확장된 잔차신호를 입력하여 시간 자기상관함수 및 주파수 자기상관함수를 각각 계산하는 과정과, 상기 계산된 주파수 자기상관함수의 피크대밸리의 차이 값을 미리 설정된 값과 비교하여 보정 값를 결정하는 과정과, 상기 보정값에 의해 상기 시간 및 주파수 자기상관함수들을 혼합하는 과정과, 상기 혼합된 자기상관함수에서 최대 피크를 갖는 지점을 개루프 피치로 검출하는 과정과, 상기 검출된 개루프피치를 정수배로 나누어 가면서 구한 자기상관함수값을 피치에서의 자기상관함수값과 비교하여 가장 큰 값을 가지는지점(또는 위치)을[자기상관함수를] 개루프 피치로 검출하는 더블피치검출과정으로 이루어진다.
그리고 상기와 같은 과정을 수행하는 피치분석부는 상기 상기 대역확장된 잔차신호를 입력하여 시간 자기상관함수를 계산하는 시간 자기상관함수계산기와, 상기 대역확장된 잔차신호를 입력하여 주파수 자기상관함수를 계산하는 주파수자기상관함수계산기와, 상기 주파수 자기상관함수의 피크대밸리의 차이 값을 미리 설정된 값과 비교하여 보정 값를 결정하는 보정값 계산기와, 상기 보정값에 의해 상기 시간 및 주파수 자기상관함수들을 혼합하는 혼합기와, 상기 혼합된 자기상관함수에서 최대 피크를 갖는 지점을 개루프 피치로 검출하는 개루프피치검출기와, 상기 검출된 개루프피치를 정수배로 나누어 가면서 구한 자기상관함수값을 피치에서의 자기상관함수값과 비교하여 가장 큰 값을 가지는 지점(또는 위치)을[자기상관함수를] 개루프 피치로 검출하는 더블피치검출기로 구성하여 구현할 수도 있다.
그리고 상기 후자의 방법의 경우에는 상기 도 4에서 422단계-434단계를 수행하여야 한다. 즉, 대역확장된 잔차신호로부터 시간 및 주파수 자기상관함수를 계산하여 혼합하고, 이 혼합된 자기상관함수로부터 개루프피치를 검출한 후, 상기 개루프피치 값이 설정된 값보다 크면 이를 더블피치 검색을 하면서 개루프 피치를 검출한다. 그리고 상기 개루프피치값이 설정된 값보다 작으면 상기 저역여파된 음성신호를 이용하여 개루프피치를 구한다.
이런 경우 상기 피치분석부가 상기 개루프피치를 검출하는 방법은 상기 대역확장된 잔차신호를 입력하여 시간 자기상관함수 및 주파수 자기상관함수를 계산하는 과정과, 상기 주파수 자기상관함수의 피크대밸리의 차이 값을 미리 설정된 값과 비교하여 보정 값를 결정하는 과정과, 상기 보정값에 의해 상기 시간 및 주파수 자기상관함수들을 혼합하는 과정과, 상기 혼합된 자기상관함수에서 최대 피크를 갖는 지점을 제1개루프 피치로 검출하는 과정과, 상기 검출된 제1개루프피치값을 미리 설정된 제1기준값 비교하는 제1비교과정과, 상기 제1비교과정에서 상기 제1개루프피치값이 더 크면 상기 검출된 제1개루프피치를 정수배로 나누어 가면서 구한 자기상관함수값을 피치에서의 자기상관함수값과 비교하여 가장 큰 값을 가지는 지점(또는 위치)을[자기상관함수를] 개루프 피치로 검출하는 과정과, 상기 제1비교과정에서 상기 제1개루프피치값이 작으면 상기 저역여파된 음성신호를 입력하여 제2시간자기상관함수를 발생하는 과정과, 상기 제2시간자기상관함수에서 최대 피크를 갖는 지점을 제2개루프피치로 검출하는 과정과, 상기 검출된 제2개루프피치값을 미리 설정된 제2기준값 비교하는 제2비교과정과, 상기 제2비교과정에서 상기 제2개루프피치값이 더 크면 상기 제2개루프피치를 정수배로 나누어 가면서 구한 자기상관함수값을 피치에서의 자기상관함수값과 비교하여 가장 큰 값을 가지는 지점(또는 위치)을[자기상관함수를] 개루프 피치로 검출하는 과정과, 상기 제2비교과정에서 상기 제2개루프피치값이 더 작으면 평균피치를 상기 제2개루프피치로 하는 과정으로 이루어진다.
그리고 상기와 같은 동작을 수행하는 피치분석부는, 상기 대역확장된 잔차신호를 입력하여 시간 자기상관함수를 계산하는 제1시간자기상관함수계산기와, 상기 대역확장된 잔차신호를 입력하여 주파수 자기상관함수를 계산하는 주파수자기상관함수계산기와, 상기 주파수 자기상관함수의 피크대밸리의 차이 값을 미리 설정된 값과 비교하여 보정 값를 결정하는 보정값 계산기와, 상기 보정값에 의해 상기 시간 및 주파수 자기상관함수들을 혼합하는 혼합기와, 상기 혼합된 자기상관함수에서 최대 피크를 갖는 지점을 개루프 피치로 검출하는 제1개루프피치검출기와, 상기 검출된 개루프피치값을 미리 설정된 제1기준값 비교하여 상기 개루프피치값이 더 크면 제1비교신호를 발생하고 그렇지 않으면 제2비교신호를 발생하는 제1비교기와, 상기 제1비교신호 발생시 상기 검출된 개루프피치를 정수배로 나누어 가면서 구한 자기상관함수값을 피치에서의 자기상관함수값과 비교하여 가장 큰 값을 가지는 지점(또는 위치)을[자기상관함수를] 개루프 피치로 검출하는 제1더블피치검출기와, 상기 제2비교신호 발생시 상기 저역여파된 음성신호를 입력하여 시간자기상관함수를 발생하는 제2시간자기상관함수계산기와, 상기 제2시간자기상관함수에서 최대 피크를 갖는 지점을 제2개루프 피치로 검출하는 제2개루프피치검출기와, 상기 검출된 제2개루프피치값을 미리 설정된 제2기준값 비교하여 상기 제2개루프피치값이 더 크면 제1비교신호를 발생하고 그렇지 않으면 제2비교신호를 발생하는 제2비교기와, 상기 제2비교기에서 제1비교신호 발생시 상기 제2개루프피치를 정수배로 나누어 가면서 구한 자기상관함수값을 피치에서의 자기상관함수값과 비교하여 가장 큰 값을 가지는 지점(또는 위치)을[자기상관함수를] 개루프 피치로 검출하는 제2더블피치검출기와, 상기 제2비교기에서 제2비교신호 발생시 평균피치를 상기 제2개루프피치로 출력하는 수단으로 구현할 수도 있다.
상기와 같은 본 발명의 실시예에 따른 개루프 피치 검출 방법을 상기 도 4를 참조하여 구체적으로 살펴본다.
먼저 상기 대역확장부210에서 출력되는 대역확장된 잔차신호를 사용하여 시간영역에서의 자기상관함수 (time autocorrelation)(Rt)과 주파수영역에서의 자기상관함수(spectral autocorrelation)(Rs)을 구한 후, 이들 두 상관함수를 혼합(mixing)하여 피치를 검출하게 된다. 일반적으로 개루프 피치 검색은 시간 영역에서의 자기상관함수 값으로 구해지는데, 시간 영역의 자기상관함수를 이용한 피치 검출은 더블 피치(double pitch) 검출 오류가 자주 발생하므로, 주파수 영역에서의 자기상관함수를 사용하여 검출의 견고성을 높인다. 상기와 같은 동작은 도 4의 412단계 - 420단계에서 수행된다.
상기 단계들의 동작을 구체적으로 살펴본다.
먼저 상기 피치분석부230은 412단계에서 상기 도 5a와 같은 대역확장된 입력신호의 시간 영역에서 자기상관함수를 하기 <수학식 2>와 같이 계산한다.
상기 <수학식 2>에서 은 S`(n)의 제로-민(zero-mean)신호를 의미하고, N은 피치 검색을 위해 자기상관함수 계산에 사용되는 샘플의 수를 의미한다. 시간 영역의 자기상관함수 계산 방법에 의한 피치 검출은 더블 피치(double pitch)로 검색될 경우가 많이 발생하는데, 이를 보상하기 위해 주파수 자기상관함수 방법을 동시에 사용한다.
따라서 상기 피치분석부230은 414단계에서 하기 <수학식 3>과 같이 상기 대역확장된 입력신호의 주파수 영역에서 자기상관함수를 계산한다.
상기 <수학식 3>에서의 스펙트럼에서 평균을 제거한 스펙트럼을 나타내고, N은 DFT 포인트 수의 1/2을 의미하며,로 표현된다. 주파수 자기상관함수를 사용한 피치검출에서는 더블 피치가 검출될 확률은 작지만, 반대로 하프 피치(half pitch), 즉 τ/2, τ/3가 검출될 확률이 높아진다. 따라서 시간영역에서의 자기상관함수 피치 검출방법과 주파수 영역에서의 피치 검출방법을 같이 사용하여 피치 검출의 신뢰성을 높인다. 따라서 상기 피치분석부230은 418단계에서 상기 412단계에서 구한 시간 영역에서의 자기상관함수와 상기 414단계에서 구한 주파수 영역에서의 자기상관함수를 하기 <수학식 4>와 같이 혼합하여 피치를 검색한다.
<수학식 4>에서 β는 0과 1 사이의 값을 가지며, 일반적으로 0.5의 값을 가진다. 그러나 상기 주파수영역에서 자기상관함수의 피크 값이 매우 작을 경우에는 오히려 시간 영역에서의 자기상관함수 값을 줄이는 효과가 나타날 수 있다. 따라서 상기 주파수영역에서의 자기상관함수의 최대값이 특정 값 이하가 되면 1-β 값이 작아지도록 하는 것이 바람직하다.
따라서 본 발명의 실시예에서 상기 피치분석부230은 416단계에서 상기 주파수 자기상관함수의 피크 값에 따라 상기 β값을 조정한다. 도 6은 상기 상기 416단계에서 주파수 자기상관함수의 피크 값에 따라 상기 β값을 조정하는 절차를 도시하는 흐름도이다. 즉, 상기 도 6에서는 주파수(spectral) 자기상관함수의 피크 값이 매우 작을 경우 오히려 시간(time) 자기상관함수의 값을 줄이는 효과가 나타나기 때문에 주파수 자기상관함수의 최대 피크 값이 특정 값 이하가 되면 값을 줄여서 주파수 자기상관함수의 반영 비율을 줄이도록 변형하는 절차를 도시하고 있다.
상기 도 6을 참조하면, 상기 피치분석부230은 511단계에서 주파수 자기상관함수의 피크-밸리와 밸리의 차이(peak_to_valley)를 계산한다. 여기서 상기 피크와 밸리의 차이는 상기 <수학식 3>과 같은 Rs에서 최대 피크 값과 최대 피크 값에서 가장 가까운 밸리 값의 차이를 의미한다. 상기 주파수 자기상관함수의 피크와 밸리 차이를 구한 후, 513단계에서 상기 차이(peak_to_valley) 값이 설정된 기준값 THp2v과 비교한다. 이때 상기 피크와 밸리의 차이값이 상기 기준값 THp2v 보다 크면 하모닉 성분이 강한 것으로 판단하고 515단계에서 상기 β값을 0.5로 결정하여 주파수와 시간 자기 상관함수의 비율을 같게 한다. 그러나 상기 513단계에서 상기 피크와 밸리의 차이값이 상기 기준값 THp2v보다 작을 경우에는 상기 차이(peak_to_valley) 값에 비례하여 작아지도록 한다. 이런 경우 상기 517단계에서 결정되는 β값은 β= 1-0.5/THp2v*peak_to_valley가 될 수 있다. 여기서 상기 기준값 THp2v는 0.05~0.3 정도가 적당하며, 실험 상 0.15가 가장 적당한 것으로 나타났다.
상기와 같이 β값이 결정되면, 상기 피치분석부230은 418단계에서 상기 <수학식 4>와 같이 시간 및 주파수 영역의 자기상관함수들을 혼합한다. 이후 상기 피치분석부230은 420단계에서 시간 및 주파수 영역의 자기상관함수들의 혼합신호를 이용하여 하기 <수학식 5>와 같이 개루프 피치값 P를 결정한다. 즉, 상기 피치분석부230은 상기 420단계에서 τ가 피치 검색구간 내에서 가장 큰 자기상관함수를 가지는 τ의 위치를 개루프 피치값 P로 선택한다.
도 5a - 도 5f는 상기 피치분석부230에서 시간/주파수 자기상관함수를 이용하여 피치를 검출하는 상기 412단계-420단계의 각 신호를 나타내고 있다.
먼저 상기 피치분석부230에 입력되는 대역확장된 잔차신호는 도 5a와 같다. 그러면 상기 피치분석부230은 412단게에서 상기 <수학식 2>와 같은 계산을 하여 도 5b와 같은 시간영역에서의 자기상관함수를 발생한다. 또한 상기 도 5a와 같이 대역확장된 잔차신호의 스펙트럼은 도 5c와 같으며, 상기 피치분석부230은 414단계에서 상기 도 5c와 같은 신호를 이용하여 주파수 영역에서의 자기상관함수를 구한다. 이때 상기 시간 및 주파수 영역에서 구한 두 자기상관함수들을 혼합하기 위해서는 상기 도 5d와 같은 주파수 자기상관함수를 시간 자기상관함수로 변환하여야 한다. 그리고 상기 도 5d와 같은 주파수 자기상관함수를 시간 자기상관함수로 변환하면 도 5e와 같이 발생된다. 이후 상기 <수학식 4>와 같이 두 자기상관함수들을 혼합하면, 도 5f와 같은 혼합된 자기상관함수가 발생된다. 여기서 t=42에서 자기상관함수의 최대 피크 값을 얻을 수 있으므로 r(P) =0.8, 피치 P= 42가 된다
상기 도 5a - 도 5f를 참조하면, 특정 음성 프레임에 대한 시간, 주파수 영역에서의 자기상관함수 값을 도시하고 있다. 피치검출은 최소 피치 20에서 최대 피치146 범위에서 검출하므로 도 5e 및 도 5f에서 자기상관함수 값은 20-146 범위에서만 유효하다. 도 5b에 도시된 바와 같이 시간영역에서의 자기상관함수 값은 실제 피치와 그의 정수배에서 큰 값을 나타냄을 볼 수 있다. 따라서 피치 검출에서 더블 피치를 검출할 확률이 높아진다. 반대로 도 5e의 주파수 영역에서의 자기상관함수에서는 실제 피치의 위치 외에 하프 피치의 위치에서도 비교적 큰 값을 나타내므로, 하프 피치를 검출할 확률이 높아진다. 그러나 상기 두 개의 자기상관함수를 혼합한 도 5f를 보면 실제 피치에서는 값이 커지고 나머지는 상대적으로 작아지는 것을 볼 수 있다.
이후 상기 피치분석부230은 422단계에서는 상기 412단계 - 420단계를 수행하면서 시간/주파수 자기상관함수(Time/Spectral autocorrelation)에 의해 구해진 최대 피크 값r(P)를 설정된 기준값 TH1과 비교한다. 여기서 상기 기준값 TH1은 0.5~0.8정도의 값을 가지며 실험상 0.6이 적당한 것으로 나타났다. 따라서 상기 422단계에서 상기 최대피크값 r(P)가 상기 기준값 TH1 보다 크면 주기성이 큰 신호로 보고 438단계에서 해당 피치에 대해 더블 피치 검색 과정을 수행한다. 여기서 상기 438단계에서 더블피치 검색 과정은 도 7과 같은 절차로 수행된다.
상기 도 7을 참조하면, 상기 피치분석부230은 551단계에서 Pn 위치를 결정하고(Pn = P/(n+1), n=1,2,3,..), 상기와 위치가 결정된 Pn을 최소 피치(pitch_min) 및 최대 피치(pitch_max) 사이의 값으로 한다(pitch_min<Pn<pitch_max). 여기서 상기 Pn은 P의 1/2, 1/3, 1/4, ...에 해당하는 위치를 의미하며, 상기 도 5f에 도시된 바와 같이 최소 피치(pitch_min)는 20이 되고, 최대 피치(pitch_max)는 146이 될 수 있다. 상기와 같이 Pn을 결정한 후, 553단계에서는 모든 Pn에 대해서 가장 큰 r(Pn) 값을 갖는 Pn을 Pmax에 넣는다.
, 상기 551단계 및 553안 계는 더블피치 검색시 P1에서 Pn 까지 반복되어 수행되는 루프문으로 구현되며, 상기 루프를 반복 수행하면서 Pn 까지의 Pn 값을 구한 후 이들 값들 중에서 가장 큰 값을 가지는 r(Pn)을 Pmax로 결정하게 된다.
이후 상기 피치분석부230은 555단계에서 상기 551단계 및 553단계를 수행하면서 구한 피치 P에서의 자기상관함수 값 보다 Pmax에서의 자기상관함수 값이 알파 값 만큼 큰가를 검사하며(r(Pmax)>α*r(P)), 상기 Pmax의 값이 더 크면 557단계에서 상기 구해진 Pmax를 피치P로 다시 정하고, 그렇지 않으면 이전 피치 P를 유지한다.
상기한 바와 같이 상기 438단계의 더블 피치 검색 과정에서는 상기 도 7과 같은 절차를 수행하면서 , 검색된 피치 P의 1/2, 1/3, 1/4, ...에 해당하는 피치 래그(pitch lag; P1, P2, P3, ... 라고 하면)에서의 자기상관함수 r(Pn)이 α*r(P)보다 크다면 P를 더블피치(double pitch)로 판단하고 Pn을 피치로 다시 정하게 된다. 여기서 값은 P가 100 보다 크면 0.7(0.6~0.8정도), 그렇지 않으면 0.9(0.8~0.95 정도)로 설정한다.
상기 438단계에서 더블피치를 검색한 후, 상기 피치분석부230은 그 결과를 피치보정부(pitch smoothing part)240에 출력한다. 그러면 상기 피치보정부240은 436단계에서 피치가 갑자기 변화하는 것을 방지하는 보정을 수행한다. 상기 피치보정부240은 평균피치 Pavg를 이용하여 피치를 보정한다. 여기서 상기 평균피치 Pavg는 과거의 신뢰성있는 피치 값들에 대해서 메디안 평균 값(median mean value)에서 계산된 값으로 급격하게 변하는 피치를 부드럽게 보정하는 역할을 한다. 상기 피치보정부240이 상기 436단계에서 수행하는 피치 보정 절차를 도 8과 같은 순서로 진행된다.
상기 도 8을 참조하면, 먼저 상기 피치보정부240은 612단계-618단계를 수행하면서, 개루프 피치 P가 이전 프레임의 피치 Pprev의 (a1*100) % 범위에 들지 않으면 피치가 갑자기 변하는 것으로 생각하고, 또한 Pprev가 평균 피치의 (a2*100) %내에 들고 이전 프레임의 자기상관함수 최대값이 THsm(0.5~0.7, 실험상 0.6이 적당)보다 크다면 평균 피치(Pavg)를 개루프 피치로 정하게 된다. 여기서 상기 a1은 0.25~0.45의 값을 가지며, 실험 상 0.35가 적당한 것으로 나타났으며, 상기 a2는 0.1~0.3의 값을 가질 수 있으며, 실험상 0.2 정도가 적당한 것으로 나타났다.
그러나 상기 422단계에서 상기 412단계-420단계에서 시간/주파수 자기상관함수(Time/Spectral autocorrelation)에 의해 구해진 최대 피크 값r(P)이 상기 TH1보다 작은 경우로 판단되면, 상기 피치분석부230은 424단계에서 저역여파기220에서 출력되는 1KHz의 저역여파신호를 입력한다. 그리고 상기 피치분석부230은 426단계에서 상기 입력되는 1KHz 저역여파신호에 대하여 상기 <수학식2>에 의해 시간 자기상관함수를 계산하고, 428단계에서 상기 <수학식 5>에 의해 최대피크를 갖는 지점을 개루프 피치 P로 결정한다. 이후 상기 피치분석부230은 430단계에서 상기 428단계에서 구해진 최대 피크를 가지는 피치 r(P)를 미리 설정된 기준값 TH2와 비교하며, 상기 r(P)가 상기 TH2보다 큰 값을 가지면 432단계로 진행하여 상기 도 7과 같은 더블피치 검색과정을 수행하며, 상기 r(P)가 TH2 보다 작은 값을 가지면 434단계에서 이를 평균피치 Pavg로 결정한다. 상기 432단계 또는 434단계를 수행한 후, 상기 피치분석부230은 이 결과를 피치보정부240에 입력한다. 그러면 상기 피치보정부240은 436단계에서 상기 도 8과 같은 절차를 수행하면서 구해진 피치P를 보정하는 절차를 수행한다.
상기한 바와 같이, 상기 피치분석부230은 상기 412단계-420단계에서 시간/주파수 자기상관함수에 의해 구해진 최대 피크 값r(P)이 상기 TH1보다 작으면 대역확장부210에서 출력되는 대역확장된 잔차신호 대신에 1KHz의 저역여파신호를 입력하여 피치를 구한다. 이는 입력되는 신호가 주기성은 있지만 하모닉 특성이 잘 나타나지 않고 저주파 성분이 강한 신호이면 상기 잔차신호를 구할 경우 주기적인 특성이 줄어들어 자기상관함수 값이 작아진다. 따라서 이런 입력신호의 피치 P를 검출하기 위해서, 상기 피치분석부230은 1kHz 저역여파된 신호에 대해서 시간 영역에서의 자기상관함수를 구해 피치를 찾게 된다. 여기서 구해진 피치를 P라고 하고 r(P)가 TH2(0.4~0.7정도가 적당, 실험상 0.5)보다 크면 주기성이 있는 것으로 판단하여 더블피치 검색과정을 거쳐 개루프 피치를 결정하게 된다. 여기서 상기 더블피치 검색 과정에서 사용되는 값은 P가 100보다 클 경우에는 0.5(0.4~0.6정도), 그렇지 않을 경우에는 0.75(0.6~0.8정도)를 사용한다. 만약 P가 TH2보다 작다면 주기성이 없는 것으로 판단하여 평균 피치(Pavg)를 현재 피치로 사용한다. 여기서 평균 피치를 구하는 방법은 MELP에서 사용되는 평균피치 구하는 방법과 동일하다.
상기한 바와 같이 피치분석부230에서 피치를 검출하는 과정을 살펴보면, 먼저 시간 및 주파수 자기상관함수들을 사용하여 개루프 피치를 검색한다. 그리고 상기와 같이 검색된 자기상관함수 값이 특정 기준값(TH1)을 넘으면 더블피치 검색과정을 거쳐 개루프 피치를 결정한다. 이때 상기 더블피치 검색과정은 자기상관함수에서 구한 피치를 정수배로 나누어가면서 그 근처의 자기상관함수 값을 피치에서의 자기상관함수 값과 비교하면서 수행된다.
그러나 상기 검색된 자기상관함수의 값이 특정 기준값 (TH12)을 넘지 못하면 소정 주파수 대역으로 저역여파된 신호를 이용하여 개루프 피치를 구한다. 본 발명의 실시예에서는 상기 소정 주파수 대역을 1KHz로 가정하여 설명하고 있다. 따라서 상기 1KHz 저역여파된 신호를 사용하여 시간 영역에서 다시 자기상관함수를 구하고여기서 최대값을 가지는 피치를 찾는다. 이는 상기한 바와 같이 저주파 성분이 강한 정현파 형태의 신호가 입력될 때 시간 및 주파수 자기상관함수 값이 작기 때문에 저주파 성분만 추출하여 다시 구하는 과정이다.
그러나 상기와 같은 두가지 경우에서 있어서 모두 구해진 자기상관함수 값이 작으면 평균피치 값을 현재의 피치값으로 사용한다.
상기와 같이 피치 검출 및 피치 보정이 이루어진 피치 값은 미세피치조정부(fine pitch search part)250에 입력된다. 주파수 영역에서의 자기상관함수 값을 시간영역에서의 값으로 변환하는 과정은 특정 샘플에서는 주위 값을 보간하여 사용하므로 주파수 자기상관함수의 피크는 실제 값과 정확하게 일치하지 않을 수도 있다. 또한 시간영역에서의 피치 검출 또한 실제 피치 값에 비해 오차가 존재할 수 있으므로 개루프에서 구한 피치 주위로 정밀피치 검색과정을 거친다. 정밀피치 검출 알고리즘은 피치 값에 의해 합성된 스펙트럼과 원신호의 스펙트럼 차가 최소가 되도록 피치 값을 변화시키면서 검색하는 방법을 사용할 수 있다. 상기와 같은 미세피치검출 알고리즘은 "Multi-band Excitation Vocoder,"[D. griffin and J. S. Lim, "Multi-band Excitation Vocoder," IEEE Trans. on ASSP, Vol.36, No.8, pp.1223-1235, Aug. 1988.]에 개시되어 있다.
상기 미세피치조정부250은 정수 피치보다 정교한 피치 검출을 위해 스펙트럼 오차가 최소가 되는 프렉셔날 피치(fractional pitch)를 찾는 상기의 문헌과 같은 알고리즘을 사용할 수 있다. 그러나 본 발명의 실시예에 따른 음성부호화기에서는 합성과정에서 정수 값 이상의 정교한 피치 값을 요구하지 않으므로, 상기 미세 피치 알고리즘을 적용함에 있어서 개루프 피치 검출에서 구한 피치 값 주위로 ±2 샘플에서 가장 오차가 적은 피치를 최종 피치로 결정하는 방법을 사용할 수도 있다.
상기와 같이 개루프 피치검색, 피치보정 및 미세피치보정을 통해 검출된 피치는 피치양자화부270에 인가되는 동시에 피치갱신부(average pitch update part)260에 인가된다. 그러면 상기 피치갱신부260은 상기 최종 검출된 피치에 의해 상기 피치분석부230 및 피치보정부240의 평균 피치를 갱신시킨다. 상기 피치갱신부260의 동작은 MELP에서의 방법과 같다.
상기와 같이 미세피치조정부250에서 미세 조정된 피치는 피치양자화부270에서 양자화된다. 이때 상기 피치는 최소피치(pitch_min; 본 발명의 실시예에서는 20으로 가정하고 있음)에서 최대피치(pitch_max; 본 발명의 실시예에서는 146으로 가정하고 있음)를 소정의 레벨(여기서는 127로 가정한다)로 나누어 양자화한다. 따라서 상기 피치양자화부270은 피치 20-146을 127레벨로 나누어 1-127값으로 각각 선형(linear scale) 양자화할 수 있다. 이때 무성음의 상태는 "0"으로 할당하여 피치 값을 보내지 않을 수 있다. 따라서 상기 피치양자화부270은 피치를 7비트의 데이터로 양자화하여 상기 멀티플렉서70에 피치 파라미터로 출력하게 된다.
상술한 바와 같이 본 발명의 실시예에 따른 피치 검출은 입력신호를 역필터링할 때 대역확장하여 포만트 주파수가 피치 하모닉에 존재할 경우에 해당하모닉 성분이 왜곡되는 현상을 해결할 수 있다. 또한 개루프 피치를 검색할 때 시간 영역 및 주파수 영역에서 각각 구해진 자기상관함수를 이용하여 개루프 피치를 구하므로써 검색된 피치의 신뢰성을 높일 수 있다. 또한 개루프 피치를 검색할 때 검색된 피치가 설정된 기준값 보다 작은 경우에는 소정주파수로 저역여파된 신호의 자기상관함수를 이용하여 개루프 피치를 구하여 검색된 피치의 신뢰성을 향상시킬 수 있다. 또한 상기 검색된 피치를 보정하므로써 개루프 피치 검색 과정에서 급격한 피치의 변화를 방지할 수 있다. 그리고 상기 검색된 피치를 미세 피치 조정을 수행하므로써, 피치 검출 과정에서 발생되는 오차를 정정할 수 있다.
도 1은 음성코덱의 전반적인 구조를 도시하는 도면
도 2는 본 발명의 실시예에 따른 피치검출부의 구성을 도시하는 도면
도 3a 및 도 3b는 도 2에서 대역확장부의 동작 특성을 설명하기 위한 도면
도 4는 도 2에서 피치분석부의 동작 절차를 도시하는 흐름도
도 5a - 도 5f는 도 4의 피치분석부의 동작 특성을 설명하기 위한 도면
도 6은 도 4에서 β값을 설정하는 절차를 도시하는 흐름도
도 7은 도 4에서 더블피치를 검색하는 절차를 도시하는 흐름도
도 8은 도 2에서 피치보정부의 동작 절차를 도시하는 흐름도

Claims (16)

  1. 음성부호화기의 피치 검출 장치에 있어서,
    입력되는 음성신호를 역필터링 및 대역확장하여 대역확장된 잔차신호를 발생하는 대역확장부와,
    상기 대역확장된 잔차신호의 시간 및 주파수의 자기상관함수들을 각각 계산한 후 혼합하며, 상기 혼합된 자기상관함수에서 구한 피치를 정수배로 나누어 가면서 구한 자기상관함수값을 피치에서의 자기상관함수값과 비교하여 가장 큰 값을 가지는 지점을[자기상관함수를] 개루프 피치로 검출하는 피치분석부와,
    상기 검출된 개루프 피치가 이전 프레임의 설정 범위를 벗어나면 상기 개루프피치를 평균피치 값으로 보정하는 피치보정부와,
    상기 조정된 개루프피치를 설정된 레벨로 양자화하여 출력하는 피치양자화부로 구성된 것을 특징으로 하는 상기 장치.
  2. 제1항에 있어서, 상기 피치보정부와 피치양자화부 사이에 연결되며, 상기 개루프 피치 검출에서 구한 피치값 주위로 ±2 샘플에서 오차가 적은 피치를 최종 피치로 결정하는 미세피치조정부를 더 구비하는 것을 특징으로 하는 상기 장치.
  3. 제1항에 있어서, 상기 대역확장부가 하기 <수학식 6>에 의해 입력되는 신호를 역필터링 및 대역확장하는 것을 특징으로 하는 상기 장치.
    상기 <수학식 6>에서 gamma 는 가중치 요소(weight factor)
  4. 제3항에 있어서, 피치분석부가,
    상기 대역확장된 잔차신호를 입력하여 시간 자기상관함수를 계산하는 시간 자기상관함수계산기와,
    상기 대역확장된 잔차신호를 입력하여 주파수 자기상관함수를 계산하는 주파수자기상관함수계산기와,
    상기 주파수 자기상관함수의 피크대밸리의 차이 값을 미리 설정된 값과 비교하여 보정 값를 결정하는 보정값 계산기와,
    상기 보정값에 의해 상기 시간 및 주파수 자기상관함수들을 혼합하는 혼합기와,
    상기 혼합된 자기상관함수에서 최대 피크를 갖는 지점을 개루프 피치로 검출하는 개루프피치검출기와,
    상기 검출된 개루프피치를 정수배로 나누어 가면서 구한 자기상관함수값을 피치에서의 자기상관함수값과 비교하여 가장 큰 값을 가지는 지점을[자기상관함수를] 개루프 피치로 검출하는 더블피치검출기로 구성된 것을 특징으로 하는 상기 장치.
  5. 제3항에 있어서, 피치분석부가,
    상기 시간자기상관함수계산기가 대역확장된 잔차신호를 하기의 <수학식 7>에 의해 시간 자기상관함수로 계산하고, 상기 주파수자기상관함수계산기가 상기 대역확장된 잔차신호를 하기의 <수학식 8>에 의해 주파수 자기상관함수로 계산하며, 상기 혼합기가 상기 보정값에 의해 상기 시간 및 주파수 자기상관함수들을 하기 <수학식 9>와 같이 혼합하며, 상기 개루프피치검출기가 하기 <수학식 10>와 같이 상기 혼합된 자기상관함수에서 최대 피크를 갖는 지점을 개루프 피치로 검출하는 것을 특징으로 하는 상기 장치.
    상기 <수학식 7>에서 은 S`(n)의 제로-민(zero-mean)신호를 의미하고, N은 피치 검색을 위해 자기상관함수 계산에 사용되는 샘플의 수를 의미한다
    수학식 8>에서 의 스펙트럼에서 평균을 제거한 스펙트럼을 나타내고, N은 DFT 포인트 수의 1/2을 의미하며,
    상기 <수학식 9>에서 β는 0과 1 사이의 값을 의미한다.
  6. 제1항 또는 제2항에 있어서, 상기 피치양자화부에 입력되는 피치를 평균피치로 갱신하여 상기 피치분석부 및 피치보정부에 출력하는 피치갱신부를 더 구비함을 특징으로 하는 상기 장치.
  7. 음성부호화기의 피치 검출 장치에 있어서,
    입력되는 음성신호를 역필터링 및 대역확장하여 대역확장된 잔차신호를 발생하는 대역확장부와,
    상기 입력되는 음성신호를 소정 주파수 대역으로 저역여파하는 저역여파기와,
    상기 대역확장된 잔차신호의 시간 및 주파수의 자기상관함수들을 각각 계산한 후 혼합하고, 상기 혼합된 자기상관함수에서 구한 피치를 더블피치 검색하여 가장 큰 값을 가지는 지점을[자기상관함수를] 개루프 피치로 검출하며, 상기 검출된 개루프피치에서의 자기상관함수 값이[가] 소정의 기준값 보다 작으면 상기 저역여파된 음성신호의 시간 자기상관함수를 계산한 후 상기 더블피치 검색하여 개루프피치를 검출하는 피치분석부와,
    상기 검출된 개루프 피치가 이전 프레임의 설정 범위를 벗어나면 상기 개루프피치를 평균피치 값으로 보정하는 피치보정부와,
    상기 조정된 개루프피치를 설정된 레벨로 양자화하여 출력하는 피치양자화부로 구성된 것을 특징으로 하는 상기 장치.
  8. 제7항에 있어서, 상기 피치보정부와 피치양자화부 사이에 연결되며, 상기 개루프 피치 검출에서 구한 피치값 주위로 ±2 샘플에서 오차가 적은 피치를 최종 피치로 결정하는 미세피치조정부를 더 구비하는 것을 특징으로 하는 상기 장치.
  9. 제7항에 있어서, 피치분석부가,
    상기 대역확장된 잔차신호를 입력하여 시간 자기상관함수를 계산하는 제1시간자기상관함수계산기와,
    상기 대역확장된 잔차신호를 입력하여 주파수 자기상관함수를 계산하는 주파수자기상관함수계산기와,
    상기 주파수 자기상관함수의 피크대밸리의 차이 값을 미리 설정된 값과 비교하여 보정 값을 결정하는 보정값 계산기와,
    상기 보정값에 의해 상기 시간 및 주파수 자기상관함수들을 혼합하는 혼합기와,
    상기 혼합된 자기상관함수에서 최대 피크를 갖는 지점을 개루프 피치로 검출하는 제1개루프피치검출기와,
    상기 검출된 개루프피치값을 미리 설정된 제1기준값 비교하여 상기 개루프피치값이 더 크면 제1비교신호를 발생하고 그렇지 않으면 제2비교신호를 발생하는 제1비교기와,
    상기 제1비교신호 발생시 상기 검출된 개루프피치를 정수배로 나누어 가면서 구한 자기상관함수값을 피치에서의 자기상관함수값과 비교하여 가장 큰 값을 가지는 지점을[자기상관함수를] 개루프 피치로 검출하는 제1더블피치검출기와,
    상기 제2비교신호 발생시 상기 저역여파된 음성신호를 입력하여 시간자기상관함수를 발생하는 제2시간자기상관함수계산기와,
    상기 제2시간자기상관함수에서 최대 피크를 갖는 지점을 제2개루프 피치로 검출하는 제2개루프피치검출기와,
    상기 검출된 제2개루프피치값을 미리 설정된 제2기준값 비교하여 상기 제2개루프피치값이 더 크면 제1비교신호를 발생하고 그렇지 않으면 제2비교신호를 발생하는 제2비교기와,
    상기 제2비교기에서 제1비교신호 발생시 상기 제2개루프피치를 정수배로 나누어 가면서 구한 자기상관함수값을 피치에서의 자기상관함수값과 비교하여 가장 큰 값을 가지는 지점을[자기상관함수를] 개루프 피치로 검출하는 제2더블피치검출기와,
    상기 제2비교기에서 제2비교신호 발생시 평균피치를 상기 제2개루프피치로 출력하는 수단으로 구성된 것을 특징으로 하는 상기 장치.
  10. 제7항 또는 제8항에 있어서, 상기 피치양자화부에 입력되는 피치를 평균피치로 갱신하여 상기 피치분석부 및 피치보정부에 출력하는 피치갱신부를 더 구비함을 특징으로 하는 상기 장치.
  11. 음성부호화기에서 입력되는 음성신호로부터 피치를 검출하는 방법에 있어서,
    입력되는 음성신호를 역필터링 및 대역확장하여 대역확장된 잔차신호를 발생하는 과정과,
    상기 대역확장된 잔차신호의 시간 및 주파수의 자기상관함수들을 각각 계산한 후 혼합하며, 상기 혼합된 자기상관함수에서 구한 피치를 정수배로 나누어 가면서 구한 자기상관함수값을 피치에서의 자기상관함수값과 비교하여 가장 큰 값을 가지는 지점을[자기상관함수를] 개루프 피치로 검출하는 과정과,
    상기 검출된 개루프 피치가 이전 프레임의 설정 범위를 벗어나면 상기 개루프피치를 평균피치 값으로 보정하는 과정과,
    상기 조정된 개루프피치를 설정된 레벨로 양자화하여 출력하는 과정으로 이루어짐을 특징으로 하는 상기 방법.
  12. 제11항에 있어서, 상기 개루프 피치 검출과정에서 구한 피치값 주위로 ±2 샘플에서 오차가 적은 피치를 최종 피치로 결정하는 미세피치조정 과정을 더 구비함을 특징으로 하는 상기 방법.
  13. 제11항에 있어서 상기 개루프피치를 검출하는 과정이,
    상기 대역확장된 잔차신호를 입력하여 시간 자기상관함수 및 주파수 자기상관함수를 각각 계산하는 과정과,
    상기 계산된 주파수 자기상관함수의 피크대밸리의 차이 값을 미리 설정된 값과 비교하여 보정 값를 결정하는 과정과,
    상기 보정값에 의해 상기 시간 및 주파수 자기상관함수들을 혼합하는 과정과,
    상기 혼합된 자기상관함수에서 최대 피크를 갖는 지점을 개루프 피치로 검출하는 과정과,
    상기 검출된 개루프피치를 정수배로 나누어 가면서 구한 자기상관함수값을 피치에서의 자기상관함수값과 비교하여 가장 큰 값을 가지는지점을[자기상관함수를] 개루프 피치로 검출하는 더블피치검출과정으로 이루어짐을 특징으로 하는 상기 방법.
  14. 음성부호화기에서 음성신호의 피치를 검출하는 방법에 있어서,
    입력되는 음성신호를 역필터링 및 대역확장하여 대역확장된 잔차신호를 발생하는 과정과,
    상기 입력되는 음성신호를 소정 주파수 대역으로 저역여파하는 과정과,
    상기 대역확장된 잔차신호의 시간 및 주파수의 자기상관함수들을 각각 계산한 후 혼합하고, 상기 혼합된 자기상관함수에서 구한 피치를 더블피치 검색하여 가장 큰 값을 가지는 지점을[자기상관함수를] 개루프 피치로 검출하며, 상기 검출된 개루프피치에서의 자기상관함수 값이 [가] 소정의 기준값 보다 작으면 상기 저역여파된 음성신호의 시간 자기상관함수를 계산한 후 상기 더블피치 검색하여 개루프피치를 검출하는 과정과,
    상기 검출된 개루프 피치가 이전 프레임의 설정 범위를 벗어나면 상기 개루프피치를 평균피치 값으로 보정하는 과정과,
    상기 조정된 개루프피치를 설정된 레벨로 양자화하여 출력하는 과정으로 이루어짐을 특징으로 하는 상기 방법.
  15. 제14항에 있어서, 상기 개루프 피치 검출과정에서 구한 피치값 주위로 ±2 샘플에서 오차가 적은 피치를 최종 피치로 결정하는 미세피치조정과정을 더 구비함을 특징으로 하는 상기 방법.
  16. 제14항에 있어서, 상기 개루프 피치를 검출하는 과정이,
    상기 대역확장된 잔차신호를 입력하여 시간 자기상관함수 및 주파수 자기상관함수를 계산하는 과정과,
    상기 주파수 자기상관함수의 피크대밸리의 차이 값을 미리 설정된 값과 비교하여 보정 값를 결정하는 과정과,
    상기 보정값에 의해 상기 시간 및 주파수 자기상관함수들을 혼합하는 과정과,
    상기 혼합된 자기상관함수에서 최대 피크를 갖는 지점을 제1개루프 피치로 검출하는 과정과,
    상기 검출된 제1개루프피치값을 미리 설정된 제1기준값 비교하는 제1비교과정과,
    상기 제1비교과정에서 상기 제1개루프피치값이 더 크면 상기 검출된 제1개루프피치를 정수배로 나누어 가면서 구한 자기상관함수값을 피치에서의 자기상관함수값과 비교하여 가장 큰 값을 가지는 지점을[자기상관함수를] 개루프 피치로 검출하는 과정과,
    상기 제1비교과정에서 상기 제1개루프피치값이 작으면 상기 저역여파된 음성신호를 입력하여 제2시간자기상관함수를 발생하는 과정과,
    상기 제2시간자기상관함수에서 최대 피크를 갖는 지점을 제2개루프 피치로 검출하는 과정과,
    상기 검출된 제2개루프피치값을 미리 설정된 제2기준값 비교하는 제2비교과정과,
    상기 제2비교과정에서 상기 제2개루프피치값이 더 크면 상기 제2개루프피치를 정수배로 나누어 가면서 구한 자기상관함수값을 피치에서의 자기상관함수값과 비교하여 가장 큰 값을 가지는 지점을[자기상관함수를] 개루프 피치로 검출하는 과정과,
    상기 제2비교과정에서 상기 제2개루프피치값이 더 작으면 평균피치를 상기 제2개루프피치로 하는 과정으로 이루어짐을 특징으로 하는 상기 방법.
KR10-2003-0045550A 2003-07-05 2003-07-05 음성 코덱의 음성신호의 피치검출 장치 및 방법 KR100516678B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2003-0045550A KR100516678B1 (ko) 2003-07-05 2003-07-05 음성 코덱의 음성신호의 피치검출 장치 및 방법
US10/883,968 US20050021325A1 (en) 2003-07-05 2004-07-06 Apparatus and method for detecting a pitch for a voice signal in a voice codec

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0045550A KR100516678B1 (ko) 2003-07-05 2003-07-05 음성 코덱의 음성신호의 피치검출 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20050005605A KR20050005605A (ko) 2005-01-14
KR100516678B1 true KR100516678B1 (ko) 2005-09-22

Family

ID=34074854

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0045550A KR100516678B1 (ko) 2003-07-05 2003-07-05 음성 코덱의 음성신호의 피치검출 장치 및 방법

Country Status (2)

Country Link
US (1) US20050021325A1 (ko)
KR (1) KR100516678B1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8311840B2 (en) * 2005-06-28 2012-11-13 Qnx Software Systems Limited Frequency extension of harmonic signals
KR100724736B1 (ko) * 2006-01-26 2007-06-04 삼성전자주식회사 스펙트럴 자기상관치를 이용한 피치 검출 방법 및 피치검출 장치
ATE475170T1 (de) * 2006-03-20 2010-08-15 Mindspeed Tech Inc Tonhöhen-track-glättung in offener schleife
US7831420B2 (en) * 2006-04-04 2010-11-09 Qualcomm Incorporated Voice modifier for speech processing systems
US20080243492A1 (en) * 2006-09-07 2008-10-02 Yamaha Corporation Voice-scrambling-signal creation method and apparatus, and computer-readable storage medium therefor
US7912729B2 (en) 2007-02-23 2011-03-22 Qnx Software Systems Co. High-frequency bandwidth extension in the time domain
CN102016530B (zh) * 2009-02-13 2012-11-14 华为技术有限公司 一种基音周期检测方法和装置
US9685170B2 (en) * 2015-10-21 2017-06-20 International Business Machines Corporation Pitch marking in speech processing
US9756281B2 (en) 2016-02-05 2017-09-05 Gopro, Inc. Apparatus and method for audio based video synchronization
US9697849B1 (en) 2016-07-25 2017-07-04 Gopro, Inc. Systems and methods for audio based synchronization using energy vectors
US9640159B1 (en) 2016-08-25 2017-05-02 Gopro, Inc. Systems and methods for audio based synchronization using sound harmonics
US9653095B1 (en) * 2016-08-30 2017-05-16 Gopro, Inc. Systems and methods for determining a repeatogram in a music composition using audio features
US9916822B1 (en) 2016-10-07 2018-03-13 Gopro, Inc. Systems and methods for audio remixing using repeated segments
CN114499702B (zh) * 2022-03-28 2022-07-12 成都锢德科技有限公司 一种便携式实时信号采集分析识别系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765127A (en) * 1992-03-18 1998-06-09 Sony Corp High efficiency encoding method
TW321810B (ko) * 1995-10-26 1997-12-01 Sony Co Ltd
US6240384B1 (en) * 1995-12-04 2001-05-29 Kabushiki Kaisha Toshiba Speech synthesis method
US6134518A (en) * 1997-03-04 2000-10-17 International Business Machines Corporation Digital audio signal coding using a CELP coder and a transform coder
KR100269216B1 (ko) * 1998-04-16 2000-10-16 윤종용 스펙트로-템포럴 자기상관을 사용한 피치결정시스템 및 방법
US6636829B1 (en) * 1999-09-22 2003-10-21 Mindspeed Technologies, Inc. Speech communication system and method for handling lost frames
AU2001270365A1 (en) * 2001-06-11 2002-12-23 Ivl Technologies Ltd. Pitch candidate selection method for multi-channel pitch detectors

Also Published As

Publication number Publication date
US20050021325A1 (en) 2005-01-27
KR20050005605A (ko) 2005-01-14

Similar Documents

Publication Publication Date Title
US10885926B2 (en) Classification between time-domain coding and frequency domain coding for high bit rates
Kondoz Digital speech: coding for low bit rate communication systems
EP3039676B1 (en) Adaptive bandwidth extension and apparatus for the same
EP1869670B1 (en) Method and apparatus for vector quantizing of a spectral envelope representation
KR101078625B1 (ko) 이득 계수 제한을 위한 시스템, 방법 및 장치
US6996523B1 (en) Prototype waveform magnitude quantization for a frequency domain interpolative speech codec system
US6931373B1 (en) Prototype waveform phase modeling for a frequency domain interpolative speech codec system
EP2040253B1 (en) Predictive dequantization of voiced speech
US7013269B1 (en) Voicing measure for a speech CODEC system
US8990074B2 (en) Noise-robust speech coding mode classification
US20060064301A1 (en) Parametric speech codec for representing synthetic speech in the presence of background noise
US20050075869A1 (en) LPC-harmonic vocoder with superframe structure
KR100516678B1 (ko) 음성 코덱의 음성신호의 피치검출 장치 및 방법
CA2412449C (en) Improved speech model and analysis, synthesis, and quantization methods
KR19990088582A (ko) 신호의기본주파수를추정하기위한방법및장치
US9082398B2 (en) System and method for post excitation enhancement for low bit rate speech coding
EP3174051A1 (en) Systems and methods of performing noise modulation and gain adjustment
US7603271B2 (en) Speech coding apparatus with perceptual weighting and method therefor
Li et al. A variable-bit-rate speech coding algorithm based on enhanced mixed excitation linear prediction
JP4287840B2 (ja) 符号化装置
KR100557113B1 (ko) 다수의 대역들을 이용한 대역별 음성신호 판정장치 및 방법
JP4230550B2 (ja) 音声符号化方法及び装置、並びに音声復号化方法及び装置
Liang et al. A new 1.2 kb/s speech coding algorithm and its real-time implementation on TMS320LC548

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120730

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20130730

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee