基於類別與維度的語音情感標註
IEMOCAP 與 MSP-Podcast 如何選擇標籤、量表和每段音訊的評分者人數,各語料庫報告的一致性,以及如何開展與之相當的聽辨研究。
語音情感標註要求聽者為錄音中聽到的情感打標籤,形式可以是憤怒、悲傷這樣的類別,也可以是效價、喚醒度和支配度的評分。主要語料庫每段音訊收集二到十個判斷,類別標籤的機會校正一致性在 0.27 到 0.52 之間。每段音訊至少安排五名評分者,並保留每位評分者的標籤。
語音情感識別模型從語音情感標籤中學習。類別標籤從一組固定的情感中指定一種,與情感分類中的離散模型做法相同。維度評分把話語放到連續量表上,通常是效價(從消極到積極)、喚醒度(arousal 或 activation,從平靜到興奮)和支配度(從弱到強)。這三個量表就是 PAD 模型的三條軸。維度評分常用自我評估小人量表(Self-Assessment Manikin)收集。這種量表為每個維度提供一排卡通小人圖。
感知情感是聽者聽到的情感,表達情感(或意圖情感)是說話人或演員想要傳達的情感。評分者之間的一致性以評分者間信度報告。最常用的係數是 Fleiss' kappa 或 Krippendorff's alpha。
本指南講解語音情感研究中的設計決策,並以 Potato 作為實例。音訊標註把每一種音訊任務對應到一個 Potato 標註方案,教程語音情感分類一步步搭建了幾種情感標註介面。音訊標註工具對比比較了各個工具,評分量表與 Likert 設計講解適用於任何任務的量表設計。
四個語音情感語料庫的標籤與評分者
四個廣泛使用的英語語料庫展示了標籤集、評分者人數和共識規則的不同取值。每一行都來自"參考文獻"中列出的語料庫論文:
| 語料庫 | 語音 | 每段評分者 | 可選類別 | 維度 | 共識規則 |
|---|---|---|---|---|---|
| IEMOCAP (Busso et al., 2008) | 10 名演員之間約 12 小時的劇本對話與即興對話 | 類別 3 人,維度 2 人 | 憤怒、悲傷、快樂、厭惡、恐懼、驚訝、沮喪、興奮、中性和其他,允許多選 | 效價、喚醒度(activation)和支配度,1-5 分小人量表 | 某一類別得票最多時取多數投票 |
| MSP-Podcast (Busso et al., 2025) | 409 小時的播客話輪,每段 2.75 到 11 秒 | 至少 5 人 | 從憤怒、悲傷、快樂、驚訝、恐懼、厭惡、輕蔑、中性和其他中選一個主要情感,另可從 16 種次要情感中任意選擇 | 效價、喚醒度和支配度,1-7 分小人量表 | 主要情感取相對多數投票,各維度取平均分 |
| CREMA-D (Cao et al., 2014) | 91 名演員朗讀 12 個句子的 7,442 段音訊 | 目標 10 人,平均 9.8 人 | 憤怒、厭惡、恐懼、高興、悲傷或 "No Emotion"(無情感) | 強度,0-100 滑塊 | 二項多數,要求最高票標籤在 95% 水平上勝過隨機 |
| RAVDESS (Livingstone and Russo, 2018) | 24 名演員的 7,356 段錄音 | 10 人 | 中性、平靜、高興、悲傷、憤怒、恐懼、厭惡、驚訝和 "None of these are correct"(以上都不對) | 強度和真實度,1-5 分量表 | 以演員的意圖情感為準,並對照評分者的識別準確率加以核驗 |
IEMOCAP 的評分者在 74.6% 的話輪上形成了多數,MSP-Podcast 為沒有出現相對多數的話輪設了一個"no agreement"(無一致)類。CREMA-D 把沒有二項多數的片段作為歧義片段單獨擱置。需要每段音訊一個標籤的研究,應預計有一部分片段最終得不到多數標籤。
語音情感標籤的已發表一致性
四個語料庫報告的情感類別機會校正一致性在 0.27 到 0.52 之間。IEMOCAP 報告全部話輪的 Fleiss' kappa 為 0.27。作者把快樂與興奮合併,並把恐懼、厭惡和驚訝併入"其他"之後,kappa 升至 0.35。MSP-Podcast 報告主要情感的 kappa 為 0.411,CREMA-D 報告情感標籤的 Krippendorff's alpha 為 0.42。RAVDESS 報告純音訊語音的 Fleiss' kappa 在正常強度下為 0.41,在強烈強度下為 0.52。
在兩個報告了全部三個維度的語料庫中,效價評分的一致性都最高。MSP-Podcast 報告的 Krippendorff's alpha 為效價 0.508、喚醒度 0.441、支配度 0.386。IEMOCAP 報告兩名評分者之間的 Cronbach's alpha 為效價 0.809、喚醒度(activation)0.607、支配度 0.608。由於 Cronbach's alpha 和 Krippendorff's alpha 衡量的是不同的東西,比較這兩個語料庫時應看各維度的高低順序,而不是數值本身。試標中類別 kappa 接近 0.4 與已發表的語料庫相當;試標 kappa 遠低於 IEMOCAP 的 0.27,則說明在擴大規模之前應修訂標註指南或檢查評分者。
感知情感與表達情感
演員和聽者常常對一段話語表達的是哪種情感看法不一。在 IEMOCAP 中,六名演員為各自表演的即興話輪打了標籤,演員的標籤與聽者多數標籤的吻合率為 60%,而其他聽者的吻合率為 79%。在 CREMA-D 中,單個評分者識別出演員意圖情感的比例在純音訊片段上為 40.9%,在純視覺片段上為 58.2%,在視聽片段上為 63.6%。RAVDESS 的評分者在正常強度的純音訊語音中識別出意圖情感的比例為 58%,在強烈強度下為 67%。
在寫問題之前,先決定標籤要測量哪一種構念。做感知情感研究時,問"你聽到的是哪種情感?",並把評分者的分佈當作答案。做表達情感研究時,保留說話人的意圖標籤或自我報告,並用聽者評分來檢驗錄音是否傳達了該情感。CREMA-D 和 RAVDESS 這類表演語料庫同時記錄意圖情感和感知情感,MSP-Podcast 這類自然語料庫只記錄感知情感。
完整對話還是孤立話語
IEMOCAP 的作者讓評分者在上下文中判斷話輪,因為作者認為話語的上下文對識別情感很重要。IEMOCAP 的評分者觀看每一場錄製,並按順序評估各個話輪。每次判斷時,評分者都能看到前面的話輪。MSP-Podcast 把播客切分成單一說話人的話輪,每個話輪作為一個獨立條目評分。MSP-Podcast 把時長下限設為 2.75 秒,讓評分者有足夠的語音可供判斷。MSP-Podcast 團隊把超過 11 秒的話輪切開,因為情感可能在一個話輪之內發生變化。
在 Potato 中,逐段標籤是放在 audio 顯示旁邊的 radio 或 likert 標註方案,前面的話輪可以放在音訊片段上方的文本欄位裡。對於情感會發生變化的長錄音,audio_annotation 標註方案讓評分者在波形上標出片段,併為每個片段打標籤。在 questions 模式下,同一方案會針對評分者標出的每個片段提出一組問題。
聽辨環境與評分者篩選
RAVDESS、CREMA-D 和 MSP-Podcast 都記錄了對評分者所聽內容或評分者人選的控制措施。RAVDESS 的評分者坐在隔音間裡,戴 Sennheiser 耳機,音量固定,評分介面只在音訊片段播放完畢後才出現。CREMA-D 的評分者在任務開始前,必須先聽出分別以低、中、高音量播放的三個單詞,最多可以嘗試三次。MSP-Podcast 在一致性檢查後剔除了 430 名眾包工作者及其 44,968 條標註,隨後改用通過篩選測試的受訓學生評分者,並每週向他們傳送一致性報告。
Potato 支援這些控制措施的線上版本。headphone_check 階段會篩掉用外放揚聲器收聽的參與者。訓練階段提供帶反饋的練習片段,金標準條目和注意力檢查在正式任務中為準確率打分。設定 min_response_time 後,凡是作答時間短到不可能聽完片段的注意力檢查答案,Potato 都判為不通過。評分者可以來自 Prolific 或大學的 SONA 被試池,具體做法見在 Prolific 和 SONA 上開展眾包研究。Potato 只是軟體,Potato 團隊不提供評分者。
多數投票還是標籤分佈
多數投票把多個判斷合併成一個訓練標籤,同時丟棄了其中的分歧。IEMOCAP 和 MSP-Podcast 都對類別採用投票,MSP-Podcast 還對維度評分取平均。MSP-Podcast 也釋出了每個話輪的逐條標註,作者把用軟標籤訓練列為用途之一。軟標籤是選擇每種情感的評分者所佔的比例。一段被五名評分者中的三人聽成憤怒、兩人聽成沮喪的片段,就變成 0.6 憤怒和 0.4 沮喪。
Potato 分別儲存每位評分者的答案,投票結果、平均值或分佈都可以在收集之後計算。soft_label 標註方案更進一步,要求每位評分者把 100 分分配給各種情感。聚合眾包標籤更詳細地比較了基於投票和基於模型的聚合方法。
位於 /admin/iaa 的一致性報告按標註方案類型選擇指標:
radio:百分比一致率、Cohen's kappa、Fleiss' kappa 和名義 Krippendorff's alpha。likert:線性加權 kappa 和二次加權 kappa、Spearman's rho,以及定序 Krippendorff's alpha。slider:Pearson's r、平均絕對誤差、均方根誤差、定距 Krippendorff's alpha 和 ICC(2,k)。soft_label:在全部情感上彙總的 Krippendorff's alpha,以及每種情感單獨計算的 Krippendorff's alpha。
已發表語料庫中每段音訊的評分者人數
已發表的語料庫每段音訊使用兩到十名評分者。IEMOCAP 的三名類別評分者和兩名維度評分者處於低端,CREMA-D 和 RAVDESS 為每段音訊收集了 10 個判斷。MSP-Podcast 至少五名評分者的設定足以進行相對多數投票,也能為軟標籤提供五票的分佈。把額外評分者的費用花在有歧義的片段上,而不是每個片段都加人;功效計算見需要多少標註者?。
在 Potato 中搭建語音情感任務
IEMOCAP 展示條目概述了這個語料庫。下面的配置把 IEMOCAP 的標籤集改用於純音訊片段,在 IEMOCAP 的五點量表上評定三個維度,並以文本形式顯示前面的話輪。上下文欄位沿用了 IEMOCAP 在上下文中評分的設計。每段音訊安排五名評分者,與 MSP-Podcast 的下限一致,耳機檢查和練習片段在第一個正式條目之前執行:
annotation_task_name: "Speech emotion, one utterance at a time"
task_dir: "."
data_files:
- "data/utterances.jsonl"
item_properties:
id_key: id
text_key: audio_url
output_annotation_dir: "annotation_output/"
instance_display:
fields:
- key: context
type: text
label: "Earlier in the conversation"
- key: audio_url
type: audio
label: "Utterance to rate"
display_options:
show_waveform: true
annotation_schemes:
- annotation_type: radio
name: emotion
description: "Which emotion do you hear in this utterance?"
labels: [neutral, happiness, excitement, sadness, anger, frustration, fear, surprise, disgust, other]
label_requirement: {required: true}
- annotation_type: likert
name: valence
description: "How negative or positive does the speaker sound?"
size: 5
min_label: "Very negative"
max_label: "Very positive"
- annotation_type: likert
name: arousal
description: "How calm or excited does the speaker sound?"
size: 5
min_label: "Very calm"
max_label: "Very excited"
- annotation_type: likert
name: dominance
description: "How weak or strong does the speaker sound?"
size: 5
min_label: "Very weak"
max_label: "Very strong"
num_annotators_per_item: 5
training:
enabled: true
data_file: "data/training.json"
allow_retry: true
phases:
order: [headphones, training, annotation]
headphones:
type: headphone_check
test: huggins
training: {type: training, title: "Practice clips"}
annotation: {type: annotation}data/utterances.jsonl 的每一行包含一個 id、一個 audio_url,以及一個儲存前面話輪的 context 字串。若要像 MSP-Podcast 那樣把每個話輪作為獨立條目評分,就從 instance_display 中刪去 context 欄位。data/training.json 列出練習片段,每個片段帶一個 correct_answers 條目和一個 explanation。用 potato start config.yaml 啟動伺服器,並在一批試標之後檢視 /admin/iaa,看一致性是否接近已發表的範圍。
常見問題
什麼是語音情感標註?
語音情感標註是為錄製的語音標註聽者聽到的情感,形式可以是類別,可以是效價、喚醒度和支配度的評分,也可以兩者兼有。IEMOCAP 和 MSP-Podcast 兩種標籤都收集。這些標籤用於訓練和評估語音情感識別模型。已發表的語料庫每段音訊收集二到十個判斷。
音訊和語音標註中使用哪些情感標籤?
IEMOCAP、MSP-Podcast、CREMA-D 和 RAVDESS 都使用一份簡短的基本情感列表,外加一箇中性或無情感選項。IEMOCAP 在憤怒、悲傷、快樂、厭惡、恐懼和驚訝之外增加了沮喪和興奮,MSP-Podcast 在主要情感列表中增加了輕蔑,並提供 16 種次要情感。效價、喚醒度和支配度的維度標籤通常與類別並列。評分者在五點或七點小人量表上為每個維度打分。
如何搭建讓評分者聽語音片段並標註情感的任務?
在音訊播放器中顯示每個片段,旁邊放一個類別問題,並可為每個維度加一個評分量表,然後為每個片段分配至少五名評分者。在正式任務之前,用耳機檢查和練習片段篩選評分者。保留每位評分者的答案,在收集完成後計算多數標籤、標籤分佈,或兩者都算。
延伸閱讀
- 音訊標註:在 Potato 中搭建每一種音訊任務
- 語音情感分類:分步教程
- 用 Potato 做音訊與語音標註
- 評分量表與 Likert 設計
- 標註者間一致性詳解
- 聚合眾包標籤
- 音訊標註工具對比
參考文獻
Busso, C., Bulut, M., Lee, C.-C., Kazemzadeh, A., Mower, E., Kim, S., Chang, J. N., Lee, S., and Narayanan, S. S. (2008). IEMOCAP: Interactive Emotional Dyadic Motion Capture Database. Language Resources and Evaluation, 42(4), 335-359. https://doi.org/10.1007/s10579-008-9076-6
Busso, C., Lotfian, R., Sridhar, K., Salman, A. N., Lin, W.-C., Goncalves, L., Parthasarathy, S., Naini, A. R., Leem, S.-G., Martinez-Lucas, L., Chou, H.-C., and Mote, P. (2025). The MSP-Podcast Corpus. arXiv 2509.09791. https://doi.org/10.48550/arXiv.2509.09791
Cao, H., Cooper, D. G., Keutmann, M. K., Gur, R. C., Nenkova, A., and Verma, R. (2014). CREMA-D: Crowd-Sourced Emotional Multimodal Actors Dataset. IEEE Transactions on Affective Computing, 5(4), 377-390. https://doi.org/10.1109/TAFFC.2014.2336244
Livingstone, S. R., and Russo, F. A. (2018). The Ryerson Audio-Visual Database of Emotional Speech and Song (RAVDESS): A Dynamic, Multimodal Set of Facial and Vocal Expressions in North American English. PLOS ONE, 13(5), e0196391. https://doi.org/10.1371/journal.pone.0196391