ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Label Studio transcribe_audio 示例:用 Audio 与 TextArea 搭建音频转写标注流程

Label Studio transcribe_audio 示例:用 Audio 与 TextArea 搭建音频转写标注流程 Label Studio transcribe_audio 示例用 Audio 与 TextArea 搭建音频转写标注流程【免费下载链接】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 前端仓库内置的transcribe_audio官方示例展开完整讲解如何配置一个听音频、填转写文本的标注界面包括标注配置config.xml的逐行解析、任务数据tasks.json与预标注结构、标注结果的标准化输出格式以及原文档中的 Linux 安装与启动命令。读完后你能够独立复现该示例并理解音频转写标注结果在 Label Studio 统一输出格式中的存储方式。示例定位与目录结构transcribe_audio是编辑器Label Studio Editor内置的官方示例之一目标场景非常直接播放一段音频文件并把其内容转写成自然语言文本。示例完整文件位于web/libs/editor/src/examples/transcribe_audio/目录结构如下文件作用START.md本指南的原始文档安装与启动说明config.xml标注界面配置Label Studio 标签配置tasks.json示例任务数据含预标注predictionsannotations/1.json示例标注结果index.js将上述文件打包导出为TranscribeAudio示例对象其中index.js只是三行式的聚合导出供编辑器文档/Playground 直接引用import config from ./config.xml; import tasks from ./tasks.json; import annotation from ./annotations/1.json; export const TranscribeAudio { config, tasks, annotation };标注配置Audio 对象 TextArea 转写控件示例的核心是 config.xml 中的标签配置。全文继承如下并逐行说明View Header valueAudio transcription:/Header Audio nameaudio value$url height46/Audio TextArea nameanswer toNameaudio transcriptiontrue rows3 maxSubmissions1/TextArea Style [dataneedsupdate]{display:flex;align-items:center} [dataneedsupdate]div:first-child{flex-grow:1;order:2} [dataneedsupdate]div:last-child{margin-top:0 !important;margin-right:1em} [dataneedsupdate] button{height:46px} [dataneedsupdate] button span:nth-child(2){display:none} /Style /View要点解析Header在界面上方显示 Audio transcription: 提示标题明确当前任务类型。Audio nameaudio value$url height46音频对象标签。value$url表示从任务的data.url字段读取音频文件地址见下文tasks.jsonheight46控制播放器高度。对象标签的nameaudio是后续所有控件关联的锚点。TextArea nameanswer toNameaudio transcriptiontrue rows3 maxSubmissions1转写控件是示例的关键。toNameaudio声明该控件标注的对象是名为audio的Audio标签rows3让输入框为多行文本域适合书写完整句子的转写文本maxSubmissions1限制整个对象最多提交一次转写——音频转写通常只需一条完整文本这与对每个区域各标一次的用法如perRegion形成对照transcriptiontrue是面向转写场景的专用开关。从源码 TextArea.jsx 的 JSDoc 可以看到它的定义When set to true and used witheditable\true\, the TextArea UI will remain an editable field even after you add your text即提交后文本框仍保持可编辑状态方便标注员在播放过程中反复修正转写内容模型属性中该字段默认为falsetranscription: false见 TextArea.jsx。Style块内嵌 CSS微调编辑器内部dataneedsupdate数据需要更新提示区域的布局——将按钮对齐、隐藏按钮内的冗余文本属于界面美化不影响标注语义。从源码结构看TextArea标签在 TextArea.jsx 的注释中被明确描述为适用于 transcription、paraphrasing、captioning 类任务音频转写正是其最典型的用武之地同一控件配合toName也可以用于图片描述image captioning或 OCR 校对。任务数据data 与 predictions 的分工示例任务文件 tasks.json 只有一个任务[ { data: { url: https://htx-pub.s3.us-east-1.amazonaws.com/examples/audio/barradeen-emotional.mp3 }, predictions: [ { model_version: model 1, result: [ { from_name: answer, id: oMvLrMj8WP, to_name: answer, type: textarea, value: { text: Mario } } ] } ] } ]这里体现 Label Studio 任务格式的两个关键约定data与标签配置的绑定data.url的键名必须与Audio value$url中的$url一致数据字段即变量。任务里放的是音频文件的 HTTP 地址编辑器加载时会把该 URL 传给Audio组件作为音源。predictions预标注model_version标识模型来源示例中为 model 1result数组中每条结果通过from_name/to_name建立控件 → 对象的关联type: textarea声明结果类型value.text承载预填充文本 Mario。加载任务时该文本会作为预标注出现在TextArea中标注员可在此基础上继续编辑——这正是转写场景的典型工作流ASR 模型先出一版草稿人工再润色。标注结果的标准化输出格式完成标注后提交的结果保存在 annotations/1.json{ annotations: [ { id: 1001, result: [ { from_name: answer, id: oMvLrMj8WP, to_name: answer, type: textarea, value: { text: Mario } } ] } ], data: { url: https://htx-pub.s3.us-east-1.amazonaws.com/examples/audio/barradeen-emotional.mp3 }, id: 1, task_path: ../examples/transcribe_audio/tasks.json }从这一结构可以读出 Label Studio 输出格式的核心规律每条标注结果的value.text即为最终导出的转写文本from_name对应配置中的TextArea nameto_name对应被标注对象type固定为textarea。下游训练 ASR 模型时只需要遍历annotations[].result[].value.text即可拿到全部转写样本。对比tasks.json中的 predictions 结构可以发现二者完全同构——predictions、annotations与标注结果的result共用同一套 schema这也是 Label Studio 统一输出格式标准化的具体含义。安装继承自 START.md 的 Linux Ubuntu 指南原始文档 START.md 给出的安装步骤面向 Linux/Ubuntu 环境# install python and virtualenv apt install python3.6 pip3 install virtualenv # setup python virtual environment virtualenv -p python3 env3 source env3/bin/activate # install requirements cd backend pip install -r requirements.txt需要说明适用前提这段指南出自示例早期所在的独立前端仓库布局其中存在backend/目录与独立server.py入口。在当前 monorepo 中前端工程位于web/本示例在web/libs/editor/src/examples/transcribe_audio/后端服务位于label_studio/含server.py、manage.py等入口。因此cd backend pip install -r requirements.txt中的backend目录在现行仓库里已不存在实际操作时请以仓库根目录的 pyproject.toml 与 web/package.json 为准用uv/bun等现代工具链管理依赖。启动一条命令跑起示例原文档的启动命令完整保留如下-l指定标签配置-i指定任务数据-o指定输出目录python server.py -c config.json -l ../examples/transcribe_audio/config.xml -i ../examples/transcribe_audio/tasks.json -o output命令语义拆解-c config.jsonLabel Studio 服务端配置-l加载examples/transcribe_audio/config.xml作为该服务的标签配置渲染出音频播放器 三行转写输入框的标注界面-i加载tasks.json中的任务预标注 Mario 会自动填充进 TextArea-o output标注完成后结果写入output目录即得到形如上文annotations/1.json的标准格式文件。在当前仓库中从源码结构看后端启动入口对应 label_studio/server.py以及 Django 的 manage.py标签配置与任务数据则直接复用本示例目录下的文件即可无需改动示例本身。小结transcribe_audio示例用最少的标签组合演示了 Label Studio 处理非结构化媒体 → 文本任务的完整闭环Audio value$url声明音源、TextArea transcriptiontrue承载可编辑转写、predictions提供模型预标注、annotations输出标准化result结构。理解这四者的对应关系后你可以把同一套模式迁移到音频分类、字幕校对、多假设转写等更复杂的场景——更换的只是对象标签与toName关联而config.xml的组织方式和输出格式保持不变。【免费下载链接】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),仅供参考
返回列表