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. 05MP3を既定でストリーミング出力

活用シーン

  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

パラメーター

パラメーター型デフォルト説明
audiofile (required)—分離するボーカル/音声を含むオーディオファイル
file_formatstringotherエンコードされた任意の音声には other、16 ビット PCM モノラル @ 16kHz リトルエンディアン(低レイテンシー)には pcm_s16le_16

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:レート制限を超過しました

参考資料

コメント