KR20050085166A - 피치 신호의 트래킹 방법, 피치 신호의 트래킹 시스템 및컴퓨터 제품 - Google Patents

피치 신호의 트래킹 방법, 피치 신호의 트래킹 시스템 및컴퓨터 제품 Download PDF

Info

Publication number
KR20050085166A
KR20050085166A KR1020057009532A KR20057009532A KR20050085166A KR 20050085166 A KR20050085166 A KR 20050085166A KR 1020057009532 A KR1020057009532 A KR 1020057009532A KR 20057009532 A KR20057009532 A KR 20057009532A KR 20050085166 A KR20050085166 A KR 20050085166A
Authority
KR
South Korea
Prior art keywords
pitch
sub
sequence
value
pitch value
Prior art date
Application number
KR1020057009532A
Other languages
English (en)
Other versions
KR100920625B1 (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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20050085166A publication Critical patent/KR20050085166A/ko
Application granted granted Critical
Publication of KR100920625B1 publication Critical patent/KR100920625B1/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
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/003Changing voice quality, e.g. pitch or formants
    • G10L21/007Changing voice quality, e.g. pitch or formants characterised by the process used
    • G10L21/013Adapting to target pitch

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Measurement Of Mechanical Vibrations Or Ultrasonic Waves (AREA)
  • Auxiliary Devices For Music (AREA)
  • Radar Systems Or Details Thereof (AREA)

Abstract

본 발명은 피치 신호(pitch signal)를 트래킹(tracking)하는 방법을 제공하는데, 이 방법은 연속적인 피치 값으로 형성되는 검출된 피치 신호를 수신하는 단계를 포함하고, 검출된 신호 내의 각각의 현재의 피치 값에 대해서, 인접한 피치 값과 부합되는 피치 값으로 서브-시퀀스(sub-sequence)를 구성하는 단계를 수행한다. 다음으로, 서브 시퀀스의 중요도를 계산하고, 최고 중요도(highest significance)를 갖는 서브-시퀀스 또는 부합되는 서브 시퀀스의 집합을 선택하는 단계를 수행한다. 현재의 피치 값이 최고 중요도를 갖는 서브-시퀀스와 부합되지 않으면, 현재의 피치 값을 1보다 큰 정수값으로 나누거나 곱하는 것에 의해 상기 현재의 피치 값을 스무싱(smothening)하여, 최고 중요도를 갖는 서브-시퀀스와 부합되게 하는 단계를 수행한다.

Description

피치 신호의 트래킹 방법, 피치 신호의 트래킹 시스템 및 컴퓨터 제품{A METHOD FOR TRACKING A PITCH SIGNAL}
본 발명은 피치 신호(pitch signals)를 스무싱(smoothing)하는 피치 트래킹(pitch tracking)에 관한 것이다.
피치 검출기(pitch detectors)는 예를 들면, 음성 인식 피처(speech recognition features)에 의한 음성 재구성 등과 같은 음성 압축(Speech compression)(코딩(coding)), 음성 합성(Speech Synthesis)을 포함하는 광범위한 적용 분야에서 사용된다.
본 기술 분야에서는, 예를 들면, Y.Medan, E.Yair, D.Chazan에 의한 "Super Resolution Pitch Determination for Speech Signals"라는 제목의 문헌(IEEE ASSP vol 39 pp 40-48, 1991) 등과 같이 피치 검출기에 대한 여러 기술이 알려져 있다.
피치 검출기는 특정한 경우에, 피치의 정수배 또는 역의 정수배를 구하는 것이라 할 수 있다. 이에 대한 대부분의 원인은 스펙트럼의 정규적인 구조를 마링(mar)하는 새된 음성(raspy sound) 또는 거친 음성(hoarse sound)이 모두 존재하는 것뿐만 아니라 피치의 급속한 변경 또는 2개의 음성 사이에서의 전이에 기인한다. 이러한 마링의 결과는 때때로 피치 주파수의 1/2의 배수가 되는 추가적인 스펙트럼 라인 생성을 초래할 뿐만 아니라, 1/3 및 1/4 주파수도 생성되게 한다. 이러한 추가적인 라인을 제외하면, 다수의 피치 주파수가 확인된다. 이들을 부정확하게 카운팅하면, 피치 주파수가 분수로 검출된다.
설명된 바와 같이 마링된 피치를 사용하는 음성 압축 등과 같은 적용 분야에서, 신호는 저하된 성능을 나타낼 것이다.
따라서, 본 기술 분야에서는 검출된 피치 신호 내에서 마링된 피치 값을 스무싱(smoothing)하는 기법이 필요하다.
관련 기술은, 노이즈가 많은 음성 내에서 피치를 찾아내는 것을 목표로 하는 Shah, A.; Ramachandran, R.P.; Lewis, M.A.에 의한 "Robust pitch estimation using an event based adaptive Gaussian derivative filter"라는 명칭의 문헌(Circuits and Systems, 2002. ISCAS 2002. IEEE International Symposium on 2002, pp.II-843-II-846, vol.2)을 포함한다.
도 1은 본 발명의 일실시예에 따른 피치 스무싱 알고리즘을 이용하는 시스템을 도시하는 블록도.
도 2는 연속적인 프레임에 대해 샘플링된 피치 값의 그래프를 도시하는 도면.
도 3은 본 발명의 일실시예에 따른 피치 트래킹을 도시하는 흐름도.
도 4는 본 발명의 일실시예에 따라서 피치의 서브 시퀀스를 식별하는 연속적인 프레임에 대한 피치 값의 그래프.
도 5는 본 발명의 다른 실시예에 따른 피치 트래킹을 도시하는 흐름도.
본 발명은 피치 신호를 트래킹하는 방법을 제공하는데, 이 방법은 (i) 연속적인 피치 값으로 형성되는 검출된 피치 신호를 수신하는 단계를 포함하고, 검출된 신호 내의 각각의 현재의 피치 값에 대해서, (ii) 인접한 피치 값과 부합되는 피치 값으로 적어도 하나의 서브-시퀀스(sub-sequence)를 구성하는 단계와, (iii) 적어도 하나의 서브 시퀀스의 중요도를 계산하고, 최고 중요도(highest significance)를 갖는 서브-시퀀스 또는 부합되는 서브 시퀀스의 집합을 선택하는 단계와, (iv) 현재의 피치 값이 최고 중요도를 갖는 상기 서브-시퀀스와 부합되지 않으면, 현재의 피치 값을 1보다 큰 정수값으로 나누거나 곱하는 것에 의해 현재의 피치 값을 스무싱(smothening)하여, 최고 중요도를 갖는 상기 서브-시퀀스와 부합되게 하는 단계 중 적어도 하나를 수행한다.
본 발명은 피치 신호를 트래킹하는 방법을 더 포함하는데, 이러한 방법은 (i) 연속적인 피치 값으로 형성되는 검출된 피치 신호를 수신하는 단계를 포함하고, 검출된 신호 내에서 각각의 현재의 피치 값과, 그에 대한 임의의 정수배 및 그 역의 정수배(상기 정수<사전 결정된 값)에 대해서, (ii) 인접한 피치 값에 대해 부합되는 피치 값으로 적어도 하나의 서브-시퀀스를 구성하여, 검출된 피치 값이 상기 서브-시퀀스와 부합되지 않으면, 1보다 큰 정수값으로 검출된 피치 값을 나누거나 곱하는 것에 의해 검출된 피치 값이 상기 서브-시퀀스와 부합되게 하는 단계와, (iii) 적어도 하나의 서브-시퀀스의 중요도를 계산하고, 최고 중요도를 갖는 서브-시퀀스를 선택하여, 현재의 피치 값이 스무싱될 수 있게 하는 단계 중 적어도 하나를 수행한다.
또한, 본 발명은 피치 신호를 트래킹하는 시스템을 제공하는데, 이러한 시스템은, 연속적인 피치 값으로 형성되는 검출된 피치 신호를 수신하는 수신기를 포함하고, 프로세서를 이용하여 검출된 신호 내의 각각의 현재의 피치 값에 대해서, (i) 인접한 피치 값과 부합되는 피치 값으로 적어도 하나의 서브-시퀀스를 구성하고, (ii) 상기 적어도 하나의 서브 시퀀스의 중요도를 계산하고, 최고 중요도를 갖는 서브-시퀀스 또는 부합되는 서브 시퀀스의 집합을 선택하며, (iii) 현재의 피치 값이 최고 중요도를 갖는 상기 서브-시퀀스와 부합되지 않으면, 현재의 피치 값을 1보다 큰 정수값으로 나누거나 곱하는 것에 의해 현재의 피치 값을 스무싱하여, 최고 중요도를 갖는 상기 서브-시퀀스와 부합되게 하는 것 중에서 적어도 하나를 수행한다.
또한, 본 발명은 피치 신호를 트래킹하는 시스템을 제공하는데, 이러한 시스템은 연속적인 피치 값으로 이루어지는 검출된 피치 신호를 수신하는 수신기를 포함하고, 프로세서를 이용하여 검출된 신호 내에서 각각의 현재의 피치 값과, 그에 대한 임의의 정수배 및 그 역의 정수배(상기 정수<사전 결정된 값)에 대해서, (i) 인접한 피치 값에 대해 부합되는 피치 값으로 적어도 하나의 서브-시퀀스를 구성하여, 검출된 피치 값이 상기 서브-시퀀스와 부합되지 않으면, 1보다 큰 정수값으로 검출된 피치 값을 나누거나 곱하는 것에 의해 검출된 피치 값이 상기 서브-시퀀스와 부합되게 하고, (ii) 적어도 하나의 서브-시퀀스의 중요도를 계산하고, 최고 중요도를 갖는 서브-시퀀스를 선택하여, 현재의 피치 값이 스무싱될 수 있게 하는 것 중에서 적어도 하나를 수행한다.
본 발명은 피치 신호에 대한 트래킹을 수행하는 컴퓨터 코드를 포함하는 컴퓨터 제품을 제공하는데, 이러한 컴퓨터 제품은 연속적인 피치 값으로 형성되는 검출된 피치 신호를 수신하는 수신기를 포함하고, 검출된 신호 내의 각각의 현재의 피치 값에 대해서, (i) 인접한 피치 값과 부합되는 피치 값으로 적어도 하나의 서브-시퀀스를 구성하고, (ii) 상기 적어도 하나의 서브 시퀀스의 중요도를 계산하고, 최고 중요도를 갖는 서브-시퀀스 또는 부합되는 서브 시퀀스의 집합을 선택하며, (iii) 현재의 피치 값이 최고 중요도를 갖는 상기 서브-시퀀스와 부합되지 않으면, 현재의 피치 값을 1보다 큰 정수값으로 나누거나 곱하는 것에 의해 현재의 피치 값을 스무싱하여, 최고 중요도를 갖는 상기 서브-시퀀스와 부합되게 하는 것 중에서 적어도 하나를 수행한다.
본 발명은 피치 신호에 대한 트래킹을 수행하는 컴퓨터 코드를 포함하는 컴퓨터 제품을 더 제공하는데, (i) 연속적인 피치 값으로 형성되는 검출된 피치 신호를 수신하는 수단을 포함하고, 검출된 신호 내에서 각각의 현재의 피치 값과, 그에 대한 임의의 정수배 및 그 역의 정수배(상기 정수<사전 결정된 값)에 대해서, (ii) 인접한 피치 값에 대해 부합되는 적어도 하나의 서브-시퀀스를 구성하여, 검출된 피치 값이 상기 서브-시퀀스와 부합되지 않으면, 1보다 큰 정수값으로 검출된 피치 값을 나누거나 곱하는 것에 의해 검출된 피치 값이 상기 서브-시퀀스와 부합되게 하는 수단과, (iii) 적어도 하나의 서브-시퀀스의 중요도를 계산하고, 최고 중요도를 갖는 서브-시퀀스를 선택하여, 현재의 피치 값이 스무싱될 수 있게 하는 수단 중에서 적어도 하나를 수행한다.
본 발명을 이해하고, 실제적으로 본 발명이 어떻게 실행되는지 확인하기 위해서, 이하에서는 첨부된 도면을 참조하여 오로지 한정적이지 않은 예시의 방법으로 바람직한 실시예에 대해 설명할 것이다.
먼저 도 1을 참조하면, 본 발명의 일실시예에 따라서 피치 트래킹을 이용하는 시스템에 대한 일반화된 블록도가 도시되어 있다. 도시된 바와 같이, 원 음성 신호(raw speech signal)는 입력 수단, 말하자면 마이크(microphone)(12)를 통해 수신되고, (디지털 신호로 변환된 후에) 그 자체로도 알려진 툴(tool)을 적절히 실행하는, 말하자면 피치 검출(도 1에 명확히 도시되어 있지 않음)을 위해 소프트웨어로 구현된 프로세서(사용자 PC(14) 및 그와 연관된 저장 장치(16))에 공급된다.
피치 신호와는 별도로, 피치 검출기는 프레임 에너지를 생성할 수 있고, 이러한 프레임 에너지는 피치가 계산된 프레임 내에서 신호의 세기에 대한 소정의 측정값이고, 신호가 검출된 피치 주파수의 주기적 신호로 표시될 수 있는 정도를 나타내는 피치의 품질에 대한 소정의 측정값이다. 다음에 이와 같이 검출된 피치 신호와, 가능하게는 에너지 및 적합도(degree of fit)는, 피치 신호를 스무싱하는 피치 트래킹 모듈(pitch tracking module)(도 1에 명확히 도시되지 않음)에 공급되는데, 이들은 모두 이하에서 보다 상세하게 설명될 것이다. 말하자면, 음성 압축의 경우에, 음성 신호는 그 자체로 알려진 음성 코딩 알고리즘(예를 들면, 스펙트럼 코딩(spectral coding) 등)에 의해 처리되고, 코딩된 신호는 말하자면 네트워크(18)를 통해 먼 거리까지 전송된다.
본 발명은 물론, 도 1에 도시된 바와 같은 특정한 아키텍처 및/또는 구현 및/또는 적용 분야(음성 코딩)로 한정되지 않으며, 그에 따라서 필요에 따라서 적절한 다른 변형을 적용할 수 있다. 한정적이지 않은 예로서, 독립형(stand alone) PC 환경이 아닌 분산 환경 내에서 구현될 수 있다.
다음으로, 본 발명의 여러 실시예에 따른 피치 트래킹의 구조 및 동작에 대한 이해를 돕기 위해 피치 신호의 특성에 대한 개략적인 개요를 제시할 것이다. 따라서, 성대(vocal chords)가 그 주파수가 시간에 따라 연속적으로 변동하는 여기(excitation)를 생성한다고 가정하면, 연속적인 정확한(true) 피치 값의 시퀀스는 언제나 연속적이고, 즉 연속되는 값들이 서로 그 값이 매우 근사하다. 검출된 피치 신호가 정규적으로 정확하고 마링된 피치 값을 포함한다고 가정한다. p1 및 p2를 2개의 피치 값(예를 들면, 도 2에서 피치 신호(20) 내의 참조 부호(21, 22))이라고 한다. p1(예를 들면 참조 부호(21))이 정확한 피치 값이고, p2가 마링된 피치 값(예를 들면 참조 부호(22))이면, p2는 정확한 피치(즉, 예를 들면 참조 부호(23)와 같은 "스무싱된" 피치 값, 이는 마링된 피치 값(22)에 대응함)의 m의 배수이다. 정확한 m 값은 시퀀스{p1, p2/m}가 가장 매끄럽게 연결(smoothest)되는 조건에서 구할 수 있다. 평활도(smoothness)는 필수적이지는 않지만 전형적으로 다음과 같이 피치들 사이에 측정된 거리를 이용하여 측정된다.
D(p1, p2)=|(p1-p2)/(p1+p2)|
이는 p2/m(스무싱된 피치 값으로서, 예를 들면 참조 부호(23))이 가능한 한 p1에 근사하다는 것을 의미하는데, 여기에서 근사도(closeness)는 상술된 거리 측정값을 이용하여 측정된다. 이와 유사하게, p2(즉, 마링된 피치 값)가 정확한 피치(즉, 대응하는 스무싱된 피치 값)의 (m)에 의한 역의 정수배이면, {p1,p2*m}이 시퀀스 내에서 가능한 한 평활하게 함으로써 m을 구할 수 있다. p2(즉, 마링된 피치 값)가 정확한 피치의 역의 정수배가 되는 후자의 시나리오는 도 2에 도시되어 있지 않다.
본 발명에 따른 피치 트래킹 알고리즘은 검출된 피치 신호 중의 어느 값이 정확한 값이고, 어느 값이 마링된 값(즉, 이들이 정확한 [스무싱된] 피치 값의 정수배이거나 역의 정수배가 된 값)인지 판정하기 이한 것이다. 이러한 알고리즘은 가능한 경우에 마링된 피치 값을 더욱 스무싱하여 스무싱된 피치 신호를 획득하게 한다.
모든 실시예에서, 이러한 알고리즘은 실시간(on-the-fly)으로 작동되고, 이는 일반적으로, 소정의 지연을 가지고 이루어진다. 이러한 이유 때문에 각 시점에서 피치 값에 대한 배수(또는 역배수)에 대한 계산은 과거의 피치 값 및 가까운 미래의 Tfuture 피치 값을 기초로 하여 이루어져야 하는데, 여기에서 Tfuture는 허용된 지연이다. 따라서, 일실시예에 따르면, 관련된 문제점은 과거의 Tpast 피치 값 및 미래의 Tfuture 피치 값이 주어졌을 때, 현재의 피치 값이 과거 및 미래의 정확한 피치 값과 부합되게 하는 정수를 구하는 것이다. 모든 실시예에서, 미래 및 과거의 피치 값을 (지연을 발생시키는 것으로) 고려한다는 것을 유의하라. 지연 (Tfuture)은 0으로 설정될 수 있고, 이는 실질적으로 오로지 과거의 값만이 고려 대상이 된다는 것을 의미한다.
어느 것이 정확한 값(즉 정확한 피치 값)인지 결정하기 위해서, 기본적으로 피치 검출기가 피치의 배수 또는 역배수보다는 정확한 값을 구할 가능성이 높다고 가정한다. 피치 값의 시퀀스는, 모든 값이 서로에 대해 소정의 작은 계수 내에 있을 때 자체 부합(self-consistent)된다. 따라서, 부합된 시퀀스 내에서 2개의 연속적인 정확한 피치 값(p1, p2)은 "계수>p1/p2>1/계수"의 특성(이하에서는 계수 특성)을 갖도록 정의된다. 이러한 계수 값은 2개의 정확한 피치 값 사이에서 변동 가능한 최대값을 반영해야 한다. 일실시예로서, 대부분의 테스트에서 이 값은 1.28로 선택되었다. 일반적으로 이러한 범위는 1.0과 1.5 사이에 있다는 것을 유의하라.
일실시예에 따르면, 오리지널 (즉 검출된) 피치 값의 시퀀스는 소정의 알고리즘에 따라서 앞서 정의된 방식으로(즉, 계수 특성과 부합되도록) 부합되는 피치 값의 서브 시퀀스로 분할된다. 피치 검출기가 피치의 배수(또는 역배수)보다는 정확한 값을 구할 가능성이 높다는 가정을 기초로 하여, 부정확한 피치(배수 또는 역의 정수배)에 비해 각각의 피치 포인트에 대응하는 간격 내에서 보다 정확한 피치 값을 구할 수 있을 것이다. 간격은 d개의 미래 포인트와 그에 대응하는 개수의 과거 포인트를 포함한다. 이러한 이유 때문에, 정확한 피치 값을 갖는 서브 시퀀스는 일반적으로 다른 서브-시퀀스에 비해 더 높은 중요도(말하자면 더 많은 에너지)를 가질 것이다.
따라서, 이 실시예에 따르면, 정확한 피치 값을 선택하기 위한 기준은, 최고 중요도의 서브 시퀀스로부터 도출된 정확한 피치 값을 이용하여, 현재의 피치 값이 서브-시퀀스 내의 정확한 피치 값과 가장 부합되게 하는(최근사치가 되게 하는) 배수 또는 역의 정수배를 구할 수 있다. 일실시예를 이용하여 이하에서 보다 상세하게 설명되는 바와 같이, 현재의 피치 값이 허용되는 타이밍된 간격(일반적으로 Tpast의 과거의 피치 값 및 Tfuture의 미래의 피치 값에 걸쳐 연장되고, 여기에서 Tfuture는 허용된 지연에 따라서 결정됨) 내에서 최고 중요도의 자체 부합화된 서브-시퀀스의 그룹과 부합되도록 "피팅(fit)"하려는 시도가 이루어졌다. 자체 부합화를 위해서, 모든 서브-시퀀스의 종료점은 계수 내의 간격을 가져야 한다. 최고 중요도 등급(예를 들면 최고 에너지)을 갖는 서브 시퀀스의 그룹은 현재의 피치가 피팅되어야 하는 것으로서 선택된다. 서브 시퀀스 내의 피치 값은 경로(때때로, 궤도(trajectory)로 지칭되기도 함)를 형성한다. 잘 알려진 바와 같이, 각각의 피치는 에너지와 연관되고, 그에 따라서 일실시예에 따르면 경로의 에너지는 각각의 피치 값에 대응하는 프레임 에너지의 합계를 구함으로써 계산되고, 최고 에너지를 갖는 자체 부합화된 서브 시퀀스의 그룹이 선택된다. 본 명세서에서, 에너지라는 용어는 해당 프레임의 중요도에 대한 임의의 측정치를 나타내는 것으로 대강 사용되었다는 것을 유의하라. 따라서, 극도로 낮은 에너지를 갖는 프레임은 많은 양의 노이즈를 포함할 수 있고, 그에 따라 이러한 프레임 상에서 계산된 피치는 잘못된 것일 가능성이 더욱 높아진다. 그러나, 이는 극도로 낮은 에너지에 대해서만 그러하다는 것을 유의해야 한다. 이러한 이유 때문에, 일실시예에 의하면, 프레임의 계산된 에너지에의 소정의 낮은 전력은 에너지 그 자체보다 더 높은 중요도를 갖는 측정치가 된다.
이 실시예에 의하면, 최고 에너지를 갖는 것으로 선택된 서브 시퀀스(들)를 이용하여 과거의 피치 값 및 미래의 피치 값에 기초함으로써 현재의 피치 값을 스무싱, 즉, 부합되는 서브 시퀀스를 유지하기에 가장 근사한 현재의 피치 값의 정수배 또는 역의 정수배를 구할 수 있다.
이를 염두에 두고, 본 발명의 일실시예에 따라서 피치 시퀀스를 결정하는 흐름도를 도시하는 도 3 및 본 발명의 일실시예에 따라서 연속하는 프레임에 대한 피치 값을 찾고 피치의 서브 시퀀스를 식별하는 그래프를 도시하는 도 4를 참조하기로 한다.
도 3의 실시예에서, 부합되는 피치 서브-시퀀스는, 각각 서로 계수에 속하는, 즉 "계수>p1/p2>1/계수"에 속하는 연속적인 피치를 포함하도록 계산된다. 연속적이지 않고 단일 시간 단위만큼 떨어져 있는 피치(p1, p2)에 있어서, Lfactor로 표시된 소정의 계수가 존재하는데 이는 계수보다 더 커서 Lfactor>p1/p2>sub-1/Lfactor가 된다. 모든 피치 값이 서로 부합되는 서브-시퀀스는 부합화 서브-시퀀스이다. 본 발명의 다른 실시예에 따르면, 부합되는 서브-시퀀스는 지정된 Lfactor 특성과 부합되는 비연속적 피치를 포함할 수 있다. 각각의 부합되는 피치 값의 서브-시퀀스는 서브-시퀀스 내에서 정확한 피치가 발견된 현재의 시점에 가장 근사한 시간적 시점에 대응하는 하나의 값(테일 피치 값으로 지칭됨)을 갖는다.
이러한 절차는 오리지널 피치 값으로 개시되고, 그 출력은 스무싱된 피치 값의 세트이다. 임의의 시점인 Tcur에서 스무싱된 피치 값은 그에 선행하는 Tpast 피치 값 및 그에 후속하는 Tfuture 피치 값에 의존한다. 따라서, 도 4를 참조하면, 프레임 1 내지 6 내에서의 모든 피치 값이, 이하에서 보다 상세하게 설명되는 방식으로 이미 처리되었다고 가정한다. 도 4에 도시된 바와 같이, 이와 같이 처리된 피치 값 중 1, 2, 5 및 6은 피치 트래킹 알고리즘에 의해 정확한 피치 값(즉, 피치 검출기가 검출한 정확한 값)으로 확인되고, 그에 따라 이들을 더 이상 스무싱할 필요가 없어진다. 이와 반대로, 프레임(3) 및 프레임(4) 내의 피치 값(각각 42 및 43)은 마링된 피치 트래킹으로 분류되고, 이들을 정수배로 나누는 것에 의해 대응하는 스무싱된 값(42' 및 43')으로 스무싱한다. 직관적으로, 스무싱된 피치 값(42', 43')은 그의 인접한 값과 함께 부합되는 시퀀스를 형성하는데, 이는 각각의 피치 값은 그의 인접한 피치 값에 "근사(close)"하고, 급격한 변동(이러한 급격한 변동은 정확한 피치(44)와 마링된 피치(42) 사이의 전이로 인식된다)이 발생되지 않는다는 의미임을 유의하라.
따라서, 처음 6개의 피치 값을 처리한 후에, 프레임 7(41)의 현재의 피치 값 (Tcur)을 처리하여 그것이 정확한 값인지 마링된 값인지 여부를 판정하고, 마링된 값이면 그것을 스무싱한다. 많아야 2개의 미래 포인트, 즉 Tfuture=2(지연=2) 및 6개의 과거 포인트, 즉 Tpast=6이 허용된다. 이는 서브 시퀀스가 프레임=1(45) 내지 프레임=9(46)의 간격에 걸쳐 검색된다는 것을 의미한다. 이러한 예에서, Tmax는 5와 같고, 과거의 서브 시퀀스 중 가장 먼 거리의 테일 피치 값이 프레임=2를 선행해서는 안 된다는 것을 의미한다. 이러한 예에서 Tpast, Tfutute 및 Tmax는 오로지 예시의 목적으로 선택되었고, 제한하는 것으로 해석되어서는 안 된다.
따라서, (도 3의) 단계(31)에서, 알고리즘은 인접한 피치 값으로 이루어진 가장 긴 서브 시퀀스의 집합(p[j])을 검색하여, (A) j가 [Tcurrent-Tpast, Tcurrent+Tfuture]에 속하게 하고, (B) 각각의 서브 시퀀스에 대해 모든 피치 값이 "계수>p[j+1]/p[j]>1/계수"가 되게 한다.
검출되고 스무싱되지 않은 값(즉, 피치 값(42, 43)이 고려되고, 피치 값(42', 43')은 고려되지 않음)에 대하여 검색을 수행한다는 것을 유의하라. 도 4에 도시된 바와 같이, 3개의 부합되는 서브-시퀀스가 표시되어 있는데, 즉 피치 값(50, 51)으로 이루어지는 서브-시퀀스(47), 피치 값(42, 43)으로 이루어지는 서브-시퀀스(48) 및 피치 값(45, 44)으로 이루어지는 서브-시퀀스(49)가 표시되어 있다. 잘 관찰할 수 있도록, 서브 시퀀스(47) 내지 서브 시퀀스(49)가 약간 아래쪽으로 배치되었다는 것을 유의하라.
서브-시퀀스(47)에 초점을 맞추면, 곧바로 확인되는 바와 같이 프레임 4의 피치 값(43)이 프레임 5의 피치 값(50)보다 상당히 크고, 어떤 경우에나 P(프레임=4)/P(프레임=5)의 비율이 허용되는 계수 값을 초과하기 때문에, 50 및 51의 피치 값이 계수 값(예를 들면 계수=1.28로 가정함) 내에 속하고, 프레임 4의 피치 값(43)이 47 서브-시퀀스에 속하지 않는다는 것을 알 수 있다. 서브-시퀀스(48, 49)도 동일한 방식으로 결정된다. 모든 서브-시퀀스에 있어서, 그 시점이 현재의 시점에 가장 가까운 테일 피치 값(즉, 서브 시퀀스(49)에 대해서는 44이고, 서브 시퀀스(48)에 대해서는 43이며, 서브 시퀀스(47)에 대해서는 51임)은 현재의 시점의 Tmax(이는 이 예에서는 5이다) 내에 속한다는 것을 유의하라.
프레임 8 및 9의 피치 값(46, 52)이 앞서 설명된 계수 조건과 부합되지 않고, 그에 따라 이들이 동일한 서브 시퀀스 내에 유지될 수 없기 때문에, 미래의 서브 시퀀스(들)를 표시하지 않았음을 유의하라. 유효한 서브 시퀀스가 또한 하나의 구성 요소를 포함하는 경우에, 추가적인 2개의 서브 시퀀스는, 프레임 8에서의 피치 값(52)으로 이루어지는 제 1 부분과, 프레임 9에서의 피치 값(46)으로 이루어지는 제 2 부분을 고려해야 한다.
서브 시퀀스가 결정되면, 최고 중요도를 갖는 서브 시퀀스를 선택한다(도 3의 단계(34)). 말하자면, 단계(32, 33)를 이용하는 변형된 실시예가 이하에 설명될 것임을 유의하라.
다음으로 상술된 실시예로 되돌아가서, 일실시예에 의하면 각각의 서브-시퀀스의 중요도는 각각의 서브-시퀀스에 대한 누적 에너지 값을 결정하는 것에 의해 계산되고, 즉, 각각의 서브-시퀀스에 대해 그 성분들의 피치 값에 대한 에너지를 합산하여 각각의 서브-시퀀스에 대한 에너지 등급을 구한다. 예를 들면, 도 4에 도시된 예에서, 서브-시퀀스(47)가 최고 등급을 갖는 것으로 가정하면, 현재의 피치 값은 그것에 부합된다. 이를 위하여, (단계(35)에서) (프레임 7의) 현재의 피치에 대한 정수값을 계산하여, 선택된 서브-시퀀스(47)의 테일 피치 값(51)에 근접하게 한다. 이는 계수 제한과 명확히 부합되는 스무싱된 피치 값(53)이 그의 인접한 피치 값(52, 51)과 연결(vis-a-vis)되게 한다. 프레임 7의 오리지널 피치 값은 53이고(즉, 피치 검출기는 마링된 피치 값이 아닌 정확한 피치 값을 검출함), 즉각적인 테스트를 수행하면 이러한 피치 값이 계수 특성과 부합되고, 그에 따라 정수배를 계산하는 단계가 회피된다는 것을 유의하라.
프레임=7에 대한 계산을 종료하면, 실시간 계산은 다음 피치 값(52 또는 프레임=8)에 대해 계속 진행되고, 그 이후에도 이와 같이 진행된다.
다음으로 도 3의 단계(32, 33)로 되돌아가면, 수정된 실시예에 의한 "근사" 서브 시퀀스의 경우에, 이들은 그룹으로 집합되고, 현재의 피치 값은 그룹 내에서 대표적인 서브-시퀀스에 대해 피팅된다. 보다 구체적으로, 서브-시퀀스는 테일 피치 값에 의해 분류되고, 그 이웃하는 성분에 대해 계수만큼 차이를 갖는 성분들의 그룹으로 분할된다(단계(32)). 각 그룹의 에너지는 그룹(단계(33))을 형성하는 개별 서브-시퀀스의 에너지를 합산함으로써 획득되어, 대표적인 서브-시퀀스를 제공한다. 최대 전체 에너지를 갖는 테일의 그룹이 선택된다. 다음에, 테일 피치 값을 대표하는 그룹은, 말하자면 그룹 내의 서브-시퀀스의 별도의 테일 값들의 평균 테일 피치 값에 의해 계산된다(단계(34)). 평균은 오로지 예시일 뿐이고, Tcur에 가장 근접한 시간 주기에 대응하는 피치 값을 선택하는 것 등과 같은 다른 변형예도 적용될 수 있다는 것을 유의하라. 마지막으로, 현재의 피치 값이 계산된 평균 피치 값에 최근사값이 되도록, 현재의 피치 값을 임의의 정수로 곱하거나 나눈다(단계(35)). 예를 들면, 도 4로 되돌아가서, 테일 피치 값이 분류되면(단계(32)), 서브-시퀀스(49)의 테일 피치 값인 44와, 서브-시퀀스(47)의 테일 피치 값인 51과, (단독으로 피치(52)를 구성하는 미래의 서브-시퀀스의)의 테일 피치 값인 52가 모두 매우 가까운 값이고, 높은 등급의 그룹으로 분류된다는 것으로 확인된다. 다른 그룹은 서브-시퀀스(48)로 이루어진다 .
또한, 미래의 서브-시퀀스에 있어서 "테일" 피치는 사실상 "헤드(head)" 피치이고, 즉 서브 시퀀스 내에서 현재의 피치 값에 가장 가까운 첫 번째 값이라는 것을 유의하라. 편의상, "테일 피치 값"이라는 용어는 과거의 서브-시퀀스의 "테일" 피치 값 및 미래의 서브-시퀀스의 "헤드" 피치 값을 모두 의미한다.
다음으로 도 4의 예를 참조하면, 각 그룹 내의 대표적인 서브-시퀀스는 중요도(이 실시예에 의하면 전체 에너지임)를 결정하는 것에 의해 계산된다(단계(33)). 물론, 3개의 서브-시퀀스(47, 49, 52)로 이루어지는 그룹이 우세하다(왜냐하면 3개의 서브-시퀀스의 누적 에너지가 다른 그룹의 서브-시퀀스(48)의 누적 에너지보다 크기 때문임). 다음으로, 대표적인 테일 피치 값을 계산하고, 다시 말해 별개의 테일 피치 값(44, 51, 52)을 평균하여, 평균 테일 피치 값(단계(34))을 구하고, 앞서 언급된 방식으로 현재의 피치 값에 대한 스무싱(필요한 경우)을 대표적 피치 값에 대해 수행한다(단계(35)).
따라서, 앞서 설명된 바와 같이, 부합되는 피치들의 서브-시퀀스를 생성하고, 그 중에서 최고 중요도를 갖는 것을 선택하는 메커니즘이 제공되어 있다. 중요도는 예를 들면 에너지와, 피치 값의 품질에 대한 측정치로 측정될 수 있고, 피치 값의 품질은 신호가 검출된 피치 주파수의 주기적 신호 또는 그 조합으로 표시될 수 있는 정도를 측정한다. 필요하거나 적절한 경우에 중요도에 대한 다른 인자를 추가 또는 대체하여 사용할 수 있다. 일실시예에서, 몇몇 피치 값이 다른 피치 값에 비해 정확할 가능성이 적다면 에너지(독립적 또는 다른 파라미터와 결합되어)는 중요도 계수 계산을 고려해야 한다. 예를 들면, 매우 낮은 에너지를 갖는 프레임은 높은 에너지를 갖는 프레임에 비해 관련성이 낮을 것이다. 이와 유사하게, 피치 검출기가 해당 피치 모델이 그 프레임의 스펙트럼에 있어서 불충분한 모델이라고 확인한 프레임은 또한 제외되어야 한다. 이러한 효과에 의해 에너지 외에도, 소정 신호가 지정된 피치를 갖는 주기적 신호로 피팅될 수 있는 정도에 대한 측정치를 사용할 수 있다. 이는 일반적으로 그 값이 프레임 당 하나의 추가 숫자(0과 1 사이임)를 획득하고, 에너지에 대한 복합적인 효과를 가질 수 있다.
다른 실시예에서, 부합되는 시퀀스는 서로 부합되는 간격 내의 모든 피치 값으로 이루어질 수 있고, 여기에서 몇몇 피치 값은 소정의 정수 계수로 곱하거나 나누는 것에 의해 정규화된다. 이러한 실시예는 도 4 및 도 5를 참조하여 설명될 것이다.
따라서, 단계(61)에서 현재의 피치에 대한 정수 또는 역의 정수배를 선택한다. 도 4의 실시예에서, 여기에서도 (1 내지 6의 피치 값이 처리된 후에) 프레임 7의 피치 값이 현재 측정된다고 가정하면, 첫 번째로 샘플링된 값(41)을 취한다(즉, 정수값은 1이다).
다음으로 (단계(62)에서) 서브-시퀀스는 현재의 피치 값에서부터 (1의 정수배로) 시작하는 것으로 확인되고, 이웃하는 피치 값은 역의 정수배 또는 정수배를 적용하는 것에 의해 서브-시퀀스로 정규화되어, 최종 피치 값은 현재의 피치 값의 "계수" 내에 속하게 된다. 물론, 도 4의 예에서, 인접한 피치 값(51)은 계수 내에 속하지 않고(왜냐하면 이는 41과 연결되기 위해 급격한 변경을 나타내기 때문에), 그에 따라 정수배, 말하자면 2를 곱해서 현재의 피치 값(41)에 대해 "계수 내에 속하는" 계산된 피치 값(55)을 제공한다. 배수 계수(이 예에서는 2)는 이와 같이 계산된 피치 값(55) 내에 속한다. 이와 동일한 방식으로, 시퀀스는 허용되는 범위 내에서 역방향 및 순방향으로 연장된다. [Tcurrent-Tpast, Tcurrent +Tfuture] 간격에서, 각각의 계산된 피치 값이 인접한 (피치 값)과는 다르게 계수 내에 속하게 한다. 서브 시퀀스의 계산을 완료한 후에, 예를 들면 예를 들면 1의 배수인 계수와 연관된 피치 값의 개수(즉, 서브 시퀀스 내에서 원래대로 유지되고 정규화 처리되지 않은 피치 값의 개수)로서 그 중요도를 결정한다. 단계(63)에서, 지금까지 획득된 것 중 최고 중요도를 갖는 것에 대한 비교를 수행하고, 현재의 프레임에서 더 높은 중요도가 획득되었다면 그것을 교체한다. 이러한 방식으로 기록(record)은 지금까지의 최선의 경로로 유지된다.
다음으로 다른 서브-시퀀스를 구성하기 위해 단계(61∼63)를 반복하는데, 여기에서도 프레임 7의 피치 값으로부터 시작되지만, 이 때에는 2의 역의 배수를 갖는다. (제 1 서브-시퀀스를 회상해보면, 프레임 7의 피치 값은 1의 배수의 계수를 가짐). 따라서, 2의 역수를 적용하면(즉, 2로 나누면), 프레임 7에 대해 결과적으로 계산된 피치 값은 53이다(도 4). 다음에, (프레임 6에서) 인접한 피치 값은 프레임 7의 피치 값과 다르게 계수 내에 속하고, 곧바로 확인되는 바와 같이 프레임 6에 대한 피치 값(51)은 다른 계수에 속하고, 그에 따라서 1의 배수의 계수와 연관된다. 이와 유사하게, 제 2 서브-시퀀스는 [Tcurrent-Tpast, Tcurrent+Tfuture] 간격 내에서 역방향 및 순방향으로 연장된다. 제 2 서브-시퀀스의 중요도는 동일한 방식으로 계산되는데, 즉 그 연관된 승수(multiplier)가 1인 피치 성분의 개수로 계산된다.
서브-시퀀스가 비중첩형(49, 48, 47)인 이전의 실시예에서와 다르게, 이 실시예에 따르면 서브-시퀀스는 모든 서브-시퀀스가 Tpast 내지 Tfuture의 범위에 걸쳐 연장되는 점에서 중첩된다는 것을 유의하라.
동일한 방식으로, 모든 허용된 정수배 및 역의 배수가 소모될 때까지(단계(64)에서 "예"), 다른 서브-시퀀스는 (프레임 7의 피치 값에 대해) 말하자면 3의 역의 배수로, 다른 하나는 2의 배수로, 다른 하나는 3의 배수로 구성한다. 중요도는 각각의 서브-시퀀스에 대해 계산되고, 현재 중요도가 더 높은 것을 각 단계에서 유지한다는 것을 유의하라. 다음에 수행해야 할 것은, 중요도 경쟁에서 "승리(winning)"한 서브-시퀀스, 즉 최고 중요도 등급을 갖는 서브-시퀀스를 식별하는 것이다(단계(65)). 승리한 서브-시퀀스 내의 현재의 피치 값(프레임=7)은 이미 그와 연관된 승산 계수에 따라 이미 스무싱되어 있다. 명확하게, 승리한 서브-시퀀스 내에서 프레임=7에 대한 현재의 피치 값이 1의 승산 계수와 연관되면, 이는 피치 검출기가 정확한 피치 값과 마링되지 않은 피치 값을 검출했다는 것을 의미한다.
이러한 절차는 다음의 피치 값(프레임=8)에 대해 반복되고, 동일한 방식으로 진행된다. 또한, 이러한 실시예에 대해 여러 변형예를 적용할 수 있는데, 예를 들면 중요도는 에너지 중요도 계수 및 피치 중요도 계수의 품질에 대한 가중치 값으로 결정될 수 있다.
다른 실시예에 의하면, 서브-시퀀스는 또한 단일 제로 피치 포인트를 "스킵 오버(skip over)"할 수 있고, 계속해서 더 큰 계수를 결정할 수 있게 한다는 것을 유의하라. 예를 들면, 사용된 정규 계수는 1.28이고, 더 큰 계수, 예를 들면 1.4를 사용한다. 후자의 계수는 더 불리한 경우인 2개의 단계에 대한 건너뛰기(jump)를 보다 정확하게 나타내기 때문에 사용되었다. 1.28의 2개의 연속적인 점프는 적절한 피치에 속할 가능성이 작다.
여러 변형 및 수정이 이루어질 수 있다는 것을 유의하라. 예를 들면, 상술된 제 1 실시예는 다음과 같은 추가 단계와 통합되도록 변형될 수 있다.
피치 궤도가 계수보다 더 큰 점프를 포함하는 경우, [Tcurrent-Tpast, Tcurrent+Tfuture]의 간격 내에 발생되는 모든 피치 값의 세트는 분류되고 서브셋으로 분할되어, 각 서브셋 내에서 연속적인 포인트 간의 거리는 계수를 초과하지 않지만, 서브셋들은 계수보다 더 큰 점프에 의해 분리되고, 위에서 확인된 각각의 피치 궤도는 정의에 의해서 서브셋 중의 하나에 속해야 하고, 나머지 다른 서브셋에는 속하지 않아야 한다. 이러한 이유 때문에, 상기 알고리즘 내에 추가 단계를 부가할 수 있다. 이는 분류된 피치 값의 세트를 계수보다 더 큰 점프로 분리된 서브셋으로 분할하는 것을 포함한다. 최대 에너지를 갖는 서브셋을 선택한다. 상술된 알고리즘 내에서 고려된 유일한 궤도는 선택된 서브셋 내의 값을 갖는 궤도이다.
본 발명에 따른 시스템은 적절히 프로그래밍된 컴퓨터일 수 있다는 것을 이해할 것이다. 이와 유사하게, 본 발명은 본 발명의 방법을 실행하기 위해 컴퓨터에 의해 판독 가능한 컴퓨터 프로그램을 고려한다. 본 발명은 본 발명의 방법을 실행하기 위해 머신에 의해 실행 가능한 인스트럭션의 프로그램을 실체적으로 구현하는 머신 판독 가능 메모리를 추가적으로 고려한다.

Claims (26)

  1. 피치 신호(pitch signal)를 트래킹(tracking)하는 방법으로서,
    (i) 연속적인 피치 값으로 형성되는 검출된 피치 신호를 수신하는 단계를 포함하고,
    상기 검출된 신호 내의 각각의 현재의 피치 값에 대해서, 적어도
    (ii) 인접한 피치 값과 부합되는 피치 값으로 적어도 하나의 서브-시퀀스(sub-sequence)를 구성하는 단계와,
    (iii) 상기 적어도 하나의 서브 시퀀스의 중요도를 계산하고, 최고 중요도(highest significance)를 갖는 서브-시퀀스 또는 부합되는 서브 시퀀스의 집합을 선택하는 단계와,
    (iv) 상기 현재의 피치 값이 최고 중요도를 갖는 상기 서브-시퀀스와 부합되지 않으면, 상기 현재의 피치 값을 1보다 큰 정수값으로 나누거나 곱하는 것에 의해 상기 현재의 피치 값을 스무싱(smothening)하여, 최고 중요도를 갖는 상기 서브-시퀀스와 부합되게 하는 단계
    를 수행하는 피치 신호의 트래킹 방법.
  2. 제 1 항에 있어서,
    상기 (ii) 단계는 상기 서브-시퀀스 중 적어도 하나의 서브-시퀀스를 [Tcurrent-Tpast,Tcurrent]의 시간 범위 내에 속하는 것으로 계산된 피치 값으로 구성하는 단계를 포함하되, Tcurrent는 상기 현재의 피치 값에 대응하는 시점이고, Tpast는 상기 피치 값에 선행하는 시점(H)이며,
    상기 서브-시퀀스 내에서 2개의 연속적인 피치 값은 각각 소정 계수만큼의 차이를 갖고(1.5>계수>1), 상기 [Tcurrent-Tpast,Tcurrent] 범위 내의 모든 피치 값은 상기 서브-시퀀스에 속하는
    피치 신호의 트래킹 방법.
  3. 제 1 항에 있어서,
    상기 (ii) 단계는, 상기 서브-시퀀스 중 적어도 하나의 서브-시퀀스를 [Tcurrent,Tfuture+Tcurrent]의 범위 내에 속하는 피치 값으로 구성하는 단계를 포함하되, Tcurrent는 상기 현재의 피치 값이고, Tfuture는 향후의 피치 값(D)이며,
    상기 서브-시퀀스 내에서 2개의 연속적인 피치 값은 각각 소정 계수만큼의 차이를 갖고(1.5>계수>1), 상기 [Tcurrent,Tfuture+Tcurrent] 범위 내의 모든 피치 값은 상기 서브-시퀀스에 속하는
    피치 신호의 트래킹 방법.
  4. 제 2 항에 있어서,
    상기 (ii) 단계는, 상기 서브-시퀀스 중 적어도 하나의 서브-시퀀스를 [Tcurrent,Tfuture+Tcurrent]의 범위 내에 속하는 피치 값으로 구성하는 단계를 포함하되, Tcurrent는 상기 현재의 피치 값이고, Tfuture는 향후의 피치 값(D)이며,
    상기 서브-시퀀스 내에서 2개의 연속적인 피치 값은 각각 소정 계수만큼의 차이를 갖고(1.5>계수>1), 상기 [Tcurrent,Tfuture+Tcurrent] 범위 내의 모든 피치 값은 상기 서브-시퀀스에 속하는
    피치 신호의 트래킹 방법.
  5. 제 2 항에 있어서,
    상기 계수는 1.28인 피치 신호의 트래킹 방법.
  6. 제 3 항에 있어서,
    상기 계수는 1.28인 피치 신호의 트래킹 방법.
  7. 제 4 항에 있어서,
    상기 계수는 1.28인 피치 신호의 트래킹 방법.
  8. 제 1 항에 있어서,
    상기 서브-시퀀스 내의 각각의 피치 값은 에너지 값과 연관되고,
    상기 (iii) 단계에서 명시된 상기 중요도는 상기 서브-시퀀스의 에너지에 의존하며, 상기 서브-시퀀스의 에너지는 상기 서브-시퀀스의 상기 피치 값의 상기 에너지 값의 함수인
    피치 신호의 트래킹 방법.
  9. 제 8 항에 있어서,
    상기 서브 시퀀스의 상기 에너지는 상기 서브-시퀀스의 상기 피치 값에 대한 상기 에너지값들의 합계인 피치 신호의 트래킹 방법.
  10. 제 1 항에 있어서,
    각각의 상기 서브-시퀀스는 테일 피치 값(tail pitch value)을 갖고,
    상기 (iv) 단계는 1보다 큰 정수값으로 나누거나 곱하는 것에 의해 상기 현재의 피치 값을 스무싱(smoothening)하여, 최고 중요도를 갖는 상기 서브-시퀀스의 상기 테일 피치 값과 부합되게 하는
    피치 신호의 트래킹 방법.
  11. 제 1 항에 있어서,
    상기 (iii) 단계는 상기 서브-시퀀스의 테일 피치 값을 분류(sorting)하고, 상기 분류된 테일 피치 값에 따라서 근사한 테일 피치 값을 갖는 서브-시퀀스가 동일한 그룹이 되도록 상기 서브-시퀀스를 그룹화(grouping)하는 단계를 포함하고,
    상기 중요도 계산은 각 그룹 내의 모든 서브-시퀀스의 중요도를 계산하고, 최고 중요도를 갖는 그룹을 선택하는 단계를 포함하며,
    상기 (iv) 단계는 상기 현재의 피치 값이 최고 중요도를 갖는 상기 그룹 내의 상기 서브-시퀀스와 부합되지 않으면, 1보다 큰 정수값으로 현재의 피치 값을 나누거나 곱하는 것에 의해 상기 현재의 피치 값을 스무싱하여 최고 중요도를 갖는 상기 그룹에 부합되게 하는
    피치 신호의 트래킹 방법.
  12. 제 11 항에 있어서,
    최고 중요도를 갖는 상기 그룹 내의 상기 서브-시퀀스의 상기 테일 피치 값을 평균하여, 평균 테일 피치 값을 구하고,
    상기 (iv) 단계는 상기 현재의 피치 값이 상기 평균 테일 피치 값과 부합되지 않으면, 1보다 큰 정수값으로 현재의 피치 값을 나누거나 곱하는 것에 의해 상기 현재의 피치 값을 스무싱하여 상기 평균 테일 피치 값과 부합되게 하는
    피치 신호의 트래킹 방법.
  13. 제 11 항에 있어서,
    서브-시퀀스 내의 각각의 피치 값은 에너지 값과 연관되고,
    상기 (iii) 단계에 명시된 상기 중요도는 상기 서브 시퀀스의 상기 에너지에 의존하며, 상기 서브 시퀀스의 상기 에너지는 상기 서브-시퀀스의 상기 피치 값의 상기 에너지 값의 함수인
    피치 신호의 트래킹 방법.
  14. 제 13 항에 있어서,
    상기 서브-시퀀스의 상기 에너지는 상기 서브-시퀀스의 상기 피치 값의 상기 에너지 값의 합계인 피치 신호의 트래킹 방법.
  15. 피치 신호를 트래킹하는 방법으로서,
    (i) 연속적인 피치 값으로 형성되는 검출된 피치 신호를 수신하는 단계를 포함하고,
    상기 검출된 신호 중 각각의 현재의 피치 값과, 그에 대한 임의의 정수배 및 그 역의 정수배(상기 정수<사전 결정된 값)에 대해서, 적어도
    (ii) 인접한 피치 값에 대해 부합되는 피치 값으로 적어도 하나의 서브-시퀀스를 구성하여, 상기 검출된 피치 값이 상기 서브-시퀀스와 부합되지 않으면, 1보다 큰 정수값으로 상기 검출된 피치 값을 나누거나 곱하는 것에 의해 상기 검출된 피치 값이 상기 서브-시퀀스와 부합되게 하는 단계와,
    (iii) 상기 적어도 하나의 서브-시퀀스의 중요도를 계산하고, 최고 중요도를 갖는 서브-시퀀스를 선택하여, 상기 현재의 피치 값이 스무싱될 수 있게 하는 단계
    를 수행하는 피치 신호의 트래킹 방법.
  16. 제 15 항에 있어서,
    상기 (ii) 단계는 상기 서브-시퀀스 중 적어도 하나의 서브-시퀀스를 [Tcurrent-Tpast,Tcurrent]의 시간 범위 내에 속하는 것으로 계산된 피치 값으로 구성하는 단계를 포함하되, Tcurrent는 상기 현재의 피치 값에 대응하는 시점이고, Tpast는 상기 피치 값에 선행하는 시점(H)이며,
    상기 서브-시퀀스 내에서 2개의 연속적인 피치 값은 각각 소정 계수만큼의 차이를 갖고(1.5>계수>1), 상기 [Tcurrent-Tpast,Tcurrent] 범위 내의 모든 피치 값은 상기 서브-시퀀스에 속하는
    피치 신호의 트래킹 방법.
  17. 제 15 항에 있어서,
    상기 (ii) 단계는, 상기 서브-시퀀스 중 적어도 하나의 서브-시퀀스를 [Tcurrent,Tfuture+Tcurrent]의 범위 내에 속하는 피치 값으로 구성하는 단계를 포함하되, Tcurrent는 상기 현재의 피치 값이고, Tfuture는 향후의 피치 값(D)이며,
    상기 서브-시퀀스 내에서 2개의 연속적인 피치 값은 각각 소정 계수만큼의 차이를 갖고(1.5>계수>1), 상기 [Tcurrent,Tfuture+Tcurrent] 범위 내의 모든 피치 값은 상기 서브-시퀀스에 속하는
    피치 신호의 트래킹 방법.
  18. 제 16 항에 있어서,
    상기 (ii) 단계는, 상기 서브-시퀀스 중 적어도 하나의 서브-시퀀스를 [Tcurrent,Tfuture+Tcurrent]의 범위 내에 속하는 피치 값으로 구성하는 단계를 포함하되, Tcurrent는 상기 현재의 피치 값이고, Tfuture는 향후의 피치 값(D)이며,
    상기 서브-시퀀스 내에서 2개의 연속적인 피치 값은 각각 소정 계수만큼의 차이를 갖고(1.5>계수>1), 상기 [Tfuture-Tcurrent] 범위 내의 모든 피치 값은 상기 서브-시퀀스에 속하는
    피치 신호의 트래킹 방법.
  19. 제 16 항에 있어서,
    상기 계수는 1.28인 피치 신호의 트래킹 방법.
  20. 제 17 항에 있어서,
    상기 계수는 1.28인 피치 신호의 트래킹 방법.
  21. 제 17 항에 있어서,
    상기 계수는 1.28인 피치 신호의 트래킹 방법.
  22. 제 15 항에 있어서,
    상기 중요도는 상기 서브 시퀀스 내에서 상기 나눗셈 또는 곱셈으로 연산되지 않은 피치 값의 개수에 의존하는 피치 신호의 트래킹 방법.
  23. 피치 신호를 트래킹하는 시스템으로서,
    연속적인 피치 값으로 형성되는 검출된 피치 신호를 수신하는 수신기를 포함하고,
    프로세서를 이용하여 상기 검출된 신호 내의 각각의 현재의 피치 값에 대해서, 적어도
    (i) 인접한 피치 값과 부합되는 피치 값으로 적어도 하나의 서브-시퀀스를 구성하고,
    (ii) 상기 적어도 하나의 서브 시퀀스의 중요도를 계산하고, 최고 중요도를 갖는 서브-시퀀스 또는 부합되는 서브 시퀀스의 집합을 선택하며,
    (iii) 상기 현재의 피치 값이 최고 중요도를 갖는 상기 서브-시퀀스와 부합되지 않으면, 상기 현재의 피치 값을 1보다 큰 정수값으로 나누거나 곱하는 것에 의해 상기 현재의 피치 값을 스무싱하여, 최고 중요도를 갖는 상기 서브-시퀀스와 부합되게 하는 것
    을 수행하는 피치 신호의 트래킹 시스템.
  24. 피치 신호를 트래킹하는 시스템으로서,
    연속적인 피치 값으로 이루어지는 검출된 피치 신호를 수신하는 수신기를 포함하고,
    프로세서를 이용하여 상기 검출된 신호 내에서 각각의 현재의 피치 값과, 그에 대한 임의의 정수배 및 그 역의 정수배(상기 정수<사전 결정된 값)에 대해서, 적어도
    (i) 인접한 피치 값에 대해 부합되는 피치 값으로 적어도 하나의 서브-시퀀스를 구성하여, 상기 검출된 피치 값이 상기 서브-시퀀스와 부합되지 않으면, 1보다 큰 정수값으로 상기 검출된 피치 값을 나누거나 곱하는 것에 의해 상기 검출된 피치 값이 상기 서브-시퀀스와 부합되게 하고,
    (ii) 상기 적어도 하나의 서브-시퀀스의 중요도를 계산하고, 최고 중요도를 갖는 서브-시퀀스를 선택하여, 상기 현재의 피치 값이 스무싱될 수 있게 하는 것
    을 수행하는 피치 신호의 트래킹 시스템.
  25. 피치 신호에 대한 트래킹을 수행하는 컴퓨터 코드를 포함하는 컴퓨터 제품으로서,
    연속적인 피치 값으로 형성되는 검출된 피치 신호를 수신하는 수신기를 포함하고,
    상기 검출된 신호 내의 각각의 현재의 피치 값에 대해서, 적어도
    (i) 인접한 피치 값과 부합되는 피치 값으로 적어도 하나의 서브-시퀀스를 구성하고,
    (ii) 상기 적어도 하나의 서브 시퀀스의 중요도를 계산하고, 최고 중요도를 갖는 서브-시퀀스 또는 부합되는 서브 시퀀스의 집합을 선택하며,
    (iii) 상기 현재의 피치 값이 최고 중요도를 갖는 상기 서브-시퀀스와 부합되지 않으면, 상기 현재의 피치 값을 1보다 큰 정수값으로 나누거나 곱하는 것에 의해 상기 현재의 피치 값을 스무싱하여, 최고 중요도를 갖는 상기 서브-시퀀스와 부합되게 하는 것
    을 수행하는 컴퓨터 제품.
  26. 피치 신호에 대한 트래킹을 수행하는 컴퓨터 코드를 포함하는 컴퓨터 제품으로서,
    (i) 연속적인 피치 값으로 형성되는 검출된 피치 신호를 수신하는 단계를 포함하고,
    상기 검출된 신호 내에서 각각의 현재의 피치 값과, 그에 대한 임의의 정수배 및 그 역의 정수배(상기 정수<사전 결정된 값)에 대해서, 적어도
    (ii) 인접한 피치 값에 대해 부합되는 적어도 하나의 서브-시퀀스를 구성하여, 상기 검출된 피치 값이 상기 서브-시퀀스와 부합되지 않으면, 1보다 큰 정수값으로 상기 검출된 피치 값을 나누거나 곱하는 것에 의해 상기 검출된 피치 값이 상기 서브-시퀀스와 부합되게 하는 단계와,
    (ii) 상기 적어도 하나의 서브-시퀀스의 중요도를 계산하고, 최고 중요도를 갖는 서브-시퀀스를 선택하여, 상기 현재의 피치 값이 스무싱될 수 있게 하는 단계
    를 수행하는 컴퓨터 제품.
KR1020057009532A 2002-12-27 2003-12-03 피치 신호의 트래킹 방법, 피치 신호의 트래킹 시스템 및 컴퓨터 판독 가능 기록매체 KR100920625B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/331,451 2002-12-27
US10/331,451 US7251597B2 (en) 2002-12-27 2002-12-27 Method for tracking a pitch signal

Publications (2)

Publication Number Publication Date
KR20050085166A true KR20050085166A (ko) 2005-08-29
KR100920625B1 KR100920625B1 (ko) 2009-10-08

Family

ID=32654736

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057009532A KR100920625B1 (ko) 2002-12-27 2003-12-03 피치 신호의 트래킹 방법, 피치 신호의 트래킹 시스템 및 컴퓨터 판독 가능 기록매체

Country Status (8)

Country Link
US (1) US7251597B2 (ko)
EP (1) EP1579423B1 (ko)
JP (1) JP4336316B2 (ko)
KR (1) KR100920625B1 (ko)
CN (1) CN100578611C (ko)
AU (1) AU2003282317A1 (ko)
TW (1) TWI238378B (ko)
WO (1) WO2004059616A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783488B2 (en) * 2005-12-19 2010-08-24 Nuance Communications, Inc. Remote tracing and debugging of automatic speech recognition servers by speech reconstruction from cepstra and pitch information
JP4882899B2 (ja) * 2007-07-25 2012-02-22 ソニー株式会社 音声解析装置、および音声解析方法、並びにコンピュータ・プログラム
JP5974436B2 (ja) * 2011-08-26 2016-08-23 ヤマハ株式会社 楽曲生成装置
CN103714824B (zh) * 2013-12-12 2017-06-16 小米科技有限责任公司 一种音频处理方法、装置及终端设备
TWI643183B (zh) * 2017-09-22 2018-12-01 財團法人鞋類暨運動休閒科技研發中心 Scale recognition module

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3978287A (en) * 1974-12-11 1976-08-31 Nasa Real time analysis of voiced sounds
US4076958A (en) * 1976-09-13 1978-02-28 E-Systems, Inc. Signal synthesizer spectrum contour scaler
US4696038A (en) * 1983-04-13 1987-09-22 Texas Instruments Incorporated Voice messaging system with unified pitch and voice tracking
US4731846A (en) * 1983-04-13 1988-03-15 Texas Instruments Incorporated Voice messaging system with pitch tracking based on adaptively filtered LPC residual signal
US4879748A (en) * 1985-08-28 1989-11-07 American Telephone And Telegraph Company Parallel processing pitch detector
US4969193A (en) * 1985-08-29 1990-11-06 Scott Instruments Corporation Method and apparatus for generating a signal transformation and the use thereof in signal processing
US4809334A (en) * 1987-07-09 1989-02-28 Communications Satellite Corporation Method for detection and correction of errors in speech pitch period estimates
US5226108A (en) * 1990-09-20 1993-07-06 Digital Voice Systems, Inc. Processing a speech signal with estimated pitch
US5704000A (en) * 1994-11-10 1997-12-30 Hughes Electronics Robust pitch estimation method and device for telephone speech
US5774837A (en) * 1995-09-13 1998-06-30 Voxware, Inc. Speech coding system and method using voicing probability determination
US5864795A (en) * 1996-02-20 1999-01-26 Advanced Micro Devices, Inc. System and method for error correction in a correlation-based pitch estimator
US6330533B2 (en) * 1998-08-24 2001-12-11 Conexant Systems, Inc. Speech encoder adaptively applying pitch preprocessing with warping of target signal
JP3594854B2 (ja) * 1999-11-08 2004-12-02 三菱電機株式会社 音声符号化装置及び音声復号化装置
US6917912B2 (en) * 2001-04-24 2005-07-12 Microsoft Corporation Method and apparatus for tracking pitch in audio analysis

Also Published As

Publication number Publication date
CN1729508A (zh) 2006-02-01
CN100578611C (zh) 2010-01-06
JP4336316B2 (ja) 2009-09-30
EP1579423B1 (en) 2012-05-23
TWI238378B (en) 2005-08-21
WO2004059616A1 (en) 2004-07-15
EP1579423A1 (en) 2005-09-28
US7251597B2 (en) 2007-07-31
KR100920625B1 (ko) 2009-10-08
US20040128124A1 (en) 2004-07-01
JP2006512604A (ja) 2006-04-13
TW200428356A (en) 2004-12-16
AU2003282317A1 (en) 2004-07-22

Similar Documents

Publication Publication Date Title
US5091948A (en) Speaker recognition with glottal pulse-shapes
US7272551B2 (en) Computational effectiveness enhancement of frequency domain pitch estimators
KR100880480B1 (ko) 디지털 오디오 신호의 실시간 음악/음성 식별 방법 및시스템
US5749068A (en) Speech recognition apparatus and method in noisy circumstances
US5774836A (en) System and method for performing pitch estimation and error checking on low estimated pitch values in a correlation based pitch estimator
US20100268530A1 (en) Signal Pitch Period Estimation
JPH0632028B2 (ja) 音声分析方式
JP2002516420A (ja) 音声コーダ
JP6035702B2 (ja) 音響処理装置および音響処理方法
US7626110B2 (en) Energy-based audio pattern recognition
Uhle et al. Estimation of tempo, micro time and time signature from percussive music
EP2402937A1 (en) Music retrieval apparatus
US7563971B2 (en) Energy-based audio pattern recognition with weighting of energy matches
JP5141397B2 (ja) 音声処理装置およびプログラム
EP0882287B1 (en) System and method for error correction in a correlation-based pitch estimator
Holzapfel et al. Beat tracking using group delay based onset detection
JPH09512645A (ja) マルチパルス分析音声処理システムおよび方法
KR100920625B1 (ko) 피치 신호의 트래킹 방법, 피치 신호의 트래킹 시스템 및 컴퓨터 판독 가능 기록매체
WO1997035301A1 (en) Vocoder system and method for performing pitch estimation using an adaptive correlation sample window
JPH1097294A (ja) 音声符号化装置
KR20020084199A (ko) 파라메트릭 엔코딩에서 신호 성분들의 링킹
Theimer et al. Definitions of audio features for music content description
JP4128848B2 (ja) 音高音価決定方法およびその装置と、音高音価決定プログラムおよびそのプログラムを記録した記録媒体
Tryfou et al. Tempo Estimation Based on Linear Prediction and Perceptual Modelling.
Buza et al. Algorithm for detection of voice signal periodicity

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J501 Disposition of invalidation of trial
J201 Request for trial against refusal decision
AMND Amendment
E902 Notification of reason for refusal
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee