Ubuntuでの音が出ない問題を修正する方法

Ubuntuの音声設定

Ubuntuをインストールしたり、新しいバージョンにアップグレードした後に多くのユーザーが直面する問題は、音声の問題、具体的には「音が出ない」問題です。これはさまざまな理由で発生する可能性があります。時にはスピーカー設定の誤設定に関連しているか、ハードウェアが十分にサポートされていない場合もあります。

ほとんどの人にとって、これは通常かなり簡単に解決できる問題です。これは、ほとんどの問題がシステム上で実行されているサービスの問題から生じるためです。この記事では、試すことができるいくつかの簡単な修正方法を紹介します。すべてを試す必要はありません。リストの最上部から始めて、下に進んでいきましょう。

目次

  • PulseAudio用のボリュームコントロールをインストールする
  • スピーカー設定を確認する
  • ALSAミキサーを確認する
  • ALSAを再読み込みする
  • ALSAとPulseAudioを再インストールする
  • 高度なトラブルシューティング
  • よくある質問

さらに読む: Linuxでファイルを簡単にリネームする方法

PulseAudio用のボリュームコントロールをインストールする

PulseAudioは、Ubuntuおよびいくつかの他のディストリビューションのデフォルトの音声サービスです。オープンソースであり、一般的に信頼性が高く、ALSAおよびOSSドライバーと連携して、システムが生成する音声信号がスピーカーに送信されることを保証します。

Ubuntuの音が出ない Pavucontrol

ただし、アプリケーションやデスクトップ環境にはPulseAudio用の独自のボリュームコントロールが付属していますが、それはそれほど詳細ではなく、各再生ストリームを個別に制御することはできません。Pavucontrolを使用すると、PC上の各オーディオデバイスをより詳細に制御できるため、スライダーを調整してスピーカーやヘッドフォンの音量が適切に設定されていることを確認できます。

pavucontrolをインストールするには、ターミナルを開いて次のコマンドを入力します:

pulseaudio --start  
sudo apt install pavucontrol

その後、ターミナルからpavucontrolを実行するか、デスクトップ環境のランチャーメニューで「PulseAudioボリュームコントロール」を検索します。「出力デバイス」タブに移動し、デフォルトのスピーカーが選択されていることを確認します。

スピーカー設定を確認する

Ubuntuマシンで音声の問題が発生している場合、最初に確認する必要があるのは、ヘッドフォンやスピーカーの接続に問題がないかです。オーディオケーブルが間違ったポートに接続されているか、全く接続されていない可能性があります。

Bluetoothデバイスを使用している場合は、正しくペアリングされているか確認してください。デバイスの音量コントロールを確認して、許容レベルに設定されていることを確認することも忘れないでください。また、コンピュータの出力音量がミュートされていないこと、正しい出力デバイスが選択されていることも確認してください。

ubuntu-sound-issue-1

さらに読む: ターミナルからLinuxオーディオを管理するためのALSAユーティリティの使用方法

ALSAミキサーを確認する

PulseAudioは内部でALSAを使用しており、これはサウンドデバイスを直接制御するカーネルモジュールです。ALSAレベルの音量をより詳細に制御する必要がある場合は、以下の手順に従ってください:

  1. ターミナルを開きます。
  2. alsamixerと入力してEnterキーを押します。ターミナルに次の出力が表示されます。

ubuntu-sound-issue-2

  1. F6を押して正しいサウンドカードを選択します。私の場合、デフォルトでうまくいきますが、うまくいかない場合は他のオプションを試してみてください。
  2. 左矢印キーと右矢印キーを使用して音量コントロールを選択します。現在選択されている項目は、下部に赤で表示されます。
  3. 上矢印キーと下矢印キーを使用して、各コントロールの音量レベルを増減します。
  4. ミキサーコントロールがミュートされている場合、音量バーの下に「MM」と表示されます。バーが100%満杯でもミュートされている可能性があるため、これを確認してください。mキーを押すことでコントロールのミュートを解除できます。これにより「MM」が「OO」に変わります。
  5. alsamixerを終了するには、Escキーを押します。

注意: コントロールをミュートまたはミュート解除すると、pulseaudioがそれを検知し、他のコントロールもミュートまたはミュート解除する可能性があります。終了する前に、関連するコントロールとマスターコントロールがミュート解除されていることを確認してください。

ALSAを再読み込みする

音声の問題が解決しない場合に試すことができるもう一つの方法は、ALSAを再読み込みすることです。そのためには、ターミナルで次のコマンドを使用します:

sudo alsa force-reload

出力は次の画像のようになります。

ubuntu-sound-issue-3

完了したら、音声がまだ動作しない場合は、次を試してください。

pulseaudio -k&& pulseaudio -D

ALSAを再読み込みした後、pulseaudioがモジュールが再読み込みされたことを認識しない場合、音声に問題が生じる可能性があります。

音声がまだ出ない場合は、次の一回限りのALSAコマンドを直接試してください:

alsactl restore

さらに読む: Linuxでサブウーファーが動作しない?これらのトリックを試してみてください!

ALSAとPulseAudioを再インストールする

上記の方法で問題が解決しない場合は、ALSAとPulseAudioを次のように再インストールしてみてください。ターミナルを開き、次のコマンドを入力します:

sudo apt remove --purge alsa-base pulseaudio  
sudo apt install alsa-base pulseaudio

再度ALSAを再読み込みし、コンピュータを再起動します。

さらに読む: Ubuntuで上部バーとサイドパネルを隠す方法

高度なトラブルシューティング

すべてがうまくいかない場合、音声を適切にトラブルシューティングするためには、少し手を汚して高度なトラブルシューティングに入る必要があります:

出力がALSAをトリガーするがPulseAudioをトリガーしない可能性

最終的に、PulseAudioが出力をミュートすると、ALSAが何を言っても関係ありません。デバイスに出力される音声はALSAを通じて処理されますが、PulseAudioを通じて提供されることはありません。

これを回避するために、マスターボリュームがシフトしたときにALSAがPulseAudioに話しかけるように強制する必要があります。

amixer -D pulse sset Master toggle

音量がALSAとしか相互作用できないデバイスも、PulseAudioと相互作用します。

それは単なるアプリケーションではないと確信していますか?

不具合のあるアプリケーションは、あなたが思っている以上に驚くような方法で問題を引き起こす可能性があります。それは、あなたが開いていないアプリケーションである可能性すらあります!

オーディオコントロールを使用しているすべてのものを確認するには、次のように入力します:

pacmd list-sink-inputs

より詳細に調べたい場合は、次のように入力します:

pacmd list-sink-inputs |grep application.name

私の場合、画像のように、Firefoxだけが聞いているものです。ターミナルで出力を絞り込むためにgrepを使用した場合は、元のコマンドを再度使用し、「muted:」、「index:」、「volume:」の値に注意してください。

アプリケーション内で音量が設定されていても、ミュートされているかゼロ音量である可能性があります!

ミュートされたアプリケーションを修正するには、次のように入力します(application_indexを「index:」で見つけたインデックス番号に置き換えます):

pacmd set-sink-input-mute application_index false

異常に低い音量のアプリケーションを修正するには、次のように入力します:

pacmd set-sink-input-volume application_index 0x10000

サスペンド/スリープから復帰後に音声が出ない

時々、PulseAudioはコンピュータの他の部分と一緒に目を覚ます気分ではないことがあります。この場合、次のコマンドを実行すると、音声が復活します。

pasuspender /bin/true

しかし、あまり興奮しないでください。これは、再起動やサスペンド/スリープ後には持続しません。この問題を永続的に解決するために、このミニガイドに注意深く従ってください:

  1. ターミナルで次のように入力します。
sudotouch/etc/systemd/system/[email protected]

systemdサービスマネージャファイルを作成します。

  1. 編集のためにファイルを開きます:
sudonano/etc/systemd/system/pulseaudio-sleep-fix.service

これを貼り付けます(ターミナルでの貼り付けはCtrl + Shift + V):

[Unit]  
Description=サスペンドから復帰後のPulseAudioの修正  
After=suspend.target  
  
[Service]  
User=%I  
Type=oneshot  
Environment="XDG_RUNTIME_DIR=/run/user/%U"  
ExecStart=/usr/bin/pasuspender /bin/true  
  
[Install]  
WantedBy=suspend.target
  1. Ctrl + Xを押して終了し、変更したバッファを保存するかどうかのプロンプトでYを押します。
  2. 次のように入力して、これをsystemdサービスとして登録します。
sudo systemctl enable pulseaudio-sleep-fix@your_username.service

your_usernameを適切な値に置き換えることを忘れないでください。

Timidityを実行していますか?

Ubuntuでtimidityパッケージを実行している場合(apt search timidityを実行して、適切なエントリの最後に[installed]があるか確認)、音声処理の奇妙な方法のためにPulseAudioを実行する際に問題が発生する可能性があります。

timidityを正しく実行するには、まず自動起動に追加し(GNOMEのようなデスクトップ環境では「スタートアップアプリケーション」と呼ばれることがあります)、アプリケーションを実行するコマンドを次のように変更します:

timidity -iA-Os

さらに進めて、次のように入力してrootをpulse-accessグループに追加します。

sudo usermod -a-G pulse-access root

再起動すると、音声が正常に動作するはずです。それでも失敗する場合は、手の届く範囲での唯一の他の解決策は、Ubuntuからtimidityを削除することです。

これで、サスペンドから復帰したときにのみ実行されるサービスが作成され、仕事が終わるとすぐにシャットダウンして、無駄を避けることができます。

よくある質問

1. ALSAを削除してPulseAudioを保持できますか?

ここでは非常に注意が必要です!PulseAudioは動作するためにカーネルレベルのオーディオモジュールを必要とします。ALSAを他のカーネルで動作するもの(Open Sound Systemなど)に置き換える予定がある場合は、どうぞそれを行ってください。このプロセスは、ネットワーク用のRealtekカーネルモジュールを置き換えるよりも少し複雑であるため、問題を解決するのに非常に長い時間がかかる可能性があることを認識してください。

2. PulseAudioには代替品がありますか?

はい!PulseAudioの最も人気のある(そしてデスクトップを使用する場合に最も実行可能な)代替品はPipeWireです。Bluetoothデバイスの統合サポートが向上し、PulseAudioの不安定なサンプリングおよびポストプロセッシングの処理方法を改善します。多くのディストリビューションが現在公式リポジトリで利用可能にしており、最近の数年間でその安定性が大幅に向上しています。

ただし、オーディオに関してよりプロフェッショナルなセットアップを望む場合は、JACKのようなものを選択することをお勧めします。

3. PulseAudioを他のサービスと一緒に実行できますか?

一部のサービスには、PulseAudioと連携するためのライブラリやセットアップオプションがありますが、システム上で同時に1つのサービスに留まることを強くお勧めします。ほとんどのサービスは、システムのアプリケーションに対してPulseAudioと競合し、予測不可能な動作を引き起こす可能性があります。他のサービスは、PulseAudioを完全に削除しない限り、まったく機能しない場合があります。(PipeWireはpipewire-pulseサービスを使用し、pulseaudioを置き換えます。)

ここで提供したアドバイスが、Ubuntuで音声を再び動作させる手助けとなり、オペレーティングシステムを再び楽しむことができるようになることを願っています。Linuxでウェブサイトをアプリに変換し、Androidフォンの画面をLinuxにキャストすることを試みたことはありますか?