跳至主要内容

情绪分析

概述

什么是情绪分析

情绪分析是一种从语音中分析说话人情绪并输出的功能。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 接口。

警告

在异步 HTTP 接口的新版本(v2)中,目前无法使用情感分析功能。如果要使用情感分析,请使用传统版本(v1)。 另外,如果尝试在 v2 中使用情感分析功能,将返回 invalid parameter (sentimentAnalysis must be False. sentiment analysis is currently not implemented) 的错误消息。 我们计划在 v2 中最迟于 2026 年 7 月 31 日前实现情感分析功能。(请注意,实施时间可能会有变化)

使用方法

请求

要获取情绪参数,需要在语音识别请求时将 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的值,是一个变化相对缓慢的参数。

数值趋势

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