ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Label Studio 音频转写标注模板实战:基于 Audio + TextArea 搭建 ASR 数据标注流程

Label Studio 音频转写标注模板实战:基于 Audio + TextArea 搭建 ASR 数据标注流程 Label Studio 音频转写标注模板实战基于 Audio TextArea 搭建 ASR 数据标注流程【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio导读本文聚焦 Label Studio 官方模板库中的Audio Transcription自动语音识别 / Automatic Speech Recognition标注方案讲解如何用Audio对象标签播放音频并展示波形、用TextArea控制标签采集转写文本以及如何配置播放热键、波形缩放与提交次数限制等关键参数。读完本文你将能够独立搭建听音频 → 写转写的整段式 ASR 标注界面并进一步掌握基于分段Segment的进阶转写配置理解其底层数据结果结构为语音识别ASR/STT数据集构建提供可直接落地的配置模板。模板定位为自动语音识别构建转写数据集该模板对应的核心任务是播放一段音频让标注员用自然语言转写其内容完成语音识别数据的采集。它属于官方模板库中Audio/Speech Processing分类见 label_studio/annotation_templates/groups.txt在文档站中的标题为Automatic Speech Recognition。从仓库内的模板元数据看label_studio/annotation_templates/audio-speech-processing/automatic-speech-recognition/config.yml该模板覆盖的行业场景包括播客转写podcast transcription会议纪要meeting notes呼叫中心与客服录音call center, customer service无障碍字幕accessibility, closed captions, subtitles语音助手与听写voice assistants, dictation医疗听写与法律转写medical dictation, legal transcription关联的典型模型包括 Whisper、Wav2Vec、DeepSpeech、Transformer、CTC 等序列到序列/时序分类模型领域术语为 ASR、STT、speech-to-text、voice recognition 等。也就是说这份模板产出的音频路径 转写文本数据对可以直接用于监督式语音识别模型的训练与评测。需要说明的适用前提若你管理的是更复杂或高吞吐的音频标注项目官方文档提示 Label Studio Enterprise 提供了进阶的音频转写界面与多声道转写模板对应 react_audio.md本文其余部分聚焦开源版可用的基础模板。完整标注配置一行行读懂它模板的核心是下面这段完整的 labeling configuration与仓库内 automatic-speech-recognition/config.xml 完全一致View Audio nameaudio value$audio zoomtrue hotkeyctrlenter / Header valueProvide Transcription / TextArea nametranscription toNameaudio rows4 editabletrue maxSubmissions1 / /View配置中共包含 4 个标签职责划分非常清晰标签角色职责View容器所有标注配置必须包裹在View标签中Audio对象标签加载$audio字段对应的音频展示波形并支持播放控制Header辅助标签向标注员展示操作指令文字TextArea控制标签采集标注员输入的转写文本对应任务的输入数据 JSON 形如{ data: { audio: /static/samples/game.wav } }其中audio字段既可以是仓库内的相对静态路径如官方示例使用的game.wav也可以是完整的 URL 地址。导入任务时只要数据集中存在$audio所指向的字段界面即可加载播放。提交后的标注结果annotation result结构如下来源config.xml 内嵌示例{ result: [ { value: { text: [Wow wow wow!... ] }, id: hj0mP4gEC1, from_name: transcription, to_name: audio, type: textarea } ] }from_name对应TextArea的nameto_name对应Audio的nametype为textareavalue.text为转写文本数组。这个标准化结构正是 Label Studio 统一输出格式的体现后续可通过导出功能直接获得训练数据集。深入 Audio 标签播放、波形缩放与热键核心写法Audio nameaudio value$audio zoomtrue hotkeyctrlenter /name元素名称被控制标签的toName引用。value数据字段指向音频文件路径或 URL。zoomtrue允许标注员在标注界面上放大音频波形逐级查看细节。hotkeyctrlenter允许标注员使用该快捷键播放/暂停音频。从编辑器源码看web/libs/editor/src/tags/object/Audio/model.jszoom的默认值就是truedefaultzoom默认对应波形横向缩放级别范围 1 到 1500defaultscale为波形纵向 y 轴缩放默认值defaultspeed为播放速度默认值0.52hotkey可绑定播放/暂停。标签注册于 web/libs/editor/src/tags/object/Audio/index.jsRegistry.addTag(audio, ...)说明Audio是编辑器内置的原生对象标签。常用参数速查摘自 docs/source/includes/tags/audio.md参数类型默认值说明namestring—元素名称必填valuestring—音频路径或 URL 的数据字段必填defaultspeedstring1默认播放速度0.52defaultscalestring1波形默认纵向缩放defaultzoomstring1波形默认缩放级别11500defaultvolumestring1默认音量01hotkeystring—播放/暂停音频的热键syncstring—与其他对象如 Paragraphs、Video同步播放的对象名heightstring96播放器总高度waveheightstring32多声道模式下每个波形的最小高度spectrogrambooleanfalse是否自动显示语谱图splitchannelsbooleanfalse多声道音频分开展示更耗内存decoderstringwebaudio音频解码器webaudio/ffmpeg/nonenone加载大文件更快但无波形playerstringhtml5播放器类型html5/webaudio其中decoder与player的可选值在源码 Audio/model.js 中通过枚举直接约束decoder支持ffmpeg、webaudio、none、wasm-streamplayer支持html5、webaudio。底层播放控制与热键体系在源码 view.tsx 中播放器基于 wavesurfer 构建支持zoomToCursor、播放速度、音量和缩放控件联动。Audio的播放/暂停被抽象为命名热键audio:playpause见 keymap.json系统默认映射为ctrlpMac 为commandp同时预置了audio:back后退一秒、audio:step-backward/audio:step-forward步进等音频快捷键。这意味着hotkeyctrlenter为该 Audio 元素绑定自定义播放/暂停热键覆盖默认快捷键标注全局提交热键为annotation:submitctrlenterMac 为commandenter因此模板中播放热键用 ctrlenter与全局提交存在按键重叠风险实际部署时建议为Audio选择不与提交冲突的键位例如space这点在官方进阶模板中亦采用了hotkeyspace的做法见 react_audio.md。结果数据格式Audio标签在产生区域Region标注时结果中会携带音频元信息见 includes/tags/audio.md 的 Result parameters名称类型说明original_lengthnumber原始音频时长秒value.startnumber片段开始时间秒value.endnumber片段结束时间秒value.channelnumber目标声道标识value.labelsarray区域标签如[Voice]示例{ original_length: 18, value: { start: 3.1, end: 8.2, channel: 0, labels: [Voice] } }深入 TextArea 标签转写文本的采集与控制核心写法TextArea nametranscription toNameaudio rows4 editabletrue maxSubmissions1 /name控制标签名称写入结果时的from_name。toName绑定的对象标签名称此处为audio。rows4文本框可见行数即文本框高度。editabletrue允许标注员在提交后点击图标再次编辑已添加的文本。maxSubmissions1限制每个标注员对这条音频最多提交 1 条转写。TextArea标签注册于 web/libs/editor/src/tags/control/TextArea/TextArea.jsx其提交逻辑与maxSubmissions强相关源码中showSubmit判断submissionsNum maxSubmissions时才允许继续添加见TextArea.jsx中get showSubmit()与maxsubmissions字段定义界面上会显示已提交次数 / 上限的计数提示。常用参数速查摘自 docs/source/includes/tags/textarea.md参数类型默认值说明namestring—TextArea 标识名toNamestring—被标注对象标签的名称valuestring—预填充的默认文本可提交placeholderstring—占位提示文本不可提交maxSubmissionsstring—最大提交次数editablebooleanfalse是否显示编辑图标允许修改已提交文本transcriptionbooleanfalse与editabletrue配合时保持可编辑状态skipDuplicatesbooleanfalse禁止重复提交重复时弹窗警告displayModetag/region-listtagregion-list时在 Regions 面板为每个区域提供输入框rowsnumber1输入框行数1行时按 Enter 提交多行时点Add或 Shift Enterrequiredbooleanfalse是否必填requiredMessagestring—校验失败时的提示消息showSubmitButtonboolean—是否显示Add按钮rows1默认隐藏多行默认显示perRegionboolean—是否按区域Region标注而非整条对象perItemboolean—是否按对象内部条目标注与转写任务直接相关的三个参数组合值得注意rows1时按 Enter 即可提交文本多行如本模板的rows4时需点击Add或 Shift Enter而无论是否点击 Add直接点Submit都会保存已输入文本。maxSubmissions1限定整条音频只允许一条转写适合整段听写如果需要为多个片段分别转写应改用perRegiontrue见下文进阶方案。editabletrue与transcriptiontrue组合时文本框在提交后仍保持可编辑状态适合需要反复校对转写内容的场景。Header 标签给标注员的界面提示Header valueProvide Transcription /Header是纯展示型辅助标签value即渲染在界面上的标题文字。在转写模板中它承担了操作指引的作用——告诉标注员接下来要做什么。也可以在界面中插入多个Header分段说明例如仓库中的 audio_transcribe/config.xml 示例使用了Listen to the audio与Write the transcription两个 Header 引导标注流程。进阶方案一按片段转写Segments / Regions基础模板是对整段音频做一次转写若希望标注员先框选音频片段、再对每个片段分别转写可使用官方配套的分段转写模板automatic_speech_recognition_segments.md其配置与仓库内 automatic-speech-recognition-using-segments/config.xml 一致View Labels namelabels toNameaudio Label valueSpeech / Label valueNoise / /Labels Audio nameaudio value$audio/ TextArea nametranscription toNameaudio rows2 editabletrue perRegiontrue requiredtrue / /View与基础模板的差异点引入Labels控制标签Speech/Noise让标注员先在波形上划出有声段/噪声段TextArea增加perRegiontrue每个音频区域Region对应一个转写输入框requiredtrue每个片段都必须填写转写才能提交标注保证数据完整性。该模板产出的结果中会同时包含两类区域见 config.xml 内嵌示例type: labels的区域记录片段起止时间与标签type: textarea的区域记录同一时间窗对应的转写文本二者共享同一个id关联{ original_length: 3.77437641723356, value: { start: 0.9167, end: 2.4341, labels: [Speech] }, from_name: labels, to_name: audio, type: labels }, { original_length: 3.77437641723356, value: { start: 0.9167, end: 2.4341, text: [Wow wow wow!!!....] }, from_name: transcription, to_name: audio, type: textarea }如需为片段追加补充信息如说话人的口音、性别假设可借助visibleWhenregion-selected的View与Choices实现条件化选择完整写法见 automatic_speech_recognition_segments.md。进阶方案二多说话人 情感标注的转写仓库内另有Speech Transcription模板speech-transcription/config.yml展示了更接近真实生产环境的组合在分段转写的基础上增加说话人标签与情感选择Positive / Neutral / Negative并用displayModeregion-list把转写输入框聚合到 Regions 面板View Audio nameaudio value$audio / Labels namelabel toNameaudio Label valueSpeech/ Label valueNoise backgroundgrey/ /Labels TextArea nametranscription toNameaudio perRegiontrue whenTagNamelabel whenLabelValueSpeech displayModeregion-list/ Choices namesentiment toNameaudio showInlinetrue perRegiontrue whenTagNamelabel whenLabelValueSpeech Choice valuePositive/ Choice valueNeutral/ Choice valueNegative/ /Choices /View这里值得关注的是whenTagName/whenLabelValue条件参数只有当区域被标记为Speech时才显示转写与情感控件Noise区域则跳过可显著减少标注员的无效输入。这也体现了 Label Studio 标签间的条件联动能力。实战检查清单从模板到可运行项目按以下步骤即可在本地验证本模板创建项目在 Label Studio 中新建项目将上述基础配置粘贴到 Labeling Setup 的 XML 编辑框中。导入数据准备含audio字段的任务 JSON字段值可为服务器可访问的音频 URL或通过 Data Manager 导入带音频字段的数据。本地样例若希望快速体验可引用仓库静态样例路径/static/samples/game.wav该路径在官方模板示例中多次出现。标注并导出使用ctrlenter或你自定义的hotkey播放音频输入转写后提交导出结果为包含textarea类型 result 的标准格式。调参验证可对照 includes/tags/audio.md 与 includes/tags/textarea.md 的参数表逐一调整rows、maxSubmissions、spectrogram、splitchannels、decoder等值观察界面变化。相关标签与文档索引Audio 标签文档含多声道、音频分类、与 Video/Paragraphs 同步等更多示例TextArea 标签文档含去重、region-list、Enter 提交等行为说明Labels 标签文档用于按片段标注分段转写模板多声道音频转写模板Enterprise官方内置模板源码label_studio/annotation_templates/audio-speech-processing/automatic-speech-recognition/含 config.xml 与 config.yml编辑器实现Audio 模型、Audio 视图、TextArea 组件、快捷键映射小结transcribe_audioAutomatic Speech Recognition模板用最精简的三个标签AudioHeaderTextArea搭建了完整可用的整段音频转写界面其核心价值在于Audio标签负责播放、波形缩放与热键控制TextArea通过rows/editable/maxSubmissions精确约束转写采集行为最终产出符合 Label Studio 标准化格式的textarea结果。在此基础上通过LabelsperRegion可以平滑升级到按片段转写配合Choices、whenTagName等条件参数还能扩展出多说话人与情感标注等生产级方案。无论你是为 Whisper 类 ASR 模型准备训练数据还是搭建呼叫中心质检、播客转写流水线这份模板都是理想的起点。【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表