输入一段混着多人说话、噪声和混响的音频,加上目标说话人的嘴部画面,模型只输出这个人的声音,并且是因果的、可以边听边出。分离器一次编码—解码就完成多尺度时频分离,不像以往轻量方案那样反复调用小分离器;训练时加了一个“编码器空间说话人对比损失”,专门压住近处其他人声的串音,推理时零额外开销。作者同时发布 RealSSA 基准:模拟场景里有 1–5 个近场干扰人、远场再加 10–15 个干扰人,另有一套真实录音测试集。
点赞 149 · 代码星数 20
理由
- 放得全:训练 / 评测代码、Falcon 与 Falcon-Big 两份权重(抱脸 JusperLee/Falcon、JusperLee/Falcon-Big)、抱脸 ZeroGPU 在线演示,以及本地实时演示 Falcon Studio,代码和权重都是 Apache-2.0。
- 作者称和因果的 AV-TFGridNet 相比,参数少 91.9%、计算量降 20.2 倍、GPU 延迟降 11.1 倍;论文口径的可训练参数 0.5M(加上冻结的唇读编码器总共 11.72M)。
- 作者称在 RealSSA-Sim、LRS2-2Mix、LRS3-2Mix、VoxCeleb2-2Mix 上都是因果方法里最好的,README 给了与九个基线的完整对照表。
- 能直接落地:Falcon Studio 在浏览器里用 MediaPipe 跟踪嘴部,把分离出的声音送到耳机,或经虚拟声卡送进 Zoom / 腾讯会议;README 称每 2 秒窗口、每 0.5 秒出一段新音频,在 Apple M5 Pro 的 Metal 上一个窗口约 0.12 秒。
用法
- 最快体验:打开 README 链接的抱脸 Space(JusperLee/Falcon-Studio),在浏览器录一段最长 60 秒的片段再分离。
- 本地实时:git clone github.com/JusperLee/Falcon,pip install -r studio/requirements.txt(Python 3.10–3.12,支持 Apple Metal / NVIDIA CUDA / CPU),macOS 双击 studio/Start Falcon.command 或运行 studio/scripts/launch.sh;Linux + NVIDIA 加 --device cuda。权重首次运行自动从抱脸下载。
- 离线单段:ffmpeg 转成 16 kHz 单声道 mix.wav,再 python infer_file.py --audio mix.wav --mouth mouth.npy --out target.wav --model JusperLee/Falcon;mouth.npy 是目标人 25fps、96×96 灰度嘴部裁剪。也可用 Python 接口 FalconRuntime.from_pretrained。
- 训练:数据按 LRS2/LRS3 目录组织,用 DataPreProcess 下的脚本建索引,python audio_train.py --conf_dir configs/Falcon.yml。
风险
- 必须有目标说话人的正脸 / 嘴部画面,纯音频场景用不了;离线推理要自己准备嘴部裁剪序列。
- 接入会议的虚拟声卡方案(BlackHole)是 macOS 的,其他系统要自己找路由办法;README 没给 CPU 实时运行的完整说明。
- RealSSA 两个数据集都要人工审批,RealSSA-Sim 是 CC BY-NC-ND 4.0;发布的多声道分片要改造后才能用仓库的单声道训练加载器,训练所需的唇读视觉骨干权重 README 里还没给链接。
- 所有质量和效率数字为作者报告;没听过演示音频,不评价实际听感。
编辑:和普通降噪不同:它要的是“画面里这个人”的声音,旁边别人说话也会被去掉,适合会议、采访、助听类场景。