情绪分析
概述
什么是情绪分析
情绪分析是一种从语音中分析说话人情绪并输出的功能。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_analysis
的 segments
将是一个空数组,如下所示:
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"}
错误时响应列表
错误时的响应如下表所示:
code | error_code | error_message | 说明 |
---|---|---|---|
400 | BAD_REQUEST | file format is invalid | 音频文件不存在或格式不正确 |
500 | INTERNAL_SERVER_ERROR | internal server error has occurred | 内部服务器错误 |
INTERNAL_SERVER_ERROR | internal 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 个情绪参数。下表总结了每个参数的最小值、最大值以及值越大是否倾向于积极或消极等趋势。
参数名 | 最小值 | 最大值 | 值的趋势 |
---|---|---|---|
能量 | 0 | 100 | - |
压力 | 0 | 100 | 消极 |
感性平衡理性 | 1 | 500 | - |
集中 | 0 | 100 | - |
期待 | 0 | 100 | - |
兴奋 | 0 | 30 | 积极 |
犹豫 | 0 | 30 | - |
不确定 | 0 | 30 | - |
思考 | 0 | 100 | - |
想象力 | 0 | 30 | - |
困惑 | 0 | 30 | 消极 (*1 ) |
热情 | 0 | 30 | 积极 |
脑活动 | 0 | 100 | - |
自信 | 0 | 30 | - |
攻击性愤怒 | 0 | 30 | 消极 (*2 ) |
氛围对话倾向 | -100 | 100 | - |
动摇 | 0 | 30 | 消极 (*1 ,*2 ) |
喜悦 | 0 | 30 | 积极 (*2 ) |
不满 | 0 | 30 | 消极 (*3 ) |
极端波动 | 0 | 30 | - |
- 所有值都是整数类型(
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的值,是一个变化相对缓慢的参数。
数值趋势
- 不单独使用,而是与其他参数的发生情况结合,用于更准确的考察。 例)如果在这个参数高的同时检测到高压力,可能表示正在发生情绪化、冲动性的愤怒状况