들어가며
LINE 앱에서 제공하는 실시간 커뮤니케이션 서비스인 LINE 1:1 통화와 LINE 그룹 통화, LINE 미팅은 인터넷 프로토콜을 통해 실시간으로 음성 및 영상 데이터를 전송합니다. 이를 통해 사용자들은 어느 곳에서든 편리하게 음성 및 영상 통화를 경험할 수 있습니다.
실시간 커뮤니케이션 서비스의 핵심 과제는 실시간성과 좋은 품질을 동시에 유지하는 것입니다. 사용자들이 서비스를 이용하면서 느끼는 불편함이나 문제점을 파악하고 개선하려면 객관적이고 공정한 품질 측정과 평가가 필수입니다. 이 글에서는 먼저 어떤 측면에서 품질을 측정하고 있는지 알아보고, 대표적인 세 가지 품질 측정 영역인 에코 제거(acoustic echo cancellation, 이하 AEC)와 주파수 응답(frequency response), 손실 강건성(loss robustness) 측정 방법을 살펴보겠습니다.
품질 측정 측면
저희는 서비스 품질의 중요성을 인식하고 다음과 같은 다양한 측면에서 철저히 품질을 측정하고 있습니다.
어쿠스틱 환경 대응
어쿠스틱 환경이란 통화하는 사람의 음향학적 환경을 의미합니다. 통화하는 사람의 공간적 특성은 통화 품질에 영향을 미칠 수 있는데요. 예를 들어 주변이 시끄럽거나 울림이 심한 곳에 있으면 통화 품질이 나빠져 불편을 느낄 수 있습니다. 저희는 이런 어쿠스틱 환경에서의 음성 처리 기술 성능을 평가하고 기술 개선점을 도출하고자 무향 실 환경을 갖추고 음성 처리 기술 성능에 영향을 미치는 음향 변수를 측정하고 있습니다.
먼저 (구) LINE Engineering 블로그에서 발행한 화상 회의할 때 음성 품질을 높이는 기술이라는 글에서 음성 품질을 높이기 위한 사용자의 통화 환경 구성 방법을 설명했으니 참고하시기 바랍니다.
어쿠스틱 환경에서의 음향 변수로는 배경 잡음과 음량 수준, 잔향 수준, 에코 등이 있습니다. 이런 음향 변수들을 특성별로 나눠 정량화하는데요. 예를 들어 배경 잡음의 경우 주변 잡음을 얼마나 제거하는지를 정량화하고, 에코의 경우 에코를 얼마나 제거하는지 정량화합니다.
이런 음향 변수를 측정하기 위한 무향실 환경도 갖추고 있습니다. 무향실 환경에서는 음향 변수를 다양하게 시뮬레이션해서 실제 환경과 가깝게 재현할 수 있고, 이를 통해 내부에서 수행하는 음성 처리 기술이 적합하게 작동하는지 측정할 수 있습니다. 예를 들어, 카페에서 통화하는 환경을 시뮬레이션하기 위해 카페에서 녹음한 잡음을 재생해서 이런 잡음이 음성 품질에 미치는 영향을 측정합니다.
네트워크 환경 변화 대응
네트워크에서는 패킷 손실과 패킷 지연, 대역폭 제한, 네트워크 혼잡과 같은 변화가 지속적으로 발생하고, 이런 네트워크 환경의 변화는 실시간 통화 서비스 품질에 매우 큰 영향을 줍니다. 따라서 사용자가 뛰어난 서비스 품질을 일관되게 경험할 수 있으려면 네트워크 환경 변화가 서비스 품질에 미치는 영향을 측정하고 좋은 품질을 유지하기 위한 기술과 전략을 개발해야 합니다. 이를 위해서 먼저 네트워크 환경 변화를 실시간으로 정확하게 분석하고 진단하는 기술이 있어야 하고, 진단 결과를 기반으로 서비스 품질을 유지하기 위해 비트레이트 조정이나 데이터 재전송 등과 같은 다양한 전략을 수행해야 하는데요. 이와 같은 활동은 사용자들이 체감하는 품질에 직접적인 영향을 주기 때문에 네트워크 환경 변화에 대응하는 기술과 전략을 정량적으로 측정하는 것은 매우 중요합니다.
현실에서 네트워크 환경 변화는 다양한 형태로 발생합니다. 저희는 이를 상황별로 모델링해 다양한 시나리오를 만들고, 각 시나리오를 모의 실험에 적용해서 현실에서의 네트워크 환경 변화를 시뮬레이션합니다. 그리고 그때의 품질(음질, 화질, FPS(frames per second, 초당 프레임 수), 데이터 사용량 등)을 정량적으로 측정해 네트워크 환경 변화 및 대응 전략이 효과적으로 작동하는지 평가합니다.
아래 그림은 실제 환경에서 일어나는 패킷 손실을 모델링한 시나리오를 모의 실험으로 재현한 예시입니다.
위 예시처럼 네트워크 에뮬레이터를 활용해 패킷 손실을 유발해서 실제 환경을 재현하며 패킷 손실로 인한 음질 저하를 정량적으로 측정합니다. 네트워크 에뮬레이터는 패킷 손실 외에도 패킷 지연, 대역폭 제한 등의 네트워크 환경 변화를 시뮬레이션할 수 있고, 여러 개의 네트워크 에뮬레이터를 연결해 여러 가지 네트워크 환경 변화를 동시에 시뮬레이션할 수도 있습니다.
저희는 이런 모의 실험을 통해 다양한 네트워크 환경 변화를 시뮬레이션해서 각 환경에서의 품질을 정량적으로 측정하고 있으며, 이런 측정을 반복하며 기술 신뢰도를 평가하고 개선 사항을 도출하고 있습니다.
글로벌 환경 대응
LINE 앱은 글로벌 서비스로 전 세계에서 활용하고 있습니다. 따라서 글로벌 사용자들에게 지속적으로 뛰어난 품질을 제공하는 것은 매우 중요합니다. 그런데 각 지역의 통신 네트워크나 인프라에는 다양한 ISP(Internet service provider)와 네트워크 토폴로지, 대역폭 배분, 망 환경 및 관리 방식이 사용되고 있습니다. 또한 와이파이 인프라나 사용 행태, 문화가 다를 수도 있고, 주중이나 주말, 지역 이벤트 등에 따라 네트워크 환경이 변할 수도 있습니다.
이런 지역별 차이와 환경 변화에 대응하기 위해 전 세계 약 15개 국가에 자체 개발한 품질 측정 도구를 배치하고 각 국가의 망 환경 특성을 지속적으로 모니터링하고 있습니다. 이를 통해 국가별, 지역별 네트워크 특성과 변화를 파악하고 최적의 설정을 적용해 사용자들에게 최상의 서비스 품질을 제공합니다.
자체 개발한 품질 측정용 H/W 및 S/W를 탑재한 측정 도구는 자동으로 통화를 걸고 받으면서 음성 및 영상 품질, 지연, 통화 연결 시간 등의 각종 품질 지표를 측정합니다. 품질을 측정할 때에는 POLQA(ITU-T P.863)과 PSNR(ITU-T J.340) 같은 국제 표준 측정 지표뿐 아니라 표준 은 아니지만 업계에서 많이 사용하는 측정 지표도 활용합니다.
이와 같은 글로벌 품질 모니터링을 통해 타 서비스와 품질을 비교하고 분석해서 강점과 개선점을 도출합니다. 글로벌 모니터링 시스템에서는 품질 측정 도구에서 측정된 지표를 집계해서 이를 종합적인 서비스 품질 평가 점수로 표현하는데요. 서비스 품질 평가 점수는 아래와 같이 각기 다른 색상으로 구분돼 품질 수준을 지역별로 쉽게 파악할 수 있습니다. 아래 그림의 지도에서 초록색은 품질이 원활한 곳, 회색은 품질이 보통인 곳, 빨간색은 품질이 좋지 않거나 측정이 안 되는 지역을 나타냅니다.
저희는 이와 같이 각 국가와 지역의 특수한 네트워크 및 환경을 고려해 품질을 개선하기 위한 대응책을 연구하고 시행하고 있으며, 모든 지역에서 최상의 서비스 품질을 제공하기 위해 끊임없이 노력하고 있습니다.
외부 시험 의뢰
외부 시험 의뢰를 통해서 독립적인 측정도 진행하고 있습니다. 외부 시험은 제3자인 전문가들이 저희 제품의 성능을 측정하고 음성 및 영상 품질을 정량적으로 분석하는 중요한 과정입니다.
외부 시험 과정에서는 외부 시험 업체와 측정 시나리오를 목적에 맞게 조율해 시험 환경에서 품질 변화를 정확히 파악합니다. 더 나아가, 타 서비스와 성능을 비교해 시장에서의 제품 경쟁 력을 평가하는 과정도 포함됩니다. 이를 통해 중립적인 시각에서 평가한 품질을 받아들이고 사용자 만족도를 높이기 위한 개선점을 도출합니다.
AEC 성능 측정
AEC(acoustic echo cancellation)란 음성 통화 시스템에서 발생하는 음향 에코를 억제하는 기술로, 사용자의 음성이 통화 상대방의 마이크를 거쳐 다시 들려오는 현상을 줄여주는 역할을 합니다. 아래는 음성 통화 시스템에서 에코가 발생하는 예를 나타낸 그림입니다.
위 그림에서 오른쪽 사용자의 소리(B)가 왼쪽 사용자의 스피커로 출력되면, 그 소리 역시 마이크에 수집(A)됩니다. 소리가 어떤 매체에 반향되어 다시 돌아오는 것을 에코라고 하는데요. 수집한 소리를 전달하는 마이크는 가장 큰 반향원이라고 할 수 있습니다. 만일 이처럼 사용자의 소리가 상대방의 마이크에서 수집돼 그대로 다시 사용자에게 전달되면 사용자는 시간차를 두고 본인의 목소리를 다시 듣게 됩니다. 통화용 AEC는 이러한 음향 에코를 실시간으로 감지하고 적절히 필터링 제거해 음성 통화 품질을 향상시킵니다.
저희는 자체 기술로 AEC를 직접 개발하고 있고, 머신 러닝 기술을 도입해 고품질의 에코 제거 성능을 제공합니다. 이를 통해 LINE 앱 사용자가 에코로 불편함을 느끼지 않고 깨끗하고 높은 음질로 음성 통화를 즐길 수 있도록 품질을 측정하고 있는데요. 어떻게 측정하고 있는지 본격적으로 설명하기 전에 AEC 성능 측정과 성능 지표 설명에서 사용할 용어의 의미를 정의하고 넘어가겠습니다.
- Near-end: 통화 시스템에서 측정이 이루어지는 쪽에 있는 사용자를 의미합니다.
- Far-end: Near-end와 통화를 하는 상대방 사용자를 의미합니다.
- Single talk(싱글 톡): Near-end 또는 Far-end가 한쪽만 말하고 있는 경우를 의미합니다.
- Double talk(더블 톡): Near-end와 Far-end가 둘 다 말하고 있는 경우를 의미합니다.
AEC 성능 측정 방법
AEC 성능은 오디오를 손상시키지 않으면서 에코를 억제하는 능력을 정량화해 평가하며, 성능을 측정할 때에는 다음과 같은 절차를 따릅니다.
측정 환경 구성
먼저 AEC 성능을 측정하기 위한 측정 시스템 환경을 구성합니다.
품질 측정 툴 선정
AEC 기능을 평가하고 성능을 개선하는 데에는 AECMOS를 활용하고 있습니다. AECMOS는 오디오를 손상시키지 않으면서 에코를 억제하는 능력을 객관적인 지표로 측정하는 툴입니다. 현재 업계나 학계에서 AEC 성능을 평가할 때 사용하고 있는데요. 새로운 알고리즘의 성능을 평가하거나 기존 기술과 비교할 때 혹은 논문이나 연구 보고서에서 실험 결과를 분석하고 다른 연구와 비교해 연구의 유효성을 입증할 때 활용되고 있습니다.
AECMOS에는 아래 3가지 측정 모드가 있습니다.
- 48kHz, 시나리오 기반 모델(Run_1668423760_Stage_0.onnx)
- 16kHz, 시나리오 기반 모델(Run_1663915512_Stage_0.onnx)
- 16kHz 모델(Run_1663829550_Stage_0.onnx)
시나리오 기반 모델은 ST FE(Far-end single talk)와 ST NE(Near-end single talk), DT(Double talk) 구간 정보를 알고 있어서 더 정확한 결과를 도출해 낼 수 있는데요. 저희는 48kHz, 시나리오 기반 모델을 AEC 성능 측정에 사용하고 있습니다.
AECMOS에는 아래와 같이 네 개의 세부 지표가 있습니다(더 자세한 내용은 'AEC 성능 지표의 의미' 절을 참고하세요).
지표 | 설명 |
---|---|
ST FE Echo DMOS | Far-end single talk 에코 제거 품질 |
ST NE MOS | Near-end single talk 음성 보존 품질 |
DT Echo DMOS | Double talk 에코 제거 품질 |
DT Other MOS | Double talk 음성 보존 품질 |
테스트 데이터 셋 선정
테스트 데이터 셋은 AEC challenge에서 제공하는 test_set_icassp2022 데이터 셋을 사용합니다. 이 데이터 셋은 DT 케이스 300개, ST FE 케이스 300개, ST NE 케이스 200개의 음원을 제공합니다.
측정 대상 모듈 준비
성능 측정 대상이 되는 AEC 모듈을 준비합니다.
AEC 성능 측정
측정 환경 구성이 완료되면 다음과 같은 절차로 AEC 성능을 측정합니다.
- A(에코가 섞여 있는 원 음성, AECMOS에서는 'Mic captured audio'로 표현)와 B(에코의 소스가 되는 음성, AECMOS에서는 'Loop back audio'로 표현)를 AEC에 입력합니다.
- 시나리오 파일과 AEC 처리 결과인 C(에코가 제거된 음성, AECMOS에서는 'Enhanced audio'로 표현)와 A, B를 AECMOS 측정 툴에 입력해 ST FE Echo DMOS, ST NE MOS, DT Echo DMOS, DT Other MOS를 측정합니다.
AEC 성능 평가
AEC 성능 측정 결과를 분석해 어떤 측면에서 차이가 생겼는지, 어떤 점이 개선됐고 어떤 점이 미흡한지 고려해 향후 개발 및 업데이트 계획을 수립합니다.
AECMOS 지표의 의미와 지표에 따른 체감 품질 비교
AECMOS로 측정한 지표의 의미를 살펴보고, 지표별 점수에 대한 체감 품질을 비교해 보겠습니다. 설명할 때에는 편의상 Near-end를 '나'로 가정하겠습니다.
성능 지표의 의미
앞서 설명드린 바와 같이 AECMOS에는 4가지 지표가 있으며 각 지표는 다음과 같은 의미가 있습니다.
- ST FE Echo DMOS: 에코만 있는 환경(A에 Far-end의 소리만 있는 환경)에서 에코 제거 후 남아 있는 에코 양에 대한 척도입니다. 1~5 사이의 점수로 표현되고, 숫자가 높을수록 에코가 잘 제거됐다고 판단합니다.
- ST NE MOS: Near-end 소리만 있고 에코가 없는 환경(A에 Near-end 소리만 있는 환경, B의 소 리 존재 여부는 중요하지 않음)에서 보존된 내 음성의 품질에 대한 척도입니다. 1~5 사이의 점수로 표현되고, 숫자가 높을수록 음성 품질이 좋다고 판단합니다.
- DT Echo DMOS: 더블 톡 환경(A에 Near-end 소리와 Far-end 소리가 같이 있는 환경)에서 에코 제거 후 남아 있는 에코의 품질에 대한 척도입니다. 1~5 사이의 점수로 표현되고, 숫자가 높을수록 에코가 잘 제거됐다고 판단합니다.
- DT Other MOS: 더블 톡 환경(A에 Near-end 소리와 Far-end 소리가 같이 있는 환경)에서 에코 제거 후 보존된 음성의 품질에 대한 척도입니다. 1~5 사이의 점수로 표현되고, 숫자가 높을수록 음성 품질이 좋다고 판단합니다.
최고의 통화 품질을 얻기 위해서는 모든 점수가 고르게 높아야 합니다. 그렇지만 현실적으로 정확히 에코 신호 부분만 판별해 내기는 거의 불가능하기 때문에, 에코 제거 과정에서 목소리 손상도 같이 발생하는데요. 특히, 에코와 목소리가 같은 구간에 동시에 존재하는 더블 톡 구간에서는 두 개의 목소리가 섞여 버리기 때문에 에코 제거 과정에서 목소리가 손상될 가능성이 더 높아집니다. 이런 점 때문에 에코 제거와 음성 보존은 트레이드오프 관계에 놓입니다.
ST FE Echo DMOS와 DT Echo DMOS는 에코를 잘 제거할 수록 점수가 올라가고, ST NE MOS와 DT Other MOS는 음성을 잘 보존하면 점수가 올라갑니다. 따라서, 높은 ST FE Echo DMOS와 DT Echo DMOS 점수를 위해서 모든 음성을 제거하면 에코와 목소리를 모두 제거해 높은 점수를 얻을 수 있지만, 상대방은 내 목소리를 제대로 들을 수 없습니다. 반대로 높은 ST NE MOS와 DT Other MOS 점수를 위해서 신호를 제거하지 않으면 내 목소리가 그대로 남아 높은 점수를 얻을 수 있지만 에코가 심해서 대화가 어 렵습니다.
AECMOS 성능 지표에 따른 체감 품질 비교
아래 표에서 AECMOS의 4가지 품질 지표인 ST FE Echo DMOS와 ST NE MOS, DT Echo DMOS, DT Other MOS의 점수대별로 음성 품질 차이를 체감할 수 있습니다.
ST FE Echo DMOS | 오디오 캡처 위치 | 오디오 파일 | 설명 |
---|---|---|---|
원본 | Mic captured audio(A) | 상대방(Far-end)이 혼자 말하고(B), 그 소리가 내 스피커로 출력되면서 내 마이크에 수집(A)됩니다. A에서 에코를 들을 수 있습니다. | |
Loop back audio(B) | |||
1.x | Enhanced audio(C) | 에코가 잘 제거되지 않았습니다. | |
2.x | Enhanced audio(C) | 에코가 줄어들었지만 잔여 에코가 들리는 구간이 많이 있습니다. | |
3.x | Enhanced audio(C) | 전반적으로 에코가 많이 제거됐지만 잔여 에코가 가끔씩 들립니다. | |
4.x | Enhanced audio(C) | 에코가 완전히 제거돼 들리지 않습니다. |
ST NE MOS | 오디오 캡처 위치 | 오디오 파일 | 설명 |
---|---|---|---|
원본 | Mic captured audio(A) |
에코가 없는 환경에서 내(Near-end)가 말하는 동안 Far-end 쪽에서 큰 소리가 발생하는 상황입니다. B에 Far-end 소리가 있지만, A에는 내 음성만 있습니다. | |
Loop back audio(B) | |||
1.x | Enhanced audio(C) | 에코가 없는 환경임에도 Near-end 목소리 손상이 크게 발생합니다. 손상이 있는 구간은 알아들을 수 없습니다. | |
2.x | Enhanced audio(C) | 에코가 없는 환경임에도 Near-end 목소리 손상이 발생합니다. 손상이 있는 구간은 주의 깊게 들어야 알아들을 수 있습니다. | |
3.x | Enhanced audio(C) | 에코가 없는 환경임에도 Near-end 목소리 손상이 약하게 발생합니다. 손상이 있지만 알아들을 수 있습니다. | |
4.x | Enhanced audio(C) | Near-end 목소리가 손상된 구간이 거의 없습니다. |
DT Echo DMOS | 오디오 캡처 위치 | 오디오 파일 | 설명 |
---|---|---|---|
원본 | Mic captured audio(A) | Near-end가 먼저 말을 시작하고 Far-end가 같이 말을 해(B) 두 명의 목소리가 내 마이크에 함께 수집(A)됩니다. | |
Loop back audio(B) | |||
1.x | Enhanced audio(C) | 에코가 잘 제거되지 않았습니다. | |
2.x | Enhanced audio(C) | 에코가 줄어들었지만 잔여 에코가 들리는 구간이 많이 있습니다. | |
3.x | Enhanced audio(C) | 전반적으로 에코가 많이 제거됐지만 잔여 에코가 가끔씩 들립니다. | |
4.x | Enhanced audio(C) | 에코가 완전히 제거돼 들리지 않습니다. Near-end 목소리에 손상이 발생했지만 DT ECHO DMOS 점수는 잔여 에코량만 평가하기 때문에 높은 점수가 측정됐습니다. |
DT Other MOS | 오디오 캡처 위치 | 오디오 파일 | 설명 |
---|---|---|---|
원본 | Mic captured audio(A) | Near-end가 먼저 말을 시작하고 Far-end가 같이 말을 해(B) 두 명의 목소리가 내 마이크에 함께 수집(A)됩니다. | |
Loop back audio(B) | |||
1.x | Enhanced audio(C) | 더블 톡 구간에서 Near-end 목소리의 손상이 크게 발생합니다. 손상이 있는 구간은 알아들을 수 없습니다. | |
2.x | Enhanced audio(C) | 더블 톡 구간에서 Near-end 목소리의 손상이 발생합니다. 손상이 있는 구간은 말을 하고 있다는 상황만 인지가 가능합니다. | |
3.x | Enhanced audio(C) | 더블 톡 구간에서 Near-end 목소리의 손상이 약하게 발생합니다. 손상이 있는 구간은 주의깊게 들어야 알아들을 수 있습니다. | |
4.x | Enhanced audio(C) | 더블 톡 구간에서 Near-end 목소리의 손상이 있지만 알아들을 수 있습니다. Far-end의 에코량은 DT Other MOS 점수에는 반영되지 않으며, DT Echo DMOS 값에 영향을 미칩니다. |
AEC 성능 측정 요약
저희는 자사의 AEC 기술을 신뢰할 수 있게 평가하고 향상시키기 위해 아래와 같이 성능을 측정합니다.
- 재현성과 일관성 보장: AECMOS를 통해 반복 가능한 환경에서 성능을 측정합니다. 동일한 데이터베이스를 사용하고, 네트워크 영향을 줄이기 위해 로컬에서 테스트를 진행합니다. 이와 같이 동일한 환경에서 일관된 결과를 얻을 수 있는 측정 방법을 사용하면 AEC 기술의 성능 변화나 개선 사항을 정 확하게 파악할 수 있습니다.
- 신뢰할 수 있는 지표 사용: AECMOS 지표는 업계 및 학계에서 AEC의 성능 평가와 비교 분석에 널리 활용하는 중요한 지표입니다. 이 지표를 사용하면 측정한 성능의 신뢰를 확보할 수 있으며, 제품의 수치와 성능을 정량적으로 평가하고 발전 방향을 설정할 수 있습니다.
- 다양한 에코 상황에서의 성능 확인: 다양한 에코 환경에서 AEC 기술이 어떻게 작용하는지 정량적으로 확인할 수 있도록 아래와 같은 방법을 사용합니다.
- 대용량의 데이터베이스: 싱글 톡, 더블 톡이 시나리오에 따라 섞여 있는 데이터베이스를 2400개 이상 사용합니다.
- 다양한 녹음 환경: 다양한 오디오 장치(마이크, 스피커)와 환경에서 녹음돼 음성과 에코의 크기와 특징이 다양한 데이터를 사용합니다.
이렇듯 다양한 조건에서 신뢰할 수 있게 성능을 평가해 어떤 에코 상황에서도 저희 AEC 기술이 효과적으로 작동해 최상의 음성 품질을 제공할 수 있도록 노력하고 있습니다.
또한 에코 제거와 음성 보존이 서로 트레이드오프 관계이기 때문에 발생하는 성능 문제를 극복하고자 머신 러닝을 이용한 에코 제거 기술도 개발했고, 그 결과 전체 성능 지표가 기존 기술보다 고르게 향상됐습니다. 머신 러닝의 특성상 연산량이 많을수록 성능이 좋아지지만 아직 실시간 통화 서비스에서는 많은 연산을 사용할 수 없기에 연산량을 적절히 조절하며 튜닝하고 있습니다(이와 같은 고성능 AEC는 LINE 데스크톱에 한정해 탑재합니다).
지금까지 많은 부분을 개선해 왔는데요. 추후 더블 톡 상황에서 더욱 성능을 향상하고, 모바일 앱에도 고성능 AEC를 탑재하는 것을 목표로 하고 있습니다.