speechbrain.utils.EDER 模块
计算情感分割错误率 (EDER),它是漏检情感 (ME)、虚警 (FA) 和混淆 (CF) 的总和。
- 作者
Yingzhi Wang 2023
总结
函数
计算 EDER 值 |
|
将重叠语音等量分配给具有不同情感的相邻片段。 |
|
获取两个区间重叠的长度 |
|
如果片段重叠则返回 True。 |
|
如果相邻子片段具有相同情感,则合并它们。 |
|
将引用更改为列表的列表 |
参考
- speechbrain.utils.EDER.EDER(prediction, id, duration, emotion, window_length, stride)[source]
计算 EDER 值
- 参数:
- 返回:
float
- 返回类型:
计算出的 utterance 的 EDER 值
示例
>>> from speechbrain.utils.EDER import EDER >>> prediction=['n', 'n', 'n', 'a', 'a', 'a'] >>> id="spk1_1" >>> duration=1.22 >>> emotion=[{'emo': 'angry', 'start': 0.39, 'end': 1.10}] >>> window_length = 0.2 >>> stride = 0.2 >>> EDER(prediction, id, duration, emotion, window_length, stride) 0.2704918032786885
- speechbrain.utils.EDER.getOverlap(a, b)[source]
获取两个区间重叠的长度
示例
>>> from speechbrain.utils.EDER import getOverlap >>> interval1=[1.2, 3.4] >>> interval2=[2.3, 4.5] >>> getOverlap(interval1, interval2) 1.1
- speechbrain.utils.EDER.is_overlapped(end1, start2)[source]
如果片段重叠则返回 True。
- 参数:
- 返回:
overlapped – 如果片段重叠则为 True,否则为 False。
- 返回类型:
示例
>>> is_overlapped(5.5, 3.4) True >>> is_overlapped(5.5, 6.4) False
- speechbrain.utils.EDER.merge_ssegs_same_emotion_adjacent(lol)[source]
如果相邻子片段具有相同情感,则合并它们。
- 参数:
lol (list of list) – 每个列表包含 [utterance_id, 子片段开始时间, 子片段结束时间, 情感标签]。
- 返回:
new_lol – new_lol 包含从相同情感 ID 合并的相邻片段。
- 返回类型:
示例
>>> from speechbrain.utils.EDER import merge_ssegs_same_emotion_adjacent >>> lol=[['u1', 0.0, 7.0, 'a'], ... ['u1', 7.0, 9.0, 'a'], ... ['u1', 9.0, 11.0, 'n'], ... ['u1', 11.0, 13.0, 'n'], ... ['u1', 13.0, 15.0, 'n'], ... ['u1', 15.0, 16.0, 'a']] >>> merge_ssegs_same_emotion_adjacent(lol) [['u1', 0.0, 9.0, 'a'], ['u1', 9.0, 15.0, 'n'], ['u1', 15.0, 16.0, 'a']]
- speechbrain.utils.EDER.reference_to_lol(id, duration, emotion)[source]
将引用更改为列表的列表
- 参数:
- 返回:
lol – 每个列表结构为 [recording_id, 子片段开始时间, 子片段结束时间, 说话人 ID]。
- 返回类型:
示例
>>> from speechbrain.utils.EDER import reference_to_lol >>> id="u1" >>> duration=8.0 >>> emotion=[{'emo': 'angry', 'start': 1.016, 'end': 6.336}] >>> reference_to_lol(id, duration, emotion) [['u1', 0, 1.016, 'n'], ['u1', 1.016, 6.336, 'a'], ['u1', 6.336, 8.0, 'n']]
- speechbrain.utils.EDER.distribute_overlap(lol)[source]
将重叠语音等量分配给具有不同情感的相邻片段。
- 参数:
lol (list of list) – 每个列表结构为 [recording_id, 子片段开始时间, 子片段结束时间, 说话人 ID]。
- 返回:
new_lol – 它包含在具有不同情感 ID 的相邻片段中等量分配的重叠部分。
- 返回类型:
示例
>>> lol = [ ... ['r1', 5.5, 9.0, 's1'], ... ['r1', 8.0, 11.0, 's2'], ... ['r1', 11.5, 13.0, 's2'], ... ['r1', 12.0, 15.0, 's1'], ... ] >>> distribute_overlap(lol) [['r1', 5.5, 8.5, 's1'], ['r1', 8.5, 11.0, 's2'], ['r1', 11.5, 12.5, 's2'], ['r1', 12.5, 15.0, 's1']]