I. 서 론
II. 노래반주기용 오디오 시스템
III. 악기별 분리 처리를 통한 음질 개선
IV. 오디오 시스템의 구현
1. 오디오 시스템 구성
2. 오디오 알고리즘
3. 구현된 오디오 시스템
V. 결 과
1. 수행 계산량
2. 악기별 채널분리를 통한 음질 개선
VI. 결 론
I. 서 론
오디오 시스템은 음악을 재생하고 녹음하여 사용자에게 들려줄 뿐만 아니라 다양한 효과음을 낼 수 있다. 또한 가수의 보컬이 포함되지 않고 사용자가 좋아하는 음악을 부를 수 있는 기능을 하는 것이 노래반주기 시스템이라고 할 수 있다. 이러한 노래반주기 시스템은 사용자의 편의를 위하여 자막을 영상정보로 표시하여 줄 수도 있다. 좋은 음질의 노래반주 환경을 제공하기 위하여 반주 음악에 대한 개선이 지속적으로 이루어져 왔으며 이전의 MIDI (Musical Instrument Digital Interface) 정보를 이용한 노래반주 시스템에서 연주를 직접 녹음하여 저장한 후 이를 재생하여 원곡의 반주와 같은 효과를 내는 시스템으로 변화하여 왔다. 이를 위하여 녹음된 반주를 압축하여 한정된 메모리에 많은 곡을 저장할 필요성이 생겼고, 사용자가 원하는 속도와 음높이로 반주를 해줄 필요성도 생겼다. MIDI를 이용한 반주 시스템의 경우 키와 템포의 조절이 어렵지 않다. 음원을 이용하여 반주를 합성하는 과정에서 키와 템포가 얼마든지 조절이 가능하기 때문이다. 하지만 고음질의 반주를 위하여 연주를 녹음하여 저장한 경우는 다르다. 반주 음악의 경우 다양한 악기를 포함하기 때문에 이를 이용한 키/템포의 변환 방법은 음질 저하가 발생되는 경우가 대부분이다. 특히 노래반주 시스템의 환경에서는 이러한 현상이 더욱 부각될 수밖에 없다. 이 부분에 대한 음질 개선 노력은 현재까지 진행되고 있다고 볼 수 있다.
본 논문에서는 기존의 오디오 키/템포 변환 기능의 개선을 위하여 악기별 채널 분리를 이용한 고음질 오디오 시스템을 구현하였다. 악기별로 분리된 채널을 이용하여 오디오 알고리즘을 적용한 후 각 채널을 합치면 보다 좋은 음질의 오디오 시스템 구현이 가능하다는 것을 보여준다. 또한 본 논문에서는 다양한 오디오 압축 포맷으로 저장된 다채널 음악 데이터를 실시간 복원하면서 고음질의 키/템포 변환이 가능한 시스템을 TI사의 6747 DSP를 이용하여 구현한 내용을 담고 있다. 멀티 포맷, 멀티채널의 음악 데이터를 실시간 복원함과 동시에 키/템포 변환 및 EQ 기능을 수행할 수 있다. 고음질 키/템포 변환을 위하여 음악을 그룹별로 채널을 분리하고 각 채널에 대한 키/템포 변환 알고리즘을 적용시켜서 키, 템포 변환에 대한 음질 개선을 이루었음을 알 수 있었다. 본 논문은 Ⅱ장에서 노래반주기용 오디오 시스템, Ⅲ장에서 악기별 분리처리를 통한 음질 개선, Ⅳ장에서 오디오 시스템 구현, Ⅴ장에서 결과, 그리고 Ⅵ장 결론으로 구성되어 있다.
II. 노래반주기용 오디오 시스템
오디오 시스템 중에서 지속적인 고음질이 요구되는 분야중의 하나가 바로 노래반주기이다. 노래반주기는 마이크와 앰프 등 다양한 오디오 장비와 함께 사용할 수 있으며 이 경우 음질의 좋고 나쁨이 더욱 명확하게 나타난다. 이러한 이유로 노래반주기는 기존의 미디를 이용한 음원합성 방식에서부터 요즘은 녹음된 반주를 직접 재생하여 생생한 반주의 느낌을 살리는 방식까지 지속적으로 변화해 왔다. 동시에 연주되는 악기의 수도 증가하고 다양한 효과음의 필요하게 되었다. 전면, 후면, 멜로디와 코러스 등 다양한 채널로 구성되었고 노래반주 시 키와 템포의 변환 기능도 함께 요구된다. 미디의 경우 키와 템포 변환 기능이 음원합성 과정에서 별다른 어려움 없이 가능하다. 하지만 녹음된 반주를 이용한 노래반주 시스템에서는 이러한 현재까지의 키와 템포 변환 방식이 음질 저하를 일으켜 고음질 반주 구현에 많은 어려움이 따르고 있는 실정이다. 음악의 키와 템포 변환은 현재도 지속적인 개선이 필요하며 다양한 방식으로 개선이 이루어지고 있는 분야이다.
III. 악기별 분리 처리를 통한 음질 개선
1) SOLA(Synchronized-Overlap and Add) 알고리즘
오디오의 템포를 변환하는 방식으로 크게 시간영역 변환과 주파수 영역 변환의 두 가지 방식이 있다. 주파수 영역 방식의 대표적인 방식이 페이즈 보코더(phase vocoder)이다.[1,2] 주파수 변환의 경우 일정한 크기의 오디오 샘플 단위로 주파수 변환과 함께 주파수 영역 처리 후 다시 시간 영역으로 변환이 필수적이다. 이 과정에서 주파수와 시간 영역 변환에서만 많은 계산량이 필요하다. 또한 원음의 섬세한 부분의 변환 처리가 개선사항으로 남아있다. 이에 비하여 시간 영역 변환의 대표적인 방식인 SOLA (Synchronized-Overlap Add)인 경우 시간영역에서 일정한 크기의 프레임 단위로 오디오 신호를 분리하여 원하는 변환 위치에 재배열하는 방식으로 시간축 변환을 수행하다. 이 과정에서 재배열시 최적의 위치를 찾기 위하여 연속되는 두 프레임간의 상관관계(cross-correlation) 값을 계산한다. 이 값의 결과가 최대가 되는 위치를 찾아 재배열을 하기 때문에 연결 부분의 왜곡(distortion)을 최대한 작게 할 수 있다. 오버랩 구간에 대해서는 가중치(weighting)을 주어서 더하게 된다. 음성이나 단일 피치(pitch)인 경우 좋은 음질을 유지할 수 있다. [3-5]
2) 악기별 채널 분리를 통한 음질 개선
기존의 노래반주기 시스템의 경우 고음질을 위한 라이브 반주를 도입하고 있으며 이러한 라이브 반주 음악 생성 시에 직접 연주하는 음악을 라이브로 녹음할 수도 있고 미디 정보를 이용하여 고성능의 음원 합성 방식을 통하여 연주음을 생성할 수도 있다. 이러한 방식은 고가의 미디 합성 모듈을 사용하지 않아도 되기 때문에 가격적인 면에서 많은 이점이 있다. 또한 반주음 생성은 미디 정보를 기반으로 악기별로 녹음이 가능하다. 이렇게 악기별로 채널이 분리하여 악기별 템포 변환 알고리즘을 적용시키면 기존의 하나의 채널로 혼합된 반주를 이용하여 템포 변환을 하는 것보다 음질의 개선이 이루어 질 수 있다. 대표적인 템포 가변 알고리즘인 SOLA 알고리즘은 단일 피치의 음악인 경우 좋은 음질을 유지할 수 있다. 하지만 일반적인 반주의 경우 다양한 악기가 함께 믹싱 되어 다양한 피치를 함께 포함하고 있다. 이 경우 SOLA 알고리즘 수행 시 각 피치를 모두 만족시킬 수 없기 때문에 음질의 저하가 발생된다. 이러한 결과는 악기별 템포 변환 알고리즘을 수행하여 구한 Fig. 1의 템포 변환 시 상관계수 분포도에서 잘 나타나고 있다. 상관계수는 SOLA 알고리즘 수행시 연속되는 프레임을 원하는 템포로 재배열시 오버랩된 두 프레임간의 파형의 비슷한 정도를 나타낸다고 볼 수 있다. 따라서 값이 클수록 더 비슷한 파형에서 연결되며 음질 더 좋다고 생각될 수 있다. 이 값은 최대값이 1이고 1에 가까울수록 좋은 음질이라고 생각할 수 있다. 테스트 음악의 5가지 악기별 상관계수의 분포를 살펴보면 악기마다 상관계수의 분포가 다르며 Solo(trumpet)의 경우가 1 부근에 가장 높은 분포를 나타내고 있음을 알 수 있다. 또한 synthesizer, piano, guitar의 경우 상관계수 분포가 대부분 0.7이상으로 템포변환 후 좋은 음질을 유지할 수 있는 것을 나타났다. String의 경우 다른 악기에 비하여 약간 낮은 분포를 보인다. 이러한 5가지 악기를 하나로 믹싱하여 템포 변환을 수행한 경우를 Fig. 1에 혼합된 오디오(mixed audio)로 나타내었다. 혼합된 오디오의 경우 개별 악기 변환 경우에 비하여 상관계수의 전체적인 분포가 값이 작은 쪽으로 이동하였음을 알 수 있었다. 이러한 현상은 각 악기에서 최대의 상관계수를 가지는 위치가 각각 다르기 때문에 혼합된 경우 최대가 아닌 위치에 재배치 될 수 있기 때문에 음질 저하를 일으킬 수밖에 없다. 이러한 부분의 개선을 위하여 라이브 반주 녹음시 5개의 채널로 분리하여 악기를 녹음하여 저장한 후 악기 채널별로 템포변환을 수행하였다. 변환된 악기 채널별 최종 결과를 믹싱하여 하나, 혹은 다채널의 반주를 만들면 고음질의 템포 변환 가능한 오디오 시스템의 구현이 가능하다.
3) 어택과 템포변환 시점 조정
어택(attack)은 파형의 변화가 심하게 변하는 부분이라고 생각할 수 있으며 연속적인 구간에 대한 에너지의 변화가 일정한 값을 넘으면 어택으로 생각할 수 있다. Fig. 2부터 Fig. 6까지는 SOLA 알고리즘을 이용한 템포 변환시 각 악기 전체의 상관계수 값의 분포와 어택 부근에서의 상관계수 값을 나타내고 있다. 그림 나타난 분포를 비교하면 각 악기 전체의 경우보다 어택 부근이 상관계수 값이 낮게 나타나는 것을 알 수 있다. 이것은 어택에서 파형의 변화가 심하여 음질 저하가 많이 일어난다는 것과 일치한다고 볼 수 있다. 이러한 부분이 개선을 위해서는 어택을 찾아서 어택에서의 템포 변환 수행을 방지할 필요성이 있다. 하지만 SOLA 알고리즘의 경우 일정한 프레임 단위로 재배치를 수행한다. 따라서 어택이나 상관계수가 낮은 경우에도 프레임 재배치가 이루어지는 경우가 발생된다. 이는 그림에서 나타난 바와 같이 음질저하와 직결된다고 볼 수 있다. 이러한 상황을 개선하기 위하여 일정한 프레임 단위대신에 템포 변환 알고리즘 수행결과에 따라 다음 변환 시점을 결정하는 방식을 적용하였다. 템포 변환 알고리즘을 통하여 변환된 오디오 샘플의 수가 클 경우 다음 변환 시점은 멀고 변환된 오디오 샘플의 수가 작을 경우 가까운 위치에서 다시 템포 변환을 수행한다. 이러한 방식은 어택을 피해가는 것도 가능하다. 어택이 발견되면 템포를 변환해야 할 시점을 계산하여 변환시점이 얼마 남지 않았으면 어택의 바로 이전에 템포 변환하고 어택을 지난 다음에 템포 변환을 수행하는 방법으로 어택을 피할 수 있게 된다. 이를 통하여 어택을 피한 템포변환 수행이 가능하여 음질 개선이 이루어질 수 있다.
IV. 오디오 시스템의 구현
1. 오디오 시스템 구성
1) 전체 시스템 구성
전체 오디오 시스템은 Fig. 7에서와 같이 크게 DSP(TMS320C6747), CPU, 메모리(SDRAM), 그리고 오디오 코덱으로 구성된다. CPU는 DSP를 컨트롤 플레그를 통하여 제어하고 외부 메모리로부터 오디오 데이터를 읽어 HPI를 통하여 DSP로 전송해준다. 이 데이터는 SDRAM에 저장되며 DSP가 필요한 시점에 읽어서 오디오를 재생할 수 있다. 오디오 재생, 일시 정지, 점프, 키/템포 변환 등의 동작은 컨트롤 플레그를 통하여 이루어진다. 채널 및 입출력은 반주 음악용 10채널 WMA, 반주 녹음을 위한 MP3 부호화(encoding), 녹음된 반주 재생을 위한 MP3 복호화(decoding), 효과음 재생을 위한 wav, 외부 오디오 입력을 위한 PCM 채널로 구성되며 이러한 채널의 혼합을 위한 믹싱 블록, 그리고 EQ 블록으로 구성된다. WMA와 MP3 복호화는 키와 템포 변환 수행할 수 있다.
2) 악기별 처리를 위한 다채널 구성
고음질 템포 변환을 위하여 반주음은 악기 그룹별로 분리되어 외부 메모리에 저장된다. 이 경우 한 곡 반주에 필요한 오디오 데이터양이 적지 않기 때문에 압축을 하게 되며, 이 때 사용할 압축 알고리즘으로 WMA를 사용하게 되었다. WMA는 MP3에 비하여 동일 음질 기준으로 약 두 배의 압축률을 가진다. Table 1에 전체 채널 구성을 나타내었다. WMA 10채널을 이용하여 악기별 복호화를 수행하여 반주음을 생성하게 된다. 이러한 WMA 10채널은 각각 템포 변환 알고리즘을 독립적으로 수행하기 위하여 분리된 악기 채널이다. 이렇게 독립적으로 처리된 WMA 데이터를 이용하여 채널별로 템포 변환 알고리즘을 수행하게 된다. MP3 부호화는 사용자 노래 및 외부 입력을 녹음할 수 있고 MP3 복호화는 녹음된 노래 및 MP3 데이터를 재생시킬 수 있다. 또한 짧은 효과음은 wav 채널을 이용할 수 있다.
3) DSP
오디오 시스템 구현을 위하여 사용된 TMS320C6747 DSP는 TI사의 고정소수점 코어인 C64x+와 부동소수점 코어인 C67x+ 코어를 조합하여 만든 C674x 고정/부동 소수점 DSP 코어를 사용하였다. 이 DSP는 계산량이 많은 오디오 알고리즘 구현에 있어서 한 사이클에 4회까지 가능한 16비트 고정 소수점 곱셈을 이용할 수 있으며, 정밀도가 요구되는 연산에는 부동 소수점 연산을 함께 수행함으로써 오디오 처리 알고리즘을 쉽게 구현할 수 있다. 그리고 HPI 인터페이스를 비롯하여 다양한 외부 인터페이스를 지원하다. [6-8]
2. 오디오 알고리즘
오디오 시스템에는 WMA와 MP3 방식이 오디오 압축 알고리즘으로 사용되었다. WMA와 MP3는 오디오 코딩 방식으로 널리 사용되고 있는 대표적인 오디오 압축 포맷이다. WMA 복호화 알고리즘은 Ittiam system사의 라이브러리를 이용하여 다채널로 구성되었으며 MP3 오디오 알고리즘은 DSP에 맞게 최적화 되었다. MP3 오디오 코딩의 특징은 특정 주파수 성분이 주변의 주파수 성분에 의해서 들지 않게 되는 현상인 마스킹(masking) 현상을 이용한다. 일반적으로 128 kbps 전송률로 압축되고 고음질을 위하여 320kbps까지 더 높은 전송률로 압축되기도 한다.[9,10] 템포 변환을 위하여 사용된 알고리즘은 기존의 SOLA 알고리즘에서 어택을 찾고 템포 변환 시점을 조정하여 고음질의 템포 변환이 가능한 개선된 SOLA 알고리즘을 악기음 채널별로 적용시켰다. 이를 통해 고음질의 템포 변환 알고리즘 구현이 가능하다. 키 변환은 샘플링 주파수를 조정하여 수행하였으며 이때 발생되는 템포의 변환 문제를 템포 변환 알고리즘을 이용하여 보정하였다. 그리고 음악의 장르나 사용자의 요청에 의하여 주파수별로 이득을 조정할 수 있는 EQ를 바이쿼드 필터(bi-quad filter)를 이용하여 구현하였다. 설정된 15개의 EQ 밴드별로 사용자가 이득을 조정할 수 있다.
3. 구현된 오디오 시스템
Fig. 8은 오디오 시스템 프로그램 구성을 나타내고 있다. TI사에서 제공하는 커널인 BIOS를 이용하여 각 기능별 태스크(task)를 이용하여 구성하였다. 채널별 오디오 처리를 위한 MP3 부호화, MP3 복호화, WMA 복호화 기능은 개별 태스크로 수행하였다. 태스크로 구성하면 타임 스케줄에 의하여 독립적인 각각의 함수로 수행이 가능하다. CPU로부터 제어 플래그(control flag)의 설정에 따라 각 기능의 수행 여부가 결정된다. 각 테스크의 수행 및 키/템포 설정, EQ 설정, 모니터링 여부 등을 제어 플래그로 관리한다. 출력은 버퍼 및 채널 매니저(buffer and channel manager)가 관리한다. 외부 출력 버퍼에 저장된 데이터의 양이 정해진 수보다 작아지면 각 기능별로 수행을 요구하게 되어 다시 버퍼를 채울 수 있도록 한다. Fig. 9에서는 구현된 오디오 시스템의 프로그램 및 보드를 보여준다.
V. 결 과
1. 수행 계산량
오디오 시스템의 기능별로 요구되는 MIIPS를 Table 2에 나타내었다. 반주 재생시 WMA, EQ, 키, 템포 변환 등이 동시에 수행되고 녹음시 MP3 부호화기, 녹음된 MP3 재생시 MP3 복호화기가 수행된다.
2. 악기별 채널분리를 통한 음질 개선
다양한 악기 반주가 함께 믹싱된 채널에 템포 변환 알고리즘을 적용하는 기존의 방식과 악기 그룹별로 악기를 채널별로 분리하여 각각의 채널에 대하여 템포변환 알고리즘을 수행하는 제안된 방식에 대한 MOS 평가 문항과 결과를 Table 3과 Table 4에 나타내었다. MOS 평가는 악기별 분리 처리를 하지 않은 기존의 방식과 제안된 방식으로 만든 테스트 오디오 샘플을 이용하여 순서를 바꾼 블라인드 테스트를 수행하였으며 두 방식에 대한 변화율별 음질 평가 방식으로 조사하였다. MOS 평가 결과 기존 방식보다 제안된 방식으로 음질 개선이 이루어졌음을 알 수 있었으며 제안된 악기별 채널 분리를 이용한 변환이 고음질을 유지함을 알 수 있었다. 변화율별 결과를 분석해 보면 변화율이 -30%나 -18%의 경우, 원음에 비하여 템포를 빠르게 하는 경우이다. 이 경우 원음을 오버랩하여 압축하는 과정이며 30%나 18%의 변환의 경우 템포를 느리게 하는 부분으로 이 과정에서 새로운 형태의 파형이 중간에 추가해야 한다. 기존의 SOLA 알고리즘의 경우 템포를 빠르게 하는 것 보다 느리게 하는 것이 음질의 저하가 많이 일어난다. 이유는 앞과 뒤의 파형을 이용하여 중간 단계의 새로운 파형을 만들어 내어서 느리게 하는 과정이 앞과 뒤의 파형을 중첩시켜 줄여서 빠르게 하는 과정보다 어렵기 때문이다. MOS 평가 결과를 보면 이러한 음질 저하가 많이 일어나는 템포를 느리게 하는 부분에 대한 개선 효과가 큰 것으로 나타나고 있다.
VI. 결 론
음성에 비하여 음악에 대한 키/템포 변환의 고음질 유지는 쉽지 않다. 이는 복잡하고 다양한 악기에 포함된 주파수 성분들을 모두 만족시키기 어렵기 때문이다. 이러한 부분에 대한 개선의 방안으로 본 논문은 악기별 분리를 통하여 주파수 성분의 피치의 단순화 및 복잡도를 낮춰서 고음질의 키/템포 변환이 가능함을 보였으며 이를 범용 DSP를 이용하여 구현하였다. 현재 라이브를 지원하는 노래반주기에는 키/템포 변환시 음질의 저하로 인하여 기능적인 제한이 발생하고 있다. 따라서 본 논문에서 제안된 방법을 적용하면 음질 개선을 통하여 라이브 노래반주기로서의 고음질 키/템포 변환이 포함된 기능이 가능하다. 고음질 키/템포 변환이 요구되는 노래반주기에 적용 될 수 있는 오디오 시스템을 구현하기 위하여 TI사의 6747 DSP를 이용한 고음질 오디오 시스템을 구현하였다. 이 과정에서 반주의 효율적인 저장을 위하여 WMA, MP3와 같은 다양한 포맷의 복원을 수행하였으며, 키/템포의 변환 알고리즘 개선을 통하여 고음질의 반주가 가능하도록 하였다. 기존의 템포 변환 알고리즘인 SOLA 알고리즘의 보완을 위하여 어택을 찾고 변환 알고리즘 수행 시점을 조정하여 채널별 템포 변환의 음질을 개선시켰다. 그리고 다양한 악기가 함께 포함된 하나의 반주 음악 대신 악기 그룹별로 분리 녹음하여 각 채널로 할당한 후 채널별 변환 알고리즘을 수행하였다. 이 과정에서 채널별 악기음에 포함된 악기별 피치의 수가 감소하여 변환 후 발생되는 음질의 저하를 개선시킬 수 있었다. 이러한 현상은 상관계수의 분포와 MOS 평가를 통하여 확인할 수 있었으며 특히, 느리게 변환하는 경우 더욱 큰 개선의 효과가 나타났다. 본 논문에서 제안하는 악기별 채널분리 방식은 노래반주게에만 국한되지 않고 다양한 음악 분야에서도 적용이 가능하다. 현재 모바일 시장에서 음악에 대한 키/템포 변환은 거의 이용되지 않고 있다. 그 이유는 대부분 변환시의 음질이 사용자의 요구를 만족시키지 못하기 때문이다. 본 논문에서 제안한 악기별 분리를 통한 고음질 변환은 모바일이나 PC 음악 환경에서 메모리 용량의 증가와 CPU의 처리 속도의 증가로 인하여 현재의 스테레오에서 다채널로 변환이 가능하며 이 경우 악기 그룹별 처리에 적용이 가능하다.












