音频人声分离
更新时间:2026-06-15
简介
音频人声分离模块 - 使用 Demucs 模型提取人声分量
功能描述
- 使用 Demucs 模型进行人声分离(去除背景音乐、噪声)
- 自动进行采样率对齐、声道调整、响度恢复
- 适合用于语音增强、字幕生成、音视频前处理等场景
算子参数
输入
| 输入 | 含义 |
|---|---|
| audio_col | 包含音频二进制数据的数组(pa.binary 类型),每个元素应为一段完整的音频内容。 |
输出
| 输出 | 含义 |
|---|---|
| result | 一个二进制数组(pa.binary 类型),每个元素为对应音频中提取出的人声部分,格式为编码后的音频 bytes。 |
参数
| 参数名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| model_path | str | '/opt/aihc/models' | - |
| chunk_batch_size | int | 8 | - |
| device | str | 'cuda' if torch.cuda.is_available() else 'cpu' | - |
| num_coroutines | int | 1 | - |
调用示例
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_source_separation import AudioSourceSeparation
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_col": [...]}
20 ds = daft.from_pydict(samples)
21 constructor_kwargs = {
22 "model_path": '/opt/aihc/models',
23 "chunk_batch_size": 8,
24 "device": 'cuda' if torch.cuda.is_available() else 'cpu',
25 "num_coroutines": 1,
26 }
27 ds = ds.with_column(
28 "result",
29 aihc_udf(
30 AudioSourceSeparation,
31 construct_args=constructor_kwargs,
32 num_cpus=1,
33 concurrency=4,
34 batch_size=8,
35 )(col("audio_col")),
36 )
37 ds.show()
评价此篇文章
