跳至主要内容

情绪分析

概述

什么是情绪分析

情绪分析是一种从语音中分析说话人情绪并输出的功能。AmiVoice API 使用 ES Japan 公司的 ESAS (Emotional Signature Analysis Solution) 情绪分析引擎从语音中返回情绪参数。ESAS 是基于以色列 Nemesysco 公司提供的最新情绪分析引擎"LVA7",针对日本市场进行调整的情绪分析引擎。有关技术背景,请参阅 ES Japan 公司的网站。

关于API

在 AmiVoice API 中,通过在语音识别请求时将选项参数 sentimentAnalysis 设置为 True,可以获取 ESAS 输出的情绪参数。对于 ESAS 判断为发话的语音段,大约每 2 秒输出一次包含 20 个情绪参数的数组。

结果在响应中的 sentiment_analysis 中获得。

    "sentiment_analysis": {
"segments": [
{
"starttime": 10,
"endtime": 20,
/* 情绪参数 */
},
{
"starttime": 100,
"endtime": 200,
/* 情绪参数 */
},
/* 省略 */
]
},

关于情绪参数,请参阅后述的情绪参数列表情绪参数的含义及说明方法。此外,可以使用 API 获取响应中的参数名称。

备注

情绪分析仅支持异步 HTTP 接口。

使用方法

请求

要获取情绪参数,需要在语音识别请求时将 d 参数设置为 sentimentAnalysis=True

例如,在不使用情绪分析的情况下,使用 curl 命令通过通用引擎识别 AmiVoice API 示例程序中附带的音频时,执行以下命令:

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

响应

如果请求成功,请定期检查Job状态直到获得结果。详细信息请参阅异步 HTTP 接口的"2. 检查语音识别Job状态并获取结果"。

以下说明启用情绪分析功能时的结果响应。

成功时

情绪分析结果在 sentiment_analysis 中获得。

对于情绪分析引擎判断为发话的语音,大约每 2 秒输出一次 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 将设置如下 codeerror_codeerror_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内部服务器错误

获取情绪参数列表

可以通过向 https://acp-dsrpp.amivoice.com/v1/sentiment-analysis/ja/result-parameters.json 发送 GET 请求来获取响应中包含的 20 个情绪参数列表。

示例:

$ 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,是一个变化相对缓慢的参数。

值的趋势

高区域 表示说话者承受着基本的压力和精神负担

  • 如果在一周/一个月内持续检测到高数值,无论对话性质如何,都表明说话者很可能承受着根本的心理负担,暗示工作积极性下降或离职风险
  • 如果高于通话平均值且持续发生,往往不会导致积极的决策或响应结果 例)商谈成功、购买、合同申请等

感性/平衡/理性

表示内容是与感性(情绪)思维相关还是与理性(冷静)思维相关的平衡指标。 根据发生区域,表示是感性(情绪)言论还是理性(冷静)言论。

在进行各种分析时,可以用于将说话者分类为三种情绪类型,并根据每种类型考察参数。

数值趋势

数值范围说明
1 ~ 65理性
65 ~ 85平衡
85 ~ 500感性(情绪)

集中

表示说话者集中程度的指标。 这是一个在短时间内可能从接近下限值的值上升到接近上限值的值,或从接近上限值的值下降到接近下限值的值的参数。

数值趋势

  • 如果高于通话平均值且持续发生,也暗示这是说话者的重要点
  • 通常,在呼叫中心等的对话(特别是商谈等)中,"集中"的上升可以解释为是一种理想的趋势

期待

表示对某事发生的期待的指标。 高区域可能表示积极的期待或消极的期待。基本上以低值发生,但有时会出现突出的高值。

数值趋势

  • 高区域 积极

    • 暗示希望如何传达给对方的期待
    • 如果高于通话平均值且持续发生,暗示有帮助对方的意愿,即所谓的前倾姿态响应
  • 高区域 消极

    • 暗示夸张、诱导或操纵
    • 高区域不等于说谎,而是暗示背后有意图的有意识发言

兴奋

表示兴奋或高涨程度的指标。 基本上取相似的值(约15),变化相对缓慢,但有时会出现突出的高值。

数值趋势

  • 用作考察引起兴趣等对话意愿程度的指标
  • 对产品购买等重要决策有影响

犹豫

表示对发言犹豫程度的指标。 基本上取相似的值(约15),是一个变化相对缓慢的参数。

数值趋势

  • 如果高于通话平均值且持续发生,暗示对发言有犹豫,感到愧疚或不安。与压力一样,对决策有负面影响。

不确定

表示缺乏自信的指标。 基本上取相似的值(约15),变化相对缓慢,但有时在短时间内可能从接近下限值的值上升到接近上限值的值,或从接近上限值的值下降到接近下限值的值。

数值趋势

  • 如果高于通话平均值且持续发生,暗示缺乏自信、焦虑、理解或情况把握不足、不信任感。与压力一样,对决策有负面影响。

思考

表示边思考边发言状态的指标。 基本上经常取接近0的值,是一个变化相对缓慢的参数。

数值趋势

  • 如果高于通话平均值且持续发生,暗示在发言时在思考,可能正在进行建设性对话,或对话可能比较复杂
  • 如果双方说话者都高且持续,可能暗示对话中的共识或沟通遇到困难

想象力

表示回忆或想象并丰富图像程度的指标。 高区域暗示在说明某事时,对事物的传达方式发挥了想象力。也用作推测发言依据是基于事实和记忆还是想象的指标。基本上经常取接近0的值,是一个变化相对缓慢的参数。

数值趋势

  • 高区域 积极

    • 暗示正在试图理解对方的发言情况
    • 在讨论等场合,频繁检测到(活跃)是理想的。
  • 高区域 消极

    • 暗示可能在搪塞或回答困难

困惑

表示困惑状态的指标。 基本上经常取接近0的值,是一个变化相对缓慢的参数。

热情

表示是否从心底表现出兴趣的指标。 基本上经常取接近0的值,是一个变化相对缓慢的参数。

脑活动

主要用于调查目的的表示整体脑活动活跃程度的指标。

数值趋势

  • 主要目的是在研究中使用的指标

自信

表示自信程度的指标。

数值趋势

  • 高区域
    • 也暗示对说话者来说是已经做出决定的内容。

攻击性愤怒

暗示说话者攻击性的指标。基本上经常取接近0的值,是一个变化相对缓慢的参数。

数值趋势

  • 有时会错误地将不同情绪检测为愤怒,处理时需要注意的验证中参数

氛围对话倾向

与其他参数的说明结合使用,以提高说明可信度的辅助指标。

动摇

表示不满或悲伤的指标。基本上经常取接近0的值,是一个变化相对缓慢的参数。很少出现大于0的值。

喜悦

表示满足、喜悦的指标。基本上经常取接近0的值,是一个变化相对缓慢的参数。很少出现大于0的值。

数值趋势

  • 由于对话中各种心理特性,有时在争论(口角)等情况下也会被检测到
  • 在人在争论中感到愤怒时,通过回击对方来表达、发泄愤怒,结果(在片段单位级别)有检测到的情况

不满

表示高压力和高水平不满组合的指标。值变化频率不高,倾向于连续出现相同的值。

数值趋势

  • 暗示与事前期望的(不良)偏差

极端波动

表示情绪整体变化极限的指标。基本上经常取接近0的值,是一个变化相对缓慢的参数。

数值趋势

  • 不单独使用,而是与其他参数的发生情况结合,用于更准确的考察。 例)如果在这个参数高的同时检测到高压力,可能表示正在发生情绪化、冲动性的愤怒状况