mcpField
V
voice-isolator

voice-isolator

github.com/elevenlabs创意与媒体5167.1k 次安装今天更新
代码仓库

关于 voice-isolator

用于通过 ElevenLabs 从录音中去除背景噪声并分离语音或人声的技能,适用于音频清理和预处理,可通过 SDK 或 CLI 输入文件。

主要功能

  1. 01去除背景噪声
  2. 02分离语音与人声
  3. 03支持常见音频和视频格式
  4. 04支持低延迟 PCM 输入
  5. 05默认流式输出 MP3

适用场景

  1. 01清理采访或播客录音
  2. 02为转录预处理嘈杂音频
  3. 03从音乐或音效中提取对白
  4. 04在声音转换前分离人声

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/elevenlabs/skills --skill voice-isolator

安装后在 Claude Code 中输入/voice-isolator确认已加载。

附带文件references/installation.md

详细介绍

ElevenLabs Voice Isolator

从音频中去除背景噪声并分离人声/语音——适用于清理嘈杂录音、为转录准备音频,或从混音音轨中提取对白。

**编写任何代码前先完成设置:**如果尚未为此项目设置 ELEVENLABS_API_KEY,请先在应用文件夹中运行 npx -y @elevenlabs/cli@latest onboard init,并按照其输出的指引操作:它会让用户登录并为项目保存密钥,因此无需手动复制密钥。否则,请参阅 安装指南。对于 JavaScript,只使用 @elevenlabs/* 软件包。

快速开始

Python
from elevenlabs import ElevenLabs

client = ElevenLabs()

with open("noisy.mp3", "rb") as audio_file:
    audio_stream = client.audio_isolation.convert(audio=audio_file)

with open("clean.mp3", "wb") as f:
    for chunk in audio_stream:
        f.write(chunk)
JavaScript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
import { createReadStream, createWriteStream } from "fs";

const client = new ElevenLabsClient();

const audioStream = await client.audioIsolation.convert({
  audio: createReadStream("noisy.mp3"),
});

audioStream.pipe(createWriteStream("clean.mp3"));
CLI
elevenlabs audio-isolation convert --audio noisy.mp3 --output clean.mp3

参数

参数类型默认值描述
audio文件(必填)—要分离人声/语音的音频文件
file_format字符串otherother 适用于任何编码音频;pcm_s16le_16 适用于 16 位 PCM 单声道 @ 16kHz 小端格式(延迟更低)

从 URL 分离音频

import requests
from io import BytesIO
from elevenlabs import ElevenLabs

client = ElevenLabs()

audio_url = "https://example.com/noisy.mp3"
response = requests.get(audio_url)
audio_data = BytesIO(response.content)

audio_stream = client.audio_isolation.convert(audio=audio_data)

with open("clean.mp3", "wb") as f:
    for chunk in audio_stream:
        f.write(chunk)

低延迟 PCM 输入

如果已有原始 16 位 PCM 单声道 @ 16kHz 音频,传入 file_format="pcm_s16le_16" 可跳过解码并降低延迟:

audio_stream = client.audio_isolation.convert(
    audio=pcm_bytes,
    file_format="pcm_s16le_16",
)

支持的格式

任何常见的编码音频/视频容器都可用作输入(MP3、WAV、M4A、FLAC、OGG、WebM、MP4 等)。默认情况下,响应为流式 MP3。

常见工作流

  • 清理访谈/播客录音 — 在编辑前去除室内底噪、暖通空调噪声和交通噪声。
  • 为语音转文本准备嘈杂音频 — 先分离人声,再通过 speech_to_text.convert() 处理,以提高转录准确率。
  • 从混音音轨中提取对白 — 从含有音乐/音效的音轨中提取人声。
  • 为 Voice Changer 进行预处理 — 在应用声音转换前分离源人声。

错误处理

try:
    audio_stream = client.audio_isolation.convert(audio=audio_file)
except Exception as e:
    print(f"Voice isolation failed: {e}")

常见错误:

  • 401:API 密钥无效
  • 422:参数无效(例如,提供的音频与 file_format 不匹配)
  • 429:超出速率限制

参考资料

评论

支持 Markdown