안녕하세요.
얼마전 6월 28일 패치에서 카운터 사이드에는 다음과 같은 음향 기능이 추가 되었습니다.
11) 고급 사운드 효과 옵션이 추가됩니다.
※ [옵션 - 사운드 - 고급 사운드 효과]에서 설정할 수 있으며, ON 상태가 기본으로 제공됩니다.
※ 각종 사운드 음량 밸런스가 균일하게 조정됩니다.
※ 인게임 내 사운드가 중첩되는 경우 더 안정화된 사운드를 제공합니다.
※ 해당 기능은 기기의 메모리를 추가적으로 사용하므로, 저사양 기기에서는 해당 옵션을 OFF 상태로 설정하시길 권장합니다.
이 기능이 무었을 하는지에 대해 상세하게 적어두지 않았기 때문에, 출력 결과물의 차이를 분석하여 기능에 대해 확인해보고자 합니다.
선 요약 - 저는 고급 사운드 효과 옵션을 적용하는것을 추천하지 않습니다.
서론.
고급 사운드 옵션은 사운드 음량 밸런스를 균일하게 조정 및 인게임 사운드가 중접되는 경우 안정화된 소리를 제공한다고 합니다. 일반적으로 음량 밸런스를 균일하게 조정한다고 하면 라우드니스를 유사하게 맞춰준다는 생각이 먼저 듭니다. 그리고 중첩되는 경우 더 안정화된 사운드라고 하는 경우, 매우 큰소리가 중첩이 되는경우 소리를 계속 더하다보면, 클리핑이 발생 가능하기 때문에 이를 방지하기 위함이라고 먼저 생각했습니다. 그래서 단일 소리만 존재하는 환경, 두개의 복합 소리가 존재하는 환경 그리고 실제 가장 소리가 많이 겹칠 환경에서 확인을 해보고자 합니다.
시험 세팅.
최종 출력되는 소리를 녹음하여 비교하였습니다. 결과물의 시간을 서로 동기화를 시켜야 분석이 원활하게 가능하기 때문에 모든 과정에서는 기능 on/off 사이의 소리에 대해 cross-correlation을 계산하여 매칭시켰습니다. 시험 중간에 normalize가 들어가는 경우는 l1 normalize를 수행하였습니다. 설정에서 동일한 카테고리로 묶여있는 배경음, 효과음, 음성에 대해서만 크게 분류하여 보았습니다.
단일 소리 실험.
먼저 가장 크게 체감이 되었던 효과음 부분에 대해 확인을 해보도록 하겠습니다. 대상으로 한 소리는 각성 류드밀라의 일반 공격음 입니다. 아래에서 확인 가능하듯, 고급 사운드 옵션을 킨 경우 최대 진폭이 0.38, 끈 경우 0.15로 약 2.5배의 소리 증폭을 확인 가능합니다. 동일한 길이의 소리에 대해 l1 normalize를 하여 확인해본 결과, 소리 크기가 커진것 이외에는 사실상 별다른 차이가 없다는것을 확인 가능합니다. 아래의 그래프의 2번째가 normalize한 소리를 서로 겹친 결과이며 3번째는 normalize 결과의 차이 입니다.

다음은 음성만 존재하는 경우입니다. 각성 류드밀라의 출격 음성만 남겨서 확인을 해보았습니다. 음성의 경우 옵션을 킨 경우 최대 진폭이 0.55, 끈경우 0.35로 약 1.6배의 소리가 더 커지는것을 확인 가능합니다. 특이할 점으로는 각 normalized 결과의 차이에서 확인 가능하듯, 큰 소리가 있는 부분에 대해서는 조금 더 증폭이 들어가고 작은 소리가 있는 부분에 대해서는 비교적 적게 증폭을 한것을 확인 가능합니다.

단일음의 마지막으로 배경음에 대한 테스트 입니다. forever음원을 사용하였는데, 기존의 음성, 효과음 대비해서는 복합음의 구성이라서 그런지 고급 사운드 옵션이 소리만 증폭 시킨것 이외에도 작동을 한것으로 보입니다. 그래서 이부분은 조금 더 상세하게 보도록 하겠습니다.

아래의 결과물은 기능을 on한 경우의 시간-주파수 응답, 기능을 off한 경우의 시간-주파수 응답, 그리고 각 시간-주파수 응답의 세기의 차이에 대해 나타내었습니다.

차이 부분에서 조금... 이상한 부분이 보이는데 이부분을 조금 더 상세히 나타낼 경우 다음과 같습니다.

음원에서 소리가 큰 부분이 존재하는 경우, 아주 빠른 반응을 보이는데 이부분은 균일한 음량 밸런스 조절쪽을 의도하고 만든 기능으로 보입니다만, 소리가 이미 충분히 큰 상황이 아니기 때문에(off시 최대 진폭 0.6, on시 최대 진폭 0.9) 이렇게 작동하는것은 음량 밸런스 조절(Loudness control)측면에서 올바르지 않습니다.
이중 소리 실험.
이중 소리의 경우 배경음을 끄고, 음성과 효과음을 킨 상태로 각성 류드밀라 출격시의 나오는 소리를 사용하여 진행하였습니다. 두개의 다른 음성이 존재하는 경우에 대해서 분석을 하였습니다. 원래는 조금 더 나아가서 효과음과 음성이 같이 존재하는 신호에 대해서 효과음만 따로 녹음을 해서 제외하여 음성만 남겨서 분석도 해볼려고 하였는데, 효과음은 여러개의 효과음의 집합으로 되어있으며 재생시 시간 랜덤성이 있어서... 이부분은 해보다가 수고가 너무 들어갈듯 하여 제외하였습니다.

조금 의아한 결과물이 나와서 다른 음성+효과음의 경우에 대해서도 실험을 해보았습니다.

결과적으로 에너지가 적게 분포하는 부분에 대해서는 증폭을 해주는것으로 보입니다만... 에너지가 적은 부분을 증폭을 시키는데 이게 잘못 적용이 되어서, 소리가 감쇠하고 있는부분(잔향성분)에 대해서 증폭을 시켜주는 역활을 하고 있습니다. 잔향 성분의 증폭은 명료도, 체감 소리 품질면에서 악영향을 끼칠 가능성이 큽니다.
복합 소리 실험.
이부분은 건틀렛의 리플레이를 사용하여 실험하였습니다. 가장 소리가 많이 겹칠법한 환경으로, 얼마전 아케이드의 리플레이를 사용하였습니다. 리플레이 환경은 아래와 같습니다. (기능 on)

소리가 정말 많이 겹쳐져 있다보니 보이는것만으로는 조금 체감이 덜되는데 직접 재생시 약 11초 정도쯤의 '이수연~' 하는 부분에서 알고리즘이 음성 신호를 확 줄여버려서 갑자기 소리가 거의 안들릴정도로 줄어버리는것을 확인 가능합니다. 그리고 기능이 켜져있는 경우 스펙트로그램 상에서 음성 패턴 부분들이 크기가 적어지는것을 확인 가능한데 이는 알고리즘이 바람직하게 동작하지 않는것으로 보입니다.
결론.
고급 사운드 효과의 경우 확인하였을때 소리 크기 조절, 및 특정 주파수 영역대의 소리 조절 두가지의 기능을 하는것으로 보입니다. 소리 크기 조절의 경우 인근 프레임의 정보를 사용하여 조절하는것으로 보이는데, 잔향 성분을 증폭시켜버리거나 큰 효과음이 있을때 음성 신호를 줄여버리거나 하는 부작용들이 보입니다. 구현되어 있는 기능상으로는 연산 자원을 꽤 소모할것으로 보이는데, 딱히 자원을 소모하여 얻는 이점이 별로 없어보입니다. 동일한 비율로 소리 크기를 설정해둔 경우 효과음이 너무 지배적으로 소리가 강해집니다. 그나마 긍정적인 경우는, 게임에 탑재되어 있는 음원의 경우 소리가 상당히 작은 경우가 다수인데 볼륨 확보가 힘든 환경에서는 도움이 될것으로 보입니다.
