Linuxでマイクが動作しない場合:テスト方法と解決策
Microphone-Test.org ·

Linux では、マイクが動作しない場合、故障しているよりもミュートされているケースの方がはるかに多いです。多くのディストリビューションでは、ALSAのキャプチャチャンネルが無効化された状態で提供されているため、カプセル自体は動作しているものの、ドライバが何も転送していない状態になります。残りのケースのほとんどは、デフォルトのソース設定が間違っているか、アプリがサンドボックスに閉じ込められていることが原因です。信号は、ALSAカーネルドライバ、PipeWireまたはPulseAudio、そしてアプリケーション本体という、階層化されたスタックを順に通過します。どの層でも信号が途切れる可能性があり、その結果は常に同じ「無音」となります。適切な対処法は、どの層でブロックが発生しているかに完全に依存します。このガイドでは、その層を特定し、グラフィカルな手順とターミナルでの手順の両方を使って修復します。まず、簡単なマイクテストまたはデスクトップの入力メーターを使用して、ハードウェアに問題がないか確認してください。次に、お使いのディストリビューションがPipeWireを実行しているか、それともPulseAudioを実行しているかを確認してください。以下のコマンドは、その回答に応じて分岐するためです。
Linux マイクが動作しない場合のクイック修正チェックリスト
| ✓ | 当サイトのマイクテスト、またはデスクトップのサウンド入力メーターでテストしてください。 |
| ✓ | alsamixer でCaptureチャンネルのミュートを解除し、レベルを上げてください。 |
| ✓ | pavucontrol(PipeWire では wpctl)で正しい入力ソースを設定してください。 |
| ✓ | ユーザーがオーディオグループに所属していることを確認してください。 |
| ✓ | オーディオを再起動してください:systemctl --user restart pipewire pipewire-pulse または pulseaudio -k。 |
Linuxのマイクを1分以内にテストする方法
設定を変更する前に、マイクが音声を拾っていることを確認してください。「信号なし」の場合の対処法と、「信号はあるが、相手に声が聞こえない」場合の対処法は全く異なります。ライブ入力メーターは、あなたの声にリアルタイムで反応するため、最も迅速かつ正確な結果が得られます。録音して再生を繰り返す操作では、デバイス選択のミスが隠れてしまう可能性があるため、まずはメーターを確認することから始めましょう。当社のオンラインマイクテストを開き、ブラウザからアクセス許可を求められたら許可してください。その後、普段通りに話してみてください。話している間にレベルインジケーターが動けば、マイク、ドライバー、サウンドサーバーのすべてに問題はありません。その場合、問題はより上位のルーティングや特定のアプリにあると考えられます。メーターが動かない場合は、信号が遮断されているか、間違った入力が選択されています。
デスクトップ環境でも、マイクはネイティブに利用可能です。GNOMEでは、設定 › サウンド › 入力を開き、お使いのデバイスを選択してください。話すと入力レベルバーが動くはずです。KDE Plasmaでは、システム設定 › オーディオを開き、録音デバイスの横にあるメーターを確認してください。ここでバーが動くにもかかわらず、アプリで音が聞こえない場合を想定します。この場合、不具合がシステム全体ではなく特定のアプリに起因することが確認できたため、以下の「ルーティング」および「権限」のセクションに進んでください。以下の表は、デスクトップ上でマイクが表示されるグラフィカルな場所と、それぞれの表示が何を意味するかをまとめたものです。
| 確認すべき場所 | パス | 確認できる内容 |
| GNOME 入力メーター | 設定 › サウンド › 入力 | システムが信号を受信しているかどうか、およびどのデバイスからの信号か |
| KDE オーディオパネル | システム設定 › オーディオ | アクティブな録音デバイスと、アプリごとのルーティング |
| 音量調節 | pavucontrol › 入力デバイス | ミュート状態、ゲイン、および選択されたハードウェアポート |
| 「録音」タブ | pavucontrol › 録音 | どのアプリがどのデバイスからリアルタイムでキャプチャするか |
トラブルシューティングを行う前に、お使いのサウンドサーバーについて理解しておきましょう
Linux オーディオは階層構造になっており、適切な修正方法はどの層に問題があるかによって異なります。最下層には、サウンドカードと通信するカーネルレベルのドライバであるALSAがあります。その上層では、ストリームをミックスし、アプリ間でルーティングするサウンドサーバーが動作しています。主に2つのサーバーが使用されています。最新のディストリビューションには、PipeWireが同梱されています。Fedoraが最初に採用し、Ubuntuもバージョン22.10以降、デフォルトでこれを使用しています。PipeWireでは、pipewire-pulseと呼ばれる互換性レイヤーが動作しているため、古いツールも変更なしで動作します。古いリリースや一部の保守的な環境では、依然としてPulseAudioが動作しています。どちらのサーバーもALSAの上に構築されており、ALSAでチャンネルをミュートすると、どちらのサーバーの音も消音されます。
間違ったツールで時間を無駄にしないよう、まずご利用のサーバーを確認してください。ターミナルで wpctl status を実行してください。シンクとソースのリストがきれいに表示されれば、PipeWire がアクティブであることを意味します。コマンドが表示されない場合は、PulseAudio を利用している可能性が高いため、pactl info で確認してください。コマンドが異なるため、この確認は重要です。PipeWire は wpctl で制御されますが、PulseAudio では pactl が使用されます。グラフィカルツールである pavucontrol は、pipewire-pulse が同じ呼び出しに応答するため、どちらでも動作します。以下の表に、主要なツールとその機能の概要をまとめました。
| ツール | 種類 | 機能 |
| pavucontrol | グラフィカル | 入力のミュートを解除し、ゲインを設定し、ポートを選択し、アプリごとの録音ルートを表示します |
| alsamixer | ターミナル(TUI) | ALSAカードのローレベル制御を行います:キャプチャのミュート、キャプチャの有効化、およびハードウェアゲインの調整 |
| arecord / aplay | ターミナル | キャプチャデバイスを一覧表示し、ALSAを介してファイルを直接録音または再生します |
| wpctl | ターミナル | PipeWireのデバイスを一覧表示し、デフォルトのソースを設定し、ミュートまたはミュート解除を行います |
正常に動作しているマイクが、なぜLinuxで音が出なくなるのか
ALSAのキャプチャチャンネルがミュートされていることが、最大の原因です
ALSA 各キャプチャチャンネルは個別に制御されており、そのうちの1つが他のすべてよりも低いレベルでミュートされている可能性があります。そうなると、ソフトウェアの音量をどれだけ上げても、デスクトップのメーターはゼロのままになります。この単一の要因が、ハードウェアの不具合よりも多くの「故障」と見なされるLinuxマイクの原因となっています。落とし穴は、グラフィカルミキサーからはこの状態が見えないことが多いという点です。この問題を解決するには、サウンドカードの生データを直接操作できるターミナルミキサーalsamixerを使用します。これを起動し、F6を押してサウンドカードを選択してください。F4を押してキャプチャビューに切り替えます。矢印キーでCaptureチャンネルを選択します。バーの下にMMと表示されている場合はミュートされていますので、Mキーを押してミュートを解除してください。また、キャプチャチャンネルは「アーム」状態にしておく必要があります。選択した項目でスペースキーを押し、赤色のCAPTUREと表示されるまで待ち、上矢印キーでレベルを上げてください。多くのノートパソコンでは、ここにInternal Mic Boostコントロールも表示されますが、工場出荷時はゼロに設定されています。これを上げると、機能していないように見えたマイクが復活することがあります。
誤ったデフォルトのソースとルーティングの不具合
サウンドサーバーはデフォルトのソースを選択しますが、必ずしも希望するソースが選ばれるとは限りません。USBヘッドセット、内蔵マイク付きウェブカメラ、またはHDMIキャプチャデバイスを接続すると、サーバーが即座にそれらを優先的に選択してしまう場合があります。ルーティングのエラーは、個々のアプリ内部にも潜んでいます。PipeWireやPulseAudioでは、ストリームごとに設定することで、各プログラムが異なるデバイスから録音できるようになっています。そのため、あるアプリが何も出力しないソースを指定していても、システムのデフォルト設定は正常に機能している可能性があります。pavucontrolの録音タブでは、現在キャプチャを行っているすべてのアプリと、それらが使用しているデバイスが一覧表示され、この状況が直接確認できます。あるプログラムではマイクが機能するのに、別のプログラムでは機能しない場合は、まずルーティングに問題がないか疑ってみてください。Bluetoothヘッドセットは、さらに複雑な要素を加えます。高品質なA2DPプロファイルのヘッドセットには、マイクがまったく搭載されていません。ブームマイクが機能するには、システムがHSP/HFPプロファイルに切り替える必要がありますが、その際に音質が低下します。
権限、グループ、およびサンドボックス化されたアプリ
アクセス制御により、エラーメッセージが表示されない形でマイクへのアクセスがブロックされることがあります。従来、ユーザーがサウンドデバイスにアクセスするには、audioグループに所属している必要がありました。最近のデスクトップ環境の多くはセッションを通じてこれを処理していますが、最小構成やサーバーインストールでは依然としてこの要件が必要となる場合があります。サンドボックス化は、より新しく、より大きな問題です。FlatpakまたはSnapとしてパッケージ化されたアプリケーションは、コンフィネメント層内で実行されます。この層は、システムの他の部分が正常に動作していても、マイクへのアクセスを拒否することがあります。その場合、アプリにはエラー表示なしに無音状態が返されます。これらの権限の確認や付与は、Flatseal、Flatpakポータルのグラフィカルエディタ、またはターミナルからflatpak permissionsコマンドを使用して行います。ブラウザは、その上に独自のレイヤーを追加します。サイトは、システムの状態にかかわらず、ブラウザ内で許可されている必要があります。FirefoxおよびChromeに関するガイドでは、このブラウザ内でのプロンプトについて詳しく解説しています。
最も一般的な原因から順に解決する方法
以下の修正手順を順番に試してください。いきなり劇的な対策に飛びつかないでください。この順序には意図があります。これにより、混乱を最小限に抑えつつ、まず最も多くのケースを解決できます。ミュート解除とルーティングの設定が組み合わさることで、Linuxのマイク不具合の大部分が解決されます。その後に初めて、サウンドサーバーの再起動へと手順を進めます。各変更を行うたびに、マイクテストまたはデスクトップの入力メーターに戻ってください。次の手順に進む前に信号があるか再確認することで、どの手順が効果をもたらしたかを常に把握できるようになります。
pavucontrol を使用したミュート解除とルーティング
まず、pavucontrolをインストールして起動してください。このツールを使えば、最も一般的な不具合をグラフィカルに解決できます。入力デバイスタブに移動し、お使いのマイクを探して、レベルバーの横にあるミュートボタンがオンになっていないことを確認してください。入力音量が低い場合は、音量を上げてください。ノートパソコンでは、1つのデバイスとして内蔵マイクとヘッドセットジャックの両方が表示されることが多いため、ポートドロップダウンを確認してください。次に、アプリを起動した状態で録音タブを開きます。一覧に表示されている各アプリの右側に、デバイス選択画面があります。動作しないアプリで、正しいマイクを明示的に指定してください。この再割り当てを行うだけで、「ここ以外では動作する」という多くの報告が解決されます。会議アプリにも独自のセレクターがあるため、アプリ内でもデバイスを設定してください。ZoomおよびDiscordに関するガイドでは、これらのパネルについて順を追って解説しています。
alsamixerでキャプチャを有効にし、ターミナルからテストしてください
グラフィカルミキサーのメーターが平坦な状態になったら、alsamixer に切り替えてください。前述のミュート解除とキャプチャ有効化の手順に従ってください。サウンドカードについては F6、キャプチャについては F4 を参照し、その後、キャプチャチャンネルで M キーとスペースキーを押してください。チャンネルがアームされた状態で、ALSA を通じてハードウェアパスを直接確認してください。arecord -l を実行して、カーネルが認識しているすべてのキャプチャデバイスを一覧表示させてください。ここでマイクが表示されない場合は、設定の問題ではなく、ドライバまたは接続の問題です。表示される場合は、短い音声を録音し、arecord -d 5 test.wav && aplay test.wav で再生してみてください。自分の声が聞こえれば、ALSA パスが機能していることが確認でき、不具合の原因がサーバーまたはアプリに絞り込まれます。PipeWireでは、wpctl status を実行してソースIDを読み取り、その後、wpctl set-default <id> および wpctl set-mute <id> 0 を実行してください。
メーターが動かない状態が続いたら、サウンドサーバーを再起動してください
チャンネルのミュートが解除され、正しいソースが選択されているにもかかわらず、メーターが依然として動かない場合、サウンドサーバーが固まっている可能性があります。これは、サスペンド後、USBインターフェースのホットスワップ後、またはドライバーの更新後に発生することが知られています。サーバーを再起動すると、再起動することなくオーディオグラフ全体が再構築されます。PipeWire では、systemctl --user restart pipewire pipewire-pulse wireplumber を実行してください。PulseAudio では、pulseaudio -k を実行すると、デーモンが自動的に再起動します。この際、音が一時的に途切れることがあります。これは、スタックがフリーズした際のリセットボタンとして扱ってください。日常的な手順ではありません。以下の表は、一般的な症状とその通常の原因、および最も迅速な対処法をまとめたものです。
| 症状 | 考えられる原因 | 対処法 |
| デスクトップのメーターがすべてのデバイスで平坦になる | ALSA でキャプチャチャンネルがミュートされている | alsamixerでキャプチャのミュートを解除し、キャプチャを有効にしてください(Mキーを押してからスペースキーを押します) |
| あるアプリでは動作するが、別のアプリでは動作しない | アプリごとのルーティング先が間違っている | pavucontrol › 録音 でデバイスを再割り当てしてください |
| ヘッドセットを接続後、マイクが機能しなくなる | デフォルトのソースが新しいデバイスに移動しました | wpctl set-default または pavucontrol でソースを設定してください |
| Bluetoothヘッドセットのマイクが認識されない | デバイスが A2DP プロファイルになっています | pavucontrolのプロファイル一覧で、HSP/HFPに切り替えてください |
| 1つのアプリだけが無音になる | FlatpakまたはSnapのサンドボックスがマイクをブロックしている | Flatsealまたはflatpak permissions経由でアクセス権を許可してください |
| 再起動のたびにのみ信号が戻る | サスペンド後にサウンドサーバーが固まってしまう | pipewire と wireplumber を再起動するか、pulseaudio -k を実行してください |
Linuxのマイクを安定して動作させるには
マイクが復旧した後も正常に動作し続けるための習慣がいくつかあります。PipeWire および WirePlumber では、ルーティングや Bluetooth に関する修正が頻繁に提供されるため、システムを最新の状態に保ってください。使用したいマイクをデフォルトのソースとして固定しておくと、新しく接続されたヘッドセットが知らぬ間にそのスロットを奪うのを防げます。Flatpakの権限を時々確認し、マイクへのアクセスを必要とするアプリにのみ許可を与えてください。マイクをブラウザ、デスクトップアプリ、ターミナルのすべてで動作させる必要がある場合は、それぞれの環境で動作確認を行ってください。arecordでは問題なく録音できても、その上のレイヤー(サンドボックスやブラウザタブ内)でブロックされる場合があります。また、動作はディストリビューションやデスクトップ環境によって異なるため、Fedoraでの修正方法がUbuntuでは別のメニューにある可能性があります。マシンを切り替える場合は、当サイトのChromebookガイドで、ChromeOSにおける同様の確認手順をご参照ください。
よくある質問
自分のシステムが PipeWire を使用しているのか、それとも PulseAudio を使用しているのか、どうすればわかりますか?
ターミナルでwpctl statusを実行してください。シンクとソースの一覧が表示されれば、PipeWire が動作しています。コマンドが見つからない場合は、pactl infoを実行し、Server Nameの行を確認してください。Fedora および Ubuntu 22.10 以降では、デフォルトで PipeWire が使用されます。それ以前のリリースでは PulseAudio が使用されます。
arecord ではマイクが動作しますが、アプリ内では動作しません。なぜでしょうか?
arecordでの録音に成功しているということは、ALSAのハードウェアパスに問題がないことを示しています。問題はサウンドサーバーまたはアプリ側にあります。pavucontrolの録音タブを開き、アプリで正しい音源を指定してください。アプリがFlatpakである場合は、Flatsealでそのアプリのマイクへのアクセス権限を確認してください。
Bluetoothヘッドセットのマイクが表示されないのはなぜですか?
高音質A2DPモードではマイクが利用できません。ヘッドセットのブームマイクを使用するには、HSPまたはHFPプロファイルに切り替える必要があります。pavucontrolを開き、「設定」またはプロファイル一覧から該当するデバイスを見つけ、ヘッドセットのプロファイルを選択してください。この操作を行うと、音質が低下する可能性があります。
端末からマイクのミュートを解除するにはどうすればよいですか?
ALSA では、alsamixer を開き、F4 を押してキャプチャビューを表示し、Captureを選択して、M キーを押すとミュートが解除されます。PipeWire では、wpctl status でソース ID を確認し、wpctl set-mute <id> 0 を実行してください。ALSA のキャプチャチャンネルがミュートされていることが、入力が聞こえない最も一般的な原因です。
再起動せずにLinuxのオーディオを再起動するにはどうすればよいですか?
PipeWireでは、systemctl --user restart pipewire pipewire-pulse wireplumberを実行してください。PulseAudioでは、pulseaudio -kを実行すると、デーモンが自動的に再起動します。サーバーがグラフを再構築している間、音声が1秒間途切れます。この操作は、ミュート解除やルーティングの確認が失敗した場合にのみ行ってください。
マイクをテスト
マイクをテスト →