KR101046147B1 - 디지털 오디오 신호의 고품질 신장 및 압축을 제공하기위한 시스템 및 방법 - Google Patents

디지털 오디오 신호의 고품질 신장 및 압축을 제공하기위한 시스템 및 방법 Download PDF

Info

Publication number
KR101046147B1
KR101046147B1 KR1020040072045A KR20040072045A KR101046147B1 KR 101046147 B1 KR101046147 B1 KR 101046147B1 KR 1020040072045 A KR1020040072045 A KR 1020040072045A KR 20040072045 A KR20040072045 A KR 20040072045A KR 101046147 B1 KR101046147 B1 KR 101046147B1
Authority
KR
South Korea
Prior art keywords
segment
segments
frame
signal
delete delete
Prior art date
Application number
KR1020040072045A
Other languages
English (en)
Other versions
KR20050026884A (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 KR20050026884A publication Critical patent/KR20050026884A/ko
Application granted granted Critical
Publication of KR101046147B1 publication Critical patent/KR101046147B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01LMEASURING FORCE, STRESS, TORQUE, WORK, MECHANICAL POWER, MECHANICAL EFFICIENCY, OR FLUID PRESSURE
    • G01L19/00Details of, or accessories for, apparatus for measuring steady or quasi-steady pressure of a fluent medium insofar as such details or accessories are not special to particular types of pressure gauges
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/04Time compression or expansion
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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/93Discriminating between voiced and unvoiced parts of speech signals
    • G10L2025/935Mixed voiced class; Transitions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Abstract

패킷 기반 네트워크를 통해 수신된 오디오 신호들의 프레임을 자동으로 신장(stretching) 및 압축(compressing)시키기 위한 적응성 "시간 오디오 스케일러(temporal audio scaler)"가 제공된다. 현재 프레임의 세그먼트들을 압축 또는 신장시키기 이전에, 상기 시간 오디오 스케일러는 먼저 세그먼트들을 신장 및 압축시키는데 있어 동작들을 일치시키기 위해 사용되는 신호 템플릿의 크기를 정하기 위하여 각 프레임에 대한 피치 주기(pitch period)를 계산한다. 또한, 상기 시간 오디오 스케일러는 각각의 프레임을 포함하는 세그먼트들의 타입 또는 타입들을 판단한다. 이러한 세그먼트 타입들은 "음성(voiced)" 세그먼트들, "무음(unvoiced)" 세그먼트들, 및 음성 및 무음성 부분들 모두를 포함하는 "혼합(mixed)" 세그먼트들을 포함한다. 각 프레임의 세그먼트들에 적용되는 신장 또는 압축 방법들은 각 프레임을 포함하는 세그먼트들의 타입에 의존한다. 또한, 전체적인 목표 신장 또는 압축 비율을 각각의 프레임에 대하여 여전히 유지하면서 신호 아티팩트(artifact)들을 최소화하기 위하여, 특정 세그먼트들에 적용되는 신장 및 압축의 양이 자동적으로 변할 수 있다.
Figure R1020040072045
프레임, 음성 세그먼트, 무음성 세그먼트, 혼합 세그먼트, 오디오 스케일러, 신호 신장, 신호 압축, 패킷

Description

디지털 오디오 신호의 고품질 신장 및 압축을 제공하기 위한 시스템 및 방법{A SYSTEM AND METHOD FOR PROVIDING HIGH-QUALITY STRETCHING AND COMPRESSION OF A DIGITAL AUDIO SIGNAL}
본 발명의 명확한 특징들, 태양들 및 이점들이 이하의 상세한 설명, 첨부된 청구항 및 첨부된 도면과 관련하여 더욱 잘 이해될 것이다.
도 1은 오디오 신호의 세그먼트들의 압축 및 신장을 위한 예시적인 시스템을 구성하는 범용 컴퓨팅 장치를 도시하는 일반적인 시스템 도면.
도 2는 오디오 신호의 세그먼트들의 압축 및 신장을 위한 예시적인 프로그램 모듈들을 도시하는 예시적인 구조도.
도 3은 오디오 신호의 음성 세그먼트들을 신장시키기 위한 예시적인 시스템 흐름도.
도 4는 오디오 신호의 무음성 세그먼트들을 신장시키기 위한 예시적인 시스템 흐름도.
도 5는 오디오 신호의 무음성 세그먼트들을 신장시키기 위한 대안적 실시예의 예시적 시스템 흐름도.
도 6은 오디오 신호의 무음성 세그먼트들을 신장시키기 위한 대안적 실시예의 예시적 시스템 흐름도.
도 7은 오디오 신호의 신장으로부터 초래되는 청취상의 변화를 최소화하기 위한 세그먼트 근원 지점들(segment origin points)을 선택하기 위한 예시적인 시스템 흐름도.
*도면의 주요 부분에 대한 부호의 설명*
130 : 시스템 메모리
134 : 운영 시스템(OS)
147 : 프로그램 데이터
162 : 키보드
173 : 광역 네트워크
180 : 원거리 컴퓨터
본 발명은 오디오 신호들의 자동적인 시간-스케일(time-scale) 변경에 관한 것으로서, 특히, 음성 또는 다른 오디오를 포함하는 오디오 신호 세그먼트들의 고품질 신장 및 압축을 제공하는 방법 및 시스템에 관한 것이다.
통상적으로, 음성(speech) 기반 오디오 신호에서의 프레임들과 같은 오디오 세그먼트들을 연장 또는 단축시키는 것은, 각각 음성 신장(speech stretching) 및 음성 압축(speech compression)으로 불려진다. 많은 에플리케이션들의 경우에, 신호에서의 음성에 대한 인지 품질을 향상시키거나 지연 현상(delay)을 감소시키기 위하여, 신호에서의 음성 또는 무음(silence)의 특정 세그먼트들을 신장 또는 압축시킬 필요가 있다. 예를 들면, 음성의 명확성을 향상시키거나, 음성 신호에 손실이 있거나 잡음이 있는 프레임들을 대체하기 위해, 또는 프레임이 일정한 적응성 디-지터링(de-jittering) 알고리즘에서 사용되는 경우와 같이, 지연된 음성 데이터를 대기하는 경우에 부가적인 시간을 제공하기 위하여 신장이 종종 사용된다. 유사하게, 청취 시간을 줄이기 위해서 기록된 신호의 속도를 높이는 것, 신호의 전송 비트율을 줄이는 것, 전체 전송 시간을 줄이기 위해서 신호의 세그먼트들을 촉진하는 것 및 신호가 신호 프레임들의 일정한 타입의 처리에 따르면서 실시간에 더 가깝게 전송될 수 있도록 전송 지연을 줄이는 것을 포함하는 많은 목적들을 위해 음성의 단축 또는 압축이 사용된다.
예를 들면, 인터넷 또는 다른 방송 네트워크와 같은, 기존 패킷 통신 시스템들에는 보통 손실이 존재한다. 환언하면, 모든 전송된 패킷이, 제 시간에, 오류 없이, 심지어는 정확한 순서로 전달되는 것도 보장할 수 없다. 패킷들이 재전송되거나, 정확하게 정렬되거나 또는 일정한 형태의 오류 수정 체계rror correction scheme)를 사용해서 수정되는 것을 수신기가 기다릴 수 있다면, 이러한 네트워크들에 손실이 고유하게 존재한다는 사실은 문제가 되지 않는다. 하지만, 예를 들면, 이러한 패킷 기반 네트워크들에 대한 음성(voice)-기반 통신 시스템들과 같은 준 실시간 에플리케이션들(near real-time applications)에 대해서, 수신기는 통신에서 과도하게 큰 래그(lag) 또는 지연(delay)없이 패킷들이 재전송되거나, 정확하게 정렬되거나 또는 수정되는 것을 기다릴 수 없다.
일부 기존의 체계들은 단순히 수신기가 분실되거나 손상된 패킷들을 무음(silence)으로 대체함으로써 패킷-기반 네트워크에 대한 음성 통신들의 문제들을 해결한다. 패킷 수신 시간들 사이에서의 빈번한 가변 지연(variable delay)에 관계없이 관련된 체계들은 단순히 수신한 대로 수신된 프레임들을 재생한다. 불행하게도, 이러한 방법들은 구현하기에는 매우 단순하지만, 통상적으로, 그 결과는 쉽게 인지되는 아티팩트(artifact)들을 갖는 신호로서, 인지할 정도로 낮은 품질 신호를 초래하게 된다.
더욱 정교한 체계는 최대 허용가능한 분실 패킷 비율을 증가시키기 위해서 이전에 정확하게 수신된 패킷들로부터의 파형 세그먼트들을 이용하여 분실된 음성 패킷들을 대체하는 것에 의해서 더욱 좋은 인지 신호 품질을 제공하려고 노력한다. 이러한 체계는, 손실 패킷들을 대신하기 위한 대체 파형들을 선택하기 위하여 패킷 지속(packet duration) 및 패킷 손실(packet loss) 비율의 함수로써 파형 대체 실패에 대한 가능성 예측에 기초한다. 또한, 이러한 체계는 대체 파형들을 선택하기 위한 피치(pitch), 및 음성의 분명한 평가(explicit estimates of voicing) 또는 신호 패턴 일치(signal pattern matching) 기술 중 하나를 사용한다. 또한, 파형 대체에 이어, 분실되거나 손상된 패킷을 대신하기 위해서 대체 파형들이 사용된 패킷 경계에서의 불연속들 사이에서 경계를 평탄하게 함으로써 왜곡의 인지를 더욱 감소시킬 수 있다. 불행하게도, 이러한 체계는 손실된 프레임을 단순히 비활동 상태로 대체하는 것에 비하여 뚜렷한 개선을 보여주는 반면에, 쉽게 인지되는 오디오 아티팩트들이 재구성된 신호에서도 여전히 존재한다.
다른 기존 체계는, 패킷 수신 지연 또는 손실에 응답하여 (신장 또는 압축을 통해서) 개별 음성 패킷들을 가변적으로 시간 스케일링(scaling)하여 분실 또는 손상된 프레임들의 패킷 기반 대체(packet-based replacement)를 제공함으로써, 인지된 오디오 아티팩트 즉, 인지된 신호 품질의 문제를 해결하려고 노력한다. 특히, 이러한 체계는 크기가 조정된 패킷들에서 인지될 아티팩트들을 최소화시키면서 하나 이상의 패킷들의 시간 스케일링을 달성하기 위해서 "WSOLA(waveform similarity overlap-add)"로 불려지는 기존 방법의 버전을 사용한다.
WSOLA 및 관련된 방법들의 기본 개념은 입력 패킷들을 동일한 길이의 중첩된 세그먼트들(overlapping segments)로 분해하는 것을 포함한다. 이러한 중첩된 세그먼트들은, 희망하는 출력 길이를 생성하는 정도의 중첩을 갖는 출력 세그먼트를 형성하기 위해서, 중첩 영역들의 평활화(smoothing)와 함께 기존의 상관(correlation) 프로세스를 통해 재정렬되고 첨가된다. 결과적으로, 합성 세그먼트(complex segment)는 인지된 패킷 지연 또는 손실을 숨기거나 감추는 데 유용하다. 불행하게도, 이런 체계는 이전의 음성 신장 및 압축 방법들에 비하여 중요한 개선을 제공하는 반면에, 신장 및 압축된 오디오 신호들의 인지된 품질면에서의 개선에 대해서는 여전히 기본적인 문제가 남아있다.
음성 및 다른 오디오를 포함한 오디오 신호들에 대해 고품질 시간 스케일 변경을 제공하는 시스템 및 방법이 필요하다. 특히, 그러한 시스템 및 방법은 재구성된 신호에서의 인지된 아티팩트들을 최소화하는 한편 음성 신장 및 압축을 제공 해야 한다. 또한, 그러한 시스템 및 방법은 가변적인 네트워크 패킷 지연 및 손실을 책임질 수 있는 가변적인 압축 및 신장을 제공해야 한다.
명확성(intelligibility)을 향상시키기거나, 청취시간을 감소시키기 위하여, 또는 인터넷처럼 손실이 있고 지연되기 쉬운 패킷 기반 네트워크를 통해서 전송되고 그후 고객 컴퓨터 또는 수신기에서 재구성되는 신호들의 품질을 향상시키기 위하여, 음성을 포함한 오디오 신호들의 시간-스케일 변경이 오랜 기간 사용되어 왔다. 예를 들면, 많은 에플리케이션들에서, 음성을 포함하는 오디오 신호의 하나 이상의 프레임들을 압축하거나 신장시킬 필요가 있다. 보통, 신장은 손실있고, 지나치게 지연되거나, 또는 잡음있는 프레임들을 대체하기 위하여, 또는 디-지터링(de-jittering) 알고리즘에서 지연된 음성 패킷들을 대기하는 경우에 부가적인 시간을 제공하기 위하여, 신호에서의 음성의 세그먼트의 지속 시간을 연장시켜서, 빨리 말하는 사람의 명확성을 향상시키는 데 사용된다. 유사하게, 청취 시간을 감소시키기고, 신호의 전송 비트율을 감소시키기며, 전체 전송 시간을 감소시키도록 신호의 프레임들을 촉진시키기 위하여, 그리고 신호가 신호 프레임의 일정 타입의 처리를 따르며 실시간에 가깝게 전송될 수 있도록 전송 지연을 감소시키기 위하여, 오디오 신호의 단축 및 압축이 통상적으로 사용된다. 이러한 사용의 관점에서, 재구성된 신호에서의 인지될 아티팩트들을 최소화시키면서 고품질 출력을 제공하는 음성의 압축 및 신장을 위한 방법 및 시스템에 대한 분명한 필요성이 존재한다.
고품질 오디오 신장 및 압축에 대한 이러한 필요성을 해결하기 위해서 오디 오 신호들의 프레임들(또는 세그먼트들)을 자동적으로 신장 및 압축하기 위한 적응성 "시간 오디오 스케일러"가 제공된다. 본 명세서에서 기술되는 시간 오디오 스케일러는 오디오 신호들의 신장 및 압축 모두를 포함하는, 시간 스케일링을 위한 방법 및 시스템을 제공한다. 이러한 시간 오디오 스케일러는 다음 단락들에서 설명된다.
일반적으로, 시간 오디오 스케일러는 신호의 세그먼트들 또는 프레임들의 신장 및 압축 모두를 제공한다. 또한, 시간 오디오 스케일러는 인접 프레임들을 참조할 필요 없이 특정 프레임들 또는 세그먼트들의 가변적 신장 및 압축을 제공할 수 있다. 또한, 시간 오디오 스케일러에 의해서 제공되는 압축 및 신장의 가변성으로 인해, 전체적인 평균 희망 압축(또는 신장) 비율을 유지하면서, 희망된 비율로부터의 압축 비율의 작은 편차(variation)가 "캐리 오버(carry over)" 기술을 사용하여 다음 프레임에서 보충될 수 있다.
예를 들면, 목표 압축 비율이 특정 신호에 대해서 2:1이고, 각각의 입력 음성 프레임이 300개의 샘플들을 가진다면, 각각의 목표 출력 프레임은 명목상으로 150개의 샘플들을 가진다. 하지만, 특정 프레임이 150개의 프레임들 대신에 180개의 샘플들로 압축되면, 목표 압축을 120개의 샘플들로 설정함으로써 여분의 30개의 샘플들은 다음 프레임에서 보충된다. 결과적으로, 180 및 120의 블록 크기로, 평균 블록 크기는 2:1의 평균 압축 비율을 가진채, 여전히 150이 된다. 다음 프레임의 내용을 의존하기 때문에, 120개의 샘플들로의 압축은 최적의 결과들을 제공하지는 못하는 점에 주의해야 한다. 따라서, 120개의 샘플 예는, 바람직한 평균을 보 장하기 위하여 후속 프레임의 목표 압축 또는 신장을 설정하기 위해 사용되는, 실제 압축 또는 신장을 갖는, 목표일 뿐이다.
그렇기 때문에, 바람직한 평균을 유지하기 위해 하나 이상의 후속 프레임은 압축 또는 신장될 수 있다. 예를 들면, 상기 예를 사용했을 때, 180개의 샘플들로 압축되어 있는 프레임을 뒤따르는 프레임이 130개의 샘플들로 압축되면, 그후 다음 프레임에 대한 목표 압축은 3개의 프레임들에 대해서 평균 150개의 샘플들을 제공하기 위해서 140 샘플들의 목표 압축을 가진다. 이러한 캐리 오버 기술의 사용을 통해서 특정 출력 프레임의 길이에 대해서 느슨한 요구 사항를 유지하면서 임의의 바람직한 압축(또는 신장) 비율이 유지된다.
이러한 캐리 오버 기술의 결과로, 재구성된 신호에서의 임의의 인지될 아티팩트를 최소화하기 위해서, 필요한 경우, 각각의 개별적 프레임이 최적으로 신장 및 압축되기 때문에, 신장 또는 압축을 통해서 손실되거나 지연된 패킷들에 대한 보충은 매우 유동적이 된다. 시간 오디오 스케일러의 이러한 기능은 예를 들면, 아티팩트들을 최소화하기 위해서 감소된 지연을 일반적으로 요구하는, 디-지터링과 같은, 많은 에플리케이션들을 보완한다.
이상의 단락들에 있어서, 시간 오디오 스케일러는 신호로부터 프레임을 먼저 수신하고, 상기 프레임의 세그먼트들을 압축하거나 신장함으로써 프레임의 일시적 특성들을 수정하며, 현재 프레임의 압축 또는 신장은 목표 확장 또는 압축 비율과 같은지 판단하고, 그후 다음 프레임 또는 프레임들을 적용되도록 만약 존재한다면, 실제와 목적 신장 또는 압축 비율들 사이의 차이를, 상기 신장 또는 압축에 추가함 으로써, 특정 프레임의 신장 및 압축을 제공한다.
또한, 현재 프레임의 세그먼트들을 압축 또는 신장하기 전에, 시간 오디오 스케일러는 먼저 세그먼트의 타입을 판단한다. 예를 들면, 음성을 포함하는 오디오 신호에서, 프레임의 각각의 세그먼트는 음성 또는 다른 발성된 말(utterance)을 포함한 "음성(voiced)" 세그먼트, 음성 또는 다른 말을 포함하지 않는 "무음성(unvoiced)" 세그먼트, 또는 음성 및 무음성 부분 모두를 포함하는 "혼합" 세그먼트 중 하나일 수 있다. 최적의 결과들을 달성하기 위해서, 시간 오디오 스케일러는 압축되거나 신장되는 특정 세그먼트에 명확하게 적용되는 가변적 신장 및 압축을 제공한다. 따라서, 개별화된 신장 및 압축 방법들이 세그먼트의 각각의 타입, 즉 음성, 무음성, 또는 혼합 타입으로 적용된다. 각각의 세그먼트 타입에 대한 각각의 개별화된 방법들을 가지고, 아직-알려지지 않은, 후속 음성 프레임으로의 더 좋은 전이(transition)를 보장하기 위해서, 프레임 경계들 주변의 오디오 샘플들은 가능하면 적게 수정되거나 아예 수정되지 않는다는 점에 주의해야 한다.
세그먼트 타입을 판단할 때, 인간 음성의 자연적인 주기성은 매우 도움이 된다. 일반적으로, 세그먼트 타입에 대한 판단은 신호의 주기적 섹션들과 일치하는 정도의 함수로써 생성된다. 예를 들면, 아직 재생되지 않은 오디오 신호의 특정 샘플 또는 프레임을 압축하거나 신장할 때, 제1 단계는 신장되거나 압축될 프레임에서 더 작은 세그먼트 또는 서브 프레임을 선택하는 것이다. 다음 단계는 신호에서 주변 세그먼트와 일치하거나 유사한 세그먼트를 찾는 것이므로, 이러한 서브-프레임은 "템플릿(template)"이라고 불린다. 일치 세그먼트는 압축 또는 신장되는 프레임 사이에 있거나, 가능하다면, 이전에 재생된 프레임 사이에서 있다는 점에 주의해야 한다. 따라서, 하나의 실시예에서, 하나 이상의 가장 최근에 재생된 프레임들은 일치 프레임들을 위치시킬 목적으로 일시적인 버퍼에 유지된다. 예를 들면, 정규화 상호 상관 측정 또는 유사한 기술과 같은, 기존의 신호 일치 기술을 사용해서 템플릿과 일치하는 세그먼트에 대한 검색이 행해진다. 또한, 하나의 실시예에서, 검색 범위는 신호의 "피치(pitch)"와 호환 가능한 범위로 국한된다.
본 분야의 당업자에게 공지된 바로는, 음성과 같은 발성된 음성은 구두 영역(vocal tract)에서 공진을 발생시키는 반주기(quasi-periodic) 펄스들로 기류(airflow)를 조정하는 구두 현(vocal cord)들의 진동에 의해서 생성된다. 이러한 펄스들의 비율은 일반적으로 기본 진동수 또는 "피치"로 불려진다. 일반적으로, 주기성(periodicity), 즉, 발성 오디오 신호의 "피치 주기"는 발성 오디오 신호의 시간축에서 가장 큰 크기의 양 또는 음의 피크(peak)들 사이에서의 시간을 표시한다. 음성 신호들은 실제로 완벽하게 주기적이지는 않지만, 평가된 피치 진동수 및, 진동수의 역수, 즉, 피치 주기는 음성 신호를 모델링하는 데 여전히 매우 유용하다. 이러한 설명은 피치 및 피치 주기 모두를 인용하고 있음을 주의해야 한다. 피치를 결정하는 매우 정밀한 방법들이 있다. 하지만, 본 분야의 당업자들에게 공지된 바와 같이 본 명세서에서 설명된 피치 및 피치 주기의 판단은 상호 상관의 피크를 찾는 것에 기초한, 기본적인 것이다. 하지만, 피치 및 피치 주기를 판단하는 기존의 방법이 시간 오디오 스케일러에서 사용될 수 있다는 것은 본 명세서에서 제공된 설명의 관점에서는 명확하다.
예를 들면, 자연적으로 신호의 음성 부분은 인간 음성 또는 말의 주기성 또는 피치의 결과로써 더욱 높은 주기성을 가질 것이다. 그렇기 때문에, 표준화된 상호 상관의 피크의 세기(strength)는 프레임의 특정 세그먼트가 음성, 무음성 또는 혼합된 것인지에 대한 표시를 제공한다. 예를 들면, 세그먼트가 더 많은 음성을 포함할 때, 정규화 상호 상관 피크는 증가할 것이며, 세그먼트가 더 적은 음성을 포함할 때, 더 작은 정규화 상호 상관 피크를 초래하면서, 신호에서 보통 더 작은 주기성이 나타날 것이다. 정규화 상호 상관의 피크 값은 그후 특정 세그먼트가 음성 세그먼트들인지, 무음성 세그먼트들인지 또는 음성 요소 및 무음성 요소들의 혼합물, 즉, 혼합 세그먼트인지를 판단하기 위해서 미리 결정된 임계값과 비교된다. 시험된 실시예에서, 약 0.4와 약 0.95 사이의 피크 값들은 혼합 세그먼트들을 식별하기 위해서 사용되며, 약 0.95보다 더 큰 피크 값들은 음성 세그먼트들을 식별하기 위해서 사용되고, 약 0.4보다 작은 피크 값들은 무음성 세그먼트들을 식별하기 위해서 사용된다.
세그먼트의 특정 타입이 식별된 경우에, 현재 프레임을 희망하는 대로 신장하거나 압축하기 위해서 세그먼트 타입에 특정한 신장 또는 압축 프로세스가 세그먼트에 적용된다. 예를 들면, 음성 프레임들을 신장할 때, 윈도우화된 중첩-추가(SOLA) 방법이 프레임의 일치 세그먼트들을 정렬하거나 통합시키는 데 사용된다. 하지만, 음성 세그먼트들을 신장시키기 위해서 기존 시스템과는 달리, 시간 오디오 스케일러는, 항상 템플릿을 세그먼트의 끝에서 가져오지 않도록, 참조용 또는 템플릿으로 사용되는 세그먼트의 위치를 바꿈으로써 재구성된 신호에서 인지될 주기적 아티팩트들을 감소시킨다. 특히, 프레임의 끝, 프레임의 시작 또는 프레임 중간으로부터 템플릿을 가져올 수 있다.
또한, 일 실시예에서, 시간 오디오 스케일러는, 재구성된 신호에서 인지될 아티팩트들을 감소시키기 위한 정규화 상호 상관을 구현함에 있어서, 현재 프레임에 대해서 계산된 평균 피치 크기와 크기 면에서 유사한, 가변적 윈도우 크기를 사용한다. 마지막으로, 템플릿은 전이 윈도우의 중간 지점이 파형의 낮은 에너지 지점에 배치되도록 위치를 선택한다. 또한, 템플릿의 상기 위치는 재구성된 신호에서 인지될 아티팩트들을 감소시키도록 작용한다. 이런 신장 과정은 현재 프레임에 대한 바람직한 수준을 달성하기 위해서 필요한 만큼 여러번 반복된다.
무음성 프레임들, 즉, 비활동 상태, 비주기적 잡음등의 신장은 매우 다른 방법으로 처리된다. 특히, 프레임의 길이를 증가시키기 위해서 템플릿과 일치하는 하나 이상의 세그먼트들의 반복이 사용되는, 음성 프레임들을 신장시키는 과정과 달리, 주기성의 출현을 피하는 것이 중요하다. 이유는 인간 청취자들이 그러한 프레임들에서 청취적 주기성을 쉽게 식별할 수 있기 때문이다. 따라서, 재구성된 신호에서 그러한 주기성은 신호 아티팩트들처럼 보일 것이다. 그렇기 때문에, 템플릿과 일치하는 세그먼트들을 추가하는 것보다는, 현재 프레임은 대신에 바람직한 길이를 가지고 현재 프레임에 유사한 전력 스펙트럼을 가지는 상이한 신호를 자동적으로 발생시킴으로써 수정된다. 발생된 신호는 원래 프레임과 발생된 세그먼트 사이에서의 전이 지점들을 평탄하게 하는 윈도우 함수를 사용해서 현재의 프레임의 중간에 삽입된다. 또한, 관련된 실시예에서, 재구성된 신호에서 청취적 아티팩트 들을 감소시킬 목적으로, 발생된 세그먼트의 에너지는 또한 약 30%쯤의 수준으로 미리 결정된 퍼센트만큼 감소된다.
상술한 바와 같이, 혼합 세그먼트들은 음성 요소 및 무음성 요소 모두의 혼합을 나타낸다. 따라서, 음성 세그먼트들을 신장하는 방법이나 무음성 세그먼트들을 신장하는 방법 중 어느 것도, 개별적으로는 혼합 세그먼트들을 신장하기에 적절하지 않다. 예를 들면, 무음성 세그먼트들을 처리하는 방법을 사용하는 것은 프레임에서 이미 존재하던 주기성을 파괴하는 반면에, 음성 세그먼트들을 처리하는 방법을 사용하는 것은 무음성 상태의 프레임의 부분들에 큰 아티팩트들을 야기할 것이다. 따라서, 실시예에서는, 두 방법 모두가 사용된다. 명확하게는, 신호들은 음성 및 무음성 방법들 모두를 사용해서 현재의 혼합 세그먼트으로부터 발생된다. 이러한 신호들은 음성 및 무음성 방법들을 사용해서 생성되는 신호들 모두를 포함하는 바람직한 길이의 합성 신호 세그먼트를 생성하도록 그후에 혼합된다.
또한, 관련 실시예에서, 상기 설명한 바와 같이 발생된 음성 및 무음성 신호들은 정규화 상호 상관 피크의 값의 함수로써 가중치가 부여될 것이다. 예를 들면, 상기 설명한 바와 같이, 정규화된 상호 상관 피크의 값은 세그먼트가 더욱 주기적이 될 때, 즉, 세그먼트에 더 많은 음성이 있을 때, 증가한다. 그렇기 때문에, 정규화 상호 상관 피크의 값이 더 높은 경우에 음성 신호에 더 크게 가중치를 부여하는 것은 일부 주기성을 대신하여 신장된 세그먼트에서 음성의 인지 품질을 개선시키고, 따라서 신장된 세그먼트의 무음성 부분에서 인지될 아티팩트들을 개선시킬 것이다. 반대로, 정규화 상호 상관 피크의 값이 감소될 때, 세그먼트에는 더 적은 주기성이 있다. 그렇기 때문에, 무음성 신호에 더 크게 가중치가 부여되고, 이로 인해, 주기성이 감소되는 대신에, 프레임의 음성 부분들의 명확성을 감소시키고, 프레임의 무음성 부분들의 인지된 품질을 향상시킨다.
시험된 실시예에서, 각각 상기 설명된 음성 세그먼트 방법을 사용해서 희망 길이의 신호를 발생시킴으로써 합성 신호를 위한 음성 부분을 생성하기 위해서, 0.45 내지 0.95의 정규화 상호 상관 피크에 대응된 0부터 1까지의 선형 가중치 부여가 사용된다. 유사하게, 각각 상기 설명된 무음성 방법을 사용해서 동일한 바람직한 길이의 신호를 발생시킴으로써 합성 신호를 위한 무음성 요소를 생성하기 위해서, 0.45 내지 0.95의 정규화 상호 상관 피크에 대응해서 1부터 0까지의 선형적 가중치 부여가 사용된다. 이러한 두가지의 가중치가 부여된 신호 요소들은 그후 합성 신호를 생성하기 위해서 단순히 합해진다.
상기 설명된 신장 방법들 및 다양한 프레임 형태들이 주어진 경우에, 현재 프레임들에서 어느 지점이 상기 프레임을 신장하기에 가장 좋은 지점인지의 문제가 여전히 존재한다. 예를 들면, 신호의 20ms부분과 같은 비교적 짧은 프레임에서도, 하나 이상의 전이 지점 또는 수 ms의 무음성 상태가 보통 존재한다. 그러한 경우에, 프레임이 신장되는 특정 지점을 선택하는 것이 유리하다. 그렇기 때문에, 실시예에서, 신장 "품질" 접근법이 사용되며, 이 경우 프레임 사이의 어디에서 신장할 것인지의 결정은 프레임에서의 세그먼트들의 에너지(더 낮은 에너지가 더 좋음), 및 일치를 가진 세그먼트에 대해서 발견된 표준화 상관 계수(더 큰 것이 더 좋음)의 조합에 기초해서 행해진다.
예를 들면, 보통의 경우에, 20ms 프레임은 각각 5ms의 4 개의 서브 프레임들 또는 세그먼트들로 나뉘어지거나, 또는 선택적으로 대략 평가된 피치 주기를 가진 중첩된 서브 프레임들 또는 세그먼트들로 나뉘어 질 수 있다. 특정 세그먼트의 계산된 에너지가 충분히 낮다면, 전이가 상기 세그먼트에서 존재한다고 불린다. 그후 가장 낮은 에너지 세그먼트가 신장을 위해서 선택된다. 하지만, 에너지가 충분히 낮지 않다면, 프레임에서 전이가 존재하지 않게 되고, 신장하기에 가장 좋은 일치를 선택하기 위해서 각각의 세그먼트의 일치에 대한 표준화 자동 상관이 이용된다.
일반적으로, 프레임들의 압축은 상기 설명된 프레임들의 신장을 위한 방법과 유사한 방법으로 처리된다. 예를 들면, 프레임을 압축할 때, 템플릿이 상기 프레임 사이에서 선택되고, 상기 설명된 바와 같이, 일치를 위한 검색이 수행된다. 일치가 확인된 경우에, 세그먼트들이 윈도우화되고, 중첩되며 추가된다. 하지만, 정규화 상호 상관이 너무 작다면, 상기 설명한 바와 같이, 세그먼트는 무음성 세그먼트일 것이다. 이러한 경우에서, 임의의 선택된 또는 미리 결정된 이동 중 하나가 프레임을 희망된 양으로 압축하기 위해서 일정한 제곱합 윈도우와 같은 윈도우 함수와 함께 사용된다.
또한, 압축할 각각의 프레임에서 특정 세그먼트들의 선택은 중요한 고려 사항이다. 예를 들면, 프레임의 모든 세그먼트들을 동일하게 압축하는 것보다는, 통상적으로 상기 설명한 바와 같이, 세그먼트의 형태를 먼저 판단하고, 그후 프레임의 특정 세그먼트들을 선택적으로 압축함으로써 더욱 좋은 결과를 얻을 수 있다. 예를 들면, 무음성 세그먼트들의 압축 또는 과도 상태(transient)를 피하면서도, 음성, 무음, 단순한 잡음을 표현하는 세그먼트들을 압축하는 것은 더 적은 인지 아티팩트들을 가지는 재구성된 신호를 생성한다. 음성, 무음성 또는 단순한 잡음을 표현하는 세그먼트들을 압축함으로써 충분한 압축이 달성될 수 없다면, 비-전이적 무음성 세그먼트들은 상기 설명된 방법으로 압축된다. 마지막으로, 음성 세그먼트들 또는 비-전이적 무음성 세그먼트들의 압축을 통해서 충분한 압축이 달성되지 않으면 전이들을 포함한 세그먼트들이 압축된다. 이러한 압축에 대한 계층적 접근 방법은 재구성된 신호에서 인지될 아티팩트들을 제한하도록 작용한다. 또한, 상기 설명한 바와 같이, 현재 프레임이 프레임의 내용 타입 때문에 목표 압축 비율로 압축되지 않는 경우에 더 큰 양으로 이후 프레임들을 압축하기 위해서 "캐리 오버" 과정이 사용된다.
상기 요약에 있어서, 시간 오디오 스케일러는 신호의 재구성 과정에서 인지될 아티팩트들을 최소화하면서 수신된 오디오 신호의 프레임들을 압축하고 신장하는 고유의 시스템 및 방법을 제공한다. 설명된 이러한 장점에 추가하여, 오디오 신호 세그먼트들을 압축하고 신장하기 위한 시스템 및 방법의 다른 장점들이 수반된 도면들과 함께 상세한 설명으로부터 명확해 질 것이다.
본 발명의 바람직한 실시예들에 대한 다음 설명에서, 본 발명이 실행되는 특정 실시예를 예시로써 도시하고, 본 발명의 일부를 구성하는 첨부된 도면들에 대한 참조가 행해진다. 다른 실시예들이 이용될 수 있고, 본 발명의 범위를 벗어나지 않고 구조적 변형들이 행해질 수 있음을 이해해야 한다.
1.0 예시적인 동작 환경
도 1은 본 발명이 구현되는 적당한 컴퓨팅 시스템 환경(100)의 예를 도시한다. 컴퓨팅 시스템 환경(100)은 적당한 컴퓨팅 환경의 오직 한가지 예이며, 본 발명의 기능 또는 사용의 범위에 대한 한계를 제시하는 것으로 의도되지 않는다. 컴퓨팅 환경(100)은 예시적인 동작 환경(100)에서 도시된 요소들의 하나 또는 조합과 관련한 의존성이나 요구 사항 중 어느 것도 가지지 않는 것으로 해석되어야 한다.
본 발명은 많은 다른 범용 또는 전용 컴퓨팅 시스템 환경들 또는 구성들을 이용하여 동작할 수 있다. 본 발명의 이용에 적합한 공지된 전산 시스템들, 환경들, 및/또는 구성들은 개인용 컴퓨터들, 서버 컴퓨터들, 포켓용(hand-held), 랩탑 또는 이동 컴퓨터 또는 셀 폰들 및 PDA와 같은 통신 장치들, 디지털 전화들, 다중처리기 시스템들, 다중처리기에 기초한 시스템들, 셋톱 박스들, 프로그래밍이 가능한 소비자 전자장치들, 네트워크 PC들, 미니 컴퓨터들, 메인프레임 컴퓨터들, 상기 시스템들 또는 장치들의 일부 또는 기타 같은 종류의 것을 포함하는 분산 컴퓨팅 환경들을 포함하지만, 이에 제한되지는 않는다.
본 발명은 컴퓨터에 의해서 실행되는, 프로그램 모듈들과 같은, 컴퓨터 실행 가능한 명령들의 일반적인 컨텍스트(context)로 설명된다. 일반적으로, 프로그램 모듈들은 특정한 추상 데이터 타입들을 구현하거나 특정 업무를 수행하는 루틴(routine), 프래그램들, 객체들(object), 구성 요소들, 데이터 구조등을 포함한다. 또한, 통신 네트워크를 통해서 연결된 원거리 처리 장치에 의해서 작업들이 수행되는 분산 컴퓨팅 환경들에서 본 발명이 수행될 수 있다. 분산 컴퓨팅 환경에서, 프 로그램 모듈들은 메모리 저장 디바이스들을 포함한 로컬 및 원거리 모두의 컴퓨터 저장 매체에 위치될 수 있다. 도 1을 참조할 때, 본 발명을 구현하는 예시적인 시스템은 컴퓨터(110)의 형태로 범용 컴퓨팅 장치를 포함한다.
컴퓨터(110)의 구성 요소들은 프로세싱 유닛(120), 시스템 메모리(130) 및 시스템 메모리를 포함한 다양한 시스템 컴포넌트들을 프로세싱 유닛(120)에 연결하는 시스템 버스(121)를 포함하지만, 이에 제한되지는 않는다. 시스템 버스(121)는 다양한 버스 구조들을 이용해서 로컬 버스, 주변 장치 버스, 메모리 버스 또는 메모리 제어기를 포함한 버스 구조 중 여러 형태 중 어떤 것이 될 수 있다. 제한이 아닌 예로서, 그러한 구조들은 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 메짜닌(Mezzanine) 버스로 또한 알려진 PCI(Peripheral Component Interconnct) 버스를 포함한다.
컴퓨터(110)는 보통 다양한 컴퓨터 판독가능 기록매체를 포함한다. 컴퓨터 판독가능 기록매체는 컴퓨터(110)에 의해서 접근이 허용될 수 있고 휘발성 및 비휘발성 매체, 고정형 및 이동형 매체 모두를 포함하는 사용 가능한 매체일 수 있다. 제한이 아닌 예로서, 컴퓨터 판독가능 기록매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능한 명령들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터와 같은 정보의 저장을 위한 기술 또는 방법으로 구현되는 휘발성 및 비휘발성, 이동형 및 고정형 매체를 포함한다.
컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리, 또는 다른 메모리 기 술; CD-ROM, DVD(digital versatile disks), 또는 다른 광학 디스크 저장 장치; 자기 카셋트, 자기 테이프, 자기 디스크 저장장치, 또는 다른 자기 저장 디바이스들; 또는 컴퓨터(110)에 의해서 접근이 허용될 수 있는 정보를 저장하기 위해서 사용되는 다른 매체들을 포함한다. 통신 매체는 보통 컴퓨터 판독가능한 명령들, 데이터 구조들, 프로그램 모듈들 또는 다른 데이터를 운반 반송파(carrier wave) 또는 다른 운반 체계와 같은 변조된 데이터 신호로 구체화하며, 임의의 정보 전달 매체를 포함한다. 용어 "변조된 데이터 신호(modulated data signal)"는 신호에서의 정보를 부호화하는 방법으로 설정되거나 변화된 하나 이상의 특징들을 가진 신호를 의미한다. 단지 예로써, 통신 매체는 유선 네트워크 또는 직접 유선 접속과 같은 유선 매체, 및 음향(acoustic), RF, 적외선, 및 다른 무선 매체와 같은 무선 매체를 포함한다. 상기 제품들의 조합들이 또한 컴퓨터 판독가능 기록매체의 범위에서 포함될 수도 있어야 한다.
시스템 메모리(130)는 ROM(131) 및 RAM(132)와 같은 휘발성 및/또는 비휘발성 메모리의 형태로 컴퓨터 저장 매체를 포함한다. 시동 기간에서처럼, 컴퓨터(110) 내부의 요소들 사이에서 정보를 전송하는 것을 돕는 기본 루틴을 포함하는, BIOS(133)는 보통 ROM(131)에 저장된다. RAM(132)은 보통 프로세싱 유닛(120)에 의해서 동작될 수 있고/있거나 프로세싱 유닛에 즉시 접근하기 쉬운 프로그램 모듈들 및/또는 데이터를 포함한다. 제한이 아닌 예로서, 도 1은 운영 시스템(134), 애플리케이션 프로그램들(135), 다른 프로그램 모듈들(136), 및 프로그램 데이터(137)를 도시한다.
또한 컴퓨터(110)는 다른 이동형/고정형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함한다. 제한이 아닌 예로써, 도 1은 고정형, 비휘발성 자기 매체에 기록하거나 그로부터 판독할 수 있는 하드 디스크 드라이브(141), 이동형, 비휘발성 자기 디스크(152)에 기록하거나 그로부터 판독할 수 있는 자기 디스크 드라이브(151), 및 CD-ROM 또는 다른 광학 매체와 같은 이동형, 비휘발성 광학 디스크 (156)에 기록하거나 그로부터 판독할 수 있는 광학 디스크 드라이브(155)를 도시한다. 예시적인 동작 환경에서 이용될 수 있는 다른 이동형/고정형, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프 카셋트, 플래시 메모리 카드들, DVD, 디지털 비디오 테이프, 고체형 RAM, 고체형 ROM 등을 포함하지만 이에 제한되지는 않는다. 하드 디스크 드라이브(141)는 보통 인터페이스(140)와 같은 고정형 메모리 인터페이스를 통해서 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광학 디스크 드라이브(155)는 보통 인터페이스(150)와 같은, 이동형 메모리 인터페이스에 의해서 시스템 버스(121)에 접속된다.
상기 설명되고 도 1에서 도시된 드라이브들 및 관련된 컴퓨터 저장 매체는 컴퓨터(110)를 위한 컴퓨터 판독가능한 명령들, 데이터 구조들, 프로그램 모듈들 및 다른 데이터의 저장을 제공한다. 도 1에서, 예를 들면, 하드 디스크 드라이브(141)는 운영 시스템(OS)(144), 애플리케이션 프로그램들(145), 다른 프로그램 모듈들(146) 및 프로그램 데이터(147)를 포함하는 것으로 도시된다. 이러한 구성 요소들은 운영 시스템(134), 애플리케이션 프로그램들(135), 다른 프로그램 모듈들(136) 및 프로그램 데이터(137)와 동일할 수도 있고 다를 수도 있음에 주의해야 한 다. 운영 시스템(144), 애플리케이션 프로그램들(145), 다른 프로그램 모듈들(146) 및 프로그램 데이터(147)는 최소한 그것들이 다른 요소들임을 도시하기 위해서 다른 도면 번호들이 부여된다. 사용자는 일반적으로 마우스, 트랙볼, 또는 터치 패드로 불리는, 포인팅 디바이스(161) 및 키보드(162)와 같은 입력 디바이스들을 통해서 컴퓨터(110)로 명령들 및 정보를 입력할 수 있다.
부가하여, 컴퓨터(110)는 확성기(197) 또는 오디오 인터페이스(199)를 통해서 접속된 다른 음성 출력 디바이스뿐만 아니라 마이크로폰(198) 또는 마이크로폰 어레이와 같은 음성 입력 디바이스를 포함할 수 있다. 다른 입력 디바이스들(도시되지 않음)은 조이스틱, 게임패드, 위성 접시, 스캐너, 라디오 수신기, 및 텔레비전 또는 방송 비디오 수신기등을 포함할 수 있다. 상기 및 다른 입력 디바이스들은 시스템 버스(121)에 연결되는 사용자 입력 인터페이스(160)를 통해서 프로세싱 유닛(120)에 보통 접속되지만, 예를 들면, 병렬 포트, 게임 포트, 또는 범용 시리얼 버스(USB)와 같은, 다른 인터페이스 및 버스 구조들에 의해서 접속될 수 있다. 모니터 외에, 컴퓨터들은 출력 주변 장치 인터페이스(195)를 통해서 접속될 수 있는, 프린터(196)와 같은 다른 주변장치 출력 디바이스들을 포함할 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은, 하나 이상의 원격 컴퓨터들의 논리적 접속들을 사용해서 네트워크 환경에서 작동할 수 있다. 도 1 에서는 오직 메모리 저장 장치(181)가 도시되지만, 원격 컴퓨터(180)는 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치(peer devie), 또는 다른 일반적인 네트워크 노드일 수 있고, 컴퓨터(110)에 관계된 상기 설명된 많은 또는 모든 요소들을 보통 포함할 수 있다. 도 1에서 설명된 논리 접속들은 로컬 영역 네트워크(LAN)(171) 및 광역 네트워크(WAN)(173)를 포함하지만, 또한 다른 네트워크들을 포함할 수도 있다. 그러한 네트워크 환경들은 사무실, 기업-전체 컴퓨터 네트워크, 인트라넷, 및 인터넷에서 일반적이다.
LAN 네트워크 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해서 LAN(171)으로 접속된다. WAN 네트워크 환경에서 사용될 때, 컴퓨터(110)는 보통 모뎀(172) 또는 인터넷과 같은, WAN(173)을 통해서 통신을 성립하는 다른 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 다른 적절한 메커니즘을 통해서 시스템 버스(121)에 접속될 수 있다. 네트워크 환경에서, 컴퓨터(110)와 관련되어 설명된 프로그램 모듈들, 또는 그것의 일부는 원거리 메모리 저장 장치에 저장될 수 있다. 제한이 아닌 예로써, 도 1은 원격 에플리케이션 프로그램들(185)을 메모리 장치(181)에 속하는 것으로 도시한다. 도시된 네트워크 접속들은 예시적이며 컴퓨터들 사이에서의 통신 연결을 성립시키는 다른 수단이 사용될 수 있음을 이해해야 한다.
예시적인 동작 환경이 설명되었고, 본 명세서의 나머지 부분은 디지털 오디오 신호에서 신호 프레임들을 자동적으로 신장 및 압축하는 "시간 오디오 스케일러"를 구체화하는 프로그램 모듈 및 과정들의 설명에 할애될 것이다.
2.0. 소개
오디오 신호들의 시간-스케일 변경을 위한 기존의 에플리케이션은, 청취 시간을 감소시키거나 명확성을 향상시키기 위하여 신호의 전체 시간 스케일을 늦추거 나 속도를 높인다. 상기 에플리케이션 외에도, 지난 몇 년 동안, 인터넷과 같은 손실이 많고 지연되는 경향이 있는 패킷 기반 네트워크를 통해서 전송되어 고객 컴퓨터 또는 수신기에서 재구성되는 신호들의 품질을 향상시키기 위하여 음성을 포함한 오디오 신호들의 시간-스케일 변경이 사용되어 왔다. 예를 들면, 많은 애플리케이션들에서, 음성을 포함한 오디오 신호의 하나 이상의 프레임들을 신장하거나 압축시키는 것이 바람직하다.
통상적으로, 디-지터링 알고리즘에서 지연된 음성 패킷들을 대기하는 부가적인 시간을 제공하기 위하여 또는 손실되고, 과도하게 지연되거나 잡음이 있는 프레임들을 대체하는 신호의 음성의 명확성을 향상시키기 위해서 신장이 사용된다. 유사하게, 청취 시간을 줄이는 것, 신호의 전송 비트율을 감소시키는 것, 전체 전송 시간을 줄이기 위해서 신호의 프레임들을 촉진하는 것, 및 신호가 신호 프레임들의 일정 형태의 처리 과정을 쫓으면서 실시간에 가깝게 전송될 수 있도록 전송 지연을 줄이는 것을 위해서 오디오 신호의 단축 또는 압축이 통상적으로 사용된다. 이러한 사용의 관점에서, 재구성된 신호에서 인지될 아티팩트들을 최소화하면서 고품질 출력을 제공하는 음성의 신장 및 압축을 위한 시스템 및 방법에 대한 명확한 필요성이 존재한다.
고품질 오디오 신장 및 압축에 대한 이러한 필요성을 해결하기 위해서, 패킷 기초 네트워크를 통해서 수신된 오디오 신호들의 프레임들을 자동적으로 신장 및 압축시키기 위한 적응성 "시간 오디오 스케일러"가 제공된다. 본 명세서에서 설명된 시간 오디오 스케일러는, 오디오 신호들의 신장 및 압축 모두를 포함해서, 시간 스케일 변경을 위한 시스템 및 방법을 제공한다. 이러한 시간 오디오 스케일러는 다음 단락들에서 설명된다.
일반적으로, 시간 오디오 스케일러는 예컨대, 오디오 신호에서의 음성의 일부와 같은 오디오 프레임들의 국소적인 시간 스케일 변경을 제공한다. 본 명세서에서 설명된 방법은 신호의 신장 및 압축 프레임들 모두에 적용될 수 있다. 또한, 시간 오디오 스케일러는 인접 프레임들에 대해 참조할 필요없이 특정 프레임들의 가변적 신장 및 압축을 제공할 수 있으며, 이것은 이웃 세그먼트들이 불능인(또는 손실된) 에플리케이션들에서 중요할 수 있다. 또한 시간 오디오 스케일러에 의해서 제공되는 신장 및 압축의 가변성은, 섹션 3.1에서 설명되는 바와 같이, "캐리 오버" 기술을 사용함으로써 전체 평균 희망 압축(또는 신장) 비율을 유지하면서, 압축 비율의 바람직한 비율로부터 작은 차이가 다음 프레임에서 보충되는 것을 허용하며, 상기 "캐리 오버" 기술은 현재 프레임의 평균 신장 또는 압축으로부터 보충되기 위해서 하나 이상의 후속 프레임들을 가변적으로 신장하거나 압축한다.
2.1 시스템 개요
상기 설명된 바와 같이, 시간 오디오 스케일러는 오디오 신호로부터 프레임을 우선 수신하거나 추출하는 것, 상기 프레임을 신장 및 압축하는 것 중 하나에 의해서 프레임의 일시적 특징들을 변경하는 것, 현재의 프레임의 신장 또는 압축이 목표 신장 또는 압축 비율과 같은지 판단하는 것, 및 그후 다음 프레임 또는 프레임들에 적용되도록 만약 존재한다면, 실제 비율과 목표 신장 또는 압축 비율들 사이의 차이를 신장 또는 압축에 추가함으로써 특정 프레임(또는 세그먼트)의 신장 및 압축을 제공한다.
또한, 각각의 프레임을 압축 또는 신장하기 이전에, 시간 오디오 스케일러는 먼저 현재의 세그먼트의 타입을 판단하고, 확인된 세그먼트 타입 전용의 신장 또는 압축 프로세스를 적용한다. 예를 들면, 음성을 포함한 오디오 신호에서, 특정 프레임의 각각의 세그먼트는 음성 또는 다른 음성 언어를 포함하는 "음성" 세그먼트, 음성 또는 다른 언어을 포함하지 않는 "무음" 세그먼트, 또는 음성 및 무음성 구성요소들 모두를 포함한 "혼합" 세그먼트 중의 하나일 수 있다.
최적의 결과들을 얻기 위해서, 시간 오디오 스케일러는 신장되거나 압축된 특정 세그먼트 타입에 목적된 가변적 신장 및 압축을 제공한다. 따라서, 세그먼트의 특정 타입이 즉, 음성, 무음, 또는 혼합으로 확인된 경우에, 특정 세그먼트 타입 전용의 신장 또는 압축 과정은 현재의 프레임을 원하는 대로 신장 또는 압축시키는 세그먼트 프레임에 적용된다. 각각의 프레임 타입을 위한 각각의 개별화된 방법들을 이용하여, 아직 알려지지 않은 음성 세그먼트에 더 좋은 전이를 확인하기 위해서 각각의 프레임의 끝이 가능하면 적게 수정되거나, 전혀 수정이 안될 수 있음을 주의해야 한다.
또한, 상기 설명된 신장 방법들 및 다양한 세그먼트 타입들이 주어지는 경우에도, 현재 프레임에서의 어떤 지점이 프레임을 신장하는 데 가장 좋은 지점인지의 문제는 여전히 존재한다. 예를 들면, 신호의 20ms부분과 같은, 비교적 짧은 프레임에서도 수밀리초의 비활동 상태 또는 하나 이상의 전이 지점들이 자주 있다. 그러한 경우에서, 프레임이 신장될 특정 지점을 선택하는 것이 유리하다. 그렇기 때 문에, 실시예에서, 신장 "품질" 접근법이 사용되면, 어디에서 신장될 것 인지에 대한 판단이 각각의 세그먼트의 에너지(더 낮은 에너지가 더 좋음), 및 일치를 가진 상기 세그먼트에 대해서 찾아진 표준화 상관 계수(더 높은 에너지가 더 좋음)의 조합에 기초해서 행해진다.
예를 들면, 보통의 경우에서, 20ms 프레임은 각각 5ms의 4개의 하부 프레임들 또는 세그먼트들로 나뉘어질 수 있거나, 선택적으로 대략 평가된 피치 주기를 가진 중첩 하부 프레임들로 나뉘어질 수 있다. 특정 하부 프레임의 계산된 에너지가 충분히 낮다면, 전이가 상기 프레임 사이에 존재한다. 신장을 위해서 가장 낮은 에너지 하부 프레임이 선택된다. 하지만, 에너지가 충분히 낮지 않다면, 전이가 프레임에 존재하지 않을 것이고, 신장하기에 가장 좋은 일치를 선택하기 위해서 각각의 하부 프레임의 일치의 표준화 자동 상관이 사용된다.
일반적으로, 프레임에서의 세그먼트들의 압축은 세그먼트들의 신장을 위한, 상기 설명된 방법과 유사한 방법들로 다루어진다. 예를 들면, 세그먼트를 압축할 때, 템플릿이 세그먼트들로부터 선택되고, 일치에 대한 검색이 수행된다. 일치가 확인된 경우에, 세그먼트들은 윈도우화되고, 중첩되며, 추가된다. 하지만, 상기 설명한 바와 같이, 정규화 상호 상관이 너무 작다면, 세그먼트는 무음성 세그먼트일 것이다. 이러한 경우에, 세그먼트를 바람직한 양으로 압축하기 위해서, 임의적으로 선택된 또는 미리 결정된 이동 중 하나가 일정한 제곱-합 윈도우와 같은 윈도우 함수와 함께 사용된다.
또한, 압축할 특정 세그먼트들의 선택도 중요한 고려사항이다. 예를 들면, 프레임에서 모든 세그먼트들을 동일하게 압축하기보다는, 상기 설명한 바와 같이, 세그먼트의 타입을 먼저 판단하고, 그후 상기 타입에 기초한 특정 세그먼트들을 선택적으로 압축함으로써 더욱 좋은 결과들을 얻을 수 있다. 예를 들면, 무음성 세그먼트들의 압축 또는 과도 상태를 피하면서, 음성, 비활동 상태 또는 단순한 잡음을 나타내는 세그먼트들을 압축하는 것은 조금 적게 인지된 아티팩트들을 가진 재구성된 신호를 생성한다. 다음으로, 음성, 비활동 상태 또는 단순한 잡음을 나타내는 세그먼트들을 압축하는 것에 의해서 충분한 압축이 달성될 수 없다면, 비-전이적 무음성 세그먼트들은 상기 설명된 방법으로 압축된다. 마지막으로, 음성 세그먼트들 또는 비-전이적 무음성 세그먼트들을 통해서 충분한 압축이 달성될 수 없다면 전이들을 포함한 세그먼트들이 압축된다. 물론, 각각의 타입에서의 압축 기회가 미리 계산될 수 없다면, 압축할 가장 좋은 세그먼트은 각각의 단계에서 계산될 수 있다. 압축에 대한 계층적 방법은 재구성된 신호에서 인지될 흠결들을 제한하도록 작용한다.
2.2 시스템 구조
이상에서 요약된 프로세스들은 도 2의 일반적 시스템 도면에 의해서 도시된다. 특히, 도 2의 시스템 도면은 오디오 신호의 프레임들을 압축 및 신장시키기 위한 시간 오디오 스케일러를 구현하는 프로그램 모듈들 사이에서의 내부관계를 도시한다. 본 명세서에서 설명된 바와 같이, 박스들 및 도 2에서 점선(broken line) 또는 파선(dashed line)에 의해서 표현되는 박스들 사이의 내부 관계들은 본 명세서에서 설명된 시간 오디오 스케일러의 대안적 실시예들을 표현하고, 이상에서 설 명된 바와 같이, 이러한 대안적 실시예들 중 일부 또는 모든 것은 상기 문서를 통해서 설명된 다른 대안적 실시예들과 함께 사용될 수 있음을 주의해야 한다.
도 2에서 도시된 바와 같이, 오디오 신호 프레임들의 실시간 신장 및 압축을 위한 시스템 및 방법은 신호 입력 모듈(200)을 통해서 입력 신호를 수신하는 것에 의해서 시작된다. 이러한 신호 입력 모듈(200)은 방금 생성되었거나, 컴퓨터에서 저장되거나, 예를 들면, 인터넷 또는 기존의 음성 기반 통신 네트워크를 포함한 다른 패킷 기반 네트워크와 같은, 패킷 기반 네트워크를 통해서 전송된 패킷화된 오디오 신호로부터 복호화되는 오디오 신호를 수신한다. 신호 입력 모듈(200)이 패킷들을 수신하거나 복호화할 때, 패킷들은 프레임 추출 모듈(250)에 제공된다. 프레임 추출 모듈(205)은 그후 인입 신호로부터 현재의 프레임을 추출한다.
실시예에서, 프레임 추출 모듈(250)은 전체 프레임 모두 또는 그중 하나의 피치 주기, 또는 상기 프레임 내부의 세그먼트들의 피치 주기를 평가하기 위해서 그후 현재 프레임을 피치 평가 모듈(210)로 제공한다. 상기 실시예에서, 세그먼트들은 대략 프레임의 평균 피치 주기의 길이가 되도록 선택된다. 하지만, 실제 세그먼트 길이는 계산의 효율성을 위해서 또한 선택될 수 있으며, 즉, 더 작은 세그먼트들을 사용하는 것은 FFT 계산을 더 쉽게 만든다. 또한, 섹션 3.2에서 더 상세히 설명되듯이, 상기 피치 주기에 기초한 세그먼트들은 중첩될 것이다. 현재 프레임을 포함한 세그먼트들은 세그먼트 타입 검출 모듈(215)로 제공된다.
대안적으로, 프레임 추출 모듈(205)은 프레임을 동일한 길이의 많은 세그먼트들로 단순히 나누는 세그먼트 타입 검출 모듈(215)로 현재 프레임을 직접 제공한 다.
어떤 경우에도, 세그먼트 타입 검출 모듈(215)은 현재 프레임에서 세그먼트들의 타입을 판단하며, 적당한 신장 또는 압축 모듈(220, 225, 230, 또는 240)에 각각 현재 프레임을 제공한다. 특히, 세그먼트 타입 검출 모듈(215)은 먼저 현재 프레임이 음성 세그먼트들, 무음성 세그먼트들, 또는 혼합 세그먼트들을 포함하는지 판단한다. 프레임이 신장된 경우에, 세그먼트 타입 검출 모듈은 현재 프레임을 음성 세그먼트 신장 모듈(220), 무음성 세그먼트 신장 모듈(225), 또는 혼합 세그먼트 신장 모듈(230) 중 하나에 제공한다. 현재 프레임이 압축된 경우에, 세그먼트 타입 검출 모듈은 현재 프레임을 세그먼트 압축 모듈(240)에 제공한다.
음성 세그먼트 신장 모듈(220)은 템플릿을 일치시키는 신호의 부분들을 프레임과 정렬하고 병합하기 위한 SOLA(synchronous overlap-add) 방법을 사용함으로써 섹션 3.2.1에서 상세히 설명되는 바와 같이 작동된다. 하지만, 음성 세그먼트들을 신장시키기 위한 기존 시스템들과는 달리, 템플릿을 기존의 음성 신장 알고리즘처럼 항상 세그먼트의 끝으로부터 가져오지는 않도록, 시간 오디오 스케일러의 음성 세그먼트 신장 모듈(220)은 또한 참조용 또는 템플릿으로써 사용될 세그먼트의 위치를 바꿈으로써 재구성된 신호에서 인지될 주기적 아티팩트들을 감소시킨다. 특히, 템플릿을 프레임의 끝, 프레임의 시작, 또는 프레임 내부의 다양한 위치로부터 가져올 수 있다.
대조적으로, 무음성 세그먼트 신장 모듈(225)은 현재 세그먼트 또는 프레임으로 삽입된 하나 이상의 합성 신호 세그먼트들을 발생시킴으로써 현재 세그먼트 또는 프레임을 신장하기 위해서 섹션 3.2.2에서 상세히 설명되는 바와 같이 동작한다. 일반적으로, 합성 세그먼트들은 비주기적 신호를 현재 프레임과 유사한 스펙트럼과 함께 합성함으로써 바람직한 길이로 생성된다. 더욱이, 합성된 신호에 주기성을 주는 것을 피하기 위해서 합성된 신호는 원래의 프레임과 상관되지 않는 것이 바람직하다.
예를 들면, 실시예에서, 현재 프레임의 모든 또는 일부의 푸리에 변환(Fourier transform)을 계산하는 것, 단독 또는 다수의 세그먼트들이 삽입되었는지에 의존하는 것, 위상의 임의적 순환을 FFT 계수들에 주는 것, 및 그후 각각의 세그먼트에 대한 FFT의 역수를 단순히 계산함으로써 달성된다. 이것은 원래 세그먼트와 유사한 스펙트럼을 가지지만, 그와 상관되지는 않는 신호 세그먼트들을 생성한다. 또한, FFT를 계산하기 이전에 신호에 0을 삽입(zero-padding)함으로써 더 긴 신호들을 획득할 수 있다. 이러한 합성 신호들은 그후 원래 세그먼트과 발생된 세그먼트 사이의 전이 지점들을 평탄화시키기 위해서 윈도우 함수를 사용해서 현재 세그먼트 또는 프레임의 중간으로 삽입된다.
혼합 세그먼트 신장 모듈(230)은 상기 설명된 음성 및 무음성 방법들의 조합을 사용함으로써, 섹션 3.3에서 상세히 설명되는 바와 같이 작동된다. 명확하게는, 신호들은 음성 및 무음성 방법들 모두를 사용해서 현재 혼합 세그먼트로부터 발생된다. 음성 및 무음성 신호들 모두를 포함하는 혼합 신호를 생성하기 위해서 이러한 신호들이 혼합된다. 실시예에서, 혼합 신호를 형성하는 구성요소들은 앞서 서술된 정규화 상호 상관 피크를 통해서 결정되는 바와 같이, 음성 또는 무음성 데 이터 중 하나의 비례 내용과 관련해서, 가중치 모듈(235)을 통해서 가중치가 부여된다.
세그먼트 압축 모듈(240)은 섹션 3.4에서 설명되는 바와 같이 동작된다. 일반적으로, 세그먼트들의 압축은 세그먼트들의 압축을 위한 상기 설명된 방법과 유사한 방법으로 다루어진다. 특히, 세그먼트 압축은 상기 설명된 프레임들 또는 세그먼트들의 신장에서처럼 프레임 또는 세그먼트 타입에 기초하여 다루어진다. 도 2에서는 명료성을 위해서, 세그먼트 압축은 다양한 세그먼트 형태들의 신장을 표현한는 3개의 프로그램 모듈들을 사용하는 것보다는, "세그먼트 압축 모듈(240)"로 명칭이 부여된 단독의 프로그램 모듈로써 도시된다. 하지만, 기본 세그먼트 타입들, 즉, 음성 세그먼트들, 무음성 세그먼트들 및 혼합 세그먼트들의 신장처럼, 이러한 동일한 세그먼트 타입들의 압축은 여전히 각각의 세그먼트 타입에 특정된 상이한 방법들을 사용해서 다루어진다는 것을 이해해야한다.
특히, 음성 세그먼트를 압축할 때, 템플릿은 세그먼트 내부로부터 선택되고, 일치를 위한 검색이 수행된다. 일치가 확인된 경우에, 세그먼트들이 템플릿과 일치 사이의 신호를 잘라내면서, 윈도우화되고, 중첩되고 추가된다. 결과로써, 세그먼트는 단축되거나, 압축된다. 대조적으로, 무음성 세그먼트를 압축할 때, 임의의 선택된 또는 미리 결정된 이동 중 하나가 세그먼트를 바람직한 양으로 압축하기 위해서 일정한 제곱 합과 같은 윈도우 함수와 함께 사용된다. 마지막으로, 음성 및 무음성 방법들의 가중치가 부여된 조합을 사용해서 혼합 세그먼트들이 압축된다. 하지만, 섹션 3.4에서 더욱 상세히 설명되듯이, 하나 이상의 프레임들을 통해서 희 망된 또는 목적 비율을 달성하기 위해서 다양한 세그먼트 형태들을 압축하기 위한 확실한 우선 순위(먼저 음성 세그먼트가 오고, 무음성 세그먼트가 뒤따르고, 혼합 세그먼트들이 뒤따름)가 있다. 프레임들의 신장에서처럼, 과도 상태 또는 청취 아티팩트들이 프레임들 또는 세그먼트들 사이에 들어오지 않도록 세그먼트 종결 지점들의 조정을 피하는 세그먼트들의 압축 과정 동안에 세심한 주의가 취해지는 것을 주의해야한다.
음성, 무음성 또는 혼합, 각각의 경우에서, 대응되는 신장 또는 압축 모듈(220, 225, 230, 또는 240)은 그후 신장되거나 압축된 프레임들을 신장되고 압축된 프레임들(245)의 버퍼로 제공한다. 일시적 프레임 버퍼(250)는 현재의 템플릿과 일치하는 세그먼트들을 위해서 신호에서 가장 최근의 과거의 검색을 허용하기 위해서 실시예에서 사용되는 것을 주의해야한다. 신장되거나 압축된 세그먼트들이 신장되고 압축된 프레임들(245)의 버퍼로 제공된 경우에서, 원하거나 목적한 신장 또는 압축이 달성되었는지에 대한 판단(255)이 행해진다. 그렇지 않다면, 목적 신장 또는 압축에서의 차이는 실제와 목적 값들 사이의 차이를 다음 프레임(260)으로 단순히 추가함으로써 다음 프레임에 대한 목적 압축으로 계산에 포함되어진다. 어느 경우에나, 이러한 지점에서, 다음 프레임은 입력 신호로부터 추출되고(205), 상기 설명된 과정들은 입력 신호의 끝이 도달할 때까지 반복되거나 또는 과정들이 종결된다. 어떠한 에플리케이션들에서, 어떠한 신호도 입력에서 쉽게 이용가능하지 않다면, 버퍼(245)에서 아직 존재하는 신호로부터 프레임이 선택될 수 있다.
바람직하게, 신장되고 압축된 프레임들(245)의 버퍼는, 재생 또는 다른 처리 를 위해서 사용 가능하다는 점에 주의해야 한다. 따라서, 실시예에서, 신호 출력 모듈(270)이 신장되고 압축된 프레임들을 출력하기 위한 에플리케이션과 인터페이스로 통신하기 위해서 제공된다. 예를 들면, 그러한 프레임들은 음성-기반 통신 시스템의 일부로서 청취자를 위해서 재생될 수 있다.
3.0 동작 개요
시간 오디오 스케일러를 제공하기 위하여, 오디오 파일의 세그먼트들의 자동적인 시간 스케일 변경을 제공하기 위한 상기 설명된 프로그램 모듈들이 사용된다. 일반적으로, 상기 요약한 바와 같이, 이러한 시간 스케일 변경은 단독 신호 프레임만큼 작은 세그먼트들 상에서 수행될 수 있는 가변적 신장 및 압축을 제공된다. 시간 오디오 스케일러에 의해서 제공되는 신장 및 압축의 가변성은 "캐리 오버" 기술을 이용한 전체 평균 희망 압축(또는 신장) 비율을 유지하면서, 압축 비율의 바람직한 비율로부터의 작은 차이들이 다음 프레임에서 보충되는 것을 허용한다. 다음의 섹션들은 섹션 2에서 설명된 프로그램 모듈들을 구현하기 위한 예시적인 방법들의 상세한 동작 설명을 제공한다.
3.1 목표 압축/신장 비율을 유지하기 위한 캐리 오버 기술
상기 설명되는 바와 같이, 시간 오디오 스케일러는 신호에 대한 바람직한 압축/신장 비율을 전체적으로 유지하면서 프레임들의 가변적 신장 또는 압축을 위한 "캐리 오버" 프로세스를 사용한다. 예를 들면, 목표 압축 비율이 특정 신호에 대해서 2:1이고, 각각의 입력 프레임이 300개의 샘플들을 가지면, 각각의 목표 출력 프레임은 명목상으로 150개의 샘플들을 가질 것이다. 하지만, 특정 프레임이 150 개의 샘플들 대신에 180개의 샘플들로 압축되면, 예를 들면, 그후 여분의 30개의 샘플들이 목적 압축을 120개의 샘플들로 설정함으로써 다음 프레임에서 보상된다. 따라서, 180 및 120개의 블록 크기에서는, 평균 블록 크기는 2:1의 평균 압축 비율을 가지면서, 여전히 150이다. 상기 다음 프레임의 내용(즉, 세그먼트 형태)에 의존하기 때문에, 120개의 샘플들의 압축은 최적의 결과를 제공하지는 않음을 주의해야 한다. 따라서, 120개의 샘플 예는 바람직한 평균을 확인하기 위해서 이후 프레임의 목표 압축 또는 신장을 설정하기 위해서 사용되는, 실제 압축, 또는 신장을 가진, 오직 목표일 뿐이다.
그렇기 때문에, 바람직한 평균을 유지하기 위해서 하나 이상의 후속 프레임이 신장 또는 압축될 수 있다. 예를 들면, 상기 예를 사용할 때, 180개의 샘플들로 압축되었던 프레임을 따르는 프레임이 130개의 샘플들로 압축되면, 그후 다음 프레임을 위한 목적 압축은 3개의 프레임들에 대해서 평균 150 샘플들을 제공하기 위해서 140개의 샘플들의 목표 압축이다. 이러한 캐리 오버 기술의 사용을 통해서, 특정 출력 프레임의 길이에 대한 느슨한 요구를 유지하면서, 바람직한 압축(또는 신장) 비율이 유지된다.
이러한 캐리 오버 기술의 결과로써 각각의 개별적 프레임이 재구성된 신호에서 인지될 아티팩트를 최소화하기 위해서, 필요한 정도로, 최적으로 신장또는 압축되기 때문에, 신장 또는 압축을 통해서 손실되거나 지연된 패킷들에 대한 보충은 매우 가변적이게 된다. 시간 오디오 스케일러의 이러한 능력은, 예를 들면, 디-지터링 및 실시간 통신 시스템에서의 패킷 손실 은닉과 같은 많은 에플리케이션들을 보충한다.
3.2 세그먼트들의 콘텐츠 기반 신장
상기 설명된 바와 같이, 각각의 프레임을 신장하거나 압축하기 이전에, 시간 오디오 스케일러는 먼저 현재 프레임의 타입을 판단하고, 그후 프레임-타입에 특정한 신장 또는 압축 프로세스를 현재 프레임에 적용한다. 예를 들면, 음성을 포함한 오디오 신호에서, 각각의 프레임은 음성 또는 다른 음성 말을 포함하는 "음성" 프레임, 음성 또는 다른 말을 포함하지 않는 "무음" 프레임, 또는 음성 및 무음성 구성요소들 모두를 포함하는 "혼합" 프레임 중의 하나일 것이다. 최적의 결과들을 얻기 위해서, 시간 오디오 스케일러는 신장되거나 압축된 특정 프레임 형태에 확실하게 전용된 가변적 신장 및 압축을 제공한다. 따라서, 개별적인 고유의 신장 및 압축 방법들은 프레임의 각각의 타입, 즉, 음성, 무음, 또는 혼합 타입에 적용될 수 있다.
그렇기 때문에, 현재 프레임을 신장하거나 압축하기 이전에 프레임이 음성, 무음, 또는 혼합인지에 대한 판단이 행해진다. 이러한 판단을 할 때, 인간 음성의 자연적인 주기성은 매우 도움이 된다. 일반적으로, 세그먼트 타입에 대한 이러한 판단은 신호의 주기적 부분들이 어떻게 일치하는지의 함수로써 행해진다. 예를 들면, 아직 재생되지 않는 오디오 신호의 특정 샘플을 신장하거나 압축할 때, 제1 단계는 신장되거나 압축되는 샘플로부터 더 작은 세그먼트 또는 하부 샘플을 선택하는 것이다. 이러한 하부 샘플은 다음 단계가 신호에서 일치하거나 유사한 주변 세그먼트를 찾는 것이기 때문에 "템플릿"으로 불린다. 일치된 세그먼트가 압축된 샘 플 내부에 있거나, 이전에 재생된 세그먼트 내부에 있는 경우 중의 하나일 수 있다는 점에 주의해야 한다. 따라서, 가능하다면 언제든지, 가장 최근에 재생된 세그먼트는 일치 세그먼트들을 위치시킬 목적으로 일시적 버퍼에서 유지된다. 템플릿과 일치하는 세그먼트를 위한 검색은, 예를 들면, 정규화 상호 상관 측정 또는 유사한 기술과 같은 기존의 신호 일치 기술을 사용해서 행해진다. 또한, 검색 범위는 바람직하게는 신호의 "피치"와 호환가능한 범위로 국한된다.
본 분야의 당업자들에게 공지된 바와 같이, 음성과 같은 음성 사운드들은 구두 영역에서 기류의 공진들을 야기하는 반-주기 펄스들로 변조하는 구두 현의 진동에 의해서 생성된다. 이러한 펄스들의 비율은 일반적으로 기본 진동수 또는 "피치"라고 불려진다. 일반적으로, 주기성, 즉 음성 오디오 세그먼트의 "피치 주기"는 음성 오디오 세그먼트의 시간축에서 가장 큰 크기의 양 또는 음의 피크들 사이에서의 시간을 나타낸다. 음성 신호들은 실제 완벽하게 주기적이지는 않지만, 평가된 피치 진동수 및 진동수의 역수, 즉, 피치 주기는 음성 신호를 모델링할 때 매우 유용하다. 본 설명은 피치 및 피치 주기 모두를 참조하고 있음을 주의해야 한다. 피치를 판단하는 매우 정교한 방법들이 있다. 하지만, 이러한 개념들은 본 분야의 당업자들에게 공지된 바와 같이, 본 명세서에서 설명된 피치 및 피치 주기의 판단은 상호 상관의 피크를 판단하는 것에 따른, 기초적인 작업이다.
따라서, 음성 세그먼트들을 가진 신호의 부분들은 인간의 음성 또는 말의 주기성 또는 피치의 결과로써 더 높은 주기성을 자연적으로 가질 것이다. 그렇기 때문에, 피크의 위치는 피치 주기의 실제 값의 평가를 제공하는 반면에, 정규화 상호 상관의 피크의 세기는 특정 세그먼트가 음성, 무음, 혼합된 것인지에 대한 통찰력을 제공한다. 예를 들면, 세그먼트가 더 많은 음성을 포함할 때, 정규화 상호 상관 피크는 증가할 것이며, 세그먼트가 더 적은 음성을 포함할 때, 더 작은 정규화 상호 상관 피크를 초래하며, 보통 신호에서 더 작과 주기성이 될 것이다.
정규화 상호 상관의 피크의 값은 특정 세그먼트들이 음성 세그먼트들인지, 무음성 세그먼트들인지 또는 음성 및 무음성 세그먼트들의 혼합, 즉, 혼합 세그먼트인지를 판단하기 위해서 미리 결정된 임계값들과 비교된다. 시험된 실시예에서, 약 0.4 와 약 0.95 사이의 피크 값들은 혼합 세그먼트들을 확인하기 위해서 사용되며, 약 0.95보다 더 큰 피크 값들은 음성 세그먼트들을 확인하기 위해서 사용되며, 약 0.4보다 적은 피크 값들은 무음성 세그먼트들을 확인하기 위해서 사용된다. 세그먼트의 특정 타입이 확인된 경우에, 세그먼트 타입에 특정한 신장 또는 압축 프로세스는 바람직하게 상기 프레임을 압축하거나 신장하기 위해서 현재 프레임에 적용된다. 다른 시험된 실시예에서, 어떠한 프레임들도 혼합된 것으로 분류되지 않는, 음성와 무음성 프레임들 사이에서의 임계값은 0.65에서 설정된다.
3.2.1 음성 세그먼트들의 신장
프레임에서 음성 세그먼트들을 신장시키는 경우, 세그먼트의 일치 부분들을 병합하고 정렬하기 위해서 윈도우화된 중첩-추가(SOLA) 접근법이 사용된다. 일반적으로, 윈도우는 상승 부분 wa[n], 및 감소 부분 wb[n]으로 나뉘어진다. 중첩 신호들은 전이를 평탄화하기 위해서 이러한 윈도우들에 의해서 곱해진다. 보다 명확하게는, 미래로 연장된 신호가 상승 부분에 의해서 곱해지는 반면에, 과거로 연장 된 신호는 감소 윈도우에 의해서 곱해질 것이다. 또한, 배열된 신호들은 상관되기 때문에, 예를 들면, 0으로 설정하고, 더해진 경우 1이 되는, 즉, wa[n]+wb[n]=1이 되는, Hanning 윈도우와 같은 기존의 윈도우가 프레임의 신장된 부분의 경계에서 아티팩트들을 감소시키거나 제거시키기 위해서 사용될 수 있다. 그러한 윈도우들은 본 분야의 당업자들에게 잘 알려져 있다.
하지만, 음성 세그먼트들을 신장하기 위한 기존 시스템들과 달리, 항상 템플릿을 기존의 음성 신장 알고리즘에서처럼 항상 세그먼트의 끝으로부터 가져오지 않도록, 시간 오디오 스케일러는 참조용 또는 템플릿처럼 사용될 세그먼트의 위치를 바꾸는 것에 의해서 재구성된 신호에서 인지될 주기적 아티팩트들을 감소시킨다. 특히, 템플릿을 프레임의 끝, 프레임의 시작, 또는 프레임 내부의 다양한 위치들로부터 가져올 수 있다. 예를 들면, 실시예에서, 전이 윈도우의 중간 지점이 파형의 낮은 에너지 지점에 배치되도록 템플릿의 위치가 선택된다. 템플릿의 이러한 위치 선택은 재구성된 신호에서 인지될 아티팩트들을 또한 감소시키도록 작용한다. 이러한 신장 과정은 현재 프레임을 위한 신장의 바람직한 수준을 달성하는 데 필요한 만큼 많이 반복된다.
도 3에서 도시된 바와 같이, 시험된 실시예에서, 바람직한 길이를 얻기 위하여 세그먼트가 몇 번만큼 신장(또는 압축)되어야 할 필요가 있는지를 추정하기 위하여 피치의 초기 추정치가 사용된다. 특히, 각각의 반복이 대략 1 피치 주기만큼 신호를 신장하거나 압축될 것이고, 그래서 좋은 추정치는, 다음과 같이 수학식 1에 의해 제공되는 반복 횟수 K를 갖는다.
Figure 112004040879219-pat00001
상기
Figure 112004040879219-pat00002
은 현재 세그먼트의 초기 피치 추정치이다. 템플릿들은 그후 신장될 세그먼트에 대해서 균일하게 분배된다. 또한, 신호의 과거 기록이 이용가능하다면, 일치 여부가 템플릿 이전의 영역에 대해서 검색된다. 선택적으로, 어떠한 과거 기록도 가능하지 않다면, 일치 여부를 위한 검색이, 어디에서 더 많은 데이터가 가능한지에 따라서, 현재의 세그먼트 이전 또는 이후 중의 하나에서 행해질 것이다.
특히, 도 3에 도시된 바와 같이, 인입 오디오 신호로부터 다음의 현재 프레임 x[n]을 얻는 것(300)에 의해서 프로세스가 시작된다. 그후, 초기 피치 추정치
Figure 112004040879219-pat00003
가 종래의 방법들을 이용해서 계산된다(310). 실시예에서, 현재의 프레임을 위한 초기 피치 추정치는 단순히 수신된 프레임들의 평균 피치이다.
다음으로, 신호를 신장하기 위해서 필요한 반복의 횟수는 초기 피치 추정치,
Figure 112004040879219-pat00004
, 현재 세그먼트 크기 및 바람직한 크기의 함수로써 평가된다. 예를 들면, 각각의 반복이 약 1 피치 주기만큼 신호를 신장하거나 압축하기 때문에, 반복 횟수는, 예를 들면, 수학식 1에 의해서 제공된 방법과 같은 방법을 사용해서 쉽게 평가될 수 있다. 특히, 현재 세그먼트 크기와 바람직한 크기 사이의 차이를 즉, 평가된 피치 크기로 나눔으로써 세그먼트를 바람직한 크기로 압축하거나 신장하기 위해서 필요한 반복의 횟수에 대한 좋은 평가가 된다.
반복의 횟수가 평가된 경우에(320), 반복 카운터 i는 0으로 초기화된다. 현 재 세그먼트에서 현재 샘플 위치 s[i]에서, 현재의 세그먼트의 더 작은 부분, 즉, 하부 세그먼트 또는 하부 프레임에 대해서, 다시 기존의 기술들을 사용해서 피치 p가 그후 추정된다(340). 기존의 윈도우화된 중첩-추가(SOLA) 방법(350)이 그후 피치 주기만큼 템플릿을 이동시키고, 템플릿을 중첩시키고, 위치 s[i]에서 세그먼트의 피치 주기의 길이만큼 세그먼트를 신장시키기 위해서 세그먼트를 추가하기 위해 사용된다.
그후에, 바람직한 세그먼트 크기가 달성되었는지에 대한 판단이 행해진다(360). 바람직한 크기에 도달되지 않았다면(360), 그후 현재의 샘플 위치 s[i]의 위치 선택이 반복의 횟수 K의 함수로써 조절되고, 피치 p를 평가하는 것(340) 및 세그먼트를 신장하기 위해서 (350)을 윈도우화하기 위해 상기 설명된 단계들이 바람직한 세그먼트 크기가 달성될 때까지(360) 반복된다. 마지막으로, 바람직한 크기에 도달한 경우에(360), 신장된 프레임은 희망하던 바와 같이, 재생 또는 사용을 위해서 신장된 프레임(390)의 버퍼로 출력된다(380). 또한, 처리할 더 많은 프레임이 있는지에 관해서 판단이 행해진다(395). 처리할 더 많은 프레임들이 있다면(395), 과정이 종결된다. 하지만, 처리할 더 많은 프레임이 있다면(395), 다음 현재 프레임은 (300)으로 돌아가고, 상기 설명된 단계들(310 내지 395)이 반복된다.
또한, 프레임의 끝에서 템플릿을 선택할 때, 템플릿의 일치는 과거에서 검색하는 것, 즉, 세그먼트들을 일치시키기 위해서, 신호에서의 이전 부분을 검색하는 것에 의해서 대부분의 기존 음성 신장 시스템들처럼 달성된다. 그렇기 때문에, 이런 경우에서, 프레임 및 템플릿 길이를 의존하면서, 하나 이상의 이미 재생된 프레 임들의 버퍼를 유지하는 것이 필요하다. 단계(350)와 관련해서 설명되는 것처럼, 일치 세그먼트들은 그후 기존 기술들을 사용해서 병합되고 배열되고, 그것에 의해서 현재 프레임의 길이를 신장한다.
선택적으로, 기존의 음성 신장 시스템들과 달리, 시간 오디오 스케일러는 또한 프레임의 시작으로부터 템플릿들을 끌어올 수도 있다. 이러한 경우에, 특히 과거 프레임이 가능하지 않다면, 세그먼트들을 일치시키기 위해서, 미래에서, 즉 신호의 이후의 부분에서 검색하는 것이 필요하다. 따라서, 그러한 경우에서, 현재 템플릿을 일치시키는 세그먼트들을 위한 신호의 국소적 미래로 검색하는 것에 의해서 상기 프레임을 재생하기 이전에 현재의 프레임의 신장을 허용하기 위해서 지연을 가진 버퍼된 프레임을 가지는 것이 필요할 것이다. 이것은 여러 개의 피치 주기들을 포함할 정도로 충분히 긴 프레임 크기를 요구함으로써 달성될 수 있다.
또한, 기존 음성 신장 시스템들과 달리, 프레임의 시작 또는 끝 중의 하나로부터 템플릿들을 선택하는 것이외에, 템플릿들은 현재 프레임의 시작과 끝 사이의 프레임 중간의 위치들로부터 또한 선택될 수 있다. 이런 경우에서, 템플릿들에 대한 일치들은, 상기 설명한 바와 같이, 현재 프레임 사이에서 선택된 템플릿의 위치에 따라서, 과거 또는 미래 중 하나를 검색함으로써 확인된다.
실시예에서는, 현재 프레임 내부의 임의의 지점에서 매우 많은 균일한 주기성으로부터 초래되는 인지 아티팩트들을 가져오는 것을 최소화하기 위해서 템플릿 위치의 선택이 바뀌어 진다. 이러한 기능은 임의의 주어진 프레임에 적용될 신장의 양이 약간의 피치 주기 이상을 넘어서 증가할 때 특히 중요하다. 사실, 임의의 프레임에 대한 바람직한 프레임 길이를 달성하기 위해서 하나 이상의 신장 동작이 요구될 수 있기 때문에, 임의의 지점에서 주기성이 큰 아티팩트들을 초래하지 않도록, 상기 설명된 방법으로, 다른 템플릿들은 반복된 신장 동작들을 위한 현재 프레임 내부에서 각각의 동작을 위해서 선택될 수 있다.
또한, 실시예에서, 시간 오디오 스케일러는, 현재 프레임에 대해서 계산된 평균 피치 주기와 크기면에서 유사한, 가변적 세그먼트 크기를 또한 이용한다. 또한, 관련된 실시예에서, 신장 반복의 횟수는 그후 현재 프레임에 대한 신장의 바람직한 또는 목표 길이를 현재 프레임에 대한 평균 평가된 피치 주기로 나누고 그후 다음 전체 횟수를 반올림하는 것에 의해서 추정된다. 이러한 실시예에서, 현재 프레임은 그후 추정된 신장 반복의 횟수와 같은 많은 템플릿들로 나뉘어지며, 각각의 템플릿은 평균 평가된 피치 주기와 같은 크기를 가진다. 이러한 템플릿들은 그후 현재 프레임 전체에 걸쳐서 동일한 공간상에 위치된다. 결과로써, 템플릿은 템플릿 길이, 템플릿들의 갯수 및 프레임의 길이에 따라서 중첩될 수도 있다.
관련된 실시예에서, 신장 동작에서 아티팩트들이 최소화되는 것을 보장하기 위해서, 각각의 템플릿 내부의 에너지는 각각의 템플릿이 오직 하나의 로컬 신호 피크를 포함하도록 템플릿들이 프레임 내부에서 위치되는 것을 확인하는 것에 의해서 최소화된다. 특히, 템플릿들은 임의의 특정 템플릿 내부의 임의의 로컬 신호 피크가 템플릿의 끝자리로부터 템플릿의 길이의 대략 1/3 내지 1/2이 되도록, 프레임 내부에서 대략 균일하게 위치된다. 프레임 내부의 템플릿들의 그러한 위치 선택은 각각의 템플릿이 오직 하나의 로컬 신호 피크를 포함하는 것을 보장하도록 동 작한다. 결과로써, 각각의 템플릿에 의해서 포함된 신호의 에너지가 최소화되고, 그것에 의해서 신장된 신호에서 감소된 아티팩트들을 가진 신장을 허용한다.
3.2.2 무음성 세그먼트들의 신장
무음성 세그먼트들, 즉 비활동 상태, 잡음, 다른 비주기적 소리들 등의 신장은 매우 다른 방법으로 다루어진다. 특히, 템플릿을 일치시키는 하나 이상의 세그먼트들의 반복이 세그먼트의 길이를 증가시키기 위해서 사용되는, 음성 세그먼트들의 신장에 대한 과정과는 달리, 주기성을 가져오는 것을 피하는 것이 중요하다. 이유는 인간 청취자들은 쉽게 그러한 세그먼트들에서 인위적으로 들어온 주기성을 쉽게 확인할 수 있고, 그러한 주기성은 재구성된 신장된 신호에서는 신호 아티팩트들로 보일 것이기 때문이다. 따라서, 템플릿을 일치시키는 세그먼트들을 추가시키는 것보다는, 현재의 세그먼트는 바람직한 길이를 가지면서 현재 세그먼트에 유사한 전력 스펙트럼을 가지는 다른 신호 세그먼트를 발생시킴으로써 조정된다. 이처럼 발생된 신호는 그후 원래 세그먼트과 발생된 세그먼트 사이의 전이 지점들을 평탄화하는 윈도우 함수를 사용해서 현재 세그먼트의 중간에 삽입된다. 또한, 관련된 실시예에서, 발생된 세그먼트의 에너지는 또한 재구성된 신호에서 큰 아티팩트들을 감소시킬 목적으로, 약 30% 수준의 미리 결정된 퍼센트만큼 감소된다.
다른 관련된 실시예에서, 무음성 프레임을 신장하기 위해서 단일 합성 세그먼트를 사용하는 것보다는, 전체 바람직한 프레임 길이를 달성하기 위해서 다수의 합성 세그먼트들이 원래 무음성 프레임 내부의 다양한 지점들로 삽입 및 생생된다. 이러한 실시예는 또한 더 작은 합성 세그먼트들이 더 작은 FFT를 이용해서 계산되 는 장점들을 제공하며, 감소된 계산 과부하를 요구한다. 이런 실시예는 단일의 더 긴 합성 신호 세그먼트를 사용하는 경우와 비교할 때 인지적으로 더 우수한 신장된 프레임들을 생성하는 것처럼 보이는 것을 주의해야 한다. 이런 실시예에서, 프레임의 다양한 세그먼트들이 동일하게 신장 또는 압축된다. 예를 들면, 시험된 실시예에서, FFT의 크기는 128개의 샘플들과 같은 미리 규정된 길이로 설정된다.
바람직한 마지막 크기를 획득하기 위해서 필요한 세그먼트들의 중첩의 수가 계산된다. 이러한 계산은 프레임의 시작이나 끝 중 하나를 수정하는 것은 바람직하지 않다는 사실을 고려해야함을 주의해야 한다. 이것은 제1 및 마지막 세그먼트들을 바꾸지 않고 그후 단순히 이웃(아마도 합성된) 세그먼트들을 혼합하는 것(중첩/추가)에 의해서 달성될 수 있다. 따라서, 계산될 합성 세그먼트들의 수를 계산할 때 프레임의 제1 및 마지막 반-세그먼트들을 프레임 길이로부터 뺀다. 따라서, 동일한 크기의 합성 세그먼트들의 수 n(및 현재 프레임에서 원래 세그먼트들의 수)은 다음의 수학식 2에 의해서 쉽게 계산된다.
Figure 112004040879219-pat00005
그후 세그먼트를 각각의 프레임의 n개의 세그먼트들의 중앙으로 삽입함으로써, n개의 계산된 합성 세그먼트들이 프레임에 균일하게 분포된다.
어느 경우에도, 합성 신호 세그먼트들은 현재 프레임과 유사한 전력 스펙트 럼을 가지도록 생성된다. 이것은, 현재 프레임의 모든 부분 또는 일부의 푸리에 변환을 계산하고, 단일 또는 다수의 세그먼트들이 삽입되었는지에 따라서, 상태의 랜덤 순환을 FFT 계수들에 도입하고, 그후 각각의 세그먼트에 대한 FFT의 역수를 계산함으로써 달성될 수 있다. 이것은 유사한 스펙트럼을 갖지만 원래 세그먼트와 어떠한 상관도 가지지 않는 신호 세그먼트들을 생성한다. 또한, FFT를 계산하기 이전에 신호에 0을 삽입함으로써 더 긴 신호들이 획득될 수 있다.
위에서 제공된 예는, 시간 오디오 스케일러의 범위를 합성 세그먼트들의 생성에 관하여 기술된 특정 실시예로 제한하려는 의도가 아님에 주의해야 한다. 사실, 본 분야의 당업자들은 원래 신호에 유사한 스펙트럼을 가지지만, 상관되지 않는 신호를 생성하는 기존의 많은 기술들이 있음을 이해해야 한다. 예를 들면, 임의의 신호의 LPC 필터링을 포함하는 그러한 기술 및 다른 기존 기술들이 그러한 합성 신호 세그먼트들의 생성을 위해서 사용될 수도 있다.
위에서 지적한 바와 같이, 현재 프레임은 그후 두 개 또는 다수의 섹션들로 나뉘어지고, 합성 세그먼트들과 시작 프레임 사이의 전이들을 평탄화하기 위해서 윈도우 및 중첩을 가지며, 합성된 세그먼트들은 그후 프레임의 나뉘어진 부분들로 단순히 삽입된다. 앞선 실시예들 중의 하나에 있어서, 프레임 또는 세그먼트의 시작 및 끝은 전혀 변하지 않은 채로 남겨진다. 그 결과, 이러한 프로세스는 그렇지 않으면 비-일치 프레임 또는 세그먼트 경계로부터 초래되었을 아티팩트들의 생성을 피하게 된다.
또한, 음성 세그먼트들을 위해서 사용된 윈도우화와는 달리, 본 발명에서 사 용된 바람직한 중첩 평탄화 윈도우는 다르다. 예를 들면, 음성 세그먼트들을 신장하기 위해서 사용된 신호의 중첩된 부분들은 상관되는 반면에, 무음의 경우에는 신호의 중첩 부분들은 이론적으로는 상관되지 않는다. 그렇기 때문에, 더욱 좋은 결과, 즉, 감소된 아티팩트들은 에너지를 일정하게 유지하고 제곱되고 추가될 때 합이 1이 되는, 즉,
Figure 112004040879219-pat00006
이 되는 기존 sine 위도우(widow)와 같은 윈도우를 사용함으로써 경계 지점에서 달성된다. 그러한 윈도우들은 본 분야의 당업자들에게 잘 알려져 있다. 상기 과정은 일반적으로 도 4의 단계들 (400 내지 480)로 표시된다.
특히, 도 4에서 도시되는 바와 같이, 현재 신호 프레임으로부터 합성 신호 세그먼트들을 생성하기 위한 실시예는 인입 오디오 신호로부터 다음 현재 프레임 x[n]을 얻는 것(400)에 의해서 시작된다. 다음의 실시예에서, 결과적인 합성 세그먼트가 바람직한 프레임 길이를 달성하기 위한 충분한 길이가 될 수 있도록 현재 프레임 또는 세그먼트 x[n]에 0을 삽입한다(410). 특히, 이러한 실시예에서 0의 삽입(410)의 양은 현재 프레임 또는 세그먼트 길이와, 희망된 프레임 또는 세그먼트 길이 사이의 샘플에서의 차이와 같은 많은 0들을 x[n]에 단순히 삽입함으로써 판단된다.
다음, x[n]의 경우에, x[n]이 0으로 삽입(410)되었는지에 무관하게, FFT가 계산된다(420). 이러한 FFT의 상태가 그후 임의로 선택된다(430). 다음, FFT의 역수 y[n]는 임의로 선택된 상태를 가진 상기 FFT로부터 계산된다(440). 이러한 과정, 즉, 단계(420 내지 440)의 결과는 원래 세그먼트 x[n]과 유사한 스펙트럼을 가지지만 상관되지는 않는 합성 프레임 또는 세그먼트 y[n]이다. 원래(0으로 삽입되지는 않는) 프레임 또는 세그먼트 x[n]은 그후 두 부분으로 나뉘어지고, y[n]은 상기 두 부분에 삽입되며, 예를 들면, 신장된 프레임을 생성하기 위한 기존의 sine 위도우와 같은 앞서 설명된 기존의 중첩/추가 과정을 이용해서 고르게 추가된다(450).
원하는 바에 따라, 신장된 프레임은 재생 또는 사용을 위해서 신장된 프레임들(470)의 버퍼로 출력된다(460). 또한, 처리할 더 많은 프레임이 존재하는지에 대하여 판단이 내려진다(480). 처리할 프레임이 더 이상 없다면(480), 프로세스는 종결된다. 하지만, 처리할 프레임이 더 있다면(480), 다음 현재 프레임은 (400)으로 되돌아가서, 상기 설명된 단계들(410 내지 480)이 반복된다.
프레임을 신장하기 위해 다수의 합성 세그먼트들을 이용하는 앞서 설명된 실시예에서, 합성 세그먼트들은 모두 동일한 길이로 균일하게 분배된다. 하지만, 관련된 실시예에서, 더 낮은 에너지를 표시하는 프레임의 상기 부분들은 단순한 균일한 분배를 사용하는 것보다는 더 높은 에너지를 가진 프레임의 상기 부분들 이상으로 신장된다. 이러한 실시예는 또한 아티팩트들을 감소시키도록 동작한다. 하지만, 이런 실시예는 이전의 실시예보다는 우수하지만, 바람직한 정도 이상으로 신호를 바꿀 수 있고, 그에 따라, 청취자가 인지할 만한 청취적 차이를 초래한다.
따라서, 다른 관련된 실시예에서는, 원래 콘텐츠로부터 수정된 데이터의 양이 감소된다. 결과적으로, 생성된 부분적으로 합성된 프레임 또는 세그먼트는 인 간 청취자가 인지하기에는 원래 신호와 더욱 유사하게 된다. 특히, 이러한 실시예에서, 많은 합성 세그먼트들을 단순히 생성하기보다는, 신장된 세그먼트들 또는 세그먼트들에서 인지될 흠결들을 최소화시키면서, 가능한 많은 원래 신호를 보존하는 방법으로 합성 및 복제된 원래 세그먼트들의 혼합이 사용된다.
예를 들면, 다른 실시예에서는 도 5에서 도시된 바와 같이, 전체의 현재 프레임 x[n]을 이용하여 직접 작업하기보다는, 도 4와 관련하여 설명된 프로세스가 큰 아티팩트들을 초래할 가능성있는 과도 상태들을 신장하는 것을 피하기 위해서 더욱 국소적 스펙트럼 정보를 가지고, 더 작은 FFT를 생성하도록 수정된다. 특히, 이러한 실시예에서, 다시 인입 오디오 신호로부터 다음의 현재 프레임 x[n]을 얻음으로써(500) 현재 신호 프레임으로부터 합성 신호 세그먼트들을 생성하는 것이 개시된다. 하지만, 단독 합성 세그먼트를 생성하는 대신에, 많은 더 적은 합성 세그먼트들이 앞서 설명된 중첩/추가 과정을 통해서 삽입 및 생성된다. 특히, 앞선 프레임과 생성될 부분적으로 합성될 프레임 사이의 더욱 평탄해진 전이를 보장하기 위해서, 이러한 프로세스는 어떤 것이 부분적으로 합성된 프레임 y[n]이 될 것인가에 대한 문제의 시작으로 원래 데이터를 혼합하는 것(505)을 위해서 현재 프레임 x[n]을 먼저 윈도우화함으로써 시작한다. 이러한 윈도우화 및 혼합을 달성하기 위한 방법은 수학식 3에 의해서 표시된다.
Figure 112004040879219-pat00007
여기에서 M은 바람직한 세그먼트 크기이고, N은 현재 세그먼트 크기이고, FFT 크기는 2K이고, w[n]은 사용된 혼합 윈도우이다. 또한 수학식 3의 제1 부분은 미래의 사용(즉, 수학식 7)을 위해서, y[n]을 단순히 초기화한다.
다음, 제1 및 마지막의 반-세그먼트들은 계산에 포함시키지 않으면서, 바람직한 마지막 세그먼트 크기를 획득하는데 필요하게될, 각각의 길이 2K 샘플들, 중첩 세그먼트들의 전체 횟수 T가 계산된다(510). 일반적으로, 이러한 계산(510)은 수학식 4에 의해서 표시되는 바와 같이 얻어진다.
Figure 112004040879219-pat00008
다음으로, 중첩 세그먼트 카운터 i는 0으로 초기화된다(515). 그후 원래 데이터, 즉 x[n]에서의 시작 지점 s 및 지점 s에서 시작되는 x[n]의 대응된 서브 세그먼트 z[n]이 수학식 5a 및 5b에 의해서 표시되는 바처럼 계산된다.
Figure 112004040879219-pat00009
Figure 112004040879219-pat00010
다음, z[n]은 평탄화 윈도우에 의해서 곱해지고, 평탄화된 하부 세그먼트의 FFT는 수학식 6에 의해서 표시되는 것처럼 계산된다(525).
Figure 112004040879219-pat00011
이러한 지점에서, 결과 FFT의 상태, Z[w]는 그후 무작위화되고(530), 평탄화 윈도우 이득(즉, 싸인 윈도우에 대해서는 2)을 보충하기 위해서 스케일링되고, FFT의 역수 u[n]은 원래 세그먼트 z[n]과 유사한 스펙트럼을 갖지만, 상관되지 않은 합성 서브 세그먼트를 생성하기 위해서 Z[w]로부터 계산된다(535). 새롭게 합성된 신호 서브 세그먼트 u[n]은 그후 위치 s에서 원래 신호로 삽입되고, 예를 들면, 수학식 7에서 표시되듯이, 부분적으로 신장된 프레임을 생성하는 기존 sine 위도우와 같은 앞서 설명된 기존 중첩/추가 과정(540)을 사용해서 고르게 추가된다.
Figure 112004040879219-pat00012
이 지점에서, 중첩 세그먼트 카운터 i가 증가되고(545), 바람직한 최종 세그먼트 크기를 획득하기 위해서 중첩 세그먼트의 전체 횟수 T가 삽입되었는지에 대해서 판단된다(550). 더 많은 중첩 세그먼트들이 계산될 필요가 있다면(550), 그후 상기 설명된 단계들(520 내지 550)이 부분적으로 합성된 신장된 세그먼트 y[n]을 생성하기 위해서 모든 중첩 세그먼트들이 계산되고 삽입될 때까지 반복된다. 마지막으로, 모든 중첩 세그먼트들이 y[n]을 생성하기 위해서 계산되고 삽입된 경우에, y[n]과 다음 프레임 사이의 더 평탄화된 전이를 보장하기 위해서, 원래 데이터와 부분적으로 합성된 프레임 y[n]을 프레임 y[n]의 끝으로 윈도우화하는 것으로 종결 된다. 이러한 윈도우화 및 혼합을 달성하는 방법은 수학식 8에 의해서 표시된다.
Figure 112004040879219-pat00013
상기 설명된 실시예는 원래 신호 프레임 또는 세그먼트로의 삽입 및 윈도우화를 위해서 서브 세그먼트들을 계산한다. 하지만, 계산된 서브 세그먼트들은 원래 신호 프레임에서 내용 또는 특정 샘플들에 대한 고려 없이 원래 신호 프레임 전체에 걸쳐서 고르게 분배된다. 따라서, 관련된 실시예에서, 도 6에서 도시된 바와 같이, 도 5와 관련해서 설명된 과정은 또한 원래 세그먼트 전체에 걸쳐서 단순하게 균일하게 신장하기보다는 신장될 프레임 또는 세그먼트 내부의 특정 지점들을 먼저 선택하는 것에 의해서 향상된다. 또한, 이런 실시예는 계산된 FFT의 상태의 임의 선택은 각각의 하부 세그먼트에 대해서 적절했는지, 또는 각각의 하부 세그먼트이 원래 신호 세그먼트 또는 프레임을 신장하기 위한 중첩/추가 동작에서 수정되지 않은 채 사용될 수 있는지에 대한 판단을 행한다.
따라서, 도 6에서 도시된 실시예에서, 과정은 다시 인입 오디오 신호로부터 다음의 현재 프레임 x[n]을 얻는 것(600)에 의해서 시작된다. 하지만, 상기 설명된 실시예와는 달리, 현재 프레임은 그후 현재 프레임을 신장할 가장 좋은 T 시작 지점들, s[1,T]를 선택하기 위해서(605) 분석된다. 가장 좋은 T 시작 지점들의 선택은 도 7과 관련해서 섹션 3.2.3에서 상세히 설명되는 것을 주의해야 한다. 프레임이 신장될 상기 지점들이 주어진 경우에, 도 6의 과정은 이하에서 더욱 강조되어 질 다른 차이점들과 함께, 도 5와 관련해서 상기 설명된 과정과 유사한 방법으로 진행된다.
특히, 시작 지점들 s[1:T]의 선택(605) 후에, 앞선 프레임과 생성될 부분적으로 합성된 프레임 사이의 더욱 평탄화된 전이를 보장하기 위해서, 또한 이러한 과정은 무엇이 부분적으로 합성된 프레임 y[n]이 될 것인지의 문제의 시작으로 원래 데이터를 혼합하기 위해서(610) 현재 프레임 x[n]을 먼저 윈도우화하고 혼합하는 것에 의해서 시작된다. 이러한 윈도우화 및 혼합을 달성하기 위한 방법은 상기 설명된 바와 같이, 수학식 3에 의해서 표시된다. 다음, 제1 및 마지막 절반 세그먼트들을 셈에 넣지 않고, 바람직한 마지막 세그먼트 크기를 획득하기 위해서 필요하게될, 각각의 길이가 2K인 샘플들, 즉 중첩 세그먼트의 전체 횟수 T가 계산된다(615). 일반적으로, 이러한 계산(615)은 상술한 바와 같이, 수학식 4에 의해서 표시되는 바와 같이 달성된다.
다음, 중첩 세그먼트 카운터 i는 0으로 초기화된다(620). 그후, 미리 선택된 시작 지점들 s[i]가 주어진 경우에, 현재 시작 지점에 대응한 하부 세그먼트 z[n]은 수학식 9에 의해서 표시되는 바와 같이 현재 신호 프레임 x[n]으로부터 되돌아간다.
Figure 112004040879219-pat00014
그후, 현재 하부 세그먼트가 합성되었는지에 대한 판단(630)이 행해진다. 환언하면, 현재의 하부 세그먼트의 FFT가 상기 설명한 바와 같이 임의로 선택된 상태를 가졌는지에 대한 판단(630)이 행해진다. 도 7과 관련하여 섹션 3.2.3에서 그리고 이하에서 더 상세히 설명되는 것처럼, 현재 및 이웃 세그먼트 시작 지점들의 함수로써 이러한 판단(630)이 행해진다. 더욱 정확하게는, 현재 프레임 s[i]의 시작 지점과 이전 프레임 s[i-1]의 시작 지점 사이의 거리가 K 라면, 그후 s[i+1]를 임의로 선택하는 것이 필요하지 않다. 이것은 새롭고 오랜 프레임들이 원래 및 신장된 프레임에서 동일한 공간을 가지고, 그렇기 때문에 신호가 보존될 수 있기 때문이다. 더욱이, 가장 마지막으로 수정되지 않은 프레임이 j이고 s[i]-s[j]>2K라면, 어떠한 신호의 반복도 없기 때문에, s[i]에서 프레임 시작을 임의로 선택하는 것이 필요하지 않다. 또한 2K 보다 더 적은 임계값이 사용될 수 있다(즉, 실시예에서는 K가 사용됨). 상태를 임의로 선택하는 것이 결정되면(630), 현재 하부 세그먼트 z[n]은 평탄화 윈도우 v[n]에 의해서 곱해지고, 평탄화 하부 세그먼트의 FFT가 상기 설명된 바와 같이, 수학식 6에 의해서 표시되는 것처럼 계산된다(635).
이러한 점에서, 상기 설명된 것과 유사하게, 결과 FFT의 상태, Z[w]는 무작위화되고(640), 원래 세그먼트 z[n]과 유사한 스펙트럼을 갖지만 상관되지는 않는 합성 하부 세그먼트를 생성하기 위해서 FFT의 역수 u[n]이 계산된다(645). 새롭게 합성된 신호 하부 세그먼트 u[n]은 그후 위치 s에서 원래 신호로 삽입되고, 예를 들면, 이상에서 설명되고 수학식 7에서 표시된 바와 같이, 부분적으로 신장된 프레임을 생성하기 위해서 기존의 sine 윈도우와 같은 앞서 설명된 기존 중첩/추가 과정(650)을 사용해서 고르게 추가된다.안
대안으로, 현재 하부 세그먼트의 FFT는 상기 설명된 바와 같이 임의로 선택된 상태를 가지지 않는다고 판단된 경우에(630), 상기 설명된 바와 같이, z[n]은 앞서 설명된 기존 중첩/추가 과정(650)을 이용해서 위치 s에서 원래 신호로의 삽입을 위한 수정 없이 단순히 z[n]으로 통과된다. 또한, 특정 세그먼트들이 수정되지 않은 경우에, 단계(650)에서 다른 혼합 윈도우들이 적당할 수 있음에 주의해야 한다. 특히, 현재 또는 이전 하부 세그먼트 중 어느 것도 수정되지 않았다면, 상이한 혼합 윈도우(즉, sine 윈도우 대신에 Hamming 윈도우)가 사용된다. 그 이유는 신호의 수정되지 않은 하부 세그먼트들이 이러한 경우에는 실제로 상관되기 때문이다. 따라서, 사용된 윈도우는 상기 설명된 바와 같이,
Figure 112004040879219-pat00015
대신에
Figure 112004040879219-pat00016
이 되도록 될 것이다. 윈도우의 이러한 선택은 신호의 에너지를 보존하기 위한 것이다.
또한, 원래 신호와 수정되지 않은 하부 세그먼트들의 혼합하는 것은 신호를 혼합하는 것과 동일하다는 점에 주의해야 한다. 그렇기 때문에, 결과적인 서브 세그먼트는 원래 세그먼트에 대응하는 부분과 동일할 것이다. 그렇기 때문에, 실시예에서, 혼합 동작을 수행하는 것보다는, 수정되지 않는 세그먼트들을 위해서, 대응된 세그먼트는 단순히 원래 신호로부터 복제된다.
이러한 점에서, 도 5와 관련해서 설명된 예처럼, 중첩 세그먼트 카운터 i가 증가되고(660), 바람직한 마지막 세그먼트 크기를 얻기 위해서 중첩 세그먼트들의 전체 횟수 T가 삽입되었는지에 대한 판단이 행해진다(665). 더 많은 중첩 세그먼 트들이 계산될 필요가 있다면(665), 상기 설명된 단계들(625 내지 650)은 모든 중첩 세그먼트들이 부분적으로 합성된 신장된 세그먼트 y[n]을 생성하기 위해서 x[n]으로 삽입되고 계산될 때까지 반복된다. 마지막으로, 모든 중첩 세그먼트들이 y[n]을 생성하기 위해서 삽입되고 계산된 경우에, y[n]과 다음 프레임 사이의 평탄화 전이를 더욱 보장하기 위해서, 프로세스는 x[n]으로부터 원래 데이터와 부분적으로 합성된 프레임 y[n]을 프레임 y[n]의 끝으로 윈도우화함(670)으로써 종결된다. 이러한 윈도우화 및 혼합을 달성하기 위한 방법은 상기 설명된 바와 같이, 수학식 8에 의해서 도시된다.
3.2.3 신장시킬 세그먼트들의 선택
상기 설명된 다양한 세그먼트 형태들 및 신장 방법들이 주어진 경우에, 현재 프레임에서 어느 지점이 상기 프레임을 신장할 가장 좋은지의 문제가 여전히 존재한다. 예를 들어, 신호의 20ms 세그먼트과 같은, 비교적 짧은 프레임에서도 하나 이상의 전이 지점들 또는 수밀리 초의 비활동 상태가 자주 존재한다. 그러한 경우에, 프레임이 신장될 특정 지점을 선택하는 것이 유리하다. 그렇기 때문에, 실시예에서, 어디에서 신장할 것인지의 판단이 세그먼트의 에너지(더 낮은 에너지가 더 좋음) 및 일치를 가진 상기 세그먼트를 위해서 찾아지는 표준화 상관 계수(더 높은 것이 더 좋음)의 조합에 기초해서 행해지는 경우에 신장 "품질" 방법이 이용된다.
예를 들면, 통상적인 경우에, 20ms 프레임은 각각 5ms의 4 개의 서브 프레임들 또는 세그먼트들로 나뉘어질 수 있거나 또는, 선택적으로 대략 평가된 피치 주기를 가진 중첩 세그먼트들로 나뉘어질 수 있다. 특정 하부 프레임의 계산된 에너 지가 충분히 낮다면, 전이가 상기 프레임 내부에 존재하는 것으로 간주된다. 하지만, 에너지가 충분히 낮지 않다면, 전이가 상기 프레임에 존재하지 않을 것이고, 각각의 하부 프레임의 일치의 표준화 자동 상관이 신장할 가장 좋은 일치를 선택하기 위해서 사용된다.
예를 들면, 신장시킬 세그먼트들의 선택에 대한 실시예가 도 7에 도시된다. 일반적으로, 원래 신호 중 많은 것을 보존하기 위해서, 가능한 많은 시작 지점들을 K(즉, FFT/2) 샘플들만큼 멀리 위치시키는 것이 가장 좋다. 이러한 정보가 주어진 경우, 도 7은 시작 지점들을 판단하기 위한 하나의 예시적 과정을 도시한다. 제1 단계는 FFT/2 샘플들만큼 떨어진 지점들에서 초기 시작 지점들을 선택하는 것이다. 필요한 많은 새로운 지점들이 그후 한번에 하나씩, 이미 존재하는 지점들 사이에서 삽입된다. 또한, 실시예에서, 다른 길이들의 세그먼트들을 설명하기 위해서, 각각의 세그먼트의 평균 에너지가 나뉘어진 더 긴 세그먼트들을 뒷받침하기 위해서 가중치가 부여된다. 실시예에서, 세그먼트들은 세그먼트 크기의 제곱근에 의해서 가중치가 부여된다. 하지만, 임의의 기존 가중치 부여가 사용될 수도 있다. 마지막 분류에서, 많은 지점들이 여전히 FFT/2 만큼 떨어져 있을 것이다. 이러한 세그먼트들(더 높은 에너지 세그먼트들일수도 있음)은 수정될 필요가 없다.
특히, 도 7에 도시된 바와 같이, 현재 신호 프레임을 신장하기 위한 가장 좋은 지점들을 선택할 때, 프로세스는 바람직한 프레임 크기 M, (T=(M/K)-1))의 내부 세그먼트들 T의 전체 갯수, 및 원래 프레임 크기 N, (P=(M/K)-1))의 내부 세그먼트들 P의 전체 갯수를 판단하는 것으로 시작한다. 이 경우에, 지점 카운터(Pt)는 P+1로 설정된다(720). 다음, 각각의 하부 세그먼트의 평균 에너지(E(i))는 수학식 10에 의해서 표시되는 것처럼 계산된다(730):
Figure 112004040879219-pat00017
다음으로, 일 실시예에서, 각각의 하부 세그먼트의 평균 에너지(E(i))는 각각의 하부 세그먼트들 길이에 비례해서 가중치가 부여된다(740). 상기 설명된 바와 같이, 시험된 실시예에서, 세그먼트들은 수학식 11에 의해서 표시된 바와 같이, 세그먼트 크기의 제곱근에 의해서 가중치가 부여된다(740).
Figure 112004040879219-pat00018
하지만, 상술한 바와 같이, 에너지 값들을 가중치 부여하기 위해 임의의 기존 가중치 부여 방법이 사용될 수 있다.
가중치가 부여된 경우에(740), 가장 낮은 에너지 값을 가진 세그먼트 s[j]를 선택하기 위해(750) 평균 에너지 값들 E(i)가 조사된다. 상기 설명된 바와 같이, 이러한 가장 낮은 에너지 세그먼트들은 수학식 12에 의해서 표시된 바와 같이 나뉘어진 지점에서 위치된 현재 프레임을 신장하기 위한 새로운 시작 지점 s[Pt]을 가지고, 그후 두 개로 나뉘어진다.
Figure 112004040879219-pat00019
일 실시예에서, s[i]는 표시를 단순화할 목적으로 에너지 값에 따라 분류된다(770). 예를 들면, 4개의 현재 지점들, 즉 s[1:4]={64, 128, 192, 256}이 있다고 가정하면, 새로운 지점이 (224)에서, s[3]과 s[4] 사이에서 도입되며, 새로운 지점은 s[5]가 될 것이다. 그러므로, 이제 순서는 s[1:5] ={64, 128, 192, 256, 224}가 될 것이다. s[:]를 정렬하면 s[1:5] = {64, 128, 192, 224, 256}가 되도록 지점들의 정확한 순서로 회복될 것이다.
마지막으로, 신장을 위한 가장 좋은 T 지점들이 선택되었는지에 대해서 판단(780)이 행해진다. 그렇지 않다면, 신장을 위해서 가장 좋은 T 지점들이 선택될 때까지 상기 설명된 단계들(720 내지 780)을 반복한다.
3.3 혼합 세그먼트들을 신장
상기 설명된 바와 같이, 혼합 세그먼트들은 주기적 및 비주기적 구성 요소들 모두의 조합을 표시한다. 따라서, 음성 세그먼트들이나 무음성 세그먼트들을 신장하는 방법 중 어느 것도 혼합 세그먼트들을 신장하기 위해서 개별적으로는 적절하지 않다. 예를 들면, 음성 세그먼트들을 처리하는 방법을 사용하는 것은 무음성 스펙트럼의 부분들로 큰 아티팩트들을 가져올 것이다. 유사하게, 무음성 세그먼트들을 처리하는 방법을 사용하는 것은 세그먼트의 음성 부분들에서의 주기성을 파괴할 것이다. 따라서, 실시예에서는 두 방법 모두가 사용된다. 특히, 음성 및 무음 성 방법들 모두를 사용하는 현재의 혼합 세그먼트으로부터 신호들이 발생된다. 이러한 신호들은 그후 음성 및 무음성 신호들 모두를 포함하는 합성 신호를 생성하기 위해서 혼합된다.
또한, 관련된 실시예에서, 생성된 음성 및 무음성 신호들은 정규화 상호 상관 피크의 값의 함수로써 가중치가 부여된다. 예를 들면, 상기 설명된 바와 같이, 정규화 상호 상관 피크의 값은 세그먼트가 더 주기적이 될 때, 즉, 세그먼트에 더 많은 음성이 있을 때 증가된다. 그렇기 때문에, 정규화 상호 상관 피크의 값이 더 높은 경우에 음성 신호를 더 크게 가중치를 부여하는 것은 일부 주기성을 희생해서 신장된 세그먼트에서 음성의 인지될 품질을 개선하고, 신장된 세그먼트의 무음성 부분에서, 이렇게 인지될 흠결들을 개선할 것이다. 반대로, 정규화 상호 상관 피크의 값이 감소할 때, 세그먼트에서 더 작은 주기성이 된다. 그렇기 때문에, 무음성 신호가 더 크게 가중치가 부여되고, 그것에 의해서 주기성을 감소시키는 대신, 세그먼트의 무음성 부분들의 인지된 품질을 개선하고, 세그먼트의 음성 부분들의 명확성을 개선시킬 것이다.
예를 들면, 시험된 실시예에서, 0.45 내지 0.95의 정규화 상호 상관 피크에 대응하는 0에서 1로의 선형 가중치 부여는, 각각 상기 설명된 음성 세그먼트 방법을 사용해서 희망된 길이의 신호를 발생하는 것에 의해서 합성 신호에 대한 음성 구성 요소를 생성하기 위해서 사용된다. 유사하게, 0.45 내지 0.95의 정규화 상호 상관 피크에 대응하는 1에서 0으로의 선형 가중치 부여는 각각 상기 설명된 무음성 세그먼트를 사용해서 동일한 바람직한 길이의 신호를 발생시킴으로써 합성 신호에 대한 무음성 구성 부분을 생성하기 위해서 사용된다. 이러한 두 개의 가중치가 부여된 신호 구성 요소들은 그후 합성 신호를 생성하기 위해서 단순히 추가된다. 하지만, 본 분야의 당업자들은 설명된 바와 같이 선형 가중치 부여를 사용할 필요가 없고, 상기 가중치 부여가 바람직한 선형 또는 비-선형 가중치 부여라는 것을 이해할 것이다. 또한, 상기 확인된 음성 및 무음성 세그먼트들을 위한 임계값들은 시험된 실시예에서 사용되었고, 설명의 목적으로만 오직 제공된다. 명확하게는, 음성, 무음, 및 혼합 세그먼트들을 확인하기 위한 다른 임계값들은 본 명세서에서 설명된 방법들에 따라서 사용될 수 있다.
3.4 세그먼트들을 압축하기 위한 계층화된(layered) 접근법
충분한 선택의 자유가 있는 에플리케이션에서는, 상기 선택이 인간 청취자에게 재구성된 신호의 인지 품질에 보통 영향을 주기 때문에, 주어진 프레임 또는 프레임들에서 실제로 어떤 세그먼트들을 압축할 것인지에 대한 선택은 또한 중요한 결정 사항이다. 예를 들면, 주어진 신호의 모든 세그먼트들을 동일하게 압축하는 것보다, 더욱 좋은 결과들은 보통 압축에 대한 계층적(hierarchical) 또는 계층화된(layered) 방법을 사용하면서 달성된다. 특히, 상기 설명된 바와 같이, 각각의 세그먼트의 형태는 압축이 프레임에 적용되는 시간에 이미 알려진다. 이러한 정보가 주어졌을 때, 우선적 계층적인 순서로 특정 세그먼트 형태들을 먼저 압축함으로써 바람직한 압축이 주어진 프레임 또는 프레임들에서 달성된다.
특히, 음성 세그먼트들 또는 침묵 세그먼트들(즉, 비교적 낮은 에너지 비주기 신호들을 포함하는 세그먼트들)을 표시하는 프레임들 또는 세그먼트들이 먼저 압축된다. 다음으로, 무음성 세그먼트들이 압축된다. 마지막으로, 혼합 세그먼트들, 즉 과도 상태를 포함한 세그먼트들이 압축된다. 이러한 우선 순서의 이유는, 큰 아티팩트들을 만들지 않고 달성하기에 다양한 세그먼트 형태 중에 음성 또는 침묵 세그먼트들의 압축이 가장 쉽기 때문이다. 무음성 세그먼트들의 압축은 큰 아티팩트들 없이 압축하기에 다음으로 가장 쉬운 형태이다. 마지막으로, 혼합 세그먼트들 및 과도 상태를 포함한 세그먼트는, 큰 아티팩트들없이 압축하기에 가장 어렵기 때문에, 제일 마지막으로 압축된다.
따라서, 통상적으로 신호의 모든 세그먼트들을 동일하게 압축하는 것보다, 더욱 좋은 결과는 특정 프레임들을 선택적으로 압축하는 것에 의해서 달성된다. 예를 들면, 무음성 세그먼트들 또는 과도 상태의 압축을 피하면서, 음성, 비활동 상태 또는 단순한 잡음을 나타내는 프레임들을 압축하는 것은 감소되어진 인지 아티패트들을 가진 재구성 신호를 생성한다. 충분한 압축이 음성 또는 비활동 상태 세그먼트들을 압축하는 것으로 달성될 수 없다면, 비-전이적 무음성 세그먼트들이 상기 설명된 방법으로 압축된다. 마지막으로, 음성 세그먼트들 또는 비-전이적 무음성 세그먼트들의 압축을 통해서 충분한 압축이 달성될 수 없다면, 전이들 즉, 혼합 세그먼트들을 포함한 세그먼트들이 압축된다. 압축에 대한 이러한 계층적 방법은 재구성된 신호에서 인지될 아티팩트들을 제한하도록 동작한다.
또한, 오프라인 에플리케이션에서, 또는 충분히 재생되지 않은 프레임들이 이용 가능하면, 가장 적은 양의 신호 왜곡 및 아티팩트들을 초래하는 세그먼트들만을 압축함으로써, 필요에 따라 완전히 이용 가능한 신호의 하나 이상의 프레임에 대해 바람직한 압축이 수행될 수 있다. 예를 들면, 그러한 압축을 달성하는 특정한 방법은 바람직한 압축 비율들을 각각의 다른 프레임 형태들로 미리 할당하는 것이다. 예를 들면, 5X의 압축 비율이 비활동 상태 프레임들로 할당될 수 있고, 2X는 음성 프레임들로, 1.5X는 무음성 프레임들로, 1X(압축되지 않음)은 혼합된 또는 전이적 세그먼트들로 할당될 수 있다. 명확하게는, 바람직한 압축 비율들이 다양한 프레임 형태들에 할당될 수 있으므로, 이러한 예에서의 압축 비율들은 오직 설명을 위한 것이다.
일반적으로, 압축될 특정 세그먼트들이 선택 또는 인식되면, 세그먼트의 신장에 대하여 이상에서 기술된 방법과 유사하게 세그먼트들의 압축이 처리된다. 예를 들면, 음성 세그먼트를 압축할 때, 템플릿이 세그먼트 내부로부터 선택되고, 일치를 위한 검색이 수행된다. 일치가 확인된 경우에, 세그먼트들이 윈도우화되고, 중첩되고 추가되어, 템플릿과 일치된 것 사이의 신호를 잘라낸다. 결과적으로, 세그먼트가 짧아지거나 압축된다. 한편, 무음성 세그먼트를 압축할 때, 세그먼트를 바람직한 양으로 압축하기 위해서 일정한 제곱합 윈도우와 같은 윈도우 함수와 함께, 프레임의 세그먼트의 부분을 삭제하기 위해서 임의로 선택되거나 미리 결정된 이동이 사용된다. 마지막으로, 혼합 세그먼트들의 신장에 관해서 상기 설명된 방법과 유사한 음성 및 무음성 방법들의 가중치가 부여된 조합을 사용해서 혼합 세그먼트들이 압축된다.
자동적인 가변적 신장 및 압축 오디오 신호 프레임들을 제공하는 시간 오디오 스케일러에 대한 이상의 설명은 예시와 설명의 목적으로 제시된다. 본 발명을 지금까지 설명된 형태로 제한하도록 의도된 것이 아니다. 상기 설명의 관점에서 많은 변화들 및 변형들이 가능하다. 또한, 앞서 설명된 실시예들 중 일부 또는 모두는 본 명세서에서 설명된 시간 오디오 스케일러의 추가적인 혼합된 실시예들을 형성하기 위해서 조합되어 사용될 수 있다는 점에 주의해야 한다. 본 발명의 범위는 상세한 설명이 아니라 첨부된 청구항에 의해서 제한될 것을 의도하고 있다.
본 발명에 따라서, 음성 및 다른 오디오를 포함한 오디오 신호들을 고품질 시간 스케일 변경 기술이 제공된다. 특히, 인지된 아티팩트들을 최소화하면서 음성 신장 및 압축을 제공하고, 가변적인 네트워크 패킷 지연 및 손실을 설명할 수 있는 가변적인 압축 및 신장이 제공된다. 그에 따라 적응성 "시간 오디오 스케일러"가 패킷 기초 네트워크를 통해서 수신되는 오디오 신호들의 프레임들을 자동적으로 신장 및 압축하는 방법 및 시스템이 제공된다.

Claims (36)

  1. 음성(speech)을 포함하는 오디오 신호의 세그먼트들의 시간 변경을 위한 시스템으로서,
    수신된 오디오 신호로부터 데이터 프레임들을 연속적으로(sequentially) 추출하기 위한 프레임 추출 모듈;
    상기 연속적으로 추출된 데이터 프레임들 중 현재 프레임의 각 세그먼트의 콘텐츠 타입을 판단하기 위한 세그먼트 타입 검출 모듈 - 상기 콘텐츠 타입은 음성(voiced) 세그먼트들, 무음(unvoiced) 세그먼트들 및 혼합 세그먼트들을 포함함; 및
    상기 현재 프레임의 적어도 하나의 세그먼트에 대해, 음성 세그먼트 시간 변경 프로세스(voiced segment temporal modification process), 무음 세그먼트 시간 변경 프로세스(unvoiced segment temporal modification process) 및 혼합 세그먼트 시간 변경 프로세스(mixed segment temporal modification process) 중 대응되는 시간 변경 프로세스를 자동으로 선택 및 적용함으로써, 상기 현재 프레임의 적어도 하나의 세그먼트를 시간적으로(temporally) 변경하기 위한 수단
    을 포함하고, 상기 혼합 세그먼트 시간 변경 프로세스의 적용은 상기 음성 세그먼트 시간 변경 프로세스 및 상기 무음 시간 변경 프로세스 양자 모두를 적용하는 것을 포함하는, 시스템.
  2. 제1항에 있어서,
    상기 현재 프레임의 각 세그먼트의 콘텐츠 타입을 판정하는 것은 상기 세그먼트의 상기 콘텐츠를 검사하여 사전 수립된 기준에 따라 상기 세그먼트의 상기 콘텐츠 타입을 분류(classifying)하는 것을 포함하는, 시스템.
  3. 제2항에 있어서,
    상기 분류는 오직 상기 현재 프레임에만 기초하여 이루어지는, 시스템.
  4. 제2항에 있어서,
    상기 분류는 하나 이상의 이웃 프레임으로부터 추출된 정보에 적어도 부분적으로 기초하여 이루어지는, 시스템.
  5. 제2항 내지 제4항 중 어느 한 항에 있어서,
    상기 분류는 상기 세그먼트의 주기성(periodicity)에 적어도 부분적으로 기초하여 이루어지는, 시스템.
  6. 음성을 포함하는 오디오 신호 세그먼트들의 시간 변경을 위한 방법으로서,
    수신된 오디오 신호로부터 데이터 프레임들을 연속적으로 추출하는 단계;
    상기 연속적으로 추출된 데이터 프레임들 중 현재 프레임의 각 세그먼트의 콘텐츠 타입을 판단하는 단계 - 상기 콘텐츠 타입들은 음성 세그먼트들, 무음 세그먼트들 및 혼합 세그먼트들을 포함함 - ; 및
    상기 현재 프레임의 적어도 하나의 세그먼트에 대해, 음성 세그먼트 시간 변경 프로세스, 무음 세그먼트 시간 변경 프로세스 및 혼합 세그먼트 시간 변경 프로세스 중 대응되는 시간 변경 프로세스를 자동으로 선택 및 적용함으로써, 상기 현재 프레임의 적어도 하나의 세그먼트를 시간적으로 변경하는 단계
    를 포함하고, 상기 혼합 세그먼트 시간 변경 프로세스의 적용은 상기 음성 세그먼트 시간 변경 프로세스 및 상기 무음 시간 변경 프로세스 양자 모두를 적용하는 것을 포함하는, 방법.
  7. 제6항에 있어서,
    각각의 프레임에 대한 평균 피치 주기(average pitch period)를 평가하는 단계를 더 포함하고,
    상기 프레임들 각각은, 길이가 1 피치 주기인 적어도 하나의 세그먼트를 포함하는, 방법.
  8. 제6항에 있어서,
    상기 현재 프레임의 각 세그먼트의 콘텐츠 타입을 판단하는 상기 단계는, 각 프레임에 대한 정규화 상호 상관(normalized cross correlation)을 계산하는 단계 및 각 세그먼트의 콘텐츠 타입을 판단하기 위해 소정의 임계값들과 각 정규화 상호 상관의 최대 피크값을 비교하는 단계를 포함하는, 방법.
  9. 제6항 내지 제8항 중 어느 한 항에 있어서,
    적어도 하나의 세그먼트의 콘텐츠 타입은 음성 세그먼트이고,
    적어도 하나의 세그먼트를 시간적으로 변경하는 상기 단계는 상기 현재 프레임의 길이를 늘이기 위해 상기 음성 세그먼트를 신장시키는(stretching) 단계를 포함하는, 방법.
  10. 제6항 내지 제8항 중 어느 한 항에 있어서,
    시간적으로 변경된 세그먼트들의 평균 압축 비율(average compression ratio)이 전체 목표 압축 비율(overall target compression ratio)에 대응되는지를 판단하는 단계를 더 포함하고,
    상기 전체 목표 압축 비율이 유지되는 것을 보장하기 위해 적어도 하나의 다음 현재 프레임(next current frame)에 대한 다음 목표 압축 비율이 자동적으로 조정되는, 방법.
  11. 제6항 내지 제8항 중 어느 한 항에 있어서,
    적어도 하나의 세그먼트의 콘텐츠 타입은 무음성 세그먼트이고,
    적어도 하나의 세그먼트를 시간적으로 변경하는 상기 단계는 상기 현재 프레임의 길이를 증가시키기 위해 적어도 하나의 합성 세그먼트(synthetic segment)를 자동적으로 생성하여 상기 현재 프레임에 삽입하는 단계를 포함하는, 방법.
  12. 디지털 오디오 신호의 세그먼트들의 동적인 시간 변경(dynamic temporal modification)을 제공하기 위한 컴퓨터 판독 가능 명령어들을 기록한 컴퓨터 판독 가능 기록 매체로서, 상기 컴퓨터 판독 가능 명령어들은 컴퓨팅 장치에서 실행될 경우 상기 컴퓨팅 장치로 하여금,
    디지털 오디오 신호의 하나 이상의 연속 프레임을 수신하는 동작,
    수신된 바에 따라 상기 디지털 오디오 신호의 각 프레임을 디코딩하는 동작,
    음성 세그먼트 콘텐츠 타입, 무음 세그먼트 콘텐츠 타입 및 혼합 세그먼트 콘텐츠 타입을 포함하는 소정의 세그먼트 콘텐트 타입들의 그룹으로부터 상기 디코딩된 프레임들의 세그먼트들의 콘텐츠 타입을 판단하는 동작 - 각각의 세그먼트 콘텐츠 타입은 연관된 타입에 특정한 시간 변경 프로세스(type-specific temporal modification process)를 가지고, 상기 타입에 특정한 시간 변경 프로세스는 음성 세그먼트 시간 변경 프로세스, 무음 세그먼트 시간 변경 프로세스 및 혼합 세그먼트 시간 변경 프로세스를 포함함 -, 및
    각각의 세그먼트 콘텐츠 타입에 특정된, 상기 연관된 타입에 특정한 시간 변경 프로세스를 사용하여, 상기 세그먼트들의 하나 이상의 시간 스케일을 변경하는 동작
    을 수행하도록 하며, 상기 혼합 세그먼트 시간 변경 프로세스를 이용하는 것은 상기 음성 세그먼트 시간 변경 프로세스 및 상기 무음 세그먼트 시간 변경 프로세스 모두를 이용하는 것을 포함하는, 컴퓨터 판독 가능 기록 매체.
  13. 제12항에 있어서,
    상기 혼합 타입의 세그먼트들은 음성 콘텐츠 및 무음 콘텐츠의 혼합을 나타내는, 컴퓨터 판독 가능 기록 매체.
  14. 제12항 또는 제13항에 있어서,
    하나 이상의 세그먼트의 시간 스케일을 변경하는 상기 동작은, 목표 시간 변경 비율을 달성하기 위하여 상기 하나 이상의 세그먼트를 시간적으로 신장시키는 동작 및 시간적으로 압축시키는 동작 중 어느 하나를 포함하는, 컴퓨터 판독 가능 기록 매체.
  15. 제12항 또는 제13항에 있어서,
    세그먼트들의 콘텐츠 타입을 판단하는 상기 동작은 각 세그먼트의 서브 세그먼트들에 대한 정규화 상호 상관을 계산하는 동작 및 각 세그먼트의 콘텐츠 타입을 판단하기 위해 소정의 임계값과 각각의 정규화 상호 상관의 최대 피크를 비교하는 동작을 포함하는, 컴퓨터 판독 가능 기록 매체.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
KR1020040072045A 2003-09-10 2004-09-09 디지털 오디오 신호의 고품질 신장 및 압축을 제공하기위한 시스템 및 방법 KR101046147B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/660,325 US7337108B2 (en) 2003-09-10 2003-09-10 System and method for providing high-quality stretching and compression of a digital audio signal
US10/660,325 2003-09-10

Publications (2)

Publication Number Publication Date
KR20050026884A KR20050026884A (ko) 2005-03-16
KR101046147B1 true KR101046147B1 (ko) 2011-07-01

Family

ID=34136772

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040072045A KR101046147B1 (ko) 2003-09-10 2004-09-09 디지털 오디오 신호의 고품질 신장 및 압축을 제공하기위한 시스템 및 방법

Country Status (7)

Country Link
US (1) US7337108B2 (ko)
EP (1) EP1515310B1 (ko)
JP (1) JP5096660B2 (ko)
KR (1) KR101046147B1 (ko)
CN (1) CN100533989C (ko)
AT (1) ATE361525T1 (ko)
DE (1) DE602004006206T2 (ko)

Families Citing this family (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7412376B2 (en) * 2003-09-10 2008-08-12 Microsoft Corporation System and method for real-time detection and preservation of speech onset in a signal
US7596488B2 (en) * 2003-09-15 2009-09-29 Microsoft Corporation System and method for real-time jitter control and packet-loss concealment in an audio signal
KR100547445B1 (ko) * 2003-11-11 2006-01-31 주식회사 코스모탄 디지털 오디오신호 및 오디오/비디오신호의 변속처리방법및 이를 이용한 디지털 방송신호의 변속재생방법
WO2005076258A1 (ja) * 2004-02-03 2005-08-18 Matsushita Electric Industrial Co., Ltd. ユーザ適応型装置およびその制御方法
US20050227657A1 (en) * 2004-04-07 2005-10-13 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for increasing perceived interactivity in communications systems
US20050283795A1 (en) * 2004-05-14 2005-12-22 Ryan Steelberg Broadcast monitoring system and method
US7710982B2 (en) 2004-05-26 2010-05-04 Nippon Telegraph And Telephone Corporation Sound packet reproducing method, sound packet reproducing apparatus, sound packet reproducing program, and recording medium
JP4096915B2 (ja) * 2004-06-01 2008-06-04 株式会社日立製作所 デジタル情報再生装置及び方法
US7783482B2 (en) * 2004-09-24 2010-08-24 Alcatel-Lucent Usa Inc. Method and apparatus for enhancing voice intelligibility in voice-over-IP network applications with late arriving packets
DE102004047032A1 (de) * 2004-09-28 2006-04-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Bezeichnen von verschiedenen Segmentklassen
DE102004047069A1 (de) * 2004-09-28 2006-04-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Ändern einer Segmentierung eines Audiostücks
WO2006106466A1 (en) * 2005-04-07 2006-10-12 Koninklijke Philips Electronics N.V. Method and signal processor for modification of audio signals
JP4675692B2 (ja) * 2005-06-22 2011-04-27 富士通株式会社 話速変換装置
JP4736632B2 (ja) * 2005-08-31 2011-07-27 株式会社国際電気通信基礎技術研究所 ボーカル・フライ検出装置及びコンピュータプログラム
US8155972B2 (en) * 2005-10-05 2012-04-10 Texas Instruments Incorporated Seamless audio speed change based on time scale modification
US20070178865A1 (en) * 2005-12-15 2007-08-02 Steelberg Ryan S Content Depot
US20070186146A1 (en) * 2006-02-07 2007-08-09 Nokia Corporation Time-scaling an audio signal
CA2650419A1 (en) * 2006-04-27 2007-11-08 Technologies Humanware Canada Inc. Method for the time scaling of an audio signal
US8364492B2 (en) * 2006-07-13 2013-01-29 Nec Corporation Apparatus, method and program for giving warning in connection with inputting of unvoiced speech
KR100883652B1 (ko) * 2006-08-03 2009-02-18 삼성전자주식회사 음성 구간 검출 방법 및 장치, 및 이를 이용한 음성 인식시스템
US8731913B2 (en) * 2006-08-03 2014-05-20 Broadcom Corporation Scaled window overlap add for mixed signals
US7647229B2 (en) * 2006-10-18 2010-01-12 Nokia Corporation Time scaling of multi-channel audio signals
JP4940888B2 (ja) * 2006-10-23 2012-05-30 ソニー株式会社 オーディオ信号伸張圧縮装置及び方法
US8214517B2 (en) * 2006-12-01 2012-07-03 Nec Laboratories America, Inc. Methods and systems for quick and efficient data management and/or processing
US8005671B2 (en) 2006-12-04 2011-08-23 Qualcomm Incorporated Systems and methods for dynamic normalization to reduce loss in precision for low-level signals
US7873064B1 (en) * 2007-02-12 2011-01-18 Marvell International Ltd. Adaptive jitter buffer-packet loss concealment
CN101325631B (zh) * 2007-06-14 2010-10-20 华为技术有限公司 一种估计基音周期的方法和装置
US8401865B2 (en) * 2007-07-18 2013-03-19 Nokia Corporation Flexible parameter update in audio/speech coded signals
CN100524462C (zh) * 2007-09-15 2009-08-05 华为技术有限公司 对高带信号进行帧错误隐藏的方法及装置
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
JP2010009206A (ja) * 2008-06-25 2010-01-14 Nikon Corp 記録制御装置
KR101381513B1 (ko) * 2008-07-14 2014-04-07 광운대학교 산학협력단 음성/음악 통합 신호의 부호화/복호화 장치
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
JP5245962B2 (ja) * 2009-03-19 2013-07-24 日本電気株式会社 音声合成装置、音声合成方法、プログラム及び記録媒体
US9269366B2 (en) * 2009-08-03 2016-02-23 Broadcom Corporation Hybrid instantaneous/differential pitch period coding
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
AU2011226212B2 (en) 2010-03-09 2014-03-27 Dolby International Ab Apparatus and method for processing an input audio signal using cascaded filterbanks
RU2591012C2 (ru) * 2010-03-09 2016-07-10 Фраунхофер-Гезелльшафт цур Фёрдерунг дер ангевандтен Форшунг Е.Ф. Устройство и способ обработки переходных процессов для аудио сигналов с изменением скорости воспроизведения или высоты тона
BR112012022745B1 (pt) 2010-03-09 2020-11-10 Fraunhofer - Gesellschaft Zur Föerderung Der Angewandten Forschung E.V. dispositivo e método para resposta de magnitude aperfeiçoada e alinhamento temporal em um vocoder de fase com base no método de extenção da largura de banda para sinais de áudio
US8620660B2 (en) * 2010-10-29 2013-12-31 The United States Of America, As Represented By The Secretary Of The Navy Very low bit rate signal coder and decoder
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
KR102038171B1 (ko) * 2012-03-29 2019-10-29 스뮬, 인코포레이티드 타겟 운율 또는 리듬이 있는 노래, 랩 또는 다른 가청 표현으로의 스피치 자동 변환
JP5465276B2 (ja) * 2012-06-04 2014-04-09 株式会社Nttドコモ 音声パケット通信方法および音声パケット通信装置
CN103871414B (zh) * 2012-12-11 2016-06-29 华为技术有限公司 一种多声道语音信号的时标调制方法和装置
JP6098149B2 (ja) 2012-12-12 2017-03-22 富士通株式会社 音声処理装置、音声処理方法および音声処理プログラム
ES2597829T3 (es) * 2013-02-05 2017-01-23 Telefonaktiebolaget Lm Ericsson (Publ) Ocultación de pérdida de trama de audio
KR101467684B1 (ko) * 2013-05-20 2014-12-01 김정훈 이진데이터 압축 및 압축해제 장치와 방법
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
EP3937002A1 (en) 2013-06-09 2022-01-12 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
BR112015031825B1 (pt) 2013-06-21 2021-12-28 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Controle jitter buffer, descodificador de áudio e método para controlar um fornecimento de um conteúdo de áudio descodificado
EP3321934B1 (en) * 2013-06-21 2024-04-10 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Time scaler, audio decoder, method and a computer program using a quality control
EP2881944B1 (en) * 2013-12-05 2016-04-13 Nxp B.V. Audio signal processing apparatus
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US10255903B2 (en) * 2014-05-28 2019-04-09 Interactive Intelligence Group, Inc. Method for forming the excitation signal for a glottal pulse model based parametric speech synthesis system
US10014007B2 (en) * 2014-05-28 2018-07-03 Interactive Intelligence, Inc. Method for forming the excitation signal for a glottal pulse model based parametric speech synthesis system
TWI566107B (zh) 2014-05-30 2017-01-11 蘋果公司 用於處理多部分語音命令之方法、非暫時性電腦可讀儲存媒體及電子裝置
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
WO2016036163A2 (ko) * 2014-09-03 2016-03-10 삼성전자 주식회사 오디오 신호를 학습하고 인식하는 방법 및 장치
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
GB2537924B (en) * 2015-04-30 2018-12-05 Toshiba Res Europe Limited A Speech Processing System and Method
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
KR102422794B1 (ko) * 2015-09-04 2022-07-20 삼성전자주식회사 재생지연 조절 방법 및 장치와 시간축 변형방법 및 장치
CN105706167B (zh) 2015-11-19 2017-05-31 瑞典爱立信有限公司 有语音的话音检测方法和装置
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
CN105741857B (zh) * 2016-04-14 2019-06-14 北京工业大学 一种音调序列的鲁棒阶跃规整方法
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
EP3327723A1 (en) * 2016-11-24 2018-05-30 Listen Up Technologies Ltd Method for slowing down a speech in an input media content
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US11076039B2 (en) 2018-06-03 2021-07-27 Apple Inc. Accelerated task performance
US10791404B1 (en) * 2018-08-13 2020-09-29 Michael B. Lasky Assisted hearing aid with synthetic substitution
WO2020069594A1 (en) * 2018-10-03 2020-04-09 Videolocalize Inc. Piecewise hybrid video and audio synchronization
US10878835B1 (en) * 2018-11-16 2020-12-29 Amazon Technologies, Inc System for shortening audio playback times
CN109920406B (zh) * 2019-03-28 2021-12-03 国家计算机网络与信息安全管理中心 一种基于可变起始位置的动态语音识别方法及系统
US11227579B2 (en) * 2019-08-08 2022-01-18 International Business Machines Corporation Data augmentation by frame insertion for speech data
CN110690902B (zh) * 2019-09-25 2022-05-17 电子科技大学 一种基于随机截断的时间交织adc失配优化方法
EP4091332A1 (en) * 2020-01-15 2022-11-23 Dolby International AB Adaptive streaming of media content with bitrate switching

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030033140A1 (en) 2001-04-05 2003-02-13 Rakesh Taori Time-scale modification of signals

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4435831A (en) * 1981-12-28 1984-03-06 Mozer Forrest Shrago Method and apparatus for time domain compression and synthesis of unvoiced audible signals
JP2867744B2 (ja) * 1991-06-17 1999-03-10 松下電器産業株式会社 音声再生装置
US5765127A (en) * 1992-03-18 1998-06-09 Sony Corp High efficiency encoding method
US5717823A (en) * 1994-04-14 1998-02-10 Lucent Technologies Inc. Speech-rate modification for linear-prediction based analysis-by-synthesis speech coders
CN1079180C (zh) * 1995-02-28 2002-02-13 摩托罗拉公司 通信系统中的语音压缩方法及设备
US5774837A (en) * 1995-09-13 1998-06-30 Voxware, Inc. Speech coding system and method using voicing probability determination
US5893062A (en) * 1996-12-05 1999-04-06 Interval Research Corporation Variable rate video playback with synchronized audio
JPH10214098A (ja) * 1997-01-31 1998-08-11 Sanyo Electric Co Ltd 音声変換玩具
US6754265B1 (en) * 1999-02-05 2004-06-22 Honeywell International Inc. VOCODER capable modulator/demodulator
JP3432443B2 (ja) * 1999-02-22 2003-08-04 日本電信電話株式会社 音声速度変換装置、音声速度変換方法および音声速度変換方法を実行するプログラムを記録した記録媒体
US6138089A (en) * 1999-03-10 2000-10-24 Infolio, Inc. Apparatus system and method for speech compression and decompression
JP2001154684A (ja) * 1999-11-24 2001-06-08 Anritsu Corp 話速変換装置
US6718309B1 (en) * 2000-07-26 2004-04-06 Ssi Corporation Continuously variable time scale modification of digital audio signals
US6477502B1 (en) * 2000-08-22 2002-11-05 Qualcomm Incorporated Method and apparatus for using non-symmetric speech coders to produce non-symmetric links in a wireless communication system
US6985857B2 (en) * 2001-09-27 2006-01-10 Motorola, Inc. Method and apparatus for speech coding using training and quantizing
JP2003216200A (ja) * 2002-01-28 2003-07-30 Telecommunication Advancement Organization Of Japan 字幕用書き起こしテキストの作成支援システム及び半自動型字幕番組制作システム
US7412376B2 (en) * 2003-09-10 2008-08-12 Microsoft Corporation System and method for real-time detection and preservation of speech onset in a signal
US7596488B2 (en) * 2003-09-15 2009-09-29 Microsoft Corporation System and method for real-time jitter control and packet-loss concealment in an audio signal
US7627467B2 (en) * 2005-03-01 2009-12-01 Microsoft Corporation Packet loss concealment for overlapped transform codecs
US7526351B2 (en) * 2005-06-01 2009-04-28 Microsoft Corporation Variable speed playback of digital audio

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030033140A1 (en) 2001-04-05 2003-02-13 Rakesh Taori Time-scale modification of signals

Also Published As

Publication number Publication date
DE602004006206T2 (de) 2007-08-30
US20050055204A1 (en) 2005-03-10
CN1601912A (zh) 2005-03-30
CN100533989C (zh) 2009-08-26
JP5096660B2 (ja) 2012-12-12
JP2005084692A (ja) 2005-03-31
EP1515310A1 (en) 2005-03-16
KR20050026884A (ko) 2005-03-16
ATE361525T1 (de) 2007-05-15
EP1515310B1 (en) 2007-05-02
US7337108B2 (en) 2008-02-26
DE602004006206D1 (de) 2007-06-14

Similar Documents

Publication Publication Date Title
KR101046147B1 (ko) 디지털 오디오 신호의 고품질 신장 및 압축을 제공하기위한 시스템 및 방법
US7412379B2 (en) Time-scale modification of signals
JP4137634B2 (ja) 紛失フレームを取扱うための音声通信システムおよび方法
TWI553628B (zh) 訊框錯誤隱藏方法
TWI585748B (zh) 訊框錯誤隱藏方法以及音訊解碼方法
RU2257556C2 (ru) Квантование коэффициентов усиления для речевого кодера линейного прогнозирования с кодовым возбуждением
US8862463B2 (en) Adaptive time/frequency-based audio encoding and decoding apparatuses and methods
US9653088B2 (en) Systems, methods, and apparatus for signal encoding using pitch-regularizing and non-pitch-regularizing coding
US8670990B2 (en) Dynamic time scale modification for reduced bit rate audio coding
US8744841B2 (en) Adaptive time and/or frequency-based encoding mode determination apparatus and method of determining encoding mode of the apparatus
US8229738B2 (en) Method for differentiated digital voice and music processing, noise filtering, creation of special effects and device for carrying out said method
US7792672B2 (en) Method and system for the quick conversion of a voice signal
US20070106513A1 (en) Method for facilitating text to speech synthesis using a differential vocoder
US20040083110A1 (en) Packet loss recovery based on music signal classification and mixing
EP1271471A2 (en) Signal modification based on continuous time warping for low bitrate celp coding
EP1312075B1 (en) Method for noise robust classification in speech coding
Ebner et al. Audio inpainting with generative adversarial network
TWI281657B (en) Method and system for speech coding
JP2006521576A (ja) 基本周波数情報を分析する方法、ならびに、この分析方法を実装した音声変換方法及びシステム
KR20220045260A (ko) 음성 정보를 갖는 개선된 프레임 손실 보정
Vlaj et al. Voice activity detection algorithm using nonlinear spectral weights, hangover and hangbefore criteria
JP2931059B2 (ja) 音声合成方式およびこれに用いる装置
Wong et al. An intelligibility evaluation of several linear prediction vocoder modifications
KR20050085744A (ko) 오디오 인코딩에서의 사인곡선 선택
Hasan et al. An approach to voice conversion using feature statistical mapping

Legal Events

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

Payment date: 20140516

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150515

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160527

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170601

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180529

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190530

Year of fee payment: 9