OPUS
Last updated
Last updated
opus는 Xigh 재단에서 개발하고 IETF에서 표준화된 코덱이며 스펙은 다음과 같다.
opus의 가장 큰 특징은 low-bitrate와 low-latency를 꼽을 수 있다. OPUS는 codec은 크게 두개의 모듈로 나누어 지는데 코덱의 일반적인 conceptual coding을 따르는 CELT (Constrained Energy Lapped Transform)와 LPC (Linear Prediction Coding)을 이용하여 압축하는 SILK로 나뉜다. OPUS는 SILK-only/hybrid/CELT-only 모드로 나뉘며, 각각의 경우의 bandwidth이 다르다.
SILK는 speech signal을 타겟으 Skype에서 개발한 오디오 코덱으로 LPC에 기반한다. Pic 1.에서 보이는 Frequency response의 빨간색 선은 사람의 음성 신호에 STFT (Short-time Fourier Transform)를 수행한 결과이고, 파란색 선은 STFT를 수행한 결과에 LPC를 한번 더 수행한 결과 이다. 사람 음성의 Frequency response를 본다면 간격이 좁은 fluctuation도 보이지만 전체적인 envelope을 살펴본다 해도 local maxima와 local minima가 존재한다. 이런 음성 신호의 envelope이 생기는 원인은 성대에서 울린 소리가 vocal track을 지나는 동안 구강이나 기도 등의 물리적인 구조에의해 공명을 하기 때문이다. 음향학에서는 envelope의 각각의 peak를 formant라 하며 , formants 는 발음을 구별하는데 주요한 요소이다.
LPC의 개념만 설명하고 넘어가려한다. LPC란 Linear system을 가정하여 특정 frequency response를 해당 시스템에 근사하는 것이다. Formants를 찾는 경우에는 사람의 vocal track을 n개의 pole을 갖는 다음과 같은 시스템으로 가정한 뒤, error를 minimize하여 상수를 구한다.
이렇게 구해진 상수를 보내는 것으로 아주 적은 bit를 가지고 formants정보를 보낼 수 있으며, 나머지 신호를 quantization 하여서 보내는 것으로 SILK알고리즘은 완성된다.
[1] This paper was accepted for publication at the 135th AES Convention. This version of the paper is from the authors and not from the AES
[3] http://amateurselectronics.blogspot.com/2013/07/simple-speech-recognition-system-using.html
sampling rate
8 kHz ~ 48 kHz
bitrate
6 kbps ~ 510 kbps
delay (algorithmic)
2.5 ms - 60 ms
number of channels
mono/stereo (현재는 255까지 제)