한 문장에 섞인 여러 감정, 음성으로 읽어내기

한국어 음성 한 토막에 섞인 여러 감정을 동시에 알아낼 수 있을까? 음성 특징 세 가지로 만든 모델 7개를 비교해 가장 좋은 조합과 실무에 쓸 때의 한계를 정리한다.

고객 응대 녹음 한 건에 화난 목소리와 지친 목소리가 함께 담길 수 있다. 감정 인식 모델이 이 녹음에 ‘분노’ 하나만 붙이면, 함께 담긴 슬픔은 기록에 남지 않는다. 지금까지 음성 감정 인식 연구는 대부분 여러 감정 가운데 하나만 정하는 방식이었다. 그런데 실제 상황에서는 여러 감정이 섞여 나타나는 일이 많다.

이 글이 다루는 질문은 하나다. 한국어 음성 한 토막에 함께 담긴 여러 감정을 동시에 알아낼 수 있을까?

이 질문에 답한 논문을 한 편 읽어 본다.

  • 제목: Multi-Label Emotion Recognition of Korean Speech Data Using Deep Fusion Models
  • 학술지: Applied Sciences
  • 연도: 2024
  • DOI: 10.3390/app14177604

논문은 한국어 음성에서 음성 특징 세 가지를 뽑고, 특징마다 딥러닝 모델을 하나씩 만든다. 이어서 이 모델을 둘 또는 셋씩 합친 딥 퓨전 모델(deep fusion model)을 만들고, 모두의 성능을 비교한다. 음성 감정 인식(Speech Emotion Recognition, SER)은 녹음된 말에서 감정을 자동으로 알아내는 기술이다. 다중 클래스 분류(multi-class classification)는 감정 하나만 정한다. 다중 레이블 분류(multi-label classification)는 감정이 하나일 때와 여러 감정이 섞였을 때를 모두 다룬다.

이 글에서 쓰는 핵심 용어는 다음과 같다.

  • 로그 멜 스펙트로그램(Log-mel spectrogram): 시간에 따라 주파수와 진폭이 바뀌는 모습을 사람의 청각에 맞춘 척도로 나타낸 2차원 이미지
  • 멜 주파수 켑스트럼 계수(Mel-Frequency Cepstral Coefficients, MFCCs): 멜 스펙트로그램에 이산 코사인 변환을 적용해 얻는 계수 묶음으로, 주파수 대역별 에너지 분포를 요약한다
  • 음성 품질 특징(Voice Quality Features, VQFs): 음높이, 소리 크기, 주파수와 진폭의 흔들림처럼 목소리 자체의 성질을 나타내는 음향 지표 22개

동기: 감정 하나만 정하는 분류로는 섞인 감정을 놓친다

왜 섞인 감정 인식이 중요한가

논문이 든 이유는 다음과 같다.

  • 감정은 사람의 심리 상태를 드러내는 핵심 요소다.
  • 자동 감정 인식 시스템은 우울이나 불안 같은 정신 건강 문제를 찾아내는 데 쓰일 수 있다. 사회 체계와 의료 체계 모두 이 시스템의 도움을 받는다.
  • 뇌파, 심박, 맥박으로 감정을 알아내려면 전용 장비가 필요하다. 음성은 시간과 장소의 제약이 적어서 데이터를 모으기 쉽다.
  • 사람과 컴퓨터의 상호작용(Human–Computer Interaction, HCI)에서 감정을 자동으로 알아내면, 사용자 기분에 맞춘 서비스를 제공할 수 있다.
  • 실제 상황에서는 감정이 섞여 나타나는 일이 많다. 그래서 섞인 감정을 알아내는 다중 레이블 분류가 필요하다.

기존 연구가 다루지 않은 부분

기존 SER 연구는 대부분 다중 클래스 분류였고, 음성 특징도 하나만 썼다. 독일어 EmoDB 데이터셋의 스펙트로그램을 심층 합성곱 신경망(Convolutional Neural Network, CNN)에 넣은 연구가 그 예다. 영어 RAVDESS 데이터셋의 MFCCs를 장단기 메모리(Long Short-Term Memory, LSTM)에 넣은 연구도 있다. 특징 두 개 이상을 쓴 연구도 있었지만, 주로 다중 클래스 분류에 집중했다. IEMOCAP 데이터셋의 MFCCs와 멜 스펙트로그램, 한국어 음성 데이터베이스의 MFCCs와 ERB 스펙트로그램을 쓴 연구가 그렇다.

다중 레이블 분류 연구도 있었다. 한 연구는 영어 IEMOCAP 데이터셋의 발화(發話)로 섞인 감정을 인식했다. 다른 연구는 여러 언어로 된 RML 데이터셋에서 로그 멜 스펙트로그램과 MFCCs를 뽑고, CNN과 LSTM을 합친 모델로 섞인 감정을 분류했다. 논문이 짚은 빈틈은 다음과 같다.

  • 한국어 음성으로 다중 레이블 분류를 한 연구가 거의 없다. 한국어 음성을 쓴 연구는 다중 클래스 분류에 머물렀다.
  • 감정을 드러낼 때의 말 속도, 억양, 형태소 같은 음성 신호는 나라의 문화와 언어에 따라 다르다. 그래서 각 언어의 음성 데이터베이스로 모델을 만들어야 한다.
  • 대부분의 연구가 로그 멜 스펙트로그램이나 MFCCs 하나만 썼다. 특징 하나로는 음성 데이터의 복잡성을 다 반영하지 못해 섞인 감정을 알아내기 어렵다.

방법: 음성 특징 세 가지를 따로, 또 함께 학습시켜 비교한다

논문은 방법을 네 단계로 설명한다. 이 글에서는 둘째 단계를 데이터 증강과 특징 추출로 나누어 다섯 단계로 설명한다.

그림 1. 하드 레이블링한 한국어 음성을 다섯 단계로 처리해 모델 일곱 개의 성능을 비교하는 절차

사례와 자료

분석 대상은 NIA(National Information Society Agency)의 AI-Hub가 제공하는 한국어 음성 감정 데이터베이스다. 이 데이터베이스에는 20대에서 50대까지의 화자가 연령대나 성별 제한 없이 녹음되어 있고, 여러 상황의 발화가 들어 있다. 음성 파일마다 전문가 다섯 명이 듣고 감정을 판정했으며, 파일 하나에 감정이 한 개에서 다섯 개까지 붙어 있다. 논문은 다섯 감정을 쓴다. 기쁨(Happiness), 슬픔(Sadness), 분노(Anger), 중립(Neutral), 혐오(Disgust)다.

연구진은 하드 레이블링(hard labeling) 방식으로 레이블을 정했다. 다섯 명 가운데 두 명 이상이 같은 감정을 택했을 때만 그 감정을 레이블로 남기는 방식이다. 이렇게 하면 모호한 감정이 빠지고, 파일마다 감정이 한두 개 붙는다. 논문의 예시 파일로 확인하면 다음과 같다.

  • Audio#1: 슬픔 2명, 중립 3명이다. 두 감정 모두 2명 이상이므로 레이블은 ‘슬픔과 중립’이다.
  • Audio#2: 중립 1명, 분노 2명, 슬픔 1명, 혐오 1명이다. 레이블은 ‘분노’다.
  • Audio#3: 기쁨 3명, 슬픔 1명, 중립 1명이다. 레이블은 ‘기쁨’이다.

‘기쁨과 혐오’, ‘기쁨과 분노’ 조합은 데이터가 적고 동시에 표현되기 어려운 조합이라 뺐다. 최종 데이터는 40,645건이며, 레이블은 감정 하나짜리 5종과 두 감정 조합 8종이다. 레이블별 건수는 크게 차이가 난다. 가장 많은 ‘슬픔’은 15,184건(37.4%)이고, 가장 적은 ‘중립과 혐오’는 266건(0.7%)이다.

1단계: 전처리

  • 입력: 하드 레이블링을 마친 음성 파일
  • 산출: 무음을 뺀 길이 3초 이상의 음성 데이터

처리 순서는 다음과 같다.

  1. 음성 파일을 표본화 비율(sampling rate, 1초에 소리를 몇 번 기록하는지) 16,000 Hz의 오디오 데이터로 바꾼다.
  2. Python librosa 라이브러리의 power_to_dB로 주파수 대역의 파워를 dB로 바꾸고, 평균이 −70 dB보다 낮은 데이터를 뺀다. 소리가 작으면 섞인 감정을 알아내기 어렵기 때문이다.
  3. 앞뒤 무음을 잘라 내고, 길이가 3초 이상인 데이터만 남긴다. 연구진은 섞인 감정을 알아내려면 음성이 최소 3초는 되어야 한다고 판단했다.

이 단계에서 데이터의 약 20%가 빠졌다.

2단계: 데이터 증강

  • 입력: 전처리한 음성 데이터
  • 산출: 레이블별 건수 차이가 줄어든 3초 길이 데이터

불균형한 학습 데이터는 딥러닝 모델의 성능을 떨어뜨린다. 데이터 증강으로 쓸 수 있는 데이터를 늘리면 성능이 오르고, 과소적합과 과대적합도 피할 수 있다. 처리 순서는 다음과 같다.

  1. 전처리한 데이터를 학습, 검증, 시험 데이터셋으로 약 6:2:2 비율로 사전(事前)에 무작위 분할한다.
  2. 세 데이터셋 모두에 이동 증강(shift augmentation)을 적용한다. 원본을 시간 축 오른쪽으로 조금씩 밀어 여러 조각을 만드는 기법이다. 길이 3.5초 음성에 구간 3.0초, 이동 시간 0.5초를 정하면 조각이 두 개 나온다.
  3. 가장 많은 ‘슬픔’에는 증강을 하지 않는다. 데이터가 적은 ‘기쁨과 슬픔’, ‘중립과 혐오’는 이동 시간을 짧게 잡아 조각을 많이 만든다.
  4. 모델 입력 크기를 맞추려고 모든 표본의 길이를 3초로 통일한다.

증강 뒤 데이터는 학습 71,340건, 검증 11,968건, 시험 12,849건이다. 학습 데이터에서 비율이 가장 높은 레이블은 ‘분노’ 6,354건(8.9%)이고, 가장 낮은 레이블은 ‘중립과 혐오’ 4,835건(6.8%)이다. 증강 전에는 37.4%와 0.7%였던 차이가 크게 줄었다.

3단계: 특징 추출

  • 입력: 3초 길이 음성 데이터
  • 산출: 크기 (100, 300, 1), (300, 40), (22)의 입력 벡터

세 특징은 담는 정보가 다르다. 로그 멜 스펙트로그램과 MFCCs는 주파수와 시간 영역의 성질을 담고, VQFs는 원래 신호와 목소리 자체의 품질을 담는다. 처리 순서는 다음과 같다.

  1. 로그 멜 스펙트로그램: 짧은 구간마다 주파수 성분을 구하는 단시간 푸리에 변환(Short-Time Fourier Transform, STFT)으로 스펙트로그램을 얻는다. 이를 멜 필터뱅크로 멜 스펙트로그램으로 바꾸고 각 값에 로그를 취한다. 멜 필터 수는 100, STFT의 hop length는 25 ms, overlap 길이는 15 ms다.
  2. MFCCs: 멜 스펙트로그램에 이산 코사인 변환을 적용해 같은 STFT 설정으로 40개를 뽑는다. 1D CNN-LSTM에 넣으려고 벡터를 전치(행과 열을 바꿈)한다.
  3. VQFs: 음성의 주기 파형에서 음향 지표 22개를 뽑는다.

멜 척도는 사람이 주파수를 듣는 방식을 반영한다. 사람은 낮은 소리의 차이에 민감하고, 주파수가 높아질수록 덜 민감해진다. 헤르츠(f)를 멜(M)로 바꾸는 식은 M = 2595 log(1 + f/700)이다.

VQFs 22개는 여섯 묶음으로 나뉜다.

  • 기본 주파수(F0): F0 mean, F0 stdev, 2개
  • 조화음 대 잡음비(Harmonics-to-Noise Ratio, HNR): 1개
  • 지터(jitter, 주파수의 흔들림): Local, Local absolute, Rap, PPQ5, DDP, 5개
  • 시머(shimmer, 진폭의 흔들림): Local, Local dB, APQ3, APQ5, APQ11, DDA, 6개
  • 강도(intensity): max, mean, min, dynamic range, Intonation variation, 5개
  • 음높이(pitch): max, mean, range, 3개

묶음별 개수를 더하면 2+1+5+6+5+3=22다.

4단계: 모델 구성

  • 입력: 세 가지 특징 벡터
  • 산출: 모델 7개가 내는 감정 다섯 개의 확률

단일 모델 세 개는 특징 하나에 구조 하나를 짝지었다.

  1. 비전 트랜스포머(Vision-Transformer, ViT)와 로그 멜 스펙트로그램: ViT는 이미지를 패치(작은 조각)로 나누고, 셀프 어텐션으로 패치 사이의 관계를 학습한다. 연구진은 스펙트로그램을 100×10 크기의 직사각형 패치로 나눴다. 300÷10=30이라 패치는 30개이고, 패치 하나의 임베딩 차원은 100×10×1=1000이다. 패치는 위치 임베딩과 트랜스포머 인코더 6층을 거친 뒤, 드롭아웃을 적용한 다층 퍼셉트론(Multi-Layer Perceptron, MLP)으로 분류된다.
  2. 1D CNN-LSTM과 MFCCs: 1D CNN 3층의 필터 수와 길이는 (32, 3), (64, 3), (128, 3)이다. 합성곱과 최대 풀링을 거치면 (300, 40) 입력이 (35, 128)이 되고, LSTM 층은 이를 (1, 15) 벡터로 바꾼다. CNN이 짧은 구간의 패턴을 잡고, LSTM이 긴 순서 정보를 학습한다.
  3. 심층 신경망(Deep Neural Network, DNN)과 VQFs: 은닉층은 32개, 16개 뉴런이고 출력층은 5개 뉴런이다. 층 사이에 GELU 활성화 함수, 배치 정규화, 드롭아웃을 넣었다.

직사각형 패치를 택한 이유는 두 가지다. 정사각형으로 만들려면 원본 이미지 크기를 바꿔야 하는데, 직사각형 패치는 원본을 그대로 쓸 수 있다. 또 시간 축을 따라 나눈 직사각형 패치는 짧은 시간의 주파수와 진폭 변화를 잡아 감정 변화를 알아내기 쉽다. 연구진은 ImageNet으로 미리 학습된 ViT를 쓰지 않고, 한국어 SER에 맞춘 모델을 처음부터 학습시켰다.

퓨전 모델 네 개는 단일 모델의 특징을 합친다.

  • ViT + 1D CNN-LSTM
  • ViT + DNN
  • 1D CNN-LSTM + DNN
  • ViT + 1D CNN-LSTM + DNN

각 단일 모델의 완전연결층 출력을 이어 붙이고 MLP로 최종 분류한다.

출력층은 감정 다섯 개에 맞춰 노드 5개로 구성하고, 각 노드에 시그모이드 함수를 적용해 감정마다 확률을 낸다. 확률이 임곗값(臨界값)을 넘으면 그 감정이 있다고 보고, 넘지 못하면 없다고 본다. 그래서 출력은 감정 0개부터 5개까지 어떤 조합도 될 수 있다. 연구진은 임곗값을 흔히 쓰는 0.5가 아닌 0.45로 정했다. 0.45에서 여러 감정의 조합이 더 잘 나와 성능이 높았기 때문이다.

손실 함수는 이진 초점 손실(binary focal loss)이다. 식은 BFL(y, p̂) = −αy(1−p̂)^γ log(p̂) − (1−y)p̂^γ log(1−p̂)이다. y는 정답(0 또는 1), p̂은 예측 확률, α는 클래스 균형 가중치, γ는 어려운 사례에 가중치를 얼마나 줄지 정하는 값이다. 이미 잘 맞히는 사례는 (1−p̂)^γ가 작아져 손실이 줄고, 자주 틀리는 감정에 손실이 더 크게 매겨진다. 증강만으로는 원래 데이터의 극심한 불균형을 다 해소하지 못해서 이 손실 함수를 썼다.

학습에는 Adam 옵티마이저를 썼다. 탐색 범위는 학습률 [0.0005, 0.001], 에폭 [50, 150], 배치 크기 [32, 256], 조기 종료 인내 횟수 [5, 8], γ [0.5, 2.5]였고, 이 범위에서 성능이 가장 좋은 값을 택했다.

5단계: 성능 검증

  • 입력: 시험 데이터에 대한 감정별 예측(있음 1, 없음 0)
  • 산출: 감정별·평균 이진 정확도, 정밀도, 재현율, F1 점수

혼동 행렬은 예측과 실제를 맞대어 참양성(TP), 참음성(TN), 거짓양성(FP), 거짓음성(FN)으로 나눈 표다. 연구진은 감정마다 혼동 행렬을 만들어 네 지표를 계산했다.

  • 이진 정확도(binary accuracy): (TP + TN) ÷ (TP + FN + FP + TN). 한 감정의 있음과 없음을 모두 맞힌 비율이다.
  • 정밀도(precision): TP ÷ (TP + FP). ‘있다’고 예측한 것 가운데 실제로 있는 비율이다.
  • 재현율(recall): TP ÷ (TP + FN). 실제로 있는 것 가운데 ‘있다’고 맞힌 비율이다.
  • F1 점수: 2 × 정밀도 × 재현율 ÷ (정밀도 + 재현율). 정밀도와 재현율의 조화평균이다.

계산 예를 들어 본다. ViT 단일 모델의 기쁨은 재현율 0.423, 정밀도 0.582다. F1 점수는 2 × 0.582 × 0.423 ÷ (0.582 + 0.423) = 0.492 ÷ 1.005 ≈ 0.490이고, 논문 표의 값과 같다. 평균 이진 정확도는 감정 다섯 개의 이진 정확도를 평균한 값이다. ViT와 1D CNN-LSTM 퓨전 모델은 (0.776 + 0.684 + 0.654 + 0.686 + 0.761) ÷ 5 = 3.561 ÷ 5 ≈ 0.712다.

결과: 로그 멜 스펙트로그램과 MFCCs를 합친 모델이 평균 이진 정확도 71.2%로 가장 높았다

직사각형 패치와 정사각형 패치

연구진은 단일 모델을 만들기 전에 ViT의 패치 모양을 먼저 비교했다. 직사각형 패치는 (100, 300, 1) 이미지를 (100, 10, 1) 패치 30개로 나눴다. 정사각형 패치는 (128, 128, 1) 이미지를 (32, 32, 1) 패치 16개로 나눴다.

평균 이진 정확도는 직사각형 패치가 0.678, 정사각형 패치가 0.677로 거의 같았다. 평균 F1 점수는 직사각형 패치가 0.512로 정사각형 패치의 0.499보다 조금 높았다. 연구진은 직사각형 패치가 스펙트로그램의 시간, 주파수, 진폭 특성을 더 잘 잡아 섞인 감정 인식에 도움이 되었다고 해석했다. 그래서 이후 모델에는 직사각형 패치를 썼다.

단일 모델과 퓨전 모델의 비교

모델 일곱 개를 평균 이진 정확도와 평균 F1 점수로 비교했다.

그림 2. 로그 멜 스펙트로그램과 MFCCs를 합친 퓨전 모델이 두 평균 지표에서 모두 가장 높았다
모델평균 이진 정확도평균 F1
ViT(로그 멜)0.6780.512
1D CNN-LSTM(MFCCs)0.7070.499
DNN(VQFs)0.5720.389
ViT + 1D CNN-LSTM0.7120.522
ViT + DNN0.6900.465
1D CNN-LSTM + DNN0.7010.478
세 모델 모두0.7060.509

출처: Park, S.; Jeon, B.; Lee, S.; Yoon, J. (2024), Applied Sciences 표 8·표 9. CC BY 4.0(라이선스). 필자가 평균값만 추려 재구성했다.

단일 모델 가운데 평균 이진 정확도는 1D CNN-LSTM이 70.7%로, 평균 F1 점수는 ViT가 51.2%로 가장 높았다. DNN은 두 모델보다 크게 낮았다. 특히 분노의 재현율이 0.093, F1 점수가 0.149에 그쳐, VQFs가 분노를 알아내는 데 큰 도움이 되지 않았다.

ViT와 1D CNN-LSTM을 합친 퓨전 모델은 두 지표 모두 일곱 모델 가운데 가장 높았다. 네 퓨전 모델 가운데서는 세 모델을 모두 합친 모델이 그다음이었다(평균 이진 정확도 0.706, 평균 F1 0.509). 다만 일곱 모델 전체로 보면 이 모델은 1D CNN-LSTM 단일 모델(평균 이진 정확도 0.707)과 ViT 단일 모델(평균 F1 0.512)보다 조금 낮다. DNN이 들어간 퓨전 모델은 DNN 단일 모델보다는 나았지만, ViT와 1D CNN-LSTM 퓨전 모델을 넘지 못했다. 연구진은 성능이 낮은 DNN이 퓨전 모델 전체의 성능을 끌어내렸다고 해석했다.

가장 좋은 모델의 감정별 성능

ViT와 1D CNN-LSTM 퓨전 모델의 감정별 값은 다음과 같다.

감정이진 정확도재현율F1
기쁨0.7760.4710.531
슬픔0.6840.4810.546
분노0.6540.6210.526
중립0.6860.5280.554
혐오0.7610.3680.451

출처: Park, S.; Jeon, B.; Lee, S.; Yoon, J. (2024), Applied Sciences 표 9. CC BY 4.0(라이선스). 필자가 정밀도 열을 빼고 재구성했다.

정밀도는 기쁨 0.610, 슬픔 0.631, 분노 0.456, 중립 0.582, 혐오 0.584다. 혐오는 정밀도가 0.584인 데 비해 재현율이 0.368로 다섯 감정 가운데 가장 낮다.

이진 정확도와 F1 점수의 차이

가장 좋은 모델도 이진 정확도에 비해 재현율과 F1 점수가 낮았다. 연구진은 이 모델이 모든 감정에서 참음성률(True Negative Rate, TNR)이 높아 거짓양성을 줄이는 데 강하다고 보았다. 반면 감정이 뚜렷하지 않거나 여러 감정이 섞인 녹음에서는 실제 감정을 빠짐없이 찾아내기 어려웠다. 정밀도와 재현율이 어긋나는 현상은 다중 레이블 감정 인식에서 흔히 나타나는 어려움이다.

이 글은 감정별 판단에서 논문의 표 수치를 기준으로 삼는다. 분노의 재현율은 모델에 따라 크게 달랐다. 표 8의 열 순서(이진 정확도, 재현율, 정밀도, F1)를 따르면 단일 모델의 분노 재현율은 ViT 0.448, 1D CNN-LSTM 0.304, DNN 0.093이다. 퓨전 모델에서는 0.621로 높아졌지만, 정밀도는 0.456이다.

참고로 논문 본문은 이 퓨전 모델에서 분노와 혐오의 재현율이 낮다고 적었다. 표 9 수치로는 이 서술이 혐오(0.368)에만 들어맞는다. 이 차이는 평균값으로 정한 모델 순위에는 영향을 주지 않는다.

처음 질문에 답하면, 한국어 음성 한 토막에서 여러 감정을 동시에 알아내는 일은 된다. 가장 좋은 모델은 감정마다 있음과 없음을 평균 71.2% 맞혔다. 다만 평균 F1 점수가 52.2%라서, 필자는 이 수준을 사람의 판단을 돕는 보조 용도에 그친다고 본다.

의의와 한계

무엇이 달라지는가

  • 한국어 음성 데이터베이스로 다중 레이블 감정 분류를 수행했다.
  • 로그 멜 스펙트로그램, MFCCs, VQFs를 하나씩 쓴 모델과 둘, 셋을 합친 모델을 같은 데이터에서 비교했다.
  • 로그 멜 스펙트로그램과 MFCCs를 합친 조합의 성능이 가장 좋았다. DNN을 포함한 조합은 ViT와 1D CNN-LSTM 조합을 넘지 못했다. ViT + DNN은 평균 이진 정확도가 0.690으로, 1D CNN-LSTM 단일 모델의 0.707보다도 낮았다.

실무자에게 주는 쓸모

연구진은 이 모델이 정신 건강 관리, 고객 서비스, 엔터테인먼트, 스마트 서비스 시스템에 응용되기를 기대했다. 다만 고객 응대 녹음에서의 성능은 이 논문에서 검증되지 않았다. 감정별로 보면 혐오의 재현율이 0.368, 분노의 정밀도가 0.456에 그친다.

그래서 이 모델은 ‘슬픔과 분노’처럼 함께 담긴 감정을 기록하려는 시도에 참고할 수 있는 정도로 보아야 한다. 이 데이터에는 ‘슬픔과 분노’ 레이블이 1,625건 있다.

연구진은 학습 데이터가 20대에서 50대까지 연령과 성별 제한 없이 녹음되었다는 점을 들어, 한국어를 쓰는 현장의 여러 사용자에게 적용할 수 있다고 보았다. 그러나 이 결과는 단일 데이터베이스에서 얻은 것이고, 연령·성별별 성능은 보고되지 않았다. 다른 화자 집단이나 다른 현장에 쓰려면 따로 검증해야 한다. 임곗값을 0.5에서 0.45로 낮춰 여러 감정 조합이 더 잘 나오게 한 설정은 실무에서 참고할 만하다.

연구자에게 주는 쓸모

연구진은 이 연구가 이후 연구의 비교 기준으로 쓰이기를 기대했다. 필자가 보기에 하드 레이블링, 이동 증강, 이진 초점 손실, 임곗값 설정까지 절차가 숫자와 함께 적혀 있어 같은 데이터로 다시 실험해 볼 만하다. 다만 학습률, 에폭, 배치 크기, γ 같은 하이퍼파라미터는 범위만 제시되었고 최종 선택값은 적혀 있지 않다. 데이터는 AI-Hub에서 구할 수 있다.

패치 모양에 따른 차이는 평균 이진 정확도에서 거의 없었고, 평균 F1 점수에서 작았다. 연구진은 직사각형 패치가 작은 음성 데이터에서 귀납 편향의 부족을 보완할 수 있다고 해석했다. 그러나 이 실험만으로 그 효과가 확인되지는 않았다. 패치 설계를 다루는 연구라면 이 점을 따로 검증해 볼 만하다.

논문이 밝힌 한계

논문이 스스로 밝힌 한계는 네 가지다.

  • MFCCs는 배경 잡음에 민감해서 시끄러운 환경에서는 성능이 떨어질 수 있다. 전처리 단계에 잡음 제거 기법을 넣어야 한다.
  • ViT는 귀납 편향이 낮아 작은 데이터셋에서 성능이 떨어질 수 있다. 데이터를 더 모아 직사각형 패치와 대규모 데이터베이스를 함께 써 볼 필요가 있다.
  • 모델의 판단 과정을 해석하는 기법을 쓰지 않았다. 이후 연구에서 Grad-CAM이나 SHAP으로 특징이 예측에 미치는 영향을 살펴볼 계획이다.
  • 다중 레이블 감정 인식 연구가 적고, 최근 연구는 표정이나 텍스트를 음성과 함께 쓰는 다중 모달 방식이 많다. 대상 감정의 수와 종류도 연구마다 달라 기존 연구와 성능을 직접 비교하기 어렵다.

이 밖에 연구진은 LSTM만 썼다는 점을 들며, CARU나 GRU 같은 다른 순환 신경망을 시험하면 복잡한 시간 패턴을 더 잘 다룰 수 있다고 덧붙였다.

필자가 보는 적용 조건

아래는 논문에 적힌 내용이 아니라 필자가 실무 적용을 염두에 두고 덧붙이는 조건이다.

  • 레이블을 여러 사람이 판정해야 한다. 하드 레이블링은 판정자 다섯 명 가운데 두 명 이상의 동의를 기준으로 삼으므로, 판정자가 한 명뿐인 자료에는 그대로 적용할 수 없다.
  • 발화 길이를 확인해야 한다. 3초보다 짧은 응답이 많은 상담 자료라면 전처리에서 빠지는 비율이 커진다.
  • 전화 상담처럼 잡음이 섞인 녹음이라면 잡음 제거를 먼저 해야 한다.
  • 쓰는 목적에 따라 지표를 정해야 한다. 거짓 경보를 줄이는 것이 중요하면 이진 정확도와 정밀도를, 감정을 빠짐없이 찾는 것이 중요하면 재현율을 기준으로 삼는다.
  • 이 결과는 AI-Hub 데이터의 다섯 감정에 대한 것이다. 자사 녹음의 감정 분포와 화자 특성이 다르면 다시 학습하고 검증해야 한다.

바로 해 볼 일

논문의 절차를 자기 자료에 그대로 적용하는 첫 단계로 다음 세 가지를 해 볼 수 있다.

  • 판정자 여러 명이 감정을 붙인 녹음이 있다면, 두 명 이상이 같은 감정을 택했을 때만 레이블로 남기는 하드 레이블링을 적용한다. 레이블별 건수를 표로 정리해 불균형이 얼마나 큰지 확인한다.
  • 녹음을 16,000 Hz로 표본화하고, 평균 −70 dB보다 작은 데이터와 앞뒤 무음을 뺀 뒤 3초 이상만 남긴다. 남은 음성에서 멜 필터 100개의 로그 멜 스펙트로그램과 40개의 MFCCs를 함께 뽑는다.
  • 감정마다 시그모이드 확률을 내는 모델을 만들었다면, 임곗값 0.45와 0.5에서 감정별 이진 정확도, 재현율, F1 점수를 각각 구해 비교한다.

비즈니스인텔리전스랩은 음성과 텍스트 같은 비정형 데이터를 실무 판단에 연결하는 연구를 이어 가고 있다. 관심 있는 독자는 블로그의 다른 논문 해설도 함께 읽어 보기 바란다.

키워드

함께 읽을 글