示例成品 看全文 ↓

语音音频数据标注怎么做

要转写加情感标注,口语词、噪声、多说话人重叠该怎么处理没规范,转写字错率和情感一致率都没个验收线。

免费看示例成品:文字看文件分析 ›

有人这样说「这语音数据标注真头疼,转写错得离谱,情感标签也对不上,咋整?」

能替你选的都选好了。不想动,直接点下面「交给 AI 办」,点一下就开始做;想改,就点一下要的那个。

已替你选好想改就点一下

更多选项(一般不用动)

只有你知道的不填就先空着,成品里留【待填】

还想怎么改可以不选

高级选项一般不用动 · 这件事通常 1 分钟左右做好

示例成品全文按上面这组示例选项真跑出来的

别慌。你现在不是“标注难”,是流程糊在一起。3-5人、1万-10万条,关键是把流程拆开,别让一个人一边听写、一边猜情绪。

先说结论

转写和情感/意图必须拆成两个项目/两个阶段。
转写靠“听清字”,情感/意图靠“听语气+理解内容”,混在一起一定乱。


1. 先拆流程

项目 A:转写清洗

只干一件事:音频 → 逐字文本。
不要碰情绪标签。

项目 B:情感/意图标注

用项目 A 已经审核过的转写 + 音频。
只标情绪和意图,转写只读,不允许顺手改。

如果下游是 ASR,转写质量是你的命根子,情绪标签可以相对粗。
情绪标签如果只是辅助,不要投入过多人力死磕。

2. 转写错得离谱怎么办

不要从零写

用 Whisper / faster-whisper / WhisperX 先跑一遍 ASR,拿结果当预标注,导入 Label Studio 让人改。
这比人从空白开始写快很多。

长音频先切段

一段 5–15 秒最合适。
超过 10 秒,情绪容易混合,转写也容易漏。
多人对话音频先做 speaker diarization,否则转写和情绪都没法做。

转写规则必须定死

例如:

  • 逐字写,保留“嗯、啊、呃、哦”等语气词。
  • 听不清写 [unclear]。
  • 多人重叠写 [overlap]。
  • 明显噪声写 [noise]。
  • 数字、英文、标点规则先定:

比如英文品牌到底写“iPhone 15”还是“爱疯十五”。

转写质检

抽 15%–20% 双人重听,算 CER / WER。
目标:WER / CER 低于 5%,否则别进入情绪标注。


3. 情感/意图标签对不上怎么办

标签先砍粗

不要一上来搞十几个情绪。
小团队建议控制在 6–7 类以内。

情感建议:

  • 平静 / 中性
  • 开心 / 满意
  • 生气 / 不满
  • 悲伤 / 失望
  • 恐惧 / 焦虑
  • 惊讶 / 疑惑
  • 其他 / 无法判断

意图建议:

  • 告知 / 回答
  • 询问 / 请求
  • 指令 / 要求
  • 投诉 / 抱怨
  • 寒暄 / 社交
  • 其他
定两条核心规则

情感:以声音语气为主,文字内容为辅。
如果语气和文字冲突,标“其他/无法判断”,并备注。

意图:以文字内容为主。
看说话人到底想干什么,不要被语气带偏。

必须加“其他/无法判断”

不要逼人硬选。
硬选的后果就是标签对不上。

混合情绪

只选主导情绪。
例如一个人又生气又失望,选“生气”,备注写:混合:生气+失望。


4. 交叉一致性检查怎么做

先试标

找 100–200 条,让 3–5 个人全部标同一批。
导出后算一致性。

情感/意图用 Cohen's kappa:

from sklearn.metrics import cohen_kappa_score

print(cohen_kappa_score(标注员A, 标注员B))

转写用 WER / CER:

import jiwer

print(jiwer.wer(参考转写, 转写结果))
达标线
  • 情感/意图:kappa < 0.6,先别铺量,开会改规则。
  • 转写:WER/CER < 5%。
正式阶段
  • 10%–20% 双盲复审。
  • 每周随机抽 100 条复查。
  • 做一个 200 条金标集,混在日常任务里,防止标注员漂移。

5. Label Studio 配置建议

项目 B 可以这样配:

<View>
  <Audio name="audio" value="$audio" zoom="true" speed="true"/>
  
  <Header value="参考转写"/>
  <Text name="transcript" value="$transcript"/>
  
  <Header value="情感"/>
  <Choices name="emotion" toName="audio" choice="single" showInLine="true">
    <Choice value="neutral" display="平静"/>
    <Choice value="happy" display="开心"/>
    <Choice value="angry" display="生气"/>
    <Choice value="sad" display="悲伤"/>
    <Choice value="fear" display="恐惧/焦虑"/>
    <Choice value="surprise" display="惊讶/疑惑"/>
    <Choice value="other" display="其他/无法判断"/>
  </Choices>
  
  <Header value="意图"/>
  <Choices name="intent" toName="audio" choice="single" showInLine="true">
    <Choice value="inform" display="告知/回答"/>
    <Choice value="question" display="询问/请求"/>
    <Choice value="command" display="指令/要求"/>
    <Choice value="complaint" display="投诉/抱怨"/>
    <Choice value="chitchat" display="寒暄/社交"/>
    <Choice value="other" display="其他"/>
  </Choices>
  
  <Header value="置信度"/>
  <Rating name="confidence" toName="audio" maxRating="3" defaultValue="2"/>
</View>

项目 A 更简单,只留:

<View>
  <Audio name="audio" value="$audio" zoom="true" speed="true"/>
  <TextArea name="transcript" toName="audio" rows="4" placeholder="逐字转写,听不清写[unclear]"/>
</View>

6. 人力怎么排

3–5 人建议:

  • 1 人负责切音频、跑预标注、维护金标集。
  • 2–3 人专职标注。
  • 1 人轮换抽检、仲裁争议样本。

短音频每人每天标 100–200 条比较合理。
不要按数量考核,按抽检质量考核。

工作量参考:

  • 1 万条:小团队 2–4 周可以搞定。
  • 10 万条:纯人工不现实,必须靠预标注 + 抽检,先保核心 1 万条高质量。

7. 最终交付格式

建议导出一行一条:

audio_id, audio_path, duration, transcript, emotion, intent, annotator, confidence, split

如果下游是 ASR,重点保证:

  • audio_path
  • transcript
  • split

split 建议按说话人或场景切分,不要完全随机切,容易数据泄漏。


最后一句:
你现在已经有 Label Studio、有团队、有数据,缺的不是工具,是一套固定规则。先把规则和试标跑通,再铺量。

同类还能办

全部 ›
模型评测·评估免费看示例 ›视频标注怎么做免费看示例 ›拆解评分标准依据免费看示例 ›多模态数据标注怎么做免费看示例 ›把论文方法转成伪代码免费看示例 ›

同样出看文件分析的

首页