ノイズ除去API
ノイズ除去APIは、1人の音声に混ざった継続的な背景ノイズを低減し、 MP3またはWAVファイルを返します。
API概要
| 項目 | 値 |
|---|---|
| Base URL | https://api.kitschlabs.com |
| 認証 | xi-api-key: <API_KEY> |
| リクエスト | multipart/form-data |
| Endpoint | POST /v1/audio-isolation |
| 必須フィールド | audio |
| デフォルト出力 | mp3_44100_128 (audio/mpeg) |
| 追加出力 | wav_48000 (audio/wav) |
| 最大入力 | 50 MiB、60秒 |
どのように認証しますか?
発行されたAPIキーをxi-api-keyヘッダーに送信します。実際のキーはサーバーの
環境変数またはシークレット管理サービスに保存し、ブラウザ、アプリのバンドル、
ログに残さないでください。
xi-api-key: <API_KEY>
背景ノイズを低減するには?
通常の音声ファイルはfile_format=otherとして送信します。レスポンスボディを
拡張子に合ったファイルへ保存してください。
- cURL
- Python
- JavaScript
curl --request POST \
"https://api.kitschlabs.com/v1/audio-isolation" \
--header "xi-api-key: <API_KEY>" \
--form "audio=@sample.wav" \
--form "file_format=other" \
--output enhanced.mp3
import os
import requests
with open("sample.wav", "rb") as audio:
response = requests.post(
"https://api.kitschlabs.com/v1/audio-isolation",
headers={"xi-api-key": os.environ["KITSCH_API_KEY"]},
data={"file_format": "other"},
files={"audio": audio},
timeout=120,
)
response.raise_for_status()
with open("enhanced.mp3", "wb") as output:
output.write(response.content)
import { readFile, writeFile } from "node:fs/promises";
const form = new FormData();
form.append("audio", new Blob([await readFile("sample.wav")]), "sample.wav");
form.append("file_format", "other");
const response = await fetch("https://api.kitschlabs.com/v1/audio-isolation", {
method: "POST",
headers: { "xi-api-key": process.env.KITSCH_API_KEY },
body: form,
});
if (!response.ok) {
throw new Error(`${response.status}: ${await response.text()}`);
}
await writeFile("enhanced.mp3", Buffer.from(await response.arrayBuffer()));
WAVが必要な場合は、queryにoutput_format=wav_48000を指定します。
curl --request POST \
"https://api.kitschlabs.com/v1/audio-isolation?output_format=wav_48000" \
--header "xi-api-key: <API_KEY>" \
--form "audio=@sample.wav" \
--output enhanced.wav
どのフィールドを送信しますか?
| フィールド | 位置 | 型 | 必須 | 説明 |
|---|---|---|---|---|
audio | form | file | はい | 処理する音声ファイル。最大50 MiB、60秒 |
file_format | form | string | いいえ | 通常のファイルはother、raw PCMはpcm_s16le_16 |
output_format | query | string | いいえ | mp3_44100_128またはwav_48000 |
pcm_s16le_16は16 kHz、mono、little-endian 16-bit raw PCMです。WAV、MP3、
FLAC、OGGなどのencoded audioにはotherを使用してください。
アップロードされた入力ファイルは、処理完了後に保存されません。APIキーや ファイルの内容全体をアプリケーションログに残さないでください。
レスポンスとエラー
成功すると、選択した形式のaudio binaryを返します。サポートへの問い合わせには
レスポンスのx-kitsch-request-idを使用できます。
| ヘッダー | 説明 |
|---|---|
x-kitsch-request-id | リクエスト追跡ID |
| ステータス | 意味 | 推奨対応 |
|---|---|---|
401 | APIキーがない、または無効 | キーとxi-api-keyヘッダーを確認 |
402 | 利用可能なcreditが不足 | 請求の状態を確認 |
403 | ノイズ除去の利用権限がない | アカウントのサービス利用範囲を確認 |
413 | ファイルサイズまたは入力時間を超過 | 50 MiB・60秒以内にして再送信 |
422 | 破損したaudio、不正なPCM、未対応形式 | ファイルとfile_formatを確認 |
429 | APIキーのリクエスト上限を超過 | Retry-Afterに従いbackoffを適用 |
503 | 一時的に処理不可 | request IDを記録し、回数を制限して再試行 |
成功したリクエストは、入力音声の長さを開始済みの1秒単位に切り上げてcreditを 計算します。失敗したリクエストや入力検証で拒否されたリクエストは課金されません。