音声
このガイドでは、基本的な音声制御(ミュート/音量)、詳細音声制御(バランス、同期オフセット、音声モニタリング、マルチトラックルーティング、特殊な入力)、および音声アクティビティ検出に使用するリアルタイム音量メーターについて説明します。
音声制御
| 関数 | 説明 |
|---|---|
SetInputMute(Name, Muted) | 入力をミュート/ミュート解除する |
ToggleInputMute(Name) | ミュート状態を切り替える |
GetInputMute(Name) | 現在のミュート状態を取得する |
SetInputVolume(Name, VolumeDb) | デシベル単位で音量を設定する |
SetInputVolumeMultiplier(Name, VolumeMul) | 乗数(0.0 以上 1.0+)で音量を設定する |
GetInputVolume(Name) | 現在の音量を取得する |
AdjustInputVolume(Name, DeltaDb) | 音量を相対的に調整する |
GetInputList() | OBS から入力リストを更新する |
GetCachedInputs() | ローカルにキャッシュされた入力リストを取得する |
詳細音声制御
| 関数 | 説明 |
|---|---|
GetInputAudioBalance(Name) | ステレオバランスを取得する(非同期) |
SetInputAudioBalance(Name, Balance) | ステレオパンを設定する(0.0=左、0.5=中央、1.0=右) |
GetInputAudioSyncOffset(Name) | 同期オフセットをミリ秒単位で取得する(非同期) |
SetInputAudioSyncOffset(Name, OffsetMs) | 同期オフセットを設定する(-950〜20000ms) |
GetInputAudioMonitorType(Name) | モニタリング種別を取得する(非同期) |
SetInputAudioMonitorType(Name, Type) | モニタリング種別を設定する |
GetInputAudioTracks(Name) | 音声トラックのルーティング状態を取得する(非同期) |
SetInputAudioTracks(Name, Tracks) | 全トラック状態を設定する(1〜6) |
SetInputAudioTrack(Name, Track, Enabled) | 単一トラックの状態を設定する |
GetSpecialInputs() | デフォルト音声デバイスを取得する |
GetCachedSpecialInputs() | キャッシュ済みの特殊な入力を取得する |
RefreshAllAdvancedAudioInfo() | キャッシュ済み入力の詳細音声情報をすべて取得する |
音声バランス:
0.0= 完全に左0.5= 中央(デフォルト)1.0= 完全に右
同期オフセット:
- 範囲:
-950〜20000ms - 負の値 = 音声が早く再生される(処理遅延を補正)
モニタリング種別(EOBSMonitorType):
| 値 | 説明 |
|---|---|
None | モニタリングなし(デフォルト) |
MonitorOnly | OBS では聴こえるが、配信/録画には含まれない |
MonitorAndOutput | OBS でも聴こえ、配信/録画にも含まれる |
音声トラック:
- トラック 1〜6 をそれぞれ個別に有効化/無効化できます。
- マルチトラック録画(ゲーム音/マイク/Discord 音声を分離)に使用します。
- OBS の 設定 → 出力 → 録画 で出力トラックを設定してください。
音量メーターと音声アクティビティ
リアルタイムで入力ごとの音声レベルを取得します。これは高頻度のイベントであり、デフォルトでは無効です。必要な場合にのみ有効にしてください。
| 関数 / イベント | 説明 |
|---|---|
SetVolumeMetersEnabled(bEnable) | InputVolumeMeters イベントを有効にする(入力ごと、マルチチャンネルレベル) |
OnInputVolumeMeters | 入力ごとに FOBSInputVolumeMeter が発火し、線形乗数と換算後の dB 値、および最大チャンネルのピーク値を提供する |
GetClient()->GetAudio()->GetLastVolumeMeters() | イベントをバインドする代わりに、最新のメーターフレームをポーリングする |
SetInputActiveStateEventsEnabled(bEnable) + OnInputActiveStateChanged | 入力の映像アクティブ状態が変化した |
これらのメーターを利用した発話中/アイドル検出については、音声アクティビティ検出 を参照してください。
注: OBS はミュートされた入力の音声レベルを空として報告します。
音声 / 入力イベント
OnInputMuteStateChanged(InputName, bMuted): 入力のミュートが変化したOnInputVolumeChanged(InputName, VolumeDb, VolumeMul): 音量が変化したOnInputAudioBalanceChanged(InputName, InputUuid, Balance): ステレオバランスが変化したOnInputAudioSyncOffsetChanged(InputName, InputUuid, SyncOffsetMs): 同期オフセットが変化したOnInputAudioTracksChanged(InputName, InputUuid, AudioTracks): トラックルーティングが変化したOnInputAudioMonitorTypeChanged(InputName, InputUuid, MonitorType): モニタリング種別が変化したOnSpecialInputsReceived(SpecialInputs): デフォルト音声デバイスを取得したOnInputSettingsChanged(InputName, InputUuid): 入力設定が変更された(通知のみ)OnInputSettingsReceived(InputName, InputKind, Settings): 入力設定データを取得した(完全なデータあり)OnInputListUpdated: 入力リストが更新されたOnInputCreated(InputName, InputUuid, InputKind, UnversionedInputKind): 新しい入力が作成されたOnInputRemoved(InputName, InputUuid): 入力が削除されたOnInputNameChanged(InputUuid, OldInputName, NewInputName): 入力の名前が変更されたOnInputKindListReceived(InputKinds): 利用可能な入力の種類を取得した
すべての OBS ドメインにわたるイベントの完全なカタログは、イベントリファレンス を参照してください。