메인 콘텐츠로 건너뛰기

감정 분석

개요

감정 분석이란

감정 분석이란 음성에서 화자의 감정을 분석하여 출력하는 기능입니다. AmiVoice API는 ES Japan사의 ESAS (Emotional Signature Analysis Solution) 감정 분석 엔진을 사용하여 음성에서 감정 파라미터를 반환합니다. ESAS는 이스라엘의 Nemesysco사가 제공하는 최신 감정 분석 엔진 "LVA7"을 기반으로 일본 환경에 맞게 튜닝한 감정 분석 엔진입니다. 기술적 배경에 대해서는 ES Japan사의 웹사이트를 참조하십시오.

API에 대하여

AmiVoice API에서는 음성 인식 요청 시 옵션 파라미터 sentimentAnalysisTrue로 설정하여 ESAS가 출력하는 감정 파라미터를 얻을 수 있습니다. ESAS가 발화로 판단한 음성 구간에 대해 약 2초에 1번, 20개의 감정 파라미터 배열을 출력합니다.

결과는 응답의 sentiment_analysis에서 얻을 수 있습니다.

    "sentiment_analysis": {
"segments": [
{
"starttime": 10,
"endtime": 20,
/* 감정 파라미터 */
},
{
"starttime": 100,
"endtime": 200,
/* 감정 파라미터 */
},
/* 생략 */
]
},

감정 파라미터에 대해서는 후술할 감정 파라미터 목록이나 감정 파라미터의 의미와 해석 방법을 참조하십시오. 또한, 응답 중 파라미터 이름은 API를 사용하여 가져올 수 있습니다.

노트

감정 분석은 비동기 HTTP 인터페이스에서만 지원됩니다.

사용 방법

요청

감정 파라미터를 얻으려면 음성 인식 요청 시 d 파라미터에 sentimentAnalysis=True를 설정합니다.

예를 들어, 감정 분석을 사용하지 않는 경우 AmiVoice API 샘플 프로그램에 포함된 음성을 curl 명령을 사용하여 범용 엔진으로 음성 인식하는 경우 다음과 같이 명령을 실행합니다.

curl https://acp-api-async.amivoice.com/v1/recognitions \
-F d="grammarFileNames=-a-general" \
-F u={APP_KEY} \
-F a=@test.wav

감정 분석 기능을 활성화하려면 다음과 같이 변경합니다.

curl https://acp-api-async.amivoice.com/v1/recognitions \
-F d="grammarFileNames=-a-general sentimentAnalysis=True" \
-F u={APP_KEY} \
-F a=@test.wav

응답

요청이 성공하면 결과를 얻을 때까지 작업 상태를 정기적으로 확인하십시오. 자세한 내용은 비동기 HTTP 인터페이스의 "2. 음성 인식 작업 상태 확인 및 결과 가져오기"를 참조하십시오.

다음은 감정 분석 기능을 활성화했을 때의 결과 응답에 대해 설명합니다.

성공 시

감정 분석 결과는 sentiment_analysis에서 얻을 수 있습니다.

감정 분석 엔진이 발화로 판단한 음성에 대해 약 2초에 1번, 20개의 감정 파라미터를 출력합니다. sentiment_analysis.segments에는 이 감정 파라미터가 시간순으로 배열로 제공됩니다. 각 요소에는 음성의 시작 시간을 0으로 한 밀리초 단위의 상대적인 시간 정보로 시작 시간(starttime), 종료 시간(endtime)과 해당 시간에 대응하는 감정 파라미터가 있습니다.

응답 예:

{
"audio_md5": "40f59fe5fc7745c33b33af44be43f6ad",
"audio_size": 306980,
"code": "",
"message": "",
"segments": [
{
"results": [
{
"confidence": 0.998,
"endtime": 8794,
"rulename": "",
"starttime": 250,
"tags": [],
"text": "アドバンスト・メディアは、人と機械との自然なコミュニケーションを実現し、豊かな未来を創造していくことを目指します。",
"tokens": [
{
"confidence": 1,
"endtime": 1578,
"spoken": "あどばんすとめでぃあ",
"starttime": 522,
"written": "アドバンスト・メディア"
},
{
"confidence": 1,
"endtime": 1834,
"spoken": "は",
"starttime": 1578,
"written": "は"
},
/* 생략 */
]
}
],
"text": "アドバンスト・メディアは、人と機械との自然なコミュニケーションを実現し、豊かな未来を創造していくことを目指します。"
}
],
"sentiment_analysis": {
"segments": [
{
"starttime": 10,
"endtime": 20,
/* 감정 파라미터 */
},
{
"starttime": 100,
"endtime": 200,
/* 감정 파라미터 */
},
/* 생략 */
]
},
"service_id": "user01",
"session_id": "018160cbe43f0a304474a999",
"status": "completed",
"text": "アドバンスト・メディアは、人と機械との自然なコミュニケーションを実現し、豊かな未来を創造していくことを目指します。",
"utteranceid": "20220614/15/018160cc54ee0a3044b539d0_20220614_150012"
}

감정 분석 결과가 비어 있을 때

감정을 분석하기에 충분한 길이의 음성이 없는 경우 다음과 같이 sentiment_analysissegments가 빈 배열이 됩니다.

sentiment_analysis": {
"segments": []
}

전송한 데이터에 음성이 포함되어 있지 않거나 음량이 너무 작아 감정 분석 처리 대상이 되지 않은 것으로 생각됩니다. 전송한 데이터의 음량을 확인하십시오.

예를 들어, Audacity와 같은 음량을 파형으로 표시할 수 있는 애플리케이션을 사용하여 음량을 확인할 수 있습니다. 다음은 음량 레벨이 너무 낮은 예입니다. 신호의 최대값을 1로 한 스케일에서 대략 0.05에 해당하는 음량 레벨을 보여주고 있지만, 조금 더 크게 해야 합니다. 예를 들어, 0.1을 초과하는 정도를 목표로 녹음 볼륨을 조정하십시오.

그림. 감정 분석의 음량 레벨에 대하여

실패 시

어떤 이유로 감정 분석 처리에 실패한 경우 sentiment_analysis에 다음과 같이 code, error_code, error_message가 설정됩니다.

예:

"sentiment_analysis":{"code":400,"error_code":"BAD_REQUEST","error_message":"file format is invalid"}
오류 시 응답 목록

오류 시 응답은 다음 표와 같습니다.

codeerror_codeerror_message설명
400BAD_REQUESTfile format is invalid음성 파일이 존재하지 않거나 형식이 잘못됨
500INTERNAL_SERVER_ERRORinternal server error has occurred내부 서버 오류
INTERNAL_SERVER_ERRORinternal server error has occurred before processing sentiment-analyzer내부 서버 오류

감정 파라미터 목록 가져오기

응답에 포함된 20개의 감정 파라미터 목록은 https://acp-dsrpp.amivoice.com/v1/sentiment-analysis/ja/result-parameters.jsonGET 요청을 보내 가져올 수 있습니다.

예:

$ curl -H "Authorization: Bearer {APPKEY}" \
https://acp-dsrpp.amivoice.com/v1/sentiment-analysis/ja/result-parameters.json

이 API의 자세한 내용은 참조의 감정 분석 API를 참조하십시오. 감정 파라미터의 의미는 이후 장에서 설명합니다.

감정 파라미터에 대하여

감정 파라미터 목록

감정 파라미터는 20개가 있습니다. 각 파라미터의 최소값, 최대값, 그 값이 클수록 긍정적인지, 부정적인지 등의 경향을 다음 표에 정리합니다.

파라미터 이름최소값최대값값의 경향
에너지0100-
스트레스0100부정적
감정 균형 논리1500-
집중0100-
기대0100-
흥분030긍정적
망설임030-
불확실030-
사고0100-
상상력030-
당혹030부정적 (*1)
열정030긍정적
뇌 활동0100-
자신감030-
공격성 분노030부정적 (*2)
분위기 대화 경향-100100-
동요030부정적 (*1,*2)
기쁨030긍정적 (*2)
불만030부정적 (*3)
극단적 기복030-
  • 모든 값은 정수형(int)입니다.
  • 응답에 포함된 JSON의 파라미터 이름과 위 표의 파라미터 이름의 대응은 감정 파라미터 목록 가져오기를 참조하십시오.

값의 경향에 대해

  • 긍정적: 값이 클수록 긍정적인 반응을 시사할 가능성이 높은 파라미터
  • 부정적: 값이 클수록 부정적인 반응을 시사할 가능성이 높은 파라미터
  • 기타(-): 값의 크기에 따라 의미가 변하는 파라미터나, 반드시 긍정적/부정적으로 분류하기 어려운 파라미터
  • *1: 수치의 크기에 관계없이 부정적으로 분류됩니다.
  • *2: 0보다 큰 값을 갖는 경우가 드물기 때문에, 0보다 큰 값이면 높다고 볼 수 있습니다.
  • *3: 공격성분노와 동시에 발생한 경우, 분노를 표현하는 것으로부터 "발산"의 경향으로 해석하는 경우도 있습니다. 예를 들어, 소리를 지르는 경우 등에서 자주 볼 수 있습니다.

감정 파라미터의 의미와 해석 방법

감정 파라미터의 의미와 해석 방법에 대해 설명합니다. 감정 파라미터의 평균이나 편차, 값이 평소보다 높거나 낮다고 판단하기 위한 임계값은 사용 환경에 따라 다릅니다. 따라서 어느 정도 기간 동안 샘플을 수집하여 판단하시기 바랍니다.

우선 중요한 지표인 에너지, 스트레스, 감정/균형/논리에 주목하는 것이 좋다고 알려져 있습니다.

에너지

감정 파라미터 중 가장 근간이 되는 지표입니다. 값의 범위에 따라 의미와 해석이 달라지며, 높은 영역에서는 감정의 고조, 매우 정력적인 상태를 시사합니다. 반면, 낮은 영역에서는 흥미 부족(지루함), 공감 부족, 수면 부족(졸음) 등의 컨디션 불량을 시사합니다. 0 근처의 값을 갖는 경우가 많으며, 비교적 완만하게 값이 변화하는 파라미터입니다.

값의 경향

값의 범위설명
0 ~ 10낮은 영역 의기소침, 지루함, 피로, 슬픔을 시사
※지속적으로 낮은 수치가 검출된 경우 업무 의욕 저하 등도 시사
11 ~ 20편안한 대화가 이루어지고 있음을 시사
21 ~ 40대화의 고조를 시사
※반드시 긍정적 지표는 아니며, 부정적인 불만이나 분노를 동반한 고조의 가능성도 있음
41 ~ 100높은 영역 감정의 고조, 매우 정력적인 상태를 시사
※반드시 긍정적인 지표는 아니며 분노 등의 가능성도 있음

스트레스

스트레스나 정신적 부하를 나타내는 감정 파라미터로 근간이 되는 지표입니다. 높은 영역에서는 스트레스나 정신적 부하가 높음을 나타냅니다. 기본적으로 0 근처의 값을 가지며, 비교적 완만하게 값이 변화하는 파라미터입니다.

값의 경향

높은 영역 화자가 근본적인 스트레스, 정신적 부하를 안고 있음을 시사

  • 대화의 성질에 관계없이 주간/월간을 통해 지속적으로 높은 수치가 검출된 경우, 화자가 근본적인 정신적 부하를 안고 있을 가능성이 높으며, 업무 의욕 저하나 이직 리스크를 시사
  • 통화 평균값보다 높고, 지속적으로 발생한 경우 긍정적인 의사결정이나 대응 결과로 이어지지 않는 경향이 있음 예) 상담 성립, 구매, 계약 신청 등

감정/균형/논리

감정적(정동적) 사고에 연관된 내용인지 논리적(냉정한) 사고에 연관된 내용인지의 균형을 나타내는 지표입니다. 발생 영역에 따라 감정적(정동적) 발언인지 논리적(냉정한) 발언인지를 나타냅니다.

다양한 분석을 할 때, 화자를 3가지 감정 유형으로 분류하고 유형별로 파라미터를 고찰하는 데 활용할 수 있습니다.

값의 경향

값의 범위설명
1 ~ 65논리적
65 ~ 85균형
85 ~ 500감정적(정동적)

집중

화자의 집중도를 나타내는 지표입니다. 짧은 시간 내에 하한값에 가까운 값에서 상한값에 가까운 값까지 올라가거나, 상한값에 가까운 값에서 하한값에 가까운 값까지 내려가는 경우가 있는 파라미터입니다.

값의 경향

  • 통화 평균값보다 높고, 지속적으로 발생한 경우 화자에게 중요한 포인트임을 시사할 수 있음
  • 일반적으로 콜센터 등에서의 대화(특히 상담 등)에서 "집중"의 상승은 바람직한 경향이라고 해석할 수 있음

기대

어떤 일이 일어나는 것에 대한 기대를 나타내는 지표입니다. 높은 영역에서는 긍정적인 기대, 부정적인 기대 양쪽의 가능성이 있습니다. 기본적으로는 낮은 값으로 발생하지만, 때때로 매우 높은 값이 나오는 파라미터입니다.

값의 경향

  • 높은 영역 긍정적

    • 상대방에게 어떻게 전달되길 바라는지에 대한 기대를 시사
    • 통화 평균값보다 높고, 지속적으로 발생한 경우 상대방에게 도움이 되고 싶다는 의지, 이른바 전향적 자세로의 대응을 시사
  • 높은 영역 부정적

    • 과장이나 유도, 조작을 시사
    • 높은 영역 = 거짓이라는 의미는 아니며, 배경에 의도가 있는 자의적인 발언임을 시사

흥분

흥분이나 고조의 정도를 나타내는 지표입니다. 기본적으로 비슷한 값(15 전후)을 가지며, 비교적 완만하게 값이 변화하지만, 때때로 매우 높은 값이 발생합니다.

값의 경향

  • 흥미 유발 등, 대화에 대한 의욕의 정도를 고찰하는 지표로 활용
  • 상품 구매 등의 중요한 의사결정에 영향을 미침

주저

발언에 대한 망설임의 정도를 나타내는 지표입니다. 기본적으로 비슷한 값(15 전후)을 가지며, 비교적 완만하게 값이 변화하는 파라미터입니다.

값의 경향

  • 통화 평균값보다 높고, 지속적으로 발생한 경우 발언에 망설임이 있거나, 죄책감, 부끄러움을 느끼고 있음을 시사합니다. 스트레스와 마찬가지로 의사결정에는 부정적인 작용이 있습니다.

불확실

자신감 부족을 나타내는 지표입니다. 기본적으로 비슷한 값(15 전후)을 가지며, 비교적 완만하게 값이 변화하지만, 짧은 시간 내에 하한값에 가까운 값에서 상한값에 가까운 값까지 올라가거나, 상한값에 가까운 값에서 하한값에 가까운 값까지 내려가는 경우가 있는 파라미터입니다.

값의 경향

  • 통화 평균값보다 높고, 지속적으로 발생한 경우 자신감 부족, 불안, 이해나 상황 파악의 부족, 불신감을 시사합니다. 스트레스와 마찬가지로 의사결정에는 부정적인 작용이 있습니다.

사고

생각하면서 발언하고 있는 상태를 나타내는 지표입니다. 기본적으로 0 근처의 값을 갖는 경우가 많으며, 비교적 완만하게 값이 변화하는 파라미터입니다.

값의 경향

  • 통화 평균값보다 높고, 지속적으로 발생한 경우 발언 시 생각하고 있음, 건설적인 대화가 이루어지고 있을 가능성, 대화가 난해할 가능성을 시사
  • 화자 양쪽에서 높게 발생하고 지속된 경우 대화에서의 합의나 의사소통이 난항을 겪고 있을 가능성을 시사

상상력

기억이나 상상을 하면서 이미지를 떠올리고 있는 정도를 나타내는 지표입니다. 높은 영역에서는 어떤 설명을 할 때 사물의 전달 방식에 대해 상상력이 작용하고 있음을 시사합니다. 발언의 근거가 사실이나 기억에서 온 것인지, 또는 상상인지를 추정하는 데에도 활용하는 지표입니다. 기본적으로 0 근처의 값을 갖는 경우가 많으며, 비교적 완만하게 값이 변화하는 파라미터입니다.

값의 경향

  • 높은 영역 긍정적

    • 상대방의 발언에 대해 상황을 이해하려고 노력하고 있음을 시사
    • 토론 등에서는 활발하게(빈번하게 검출됨) 나타나는 것이 바람직함
  • 높은 영역 부정적

    • 회피하거나 답변에 어려움을 겪고 있을 가능성을 시사

당혹감

당혹한 상태를 나타내는 지표입니다. 기본적으로 0 부근의 값을 취하는 경우가 많으며, 비교적 완만하게 값이 변화하는 파라미터입니다.

열정

마음 속으로부터 관심을 보이고 있는지를 나타내는 지표입니다. 기본적으로 0 부근의 값을 취하는 경우가 많으며, 비교적 완만하게 값이 변화하는 파라미터입니다.

뇌 활동

주로 조사 목적으로 사용되는 뇌 활동의 전반적인 활성을 나타내는 지표입니다.

값의 경향

  • 연구에서의 활용이 주요 목적이 되는 지표입니다

자신감

자신감의 정도를 나타내는 지표입니다.

값의 경향

  • 높은 영역
    • 화자에게 의사결정된 내용임을 시사합니다.

공격성/분노

화자의 공격성을 시사하는 지표입니다. 기본적으로 0 부근의 값을 취하는 경우가 많으며, 비교적 완만하게 값이 변화하는 파라미터입니다.

값의 경향

  • 잘못하여 다른 기분을 분노로 감지하는 경우가 있어, 취급에 주의가 필요한 검증 중인 파라미터입니다

분위기/대화 경향

다른 파라미터의 해석과 복합적으로 보는 것으로 해석의 신빙성을 높이기 위한 보조 지표입니다.

동요

불만 또는 슬픔을 나타내는 지표입니다. 기본적으로 0 부근의 값을 취하는 경우가 많으며, 비교적 완만하게 값이 변화하는 파라미터입니다. 0보다 큰 값이 되는 경우는 드뭅니다.

기쁨

만족, 기쁨을 나타내는 지표입니다. 기본적으로 0 부근의 값을 취하는 경우가 많으며, 비교적 완만하게 값이 변화하는 파라미터입니다. 0보다 큰 값이 되는 경우는 드뭅니다.

값의 경향

  • 대화에서의 다양한 심리적 특성으로 인해, 때로는 토론(언쟁)과 같은 상황에서도 감지됩니다
  • 사람이 토론에서 분노를 느낀 후 상대방에게 말로 대응함으로써 그 분노를 표현, 발산한 결과, (세그먼트 단위 수준에서) 감지되는 경우가 있습니다

불만족

높은 스트레스와 높은 수준의 불만족의 조합을 나타내는 지표입니다. 빈번하게 값이 변화하지 않으며, 연속해서 동일한 값이 발생하는 경향이 있습니다.

값의 경향

  • 사전 기대에 대한 (나쁜) 괴리를 시사합니다

극단적인 기복

감정 전반의 움직임의 극단성을 나타내는 지표입니다. 기본적으로 0 부근의 값을 취하는 경우가 많으며, 비교적 완만하게 값이 변화하는 파라미터입니다.

값의 경향

  • 단독으로는 아니며 다른 파라미터의 발생 상황으로부터 더 정확한 고찰을 하는 데 활용합니다. 예) 이 파라미터와 함께 스트레스가 높게 감지된 경우, 정서적, 충동적인 분노가 발생하고 있는 상황일 가능성이 있습니다