23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
안녕하세요!
SKT Fellowship 6기에서 'AI 활용 5G 음성 통화 서비스 검증 자동화’ 과제를 진행하게 된 팀 sk삭임 입니다.
이번 포스트에서는 중간발표 내용과 함께 피드백 받은 내용을 공유하고자 합니다.
우선 저희의 전체 연구 목표는 AI를 활용한 통화 음성 품질 측정 및 개선입니다.
앞선 연구 계획에서 언급했다시피 통화 중 음질이 저하되거나, 연결이 끊겼을 때 사용자들의 불만족이 증가하였으며
특히 HD Voice는 LTE망을 사용하는데, 이때 LTE 네트워크 망이 약한 지역에서는 사용이 어려웠습니다.
따라서 저희는 통화 연결중, 통화중, 부재중 등의 이벤트를 고려하여 다각도로 통화의 품질을 평가하고자 하였습니다.
이때 저희는 네트워크 오류, 잡음 및 외부 소음, 상대방 음성 발음 정확도 등을 음성 통화 품질 저하의 원인으로 보았습니다.
저희는 통화 음성 품질 특정 및 개선을 위해 다음과 같은 두가지 방법을 사용하고자 합니다.
먼저 음성 통화에 담긴 다양한 이벤트를 분리하고, 이후 요인별 음성 통화 품질을 개선하려 합니다.
음성 통화에 담긴 다양한 이벤트를 분리하기 위해 통화 상황을 실시간으로 분리하여 통화 중 발생하는 이벤트를 판단합니다.
지금까지 오디오에서 링백톤과 대화상황을 구분하여 품질 개선이 필요한 부분을 확인하였고, 이후 남은 기간동안 소음을 분리하여 품질을 개선할 예정입니다.
지금까지의 진행사항에 대해 말씀드리겠습니다.
우선 통화 데이터셋이 없었기에 저희는 음성 통화 데이터셋을 구축하였습니다.
실제 전화 환경과 유사하사고, 대화 text와 화자가 labeling 되어 있는 데이터를 활용하기 위하여 AI Hub의 민원 질의-응답 데이터를 사용하였습니다.
저희는 발화단위로 저장된 해당 데이터들을 하나의 파일로 합쳤으면 화자 분리를 위해 각 화자의 발화 시작시간과 끝시간, 발화자, text를 구분하여 csv파일로 저장하였습니다.
또한 링백톤 데이터셋 구축을 위해 사측에서 제공받은 링백톤과 노래 링백톤을 활용하였습니다.
링백톤이란 통화연결 대기음으로, 착신 가입자에게 호출 신호가 송출되고 있음을, 발신 가입자에게 이를 알려주는 일종의 통화연결 대기음을 의미합니다.
저희가 구축한 링백톤은 사측에서 제공받은 링백톤과 노래 링백톤으로, 해당 파일들은 뒤에 대화와 함께 나오게 되는 링백톤과 그렇지 않은 링백톤으로 분리되어 사용됩니다.
음성 통화의 이벤트 분리를 위해 ML 모델을 활용하여 링백톤과 대화를 이진분류하는 태스크를 우선 진행했습니다.
데이터는 2초 단위로 잘라 학습에 사용했으며, 링백톤 42개의 데이터에서 229개의 샘플을 추출하였고, 대화 데이터에서 300개의 샘플을 추출해 균형 데이터를 생성하였습니다.
이후 STFT, MEL, MFCC로 피쳐 추출을 진행한 뒤 기본 ML 모델들(서포트벡터머신, 선형회귀, 의사결정나무, 랜덤포레스트)을 학습하여 이진분류를 진행한 결과,
테스트 데이터셋에 대해 랜덤포레스트 모델이 가장 높은 성능인 90.22%의 정확도로 분류하였습니다.
Sound event detection을 통해 대화 시작 시점을 특정하는 태스크 역시 DCASE challenge에서 우수한 성능을 낸 SALSA 모델을 학습하여 진행하였습니다.
데이터를 랜덤으로 2초씩 잘라 학습에 사용했고, 총 세 가지의 데이터타입(링백톤, 대화, 링백톤+대화)를 고려하였습니다.
6만개 데이터셋 샘플에 대해 학습을 진행하였으며 0.2초 단위로 통화 시작 시점을 측정하도록 설계하였습니다. 그 결과 정확도 100%로 테스트 데이터셋에 대한 성능을 내었습니다.
마지막으로, 링백톤의 종류를 다중분류하는 태스크에 대해 크게 두 가지 접근을 취하였습니다.
첫 번째 시도는 LSTM 모델을 학습하여 링백톤을 분류하는 방식이었으며, 매우 낮은 성능(22%)을 기록하였습니다.
두 번째 접근은 오디오의 지문을 학습 없이 활용하는 방식으로, feature matching 방식을 통해 데이터베이스에 존재하는 링백톤을 정확하게 분류하는 방식입니다.
음성을 이미지로 변환(STFT, MFCC)로 변환한 뒤, 비교 대상이 되는 링백톤의 음성 길이만큼 윈도우 사이즈를 설정해 데이터베이스의 피쳐 이미지에 슬라이딩시켜 일치율을 확인하는 방식입니다.
피쳐 간 거리는 픽셀 별 유클리드 거리를 측정해 합하는 방식이며 거리 합이 가장 작은 데이터베이스 내 링백톤에 매핑하는 방식으로 다중 분류를 진행합니다.
그 결과 MFCC를 활용한 방식이 더 성능이 좋았으며, 84.5%의 정확도로 테스트 데이터셋에 대한 성능을 내었습니다.
앞으로 진행할 연구들에 대해 말씀드리겠습니다.
먼저 음악으로 구성된 링백톤이나 사람이 직접 녹음하거나 생성한 링백톤 등 다양한 링백톤을 추가로 고려할 예정이며,
소음 분리를 위해 Sound Separation model을 적용하여 소음을 제거하여 음성 통화 품질을 향상시키고 마지막으로 Speaker Diarization을 적용하여 화자 분리를 진행할 예정입니다.
결론적으로 저희는 ‘Real-time Call Event Separation and Quality Improvement’(실시간 통화 이벤트 분리 및 음성 품질 개선을 위한 방법)를 주제로 하여 통해 SCIE급 Top conference논문을 작성하고자 합니다.
또한 실시간 통화 이벤트 분리나 품질 개선을 주제로 특허 출원 혹은 소프트웨어 프로그램을 등록하여 추후 SKT 통화 품질 자동화 평가 시스템과 연계되도록 할 예정입니다.
중간 발표에서 많은 멘토님들과 다른 팀 연구원들의 피드백을 받아 향후 저희 연구의 방향성을 잡아가는데 도움을 받을 수 있었습니다.
피드백을 통해 좋은 말씀 많이 주셨고 저희가 받은 피드백은 크게 5가지의 내용이 있었습니다.
[서비스 검증 자동화]
많은 분들이 저희 연구 주제와 연구 내용에 대한 연계에 대한 피드백을 주셨습니다.
저희가 지금 진행 중인 연구 주제는 “음성 통화 검증 자동화”인데 실제 진행하고 있는 부분은 “음성 통화 품질 개선”으로 보여 이 두 내용이 어떻게 연계가 되는지에 대한 구체적인 방향성에 대해 지적해 주셨습니다.
음성 통화 서비스 검증은 음성 서비스가 발전될 때마다 필요한 과정입니다. 음성 서비스는 지속적으로 발전하고 있기 때문에 매번 검증을 사람이 하는 것보다 자동화하는 과정이 필수적입니다.
이 과정에서 음성 통화의 이벤트가 분리된다면 실제 통화 부분과 통화 연결 중을 분리하여 서비스를 검증하는데 도움을 줄 수 있습니다.
또한, 이벤트 분리를 통해 실제 통화가 이루어질 수 있는지, 즉 링백톤의 종류에 따라 통화 연결 가능성을 확인하는데 도움을 줄 수 있으며,
소음 분리를 통해 음성 통화 품질을 개선하여 송/수신자의 음성 전달력에 대한 검증에 도움을 줄 수 있어 검증 자동화와 연계 가능합니다.
이러한 연계 측면을 생각하여 서비스 검증 자동화를 위한 음성 통화 품질 개선이 저희 팀의 목표입니다.
[실제 서비스 연계]
서비스 검증 자동화 측면에서와 비슷하게 저희가 연구한 내용을 실제 서비스에 어떻게 적용할지에 대한 설명이 부족하다는 피드백을 받았습니다.
현재 저희가 생각하고 있는 점은 SKT의 음성 검증 시스템인 와츠맨과 연계하여 링백톤이 정삭적으로 작동하는지, 음성 통화 연결이 제대로 되었는지 등을 평가하는데 사용할 예정입니다.
이에 구체적으로 어떻게 해당 시스템과 연계시킬 수 있는지는 멘토님들과 협의를 통해 진행할 예정이고 해당 내용 역시 구체화하여 최종 발표에서는 함께 발표하도록 하겠습니다.
[use case 구체화]
또한, 성능 평가를 위해 use case를 구체화하여 제시하면 좋을 것 같다는 말씀이 있었습니다.
이 부분 역시 저희도 고민 중인 부분이었고 최종 발표에서는 다양한 케이스에 대한 결과를 제시하고자 합니다.
이를 위해 실제 발생 가능한 통화 시나리오를 제작하여 해당 케이스를 테스트 진행할 예정이며,
링백톤 역시 시스템 링백톤 외에 컬러링, v-컬러링 등을 고려하여 다양한 케이스에 대한 실험을 진행하여 결과를 보일 예정입니다.
[데이터 셋]
이외에도 주파수의 차이에 따라 링백톤과 화자의 음성을 구분하는 것 같다는 의견이 있었습니다.
주파수 영역을 활용하여 모델이 구분한 것은 맞아 저희도 해당 부분을 보다 발전시킬 필요가 있다고 생각하였습니다.
이를 위해 실제 단말에서 출력되는 음성 소스를 통해서도 정상적으로 동작하는지 확인할 예정입니다.
링백톤 데이터셋 수가 부족하여 data augmentation이 필요할 것 같다는 의견도 있었는데 저희가 진행하는 링백톤 분리는 모델 학습이 필요 없는 부분이라 augmentation 필요 없다고 판단하였습니다.
시스템 링백톤 이외의 컬러링, v-컬러링의 경우는 추가 데이터 수집하여 진행할 예정이라 많은 데이터셋을 확보할 수 있습니다.
[품질 개선]
마지막으로 다양한 음성 통화 품질 저하 요인에 대한 개선 방안에 대한 질문이 있었습니다.
네트워크 오류, 소음, 발음 정확도 등의 다양한 원인으로 품질 저하가 발생하고 이를 해결해야 좋은 음성 통화 서비스를 제공할 수 있는 것은 맞습니다.
하지만 저희는 전체 품질 개선에 초점을 맞추는 것보다 음성 통화 서비스 검증을 위한 이벤트 분리 및 품질 자동화에 초점을 맞춘 것이기 때문에 그중 소음 분리 부분만 다루고자 합니다.
이렇게 주신 다양한 피드백을 반영하여 최종 결과 발표에서는 음성 통화 품질 개선을 통해 평가 자동화 시스템에 연계한 결과를 보여드리겠습니다.
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.