헬창 개발자

[졸업 프로젝트] 감정 -5- 본문

프로젝트

[졸업 프로젝트] 감정 -5-

찬배 2023. 2. 3. 23:41

이번 포스팅은 VAD를 학습한 모델을 이용해 감정 차원에 매핑을 하는 방법을 소개합니다.

 

저번 포스팅때 학습한 모델에 입력값에 문장을 입력하고 출력되는 VAD값을 확인해 보겠습니다

"How can you say that?" 이라는 문장의 VAD값은 [0.4840004858940471, 0.3319215985240239, 0.3930063435385865] 이네요
이제 감정 매핑을 위한 알고리즘이 필요한데 저는 코사인 거리를 계산하여 가장 가까운 벡터값에 감정을 매핑하는 방법을 선택하겠습니다.

코드는 다음과 같습니다.

def vad_cos(vad):
    # surprise
    v_surprise = 0.875
    a_surprise = 0.875
    d_surprise = 0.562

    # anger
    v_anger = 0.167
    a_anger = 0.865
    d_anger = 0.657

    # sadness
    v_sadness = 0.052
    a_sadness = 0.288
    d_sadness = 0.164

    # disgust
    v_disgust = 0.052
    a_disgust = 0.775
    d_disgust = 0.317

    # fear
    v_fear = 0.073
    a_fear = 0.84
    d_fear = 0.293

    # joy
    v_joy = 0.98
    a_joy = 0.824
    d_joy = 0.794
    
    dists = {}
    dists['surprise'] = distance.cosine([scale(v_surprise), scale(a_surprise), scale(d_surprise)], vad)
    dists['anger'] = distance.cosine([scale(v_anger), scale(a_anger), scale(d_anger)], vad)
    dists['sadness'] = distance.cosine([scale(v_sadness), scale(a_sadness), scale(d_sadness)], vad)
    dists['disgust'] = distance.cosine([scale(v_disgust), scale(a_disgust), scale(d_disgust)], vad)
    dists['fear'] = distance.cosine([scale(v_fear), scale(a_fear), scale(d_fear)], vad)
    dists['joy'] = distance.cosine([scale(v_joy), scale(a_joy), scale(d_joy)], vad)
    print(dists)
    return min(dists, key=dists.get)

 

코드를 다시 실행한다면 코사인 거리가 제일 짧은 fear에 감정이 잘 분류되는것을 확인이 가능합니다.

{

'surprise': 0.013786639073757434,

'anger': 0.05668916978805527,

'sadness': 0.027631403312294744,

'disgust': 0.06536700689907893,

'fear': 0.06916755311319811,

'joy': 0.007088526663760586

}

감정의 연속선은 fear가 제일높고 disgust, anger 순으로 감정이 변화 하는것을 볼 수 있습니다.

 

이제 STT에서 받아온 텍스트 데이터를 벡터로 바꿔 모델의 입력 값으로  넣어 거리 계산만 해준다면 음성 감정 인식단계는 구현이 끝입니다!!

'프로젝트' 카테고리의 다른 글

[졸업 프로젝트] 감정 - 7 (END) -  (1) 2023.02.14
[졸업 프로젝트] 감정 -6-  (0) 2023.02.14
[졸업 프로젝트] 감정 -4-  (0) 2023.02.03
[졸업 프로젝트] 감정 -3-  (0) 2023.02.03
[졸업 프로젝트] 감정 -2-  (0) 2023.02.03
Comments