# 無音検出

> 録音や動画の中の無音区間を見つけ、時間範囲として返します。編集で無音部分をカットするのに、そのまま使えます。AI モデルは使わず、1 回の実行は一律 10 クレジットです。

Source: https://nodaro.ai/ja/docs/nodes/audio/silence-detect

**無音検出**（Silence Detect）ノードは、録音や動画の中の無音区間を見つけ、時間範囲のリストとして返します。この範囲を使って、[**編集プラン**（Edit Plan）](https://nodaro.ai/docs/nodes/video/edit-plan)などで、ポッドキャストやインタビューから無音部分をカットします。このノードは AI モデルもプロバイダーのキーも使わずにローカルで動作するため、すべてのエディションで使えます。

- Found in: Audio › Analyze
- Output: data
- API type: `silence-detect`

## 使いどころ
- ポッドキャストやインタビューを編集する前に、無音部分や長い間を見つけます。
- 取り除くべき無音を、編集のステップに正確に渡します。
- 録音のうち、どれだけが無音で、どれだけが話し声かを測ります。

## クイックスタート
### ノードを追加する
キャンバス上で Tab を押し、**オーディオ › 分析 › 無音検出**を選びます。

### 録音を接続する
オーディオノードか動画ノードを、**オーディオまたは動画**入力に接続します。動画の場合、ノードはその音声トラックを使います。

### 実行する
ノードの**実行**をクリックします。見つかった無音区間が、データとして**無音区間**出力に表示されます。

Workflow: ポッドキャストを文字起こしし、無音も検出します。編集プランがその両方を使ってエピソードの間を詰め、EDL 適用がカットをレンダリングします。

- 動画アップロード → 文字起こし (オーディオ)
- 動画アップロード → 無音検出 (オーディオまたは動画)
- 動画アップロード → 編集プラン (ソース)
- 文字起こし → 編集プラン (文字起こし)
- 無音検出 → 編集プラン (無音)
- 編集プラン → EDL 適用 (EDL)

## 入力と出力
| 入力 | 接続できるノード | 説明 |
| --- | --- | --- |
| **オーディオまたは動画** | オーディオノードと動画ノード | 調べる録音です。必須です。 |

出力の**無音区間**は、オーディオではなくデータです。[編集プラン](https://nodaro.ai/docs/nodes/video/edit-plan)の**無音**入力や、[**フィールドを抽出**（Extract Field）](https://nodaro.ai/docs/nodes/automate/extract-field)ノードなど、データを読み取るノードに接続します。

## 設定
| 設定 | 説明 |
| --- | --- |
| **無音のしきい値（dB）** | この値より小さい音は、無音とみなされます。-60〜-10 で指定し、デフォルトは -35 です。値を低くするほど厳密になり、ほぼ完全に静かな部分だけが無音とみなされます。 |
| **最小の無音時間（ms）** | この長さ以上の無音だけが報告されます。100〜3,000 で指定し、デフォルトは 700 です。 |
| **音声のパディング（ms）** | 話し声の前後に残す余白です。0〜1,000 で指定し、デフォルトは 120 です。各無音区間は、両端からこの長さだけ内側に縮められます。これにより、カットで息継ぎや言葉の出だしが切れるのを防ぎます。縮めた結果、長さがなくなる区間は取り除かれます。 |

## 結果の読み方
**無音区間**出力は、次のような形です。

```json
{
"version": 1,
"ranges": [
{ "startMs": 2120, "endMs": 3880 }
],
"durationMs": 6000
}
```

- `ranges`：無音区間です。出現順に並び、元の録音の時間軸に沿ったミリ秒で表されます。`endMs` はその時点を含まず、常に `startMs` より大きい値です。
- `durationMs`：録音全体の長さです。単位はミリ秒です。

### 例
6 秒の録音で、2 秒の位置から 4 秒の位置までが無音だとします。デフォルトの設定では、次のようになります。

1. ノードは、約 2,000 ミリ秒から約 4,000 ミリ秒までの無音区間を 1 つ見つけます。長さは 2 秒なので、最小の無音時間である 700 ms より長くなります。
2. 120 ms の音声のパディングにより、区間が両端で縮められます。開始は 2,000 + 120 = 2,120 ms に、終了は 4,000 - 120 = 3,880 ms になります。

結果は上の JSON のとおりで、この実行には 10 クレジットかかります。

## クレジット
無音検出の料金は、一律で **1 回の実行につき 10 クレジット**です。録音の長さ、設定、見つかった範囲の数によって、料金は変わりません。

ノードは、音声トラックを低い解像度で小さくしたコピーを分析するため、長い録音でも数秒で調べ終わります。

## ヒント
- **息継ぎを無視する**：**最小の無音時間**を上げると、短い息継ぎや単語間のすき間が検出されなくなります。短い間も検出するには、値を下げます。
- **言葉を守る**：カットで言葉の出だしが切れる場合は、**音声のパディング**を上げます。無音が長く残りすぎると感じる場合は、値を下げます。
- **ルームトーンを無音として扱う**：静かな部屋でも、デフォルトのしきい値より大きい音が出ていることがあります。**無音のしきい値**を下げます。たとえば -45 にします。
- **ソースの時間軸を保つ**：範囲は元の録音のタイムラインを使うため、あとの編集でも、同じオーディオや動画と位置が一致します。

## API から
`POST /v1/silence-detect` は、`audioUrl` と、任意の `thresholdDb`（デフォルトは -35）、`minSilenceMs`（デフォルトは 700）、`padMs`（デフォルトは 120）を受け取ります。完了した実行の `output_data.json` が、上の結果です。MCP ツールは `silence_detect` です。[音声とメディア](https://nodaro.ai/docs/developers/api/voice-and-media)を参照してください。

## Frequently asked questions

### 無音検出は、無音部分を削除しますか？

いいえ。無音区間を見つけて、時間範囲として返すだけです。無音部分をカットするには、範囲を「間詰め」モードの「編集プラン」に接続し、そのプランを「EDL 適用」でレンダリングします。

### 無音検出には何クレジットかかりますか？

1 回の実行につき、一律 10 クレジットです。録音の長さ、設定、見つかった無音区間の数によって、料金は変わりません。

### 静かな部屋の雑音が、無音として検出されないのはなぜですか？

ルームトーンが「無音のしきい値」より大きいためです。静かな環境音が無音とみなされるように、しきい値を下げます。たとえば -45 dB にします。

### 範囲の単位は何ですか？

元の録音の時間軸に沿ったミリ秒です。そのため、範囲はソース自体のタイムラインと一致します。各範囲は、終了値の直前で終わります。

### 無音検出は、セルフホスティングの環境でも使えますか？

はい。AI モデルやプロバイダーのキーを使わずにローカルで動作するため、すべてのエディションで使えます。
