同源音频快速拼接
更新时间:2026-06-15
简介
音频快速拼接处理器(同源音频)
功能描述
- 使用 concat demuxer 快速拼接同源音频(无需重编码)
- 适用于格式、编码、采样率完全相同的音频文件
- 速度快,无质量损失
- 本地文件路径
- BOS/S3存储路径
- HTTP/HTTPS路径
- 支持输出到指定路径
- 拼接同一录音分段
- 拼接相同格式的音频片段
- 需要快速拼接且无需格式转换
- 支持所有音频格式(mp3, wav, flac, aac, m4a等)
- 要求:所有输入音频必须具有相同的格式、编码、采样率、声道数
- AudioConcat: 使用 concat filter,支持不同格式音频,需要重编码
- AudioConcatFast: 使用 concat demuxer,仅支持同源音频,无需重编码,速度更快
算子参数
输入
| 输入 | 含义 |
|---|---|
| audio_paths_list | 包含音频文件路径列表的列,每个元素是一个字符串列表 |
| output_col | 包含输出音频文件路径的数组 |
输出
| 输出 | 含义 |
|---|---|
| result | 包含拼接后音频文件路径的数组,成功返回输出路径,失败返回None |
参数
| 参数名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| output_format | str | 'mp3' | 输出音频格式(仅用于确定文件扩展名),默认为 "mp3" 注意:由于使用 concat demuxer,输出格式应与输入音频格式一致 |
| timeout | int | None | ffmpeg执行超时时间(秒),默认为None(无超时) |
调用示例
Python
1from __future__ import annotations
2
3import os
4
5import daft
6from daft import col
7
8from daft.aihc.common.udf import aihc_udf
9from daft.aihc.functions.audio.audio_concat_fast import AudioConcatFast
10
11if __name__ == "__main__":
12 if os.getenv("DAFT_RUNNER", "native") == "ray":
13 import ray
14 ray.init(dashboard_host="0.0.0.0", ignore_reinit_error=True)
15 daft.set_runner_ray()
16 daft.set_execution_config(actor_udf_ready_timeout=6000, min_cpu_per_task=0)
17
18 # TODO: 根据实际场景准备样本数据
19 samples = {"audio_paths_list": [...], "output_col": [...]}
20 ds = daft.from_pydict(samples)
21 constructor_kwargs = {
22 "output_format": 'mp3',
23 "timeout": None,
24 }
25 ds = ds.with_column(
26 "result",
27 aihc_udf(
28 AudioConcatFast,
29 construct_args=constructor_kwargs,
30 num_cpus=1,
31 concurrency=4,
32 batch_size=8,
33 )(col("audio_paths_list"), col("output_col")),
34 )
35 ds.show()
评价此篇文章
