自然语言驱动的多功能音频分离基础模型
AudioSep是一个创新的音频分离基础模型,可通过自然语言描述执行多种音频分离任务。该模型在音频事件分离、乐器分离和语音增强等领域展现出卓越的性能和泛化能力。AudioSep支持用户通过文本描述精确分离所需音频内容,为音频处理技术开辟了新的应用方向。
本仓库包含"分离你描述的任何声音"的官方实现。
我们推出了AudioSep,一个用于开放域声音分离的基础模型,可通过自然语言查询进行操作。AudioSep在众多任务上展现出强大的分离性能和令人印象深刻的零样本泛化能力,例如音频事件分离、乐器分离和语音增强。请查看演示页面上的分离音频示例!
<p align="center"> <img align="middle" width="800" src="https://yellow-cdn.veclightyear.com/ab5030c0/6a5d9ff1-cdd5-45f0-a89b-9958a8cfd26f.png"/> </p> <hr>克隆仓库并设置conda环境:
git clone https://github.com/Audio-AGI/AudioSep.git && \ cd AudioSep && \ conda env create -f environment.yml && \ conda activate AudioSep
在checkpoint/
下载模型权重。
如果您将此检查点用于DCASE 2024 Task 9挑战赛参与,请注意此检查点是使用32kHz采样率的音频进行训练的,STFT操作中窗口大小为2048点 ,跳跃大小为320点,这与提供的挑战基线系统不同(16kHz,窗口大小1024,跳跃大小160)。
<hr><hr>from pipeline import build_audiosep, inference import torch device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') model = build_audiosep( config_yaml='config/audiosep_base.yaml', checkpoint_path='checkpoint/audiosep_base_4M_steps.ckpt', device=device) audio_file = '音频文件路径' text = '文本描述' output_file='分离后的音频.wav' # AudioSep以32 kHz采样率处理音频 inference(model, audio_file, text, output_file, device)
要直接从Hugging Face加载,您可以执行以下操作:
from models.audiosep import AudioSep from utils import get_ss_model import torch device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') ss_model = get_ss_model('config/audiosep_base.yaml') model = AudioSep.from_pretrained("nielsr/audiosep-demo", ss_model=ss_model) audio_file = '