WindowsでYouTubeやゲームの音声を聞いている時、「スピーカー」と「ヘッドホン(またはモニター)」の間で出力先が高速で切り替わり、通知が連打されたり音がブツブツ途切れたりする現象に遭遇したことはありませんか?
これはWindowsのオーディオサービスがバグを起こしているか、複数のデバイスが競合している時によく起こります。
今回は、このストレスフルな問題をPowerShell一発で強制的に直す方法と、再発を防ぐ設定を紹介します。
方法1:PowerShellで音声サービスを強制リセットする(推奨)
一時的なバグであれば、PCを再起動せずとも**「音声関連のプロセス」だけを再起動**すれば直ります。手動でやると手間がかかるため、以下のコマンドを使って一瞬で完了させましょう。
手順
- スタートメニューで「PowerShell」と検索し起動します。
- 以下のコードをコピーして貼り付け、Enterキーを押します。
(管理者権限を要求するウィンドウが出たら「はい」を押してください)
Start-Process powershell -Verb RunAs -ArgumentList '-NoExit -Command "
Write-Host ''[1/3] 音声サービスを停止しています...'' -ForegroundColor Yellow;
Stop-Service Audiosrv -Force -ErrorAction SilentlyContinue;
Stop-Service AudioEndpointBuilder -Force -ErrorAction SilentlyContinue;
Write-Host ''[2/3] 音声プロセス(audiodg)をリセットしています...'' -ForegroundColor Yellow;
Get-Process audiodg -ErrorAction SilentlyContinue | Stop-Process -Force;
Write-Host ''[3/3] 音声サービスを再起動しています...'' -ForegroundColor Green;
Start-Service AudioEndpointBuilder;
Start-Service Audiosrv;
Write-Host ''完了しました。音声が正常に戻ったか確認してください。'' -ForegroundColor Cyan;
"'
これが行っていること:
- AudioEndpointBuilder / Audiosrv: Windowsの根幹となる音声サービスを再起動しています。
- audiodg.exe: 音響効果を処理するプロセスで、これがバグの原因になることが多いため強制終了(リセット)させています。
方法2:使わないデバイスを「無効化」する(恒久対策)
上記のスクリプトで直らない、またはすぐに再発する場合は、**「使っていないのにPCが認識しているデバイス(特にモニター)」**が悪さをしています。Windowsがどっちに出力すべきか迷わないように設定します。
- 「Windowsキー + R」 を押します。
-
mmsys.cplと入力してEnter(サウンド設定が開きます)。 - 「再生」タブを見ます。ここで、音が高速で切り替わっている2つのデバイスを見つけます。
- **使わない方(例:音を出さないモニターなど)を右クリックし、「無効化」**を選択します。
これで物理的に選択肢が消えるため、勝手に切り替わることがなくなります。
方法3:排他モードをオフにする
Discordや特定のゲームがデバイスの主導権を奪い合っているケースです。
- 先ほどの
mmsys.cplの画面を開きます。 - 普段使っているスピーカー/ヘッドホンを右クリックして**「プロパティ」**へ。
- 「詳細」タブを開き、「アプリケーションによりこのデバイスを排他的に制御できるようにする」のチェックを外します。
- PCを再起動します。
まとめ
- とりあえず今すぐ直したい → 方法1のPowerShellスクリプト
- 何度も再発する → 方法2でモニター等の不要な出力を無効化
この現象はGPUのドライバアップデート時(NVIDIAやAMDなど)によく発生するため、スクリプトをメモ帳に保存して .ps1 ファイルにしておくと便利です。