音频切片算子用于将长音频按声音或对话轮次分割为多个短片段,仅处理输入数据集中的音频对象,非音频对象将自动忽略。本文介绍音频切片算子的配置方法。
前提条件
-
当前实例购买非结构化数据功能后,方可使用工作流功能。
-
已完成工作流的创建,详细创建步骤请参见创建及管理工作流。
背景信息
-
音频切片算子支持处理以下格式文件:mp3、mov、avi、mkv、m4a、wav。
-
音频切片算子默认分配1Core、4GB资源。
权限说明
Basic项目的项目管理员、开发者、分析师以及拥有数据集-使用权限的自定义项目角色,可在算子的输入和输出数据集中使用该项目下的所有数据集。
操作步骤
-
在Dataphin首页的顶部菜单栏中,选择研发 > 数据研发。
-
在开发页面的顶部菜单栏选择项目。
-
在左侧导航栏中选择数据处理 > 工作流,在左侧工作流列表中单击目标工作流,打开工作流画布,在左侧算子库中拖动音频切片算子至画布中,并在右侧音频切片面板中配置以下参数。
参数
描述
步骤名称
输入当前算子名称,支持任意字符,不超过256个字符。
输入配置
数据集
选择需处理的数据集,仅可选择混合数据集。数据集选择完成后还需选择其版本,默认为该数据集正序的第一个版本。
当前算子作为其他算子的下游时,此处所选数据集通常与上游算子的输出数据集一致。
输入字段
待处理音频文件的存储URL,需选择输入数据集中来源字段,仅可选择输入数据集中是否URL参数为是的字段。
过滤条件(非必填)
使用SQL语法,仅需输入where语句后的过滤条件,支持使用系统全局变量,例如业务日期${bizdate}。
算子参数配置
切分方式
-
按声音切分:按音频中的音量与静音区间切分,与音频内容无关,适用于无背景音的干净音频,存在背景音乐时人声与音乐无法区分,默认为该方式。
选择按声音切分后,还需配置音量阈值(dB)、最小长度(ms)、最小间隔(ms)、逐帧检测步长(ms)和最大静音保留长度(ms)。
-
按对话切分:通过语音识别模型检测人声的起止时间点,按对话轮次切分并区分说话片段与非说话片段,适用于会议、访谈、客服等对话类音频,背景音乐与环境噪声不影响判定。
选择按对话切分后,还需配置模型、对话片段最小时长和输出方式。
音量阈值(dB)
控制静音检测灵敏度,数值越低对静音判断越敏感。可输入-60~-20间的整数,默认为-40。
说明仅按声音切分方式支持配置此项。
最小长度(ms)
每个音频片段的最短时长,可输入1000~10000间的整数,默认为5000。
说明仅按声音切分方式支持配置此项。
最小间隔(ms)
静音段落最小切片长度,可输入100~1000间的整数,默认为300。
说明仅按声音切分方式支持配置此项。
逐帧检测步长(ms)
数值越小精度越高,数值越大速度越快。可输入5~50间的整数,默认为10。
说明仅按声音切分方式支持配置此项。
最大静音保留长度(ms)
当音频中检测到长静音时,需要保留多少静音时间在切开后的片段中。数值越小,切分越精确,越大则有更多的静音过渡。可输入0~2000间的整数,默认为500。
说明仅按声音切分方式支持配置此项。
模型
为当前算子选择所使用的模型,仅可选择智能应用管理 > 模型配置中模型类型包含音频、音频能力包含人声检测且已启用的模型。
说明仅按对话切分方式支持配置此项。
对话片段最小时长
单个对话片段的最小时长,单位秒,默认为5秒。短于此时长的片段会与相邻片段合并为连续片段,避免产生无上下文的碎片片段。
说明仅按对话切分方式支持配置此项。
输出方式
-
仅说话片段:仅输出有人说话的片段,可显著减少切片数量与存储占用,默认为该方式。
-
全部:输出全部片段(包含非说话片段)。
说明仅按对话切分方式支持配置此项。
输出配置
数据集
可选择一个混合数据集作为输出数据集。数据集选择完成后还需选择其版本,默认为该数据集正序的第一个版本。同时,支持选择来源数据集的其他版本。
切片文件目录
前缀固定为所选数据集文件存储的目录,您可输入指定存储的子目录,每一个来源音频文件都需存放在独立的子目录中。
加载策略
若所选输出数据集的元数据表中存在主键,则默认选择主键冲突时更新;若不存在主键,则默认选择追加数据。
-
追加数据:直接向目标表新增追加数据,当主键/约束冲突时,会提示错误。
-
主键冲突时更新:当主键/约束冲突时,会先删除整行主键重复的旧数据,再插入新数据。
-
覆盖:先删除目标表的数据,再写入数据。
字段映射
音频切片算子将固定输出以下字段:
-
source_file_url:原输入长音频的URL。 -
sequence:序号。 -
file_url:切片后音频文件的URL。 -
audio_id:切片音频文件的唯一ID,用于下游进行唯一识别。 -
start_time:切片在原始音频中的起始时间,单位秒。 -
end_time:切片在原始音频中的终止时间,单位秒。
在实时工作流和在线工作流中,音频切片算子按1:N模式输出,即单条输入事件将产出多个音频片段,切片结果以
audio_slices数组字段承载,可作为ForEach循环算子的遍历来源,将每个音频片段交由下游算子逐个处理,ForEach循环算子的迭代变量默认为audio_slice。算子输出字段默认映射至输出数据集的同名字段,您也可以手动选择目标字段进行自定义映射。此外,支持将来源数据集的透传字段映射至目标数据集。您可以通过以下方式管理字段映射:
-
新增输出字段:单击后新增一行空白字段映射关系。
-
批量映射:单击后可选择批量手动映射、同名映射或同行映射。
-
删除映射:单击删除图标可删除对应行的字段映射,但算子固定输出字段的映射不支持删除。
-
-
配置完成后,单击画布顶部菜单栏中的保存,保存此次配置。
单个算子配置完成后,可继续为其选择上游或下游算子来完成完整工作流的配置。