「PulseAudio」の版間の差分
細 (関連項目へPipeWireの追加) |
|||
(5人の利用者による、間の18版が非表示) | |||
1行目: | 1行目: | ||
− | [[Category: |
+ | [[Category:マルチメディア]] |
[[Category:サウンド]] |
[[Category:サウンド]] |
||
[[cs:PulseAudio]] |
[[cs:PulseAudio]] |
||
9行目: | 9行目: | ||
[[ru:PulseAudio]] |
[[ru:PulseAudio]] |
||
[[tr:PulseAudio]] |
[[tr:PulseAudio]] |
||
− | [[zh- |
+ | [[zh-hans:PulseAudio]] |
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|PulseAudio/サンプル}} |
{{Related|PulseAudio/サンプル}} |
||
{{Related|PulseAudio/トラブルシューティング}} |
{{Related|PulseAudio/トラブルシューティング}} |
||
+ | {{Related|PipeWire}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
− | [[Wikipedia:ja:PulseAudio|PulseAudio]] は |
+ | [[Wikipedia:ja:PulseAudio|PulseAudio]] は、[[ALSA]] や [[OSS]] を用いてアプリケーションとハードウェアデバイスの間でミドルウェアとして動作することを目的とした汎用サウンドサーバーです。また、[[Avahi]] を有効にするとことで、ローカルデバイス間で簡単にネットワークストリーミングを行うことができます。主な目的はオーディオの設定を簡単にすることですが、そのモジュール設計により、より高度なユーザが自分のニーズに合わせてデーモンを設定することができます。 |
+ | |||
+ | {{Note|[[ALSA]]と PulseAudio の間に若干の混乱が生じるかもしれません。ALSA には、サウンドカードドライバを含む Linux カーネルコンポーネントと、ユーザ空間コンポーネントの {{ic|libasound}} があります。[https://www.alsa-project.org/main/index.php/Download] PulseAudio はカーネルコンポーネントのみをベースにしていますが、{{pkg|pulseaudio-alsa}} によって {{ic|libasound}} との互換性を提供しています。[https://www.freedesktop.org/wiki/Software/PulseAudio/FAQ/#index14h3]}} |
||
== インストール == |
== インストール == |
||
+ | {{Pkg|pulseaudio}} パッケージをインストールしてください。 |
||
− | * 必要なパッケージ: {{Pkg|pulseaudio}} |
||
− | * 任意の GTK の GUI: {{Pkg|paprefs}} と {{Pkg|pavucontrol}} |
||
− | * キーボードを使う任意のボリュームコントロール: {{AUR|pulseaudio-ctl}} |
||
− | * 任意のコンソール (CLI) ミキサー: {{Pkg|ponymix}} と {{AUR|pamixer-git}} |
||
− | * 任意のコンソール (curses) ミキサー: {{AUR|pulsemixer-git}} |
||
− | * 任意のウェブボリュームコントロール: [https://github.com/Siot/PaWebControl PaWebControl] |
||
− | * 任意のシステムトレイアイコン: {{AUR|pasystray-git}} |
||
− | * 任意の KDE4 plasma アプレット: {{Pkg|kdemultimedia-kmix}} と {{AUR|kdeplasma-applets-veromix}} (起動時に KMix/Veromix が PulseAudio に接続されない場合 {{ic|/etc/pulse/client.conf}} を編集して {{ic|autospawn = no}} を {{ic|autospawn = yes}} に置き換えて下さい) |
||
− | * 任意の KF5 plasma アプレット: {{Pkg|kmix}} |
||
− | * Bluetooth ヘッドセットなどの Bluetooth のオーディオデバイスを PulseAudio で使いたい場合 [[Bluetooth ヘッドセット]]の記事を見て下さい。 |
||
+ | PulseAudio のモジュールの中にはメインのパッケージと [https://www.archlinux.jp/news/pulseaudio-split/ 分割] されているものがあり、必要に応じてインストールする必要があります: |
||
− | === PulseAudio モジュール === |
||
+ | * {{Pkg|pulseaudio-alsa}} PulseAudio で [[ALSA]] を管理、こちらも参照 [[#ALSA]] |
||
+ | * {{Pkg|pulseaudio-bluetooth}}: Bluetooth (Bluez) のサポート |
||
+ | * {{Pkg|pulseaudio-equalizer}}: イコライザー sink (qpaeq) |
||
+ | * {{Pkg|pulseaudio-jack}}: JACK sink, source, jackdbus 検知 |
||
+ | * {{Pkg|pulseaudio-lirc}}: 赤外線 (LIRC) ボリュームコントロール |
||
+ | * {{Pkg|pulseaudio-zeroconf}}: Zeroconf (Avahi/DNS-SD) のサポート |
||
+ | {{Note|[[ALSA]] と PulseAudio についてはややこしい部分があります。ALSA にはサウンドカードドライバーの Linux カーネルコンポーネントと、ユーザー空間のコンポーネントである {{ic|libalsa}} の両方が含まれています [http://www.alsa-project.org/main/index.php/Download]。PulseAudio はカーネルコンポーネントのみで作られますが、{{Pkg|pulseaudio-alsa}} によって {{ic|libalsa}} との互換性も取られています [https://www.freedesktop.org/wiki/Software/PulseAudio/FAQ/#index14h3]。}} |
||
− | PulseAudio のモジュールの中にはメインのパッケージと [https://www.archlinuxjp.org/news/pulseaudio-split/ 分割] されているものがあり、必要に応じてインストールする必要があります。 |
||
+ | |||
+ | === フロントエンド === |
||
+ | |||
+ | PulseAudio デーモンを制御するための様々なフロントエンドが存在します: |
||
+ | |||
+ | * GTK の GUI: {{Pkg|paprefs}} と {{Pkg|pavucontrol}} |
||
+ | * キーボードキーによるボリュームコントロール: {{AUR|pulseaudio-ctl}} |
||
+ | * コンソール (CLI) ミキサー: {{Pkg|ponymix}} と {{Pkg|pamixer}} |
||
+ | * コンソール (curses) ミキサー: {{AUR|pulsemixer-git}} |
||
+ | * ウェブボリュームコントロール: [https://github.com/Siot/PaWebControl PaWebControl] |
||
+ | * システムトレイアイコン: {{AUR|pasystray-git}} |
||
+ | * KF5 plasma アプレット: {{Pkg|kmix}} and {{Pkg|plasma-pa}} |
||
+ | * Bluetooth ヘッドセットや他の Bluetooth 音声デバイスを PulseAudio で使いたい場合は [[Bluetooth ヘッドセット]]の記事を読んでください。 |
||
+ | |||
+ | == 設定 == |
||
+ | |||
+ | === 設定ファイル === |
||
+ | |||
+ | デフォルトでは、PulseAudio は全てのサウンドカードを自動的に検出して管理するように設定されています。検出された ALSA デバイスを全て制御して音声ストリームを結集させることで、PulseAudio デーモンが設定の中心点になります。デーモンは基本的に特に設定をしなくても動作するので、必要な設定はほとんどありません。 |
||
+ | |||
+ | PulseAudio はまずホームディレクトリの設定ファイル {{ic|~/.config/pulse}} を確認して、次にシステム全体の設定ファイル {{ic|/etc/pulse}} を確認します。 |
||
+ | |||
+ | PulseAudio はサーバーデーモンとして動作するので、クライアント・サーバーアーキテクチャを使ってシステム全体あるいはユーザー個別に起動することができます。デーモン自体はモジュールがないと何もしません。API を提供して動的にロードされたモジュールをホストするだけです。音声のルーティングなどの処理は全て様々なモジュールが担当します。利用可能なモジュールのリストは [https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/ Pulseaudio Loadable Modules] で確認できます。モジュールを有効化するには {{ic|load-module <module-name-from-list>}} という行を {{ic|~/.config/pulse/default.pa}} に追加します。 |
||
+ | |||
+ | {{Tip| |
||
+ | * システム全体の設定ファイルは編集しないことを推奨します。ユーザー個別の設定ファイルを使ってください。{{ic|~/.config/pulse}} ディレクトリを作成して、システムの設定ファイルをコピーすることでユーザー個別の設定をすることができます。 |
||
+ | * パッケージに含まれている {{ic|/etc/pulse/}} のファイルに変更があったときはユーザーの設定もあわせるようにしてください。そうしないと、設定エラーで PulseAudio が起動しなくなる可能性があります。 |
||
+ | * ユーザーを audio グループに追加する必要はありません。[[udev]] と ''logind'' を使用して動的にユーザーに権限が与えられます。}} |
||
+ | |||
+ | ==== daemon.conf ==== |
||
+ | |||
+ | モジュールが使用するデフォルトのサンプルレート、リサンプリング方式、リアルタイムスケジューリング、サーバープロセスに関する設定など、基本的な設定を定義します。実行している間は変更できません。PulseAudio デーモンの再起動が必要です。ほとんどの場合、デフォルト設定で問題ありません。 |
||
+ | |||
+ | {{Note|PulseAudio は {{ic|daemon.conf}} ファイルに記述されたパスのチルダを展開しません。ファイルを指定するときは絶対パスを使ってください。}} |
||
+ | |||
+ | {| class="wikitable" |
||
+ | |+ 重要な設定オプション |
||
+ | ! オプション || 説明 |
||
+ | |+ |
||
+ | | system-instance || system-wide インスタンスとしてデーモンを実行。セキュリティの問題が生まれるため非推奨です。ローカルユーザーが存在しない (ヘッドレス) システムで有用です。デフォルトは {{ic|no}}。 |
||
+ | |+ |
||
+ | | resample-method || モジュール間で音声のサンプルレートが一致しない場合に使用するリサンプラー (例: 48kHz しか対応していないハードウェアで 96kHz の音声を再生する場合など)。利用可能なリサンプラーは {{ic|$ pulseaudio --dump-resample-methods}} で確認できます。CPU の使用量と音質のトレードオフを考えて最適なものを選択してください。{{Tip|場合によっては PulseAudio によって CPU の負担が跳ね上がることがあります。例えば複数のストリームを (個別に) リサンプルする場合などに起こりえます。そのようなことが頻繁に起こる場合、サンプルレートに対応する sink を新しく作成してメインの sink に送ることで、リサンプリングを一度で済ませることができます。}} |
||
+ | |+ |
||
+ | | flat-volumes ||{{ic|flat-volumes}} は一番音が大きいアプリケーションのボリュームにあわせてデバイスのボリュームを調整します。例えば、VoIP の呼び出し音声を上げるとハードウェアのボリュームが上がりますが、音声プレイヤーのボリュームは元のままになるように調整され、手動で音声プレイヤーのボリュームを下げなくてもいいようにします。開発元ではデフォルトで {{ic|yes}} になっていますが、Arch においては {{ic|no}} がデフォルトです。{{Note|開発元のデフォルト設定は時として混乱を生み、アプリケーションによってはフラットボリューム機能に対応していないために、アプリケーションの起動時にボリュームが 100% に設定されることがあります。スピーカーや耳が破壊される恐れがあり大変危険です。そのため、Arch では {{ic|flat-volumes}} を {{ic|no}} に設定することで古典的な (ALSA と同じ) 設定をデフォルトとしています。}} |
||
+ | |+ |
||
+ | | default-fragments || 音声サンプルは {{ic|default-fragment-size-msec}} によって複数の断片に分割されます。バッファを大きくすればするほど、システムが過負担のときに音声がスキップされる可能性が減ります。ただし、副作用として全体的な遅延は大きくなります。問題が発生する場合はこの値を大きくしてみてください。 |
||
+ | |} |
||
+ | |||
+ | ==== default.pa ==== |
||
+ | |||
+ | このファイルはスタートアップスクリプトであり、モジュールを設定するのに使われています。デーモンが初期化を完了した後に読み込まれて解析されます。{{ic|$ pactl}} や {{ic|$ pacmd}} を使うことでコマンドは追加で送信できます。また、{{ic|$ pulseaudio -nC}} を使ってターミナルで PulseAudio を起動することで使用するスタートアップファイルを指定することもできます。その場合、デーモンは CLI モジュールをロードしてコマンドラインから直接設定を受け取って、同じターミナルに情報やエラーメッセージを出力します。デーモンをデバッグするときや、ディスクで永続的に設定する前にモジュールをテストしたい場合などに有用です。マニュアルページに詳しい説明が載っています。構文については {{ic|man pulse-cli-syntax}} を読んでください。 |
||
+ | |||
+ | {{tip| |
||
+ | * 完全なコピーを記述するかわりに、{{ic|~/.config/pulse/default.pa}} の最初の行を {{ic|.include /etc/pulse/default.pa}} とすればデフォルト設定を上書きできます。 |
||
+ | * 利用可能な sink を確認するには {{ic|<nowiki>$ pacmd list-sinks|egrep -i 'index:|name:'</nowiki>}} を実行してください。デフォルトの sink はアスタリスクの印が付きます。 |
||
+ | * {{ic|~/.config/pulse/default.pa}} を編集して set-default-sink コマンドを挿入・変更するときは sink の名前を使ってください。番号ではその順番で実行される保証がありません。 |
||
+ | }} |
||
+ | |||
+ | ==== {{ic|client.conf}} ==== |
||
+ | 全ての PulseAudio クライアントアプリケーションが読み込む設定ファイルです。個別のクライアントについて実行時のオプションを設定したいときに使います。デフォルトの sink や source を静的に設定できるだけでなく、サーバーが動作していないときに自動的に起動するクライアントを許可 (あるいは不許可) できます。 |
||
+ | |||
+ | === 設定コマンド === |
||
+ | |||
+ | 実行している間にサーバーを設定するメインコマンドは {{ic|$ pacmd}} です。オプションのリストを表示するには {{ic|$ pacmd --help}} を実行してください。{{ic|$ pacmd}} とだけ実行することでシェルインタラクティブモードに入ることができ {{ic|Ctrl+d}} で終了します。変更した設定はすべて即座に適用されます。 |
||
+ | |||
+ | 新しい設定をテストして満足したら、{{ic|default.pa}} を編集することで変更を永続化できます。基本的な設定は [[PulseAudio/サンプル]] を見てください。 |
||
+ | |||
+ | {{Tip|{{ic|default.pa}} ファイルの {{ic|load-module module-default-device-restore}} という行は変えないでください。デフォルトの状態でサーバーを再起動して、間違った設定を退けます。}} |
||
+ | |||
+ | 選択されたハードウェアの "Profile" にあわせて PulseAudio で利用・選択することができる "source" (プロセス, キャプチャデバイス) と "sink" (サウンドカード, サーバー, 他のプロセス) を理解するのが重要です。"Profile" は {{ic|aplay -L}} コマンドで確認できる ALSA の "pcm" であり、{{ic|pacmd list-cards}} コマンドでもっと具体的に確認できます。"index:" 行や "profiles:" から始まるリスト、出力の "active profile: <...>" という行などです。 |
||
+ | |||
+ | "active profile" は {{ic|pacmd set-card-profile INDEX PROFILE}} コマンドで設定できます。INDEX と PROFILE の間にカンマは必要ありません。INDEX は {{ic|pacmd list-cards}} コマンドで表示される "index:" 行の番号に、PROFILE の名前は "profile:" の下の行の最初から、コロンと空白までの文字列に置き換えてください。例: {{ic|pacmd set-card-profile 0 output:analog-stereo+input:analog-stereo}}。 |
||
+ | |||
+ | {{ic|pavucontrol}} などのグラフィカルツールを使えばもっと簡単に "Profile" を選択できます ("Configuration" タブ)。KDE システム設定なら "Multimedia/Audio and Video Settings" の "Audio Hardware Setup" タブから設定できます。({{ic|aplay -l}} や {{ic|pacmd list-cards}} コマンドで確認できるデバイスと同じ) 音声の "Card" には、それぞれ "Profile" が選択されます。"Profile" を選択したら、{{ic|pacmd list-sources}} と {{ic|pacmd list-sinks}} コマンドで利用可能な "source" と "sink" が確認できます。利用可能な source と sink の "index" はカードのプロファイルが変更されるたびに変わるので注意してください。 |
||
+ | |||
+ | アプリケーションによっては選択した "Profile" が問題になることがあります。特に Adobe Flash プレイヤーの {{ic|/usr/lib/mozilla/plugins/libflashplayer.so}} と {{ic|/usr/lib/PepperFlash/libpepflashplayer.so}} はそうです。しばしば、Flash プレイヤーは Stereo プロファイルのどちらか片方を選択しないと機能せず、音声がない動画が再生されたり、あるいはクラッシュしたりします。あるプロファイルで駄目なら、別のプロファイルを選択してみてください。 |
||
+ | |||
+ | もちろん、PulseAudio でサラウンド音声を設定する場合、適切な Surround プロファイルを選択する必要があります。 |
||
== 実行 == |
== 実行 == |
||
+ | [https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/7.0/ バージョン 7.0] から、Arch においては PulseAudio はソケットアクティベーションを使います。[https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/pulseaudio&id=419bd740dc8 デフォルト] では、[[systemd/ユーザー]]インスタンスで {{ic|pulseaudio.socket}} が有効になります。 |
||
− | {{Note|ほとんどの[[デスクトップ環境]]では {{ic|/etc/xdg/autostart/}} ディレクトリにある[[デスクトップエントリ#自動起動|デスクトップファイル]]によってプログラムを自動で起動します。デスクトップ環境を使っている場合、以下のオートスポーン/ソケットアクティベーションとは無関係に PulseAudio は自動で起動します。}} |
||
+ | {{Note| |
||
− | [http://www.freedesktop.org/wiki/Software/PulseAudio/Notes/6.0/ バージョン 6.0] から、PulseAudio はオートスポーン/ソケットアクティベーションを利用します。ソケットアクティベーションを使うには、[[systemd/ユーザー]]インスタンスで {{ic|pulseaudio.socket}} を[[有効化]]してください。 |
||
+ | * {{ic|pulseaudio.socket}} を無効にするときは、{{ic|$XDG_CONFIG_HOME/systemd/user/}} が存在することを確認して {{ic|systemctl --user mask pulseaudio.socket}} を実行してください。 |
||
+ | * ほとんどの[[デスクトップ環境]]では {{ic|/etc/xdg/autostart/}} ディレクトリにある[[デスクトップエントリ#自動起動|デスクトップファイル]]によってプログラムを自動で起動します。デスクトップ環境を使っている場合、ソケットアクティベーションとは無関係に PulseAudio は自動で起動します。 |
||
+ | }} |
||
− | + | 詳しくは [https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Running/ PulseAudio: Running] を参照してください。 |
|
=== 手動で起動 === |
=== 手動で起動 === |
||
51行目: | 132行目: | ||
pulseaudio の比較的新しいバージョンでは、統合された10帯域のイコライザーシステムが搭載されています。このイコライザーを有効にするためには、以下の作業が必要です。 |
pulseaudio の比較的新しいバージョンでは、統合された10帯域のイコライザーシステムが搭載されています。このイコライザーを有効にするためには、以下の作業が必要です。 |
||
+ | |||
+ | {{Pkg|pulseaudio-equalizer}} をインストールしてください。 |
||
=== equalizer sink と dbus-protocol モジュールをロードする === |
=== equalizer sink と dbus-protocol モジュールをロードする === |
||
57行目: | 140行目: | ||
$ pactl load-module module-dbus-protocol |
$ pactl load-module module-dbus-protocol |
||
− | === GUI フロントエンド |
+ | === GUI フロントエンド === |
+ | 次を実行: |
||
− | {{Pkg|pulseaudio-equalizer}} をインストールし、以下を実行します。 |
||
$ qpaeq |
$ qpaeq |
||
89行目: | 172行目: | ||
=== ALSA/dmix でハードウェアデバイスを占有しない === |
=== ALSA/dmix でハードウェアデバイスを占有しない === |
||
+ | {{Note|この項では、通常は'''推奨されない'''代替構成について説明します。}} |
||
− | {{Note|This section describes alternative configuration, which is generally '''not''' recommended.}} |
||
ALSA を直接アプリケーションで使って他のアプリケーションも使えるようにしたいと思っているならば、同時に PulseAudio も必要になります。以下の手順で PulseAudio が ALSA のハードウェアデバイスの代わりに dmix を使うようにできます。 |
ALSA を直接アプリケーションで使って他のアプリケーションも使えるようにしたいと思っているならば、同時に PulseAudio も必要になります。以下の手順で PulseAudio が ALSA のハードウェアデバイスの代わりに dmix を使うようにできます。 |
||
102行目: | 185行目: | ||
# load-module module-detect |
# load-module module-detect |
||
− | * ''任意:'' {{Pkg|kdemultimedia-kmix}} を使っていてPulseAudio ボリュームのかわりに ALSA ボリュームを操作したい場合: |
+ | * ''任意:'' {{Pkg|kdemultimedia-kmix}}{{Broken package link|パッケージが存在しません}} を使っていてPulseAudio ボリュームのかわりに ALSA ボリュームを操作したい場合: |
$ echo export KMIX_PULSEAUDIO_DISABLE=1 > ~/.kde4/env/kmix_disable_pulse.sh |
$ echo export KMIX_PULSEAUDIO_DISABLE=1 > ~/.kde4/env/kmix_disable_pulse.sh |
||
$ chmod +x ~/.kde4/env/kmix_disable_pulse.sh |
$ chmod +x ~/.kde4/env/kmix_disable_pulse.sh |
||
135行目: | 218行目: | ||
=== GStreamer === |
=== GStreamer === |
||
− | [[GStreamer]] で PulseAudio を使うには、{{Pkg|gst-plugins-good}} か {{ |
+ | [[GStreamer]] で PulseAudio を使うには、{{Pkg|gst-plugins-good}} か {{AUR|gstreamer0.10-good-plugins}} をインストールする必要があります。 |
=== OpenAL === |
=== OpenAL === |
||
147行目: | 230行目: | ||
alsa ドライバーの {{ic|1=dev=default}} オプションを削除するか特定の Pulse の sink の名前・番号を指定してください。 |
alsa ドライバーの {{ic|1=dev=default}} オプションを削除するか特定の Pulse の sink の名前・番号を指定してください。 |
||
+ | {{Note|{{pkg|pulseaudio-alsa}} をインストールした場合、ALSA のデフォルトデバイスは PulseAudio なので、libao の標準の ''alsa'' ドライバとそのデフォルトデバイスへの出力を維持することもできます。}} |
||
− | {{Note|You could possibly also keep the libao standard of outputting to the ''alsa'' driver and its default device if you install {{pkg|pulseaudio-alsa}} since the ALSA default device then '''is''' PulseAudio.}} |
||
=== ESD === |
=== ESD === |
||
195行目: | 278行目: | ||
PulseAudio サポートはデフォルトの KDE サウンドミキサーである KMix にマージされています。 |
PulseAudio サポートはデフォルトの KDE サウンドミキサーである KMix にマージされています。 |
||
− | phonon-gstreamer バックエンドを Phonon に使っている場合、{{ |
+ | phonon-gstreamer バックエンドを Phonon に使っている場合、{{AUR|gstreamer0.10-good-plugins}} をインストールして GStreamer も PulseAudio を使うように[[#GStreamer|設定]]してください。 |
{{ic|load-module module-device-manager}} を {{ic|/etc/pulse/default.pa}} に追加するのが有用です。 |
{{ic|load-module module-device-manager}} を {{ic|/etc/pulse/default.pa}} に追加するのが有用です。 |
||
− | さらに、KMix や pavucontrol の KDE 代替として [[Arch User Repository|AUR]] から {{AUR|kdeplasma-applets-veromix}} が利用できます。 |
+ | さらに、KMix や pavucontrol の KDE 代替として [[Arch User Repository|AUR]] から {{AUR|kdeplasma-applets-veromix}}{{Broken package link|{{aur-mirror|kdeplasma-applets-veromix}}}} が利用できます。 |
=== Xfce === |
=== Xfce === |
||
217行目: | 300行目: | ||
=== Music Player Daemon (MPD) === |
=== Music Player Daemon (MPD) === |
||
− | PulseAudio を使うように [[Music Player Daemon|MPD]] を [http://mpd.wikia.com/wiki/PulseAudio 設定] してください。[[Music Player Daemon/ |
+ | PulseAudio を使うように [[Music Player Daemon|MPD]] を [http://mpd.wikia.com/wiki/PulseAudio 設定] してください。[[Music Player Daemon/ヒントとテクニック#PulseAudio]] を参照。 |
=== MPlayer === |
=== MPlayer === |
||
238行目: | 321行目: | ||
PulseAudio を再起動すれば音声ソースが中止される代わりにアイドル状態になるようになります。これで guvcview でデバイスから音声を正しく記録できるようになるはずです。 |
PulseAudio を再起動すれば音声ソースが中止される代わりにアイドル状態になるようになります。これで guvcview でデバイスから音声を正しく記録できるようになるはずです。 |
||
+ | == ヒントとテクニック == |
||
− | == Tips and tricks == |
||
=== キーボードのボリュームコントロール === |
=== キーボードのボリュームコントロール === |
||
− | 以下のコマンドをボリュームキーにマッピングしてください: {{ic|XF86AudioRaiseVolume}}, {{ic|XF86AudioLowerVolume}}, {{ic|XF86AudioMute}} |
+ | 以下のコマンドをボリュームキーにマッピングしてください: {{ic|XF86AudioRaiseVolume}}, {{ic|XF86AudioLowerVolume}}, {{ic|XF86AudioMute}}。 |
+ | |||
+ | まず制御したい音声出力に対応する sink を確認します。sink を確認するには: |
||
+ | pactl list sinks short |
||
ボリュームを上げるには: |
ボリュームを上げるには: |
||
252行目: | 338行目: | ||
ボリュームをミュート(解除)するには: |
ボリュームをミュート(解除)するには: |
||
pactl set-sink-mute 0 toggle |
pactl set-sink-mute 0 toggle |
||
+ | |||
+ | マイクをミュート(解除)するには: |
||
+ | pactl set-source-mute 1 toggle |
||
+ | |||
+ | {{Tip| |
||
+ | * キーボードショートカットを常にデフォルトのシンクで動作させるには、シンク番号に {{ic|@DEFAULT_SINK@}} を指定します。例えば、{{ic|pactl set-sink-mute @DEFAULT_SINK@ toggle}}. |
||
+ | * 最大音量の制限など、より高度な制御を行う場合は、[[#コンソール|コンソールフロントエンド]]の利用を検討してください。 |
||
+ | }} |
||
+ | |||
+ | === X11 ベルイベント === |
||
+ | |||
+ | pulseaudio で X11 のベルイベントを処理するには、X11 セッションが起動した後に以下のコマンドを実行: |
||
+ | |||
+ | pactl upload-sample /usr/share/sounds/freedesktop/stereo/bell.oga x11-bell |
||
+ | pactl load-module module-x11-bell sample=x11-bell display=$DISPLAY |
||
+ | |||
+ | X11 ベルのボリュームを調整するには、以下のコマンドを実行: |
||
+ | |||
+ | xset b 100 |
||
+ | |||
+ | 100 はパーセンテージです。上記のコマンドを使うには {{Pkg|xorg-xset}} パッケージが必要です。X11 セッションが起動したときに自動的にコマンドを実行する方法は[[自動起動]]を参照。 |
||
+ | |||
+ | === Switch on connect === |
||
+ | 新しく接続されたデバイスに音声出力を切り替えるモジュールです。例えば、USB ヘッドセットを接続した場合、出力がそれに切り替わります。切断したときは、出力は元のデバイスに戻ります。大量にバグが存在していましたが PulseAudio 8.0 になって注目を集め、今では問題なく動くようになっています。 |
||
+ | |||
+ | モジュールをテストしていみたい場合、次を実行することでロードできます: |
||
+ | # pactl load-module module-switch-on-connect |
||
+ | |||
+ | 変更を永続化させたい場合、ローカルの pulseaudio 設定あるいは {{ic|/etc/pulse/default.pa}} (システム設定) に以下の行を追加してください: |
||
+ | load-module module-switch-on-connect |
||
+ | |||
+ | KDE/Plasma5 では更に module-device-manager を無効化してください。Plasma5 は起動するとすぐに (start-pulseaudio-x11 によって) pulseaudio でデバイスを管理するために module-device-manager モジュールをロードします。しかしながら、このモジュールは module-switch-on-connect と競合します。{{ic|/bin/start-pulseaudio-x11}} を編集して KDE の行をコメントアウトすることでモジュールを無効化できます。pulseaudio セッションを新しくするために一度ログアウトしてからログインしなおしてください。 |
||
== トラブルシューティング == |
== トラブルシューティング == |
2022年11月6日 (日) 16:28時点における最新版
PulseAudio は、ALSA や OSS を用いてアプリケーションとハードウェアデバイスの間でミドルウェアとして動作することを目的とした汎用サウンドサーバーです。また、Avahi を有効にするとことで、ローカルデバイス間で簡単にネットワークストリーミングを行うことができます。主な目的はオーディオの設定を簡単にすることですが、そのモジュール設計により、より高度なユーザが自分のニーズに合わせてデーモンを設定することができます。
インストール
pulseaudio パッケージをインストールしてください。
PulseAudio のモジュールの中にはメインのパッケージと 分割 されているものがあり、必要に応じてインストールする必要があります:
- pulseaudio-alsa PulseAudio で ALSA を管理、こちらも参照 #ALSA
- pulseaudio-bluetooth: Bluetooth (Bluez) のサポート
- pulseaudio-equalizer: イコライザー sink (qpaeq)
- pulseaudio-jack: JACK sink, source, jackdbus 検知
- pulseaudio-lirc: 赤外線 (LIRC) ボリュームコントロール
- pulseaudio-zeroconf: Zeroconf (Avahi/DNS-SD) のサポート
フロントエンド
PulseAudio デーモンを制御するための様々なフロントエンドが存在します:
- GTK の GUI: paprefs と pavucontrol
- キーボードキーによるボリュームコントロール: pulseaudio-ctlAUR
- コンソール (CLI) ミキサー: ponymix と pamixer
- コンソール (curses) ミキサー: pulsemixer-gitAUR
- ウェブボリュームコントロール: PaWebControl
- システムトレイアイコン: pasystray-gitAUR
- KF5 plasma アプレット: kmix and plasma-pa
- Bluetooth ヘッドセットや他の Bluetooth 音声デバイスを PulseAudio で使いたい場合は Bluetooth ヘッドセットの記事を読んでください。
設定
設定ファイル
デフォルトでは、PulseAudio は全てのサウンドカードを自動的に検出して管理するように設定されています。検出された ALSA デバイスを全て制御して音声ストリームを結集させることで、PulseAudio デーモンが設定の中心点になります。デーモンは基本的に特に設定をしなくても動作するので、必要な設定はほとんどありません。
PulseAudio はまずホームディレクトリの設定ファイル ~/.config/pulse
を確認して、次にシステム全体の設定ファイル /etc/pulse
を確認します。
PulseAudio はサーバーデーモンとして動作するので、クライアント・サーバーアーキテクチャを使ってシステム全体あるいはユーザー個別に起動することができます。デーモン自体はモジュールがないと何もしません。API を提供して動的にロードされたモジュールをホストするだけです。音声のルーティングなどの処理は全て様々なモジュールが担当します。利用可能なモジュールのリストは Pulseaudio Loadable Modules で確認できます。モジュールを有効化するには load-module <module-name-from-list>
という行を ~/.config/pulse/default.pa
に追加します。
daemon.conf
モジュールが使用するデフォルトのサンプルレート、リサンプリング方式、リアルタイムスケジューリング、サーバープロセスに関する設定など、基本的な設定を定義します。実行している間は変更できません。PulseAudio デーモンの再起動が必要です。ほとんどの場合、デフォルト設定で問題ありません。
オプション | 説明 |
---|---|
system-instance | system-wide インスタンスとしてデーモンを実行。セキュリティの問題が生まれるため非推奨です。ローカルユーザーが存在しない (ヘッドレス) システムで有用です。デフォルトは no 。
|
resample-method | モジュール間で音声のサンプルレートが一致しない場合に使用するリサンプラー (例: 48kHz しか対応していないハードウェアで 96kHz の音声を再生する場合など)。利用可能なリサンプラーは $ pulseaudio --dump-resample-methods で確認できます。CPU の使用量と音質のトレードオフを考えて最適なものを選択してください。
|
flat-volumes | flat-volumes は一番音が大きいアプリケーションのボリュームにあわせてデバイスのボリュームを調整します。例えば、VoIP の呼び出し音声を上げるとハードウェアのボリュームが上がりますが、音声プレイヤーのボリュームは元のままになるように調整され、手動で音声プレイヤーのボリュームを下げなくてもいいようにします。開発元ではデフォルトで yes になっていますが、Arch においては no がデフォルトです。
|
default-fragments | 音声サンプルは default-fragment-size-msec によって複数の断片に分割されます。バッファを大きくすればするほど、システムが過負担のときに音声がスキップされる可能性が減ります。ただし、副作用として全体的な遅延は大きくなります。問題が発生する場合はこの値を大きくしてみてください。
|
default.pa
このファイルはスタートアップスクリプトであり、モジュールを設定するのに使われています。デーモンが初期化を完了した後に読み込まれて解析されます。$ pactl
や $ pacmd
を使うことでコマンドは追加で送信できます。また、$ pulseaudio -nC
を使ってターミナルで PulseAudio を起動することで使用するスタートアップファイルを指定することもできます。その場合、デーモンは CLI モジュールをロードしてコマンドラインから直接設定を受け取って、同じターミナルに情報やエラーメッセージを出力します。デーモンをデバッグするときや、ディスクで永続的に設定する前にモジュールをテストしたい場合などに有用です。マニュアルページに詳しい説明が載っています。構文については man pulse-cli-syntax
を読んでください。
client.conf
全ての PulseAudio クライアントアプリケーションが読み込む設定ファイルです。個別のクライアントについて実行時のオプションを設定したいときに使います。デフォルトの sink や source を静的に設定できるだけでなく、サーバーが動作していないときに自動的に起動するクライアントを許可 (あるいは不許可) できます。
設定コマンド
実行している間にサーバーを設定するメインコマンドは $ pacmd
です。オプションのリストを表示するには $ pacmd --help
を実行してください。$ pacmd
とだけ実行することでシェルインタラクティブモードに入ることができ Ctrl+d
で終了します。変更した設定はすべて即座に適用されます。
新しい設定をテストして満足したら、default.pa
を編集することで変更を永続化できます。基本的な設定は PulseAudio/サンプル を見てください。
選択されたハードウェアの "Profile" にあわせて PulseAudio で利用・選択することができる "source" (プロセス, キャプチャデバイス) と "sink" (サウンドカード, サーバー, 他のプロセス) を理解するのが重要です。"Profile" は aplay -L
コマンドで確認できる ALSA の "pcm" であり、pacmd list-cards
コマンドでもっと具体的に確認できます。"index:" 行や "profiles:" から始まるリスト、出力の "active profile: <...>" という行などです。
"active profile" は pacmd set-card-profile INDEX PROFILE
コマンドで設定できます。INDEX と PROFILE の間にカンマは必要ありません。INDEX は pacmd list-cards
コマンドで表示される "index:" 行の番号に、PROFILE の名前は "profile:" の下の行の最初から、コロンと空白までの文字列に置き換えてください。例: pacmd set-card-profile 0 output:analog-stereo+input:analog-stereo
。
pavucontrol
などのグラフィカルツールを使えばもっと簡単に "Profile" を選択できます ("Configuration" タブ)。KDE システム設定なら "Multimedia/Audio and Video Settings" の "Audio Hardware Setup" タブから設定できます。(aplay -l
や pacmd list-cards
コマンドで確認できるデバイスと同じ) 音声の "Card" には、それぞれ "Profile" が選択されます。"Profile" を選択したら、pacmd list-sources
と pacmd list-sinks
コマンドで利用可能な "source" と "sink" が確認できます。利用可能な source と sink の "index" はカードのプロファイルが変更されるたびに変わるので注意してください。
アプリケーションによっては選択した "Profile" が問題になることがあります。特に Adobe Flash プレイヤーの /usr/lib/mozilla/plugins/libflashplayer.so
と /usr/lib/PepperFlash/libpepflashplayer.so
はそうです。しばしば、Flash プレイヤーは Stereo プロファイルのどちらか片方を選択しないと機能せず、音声がない動画が再生されたり、あるいはクラッシュしたりします。あるプロファイルで駄目なら、別のプロファイルを選択してみてください。
もちろん、PulseAudio でサラウンド音声を設定する場合、適切な Surround プロファイルを選択する必要があります。
実行
バージョン 7.0 から、Arch においては PulseAudio はソケットアクティベーションを使います。デフォルト では、systemd/ユーザーインスタンスで pulseaudio.socket
が有効になります。
詳しくは PulseAudio: Running を参照してください。
手動で起動
X を起動した時に pulseaudio が自動で立ち上がらない場合は、次のコマンドで実行できます:
$ pulseaudio --start
次のコマンドで PulseAudio を停止できます:
$ pulseaudio --kill
イコライザー
pulseaudio の比較的新しいバージョンでは、統合された10帯域のイコライザーシステムが搭載されています。このイコライザーを有効にするためには、以下の作業が必要です。
pulseaudio-equalizer をインストールしてください。
equalizer sink と dbus-protocol モジュールをロードする
$ pactl load-module module-equalizer-sink $ pactl load-module module-dbus-protocol
GUI フロントエンド
次を実行:
$ qpaeq
起動時に イコライザーと dbus モジュールをロードする
お好みのエディタで /etc/pulse/default.pa
を開き、以下の行を追記します。
### Load the integrated pulseaudio equalizer and dbus module load-module module-equalizer-sink load-module module-dbus-protocol
バックエンドの設定
ALSA
- 推奨パッケージ: pulseaudio-alsa
- 追加選択パッケージ: lib32-libpulse および lib32-alsa-plugins
PulseAudio をサポートせず ALSA をサポートするアプリケーションのためには、ALSA のための PulseAudio プラグインをインストールすることが推奨されます。このパッケージは、ALSA に PulseAudio を利用させるために必要なファイル /etc/asound.conf
も含んでいます。
アプリケーションに ALSA の OSS エミュレーションをやめさせ PulseAudio を迂回させない(そうして、他のアプリケーションの音声出力を防ぐ)ためには、起動時に snd_pcm_oss
モジュールがロードされないようにします。このモジュールが現在ロードされていたら (lsmod | grep oss
で確認可能)、以下を実行してモジュールを無効にしましょう:
# rmmod snd_pcm_oss
ALSA/dmix でハードウェアデバイスを占有しない
ALSA を直接アプリケーションで使って他のアプリケーションも使えるようにしたいと思っているならば、同時に PulseAudio も必要になります。以下の手順で PulseAudio が ALSA のハードウェアデバイスの代わりに dmix を使うようにできます。
- pulseaudio-alsa パッケージを削除してください、ALSA アプリケーションと PulseAudio の互換レイヤーが含まれています。削除した後、ALSA アプリは Pulse につかまることなく ALSA を直接使うようになります。
/etc/pulse/default.pa
を編集してください。
- バックエンドドライバーをロードする行を探してアンコメントしてください。以下のように device パラメータを追加してください。それから autodetect モジュールをロードする行をコメントアウトしてください。
load-module module-alsa-sink device=dmix load-module module-alsa-source device=dsnoop # load-module module-udev-detect # load-module module-detect
- 任意: kdemultimedia-kmix[リンク切れ: パッケージが存在しません] を使っていてPulseAudio ボリュームのかわりに ALSA ボリュームを操作したい場合:
$ echo export KMIX_PULSEAUDIO_DISABLE=1 > ~/.kde4/env/kmix_disable_pulse.sh $ chmod +x ~/.kde4/env/kmix_disable_pulse.sh
- コンピュータを再起動して、alsa と pulseaudio のアプリケーションを同時に実行して見て下さい。同時に音声を鳴らすことができるはずです。
- PulseAudio ボリュームの操作が必要なときは pavucontrol を使って下さい。
OSS
OSS にしか対応していないプログラムを PulseAudio に出力させる方法は複数存在します:
ossp
ossp パッケージをインストールして osspd.service
を起動してください。
padsp ラッパー
OSS を使うプログラムは (PulseAudio に含まれている) padsp を使って起動することで PulseAudio で動作するようにできます:
$ padsp OSSprogram
例:
$ padsp aumix $ padsp sox foo.wav -t ossdsp /dev/dsp
以下のようなカスタムラッパースクリプトも使えます:
/usr/local/bin/OSSProgram
#!/bin/sh exec padsp /usr/bin/OSSprogram "$@"
PATH で /usr/bin
よりも先に /usr/local/bin
が来るようにしてください。
GStreamer
GStreamer で PulseAudio を使うには、gst-plugins-good か gstreamer0.10-good-pluginsAUR をインストールする必要があります。
OpenAL
OpenAL Soft はデフォルトで PulseAudio を使いますが、明示的に設定することもできます:
/etc/openal/alsoft.conf
drivers=pulse,alsa
libao
libao の設定ファイルを編集してください:
# /etc/libao.conf
default_driver=pulse
alsa ドライバーの dev=default
オプションを削除するか特定の Pulse の sink の名前・番号を指定してください。
ESD
PulseAudio は enlightened sound daemon (ESD) を完全に置き換えます。PulseAudio が動作している時、ESD クライアントは PulseAudio に何もしなくても出力できるはずです。
デスクトップ環境
X11
PulseAudio が動作しているかどうか確認してください:
$ ps aux | grep pulse
facade 1794 0.0 0.0 360464 6532 ? S<l 15:33 0:00 /usr/bin/pulseaudio --start facade 1827 0.0 0.0 68888 2608 ? S 15:33 0:00 /usr/lib/pulse/gconf-helper
PulseAudio が動いておらず X を使っている場合は、以下で PulseAudio と必要な X11 のプラグインを手動で起動できます:
$ start-pulseaudio-x11
Gnome, KDE, Xfce を使ってないために ~/.xinitrc
が /etc/X11/xinit/xinitrc.d
のスクリプトを (サンプルファイル /etc/skel/.xinitrc
のように) 読み込まないときは、次のコマンドでブート時に PulseAudio を起動できます:
~/.xinitrc
/usr/bin/start-pulseaudio-x11
GNOME
GNOME 3 から、GNOME は PulseAudio と完全に統合したため特に設定は必要ありません。
KDE 3
PulseAudio は aRts との完全な互換性はありません。KDE 3 のユーザーは PulseAudio を使えません。ただし最近のバージョンの PulseAudio では障害が取り除けるかもしれません:
参照: http://www.pulseaudio.org/wiki/PerfectSetup KDE 3 はデフォルトで artsd サウンドサーバを使っています。しかしながら、artsd は Esound バックエンドを使うように設定することが可能です。kcmartsrc
(グローバルな設定は /etc/kde
または /usr/share/config
、ユーザー別の設定は .kde/share/config
にあります) を以下のように編集してください:
[Arts] Arguments=\s-F 10 -S 4096 -a esd -n -s 1 -m artsmessage -c drkonqi -l 3 -f NetworkTransparent=true SuspendTime=1
KDE Plasma ワークスペースと Qt4
PulseAudio は KDE/Qt4 アプリケーションによって使われます。詳しくは PulseAudio wiki の KDE のページ を見て下さい。
PulseAudio サポートはデフォルトの KDE サウンドミキサーである KMix にマージされています。
phonon-gstreamer バックエンドを Phonon に使っている場合、gstreamer0.10-good-pluginsAUR をインストールして GStreamer も PulseAudio を使うように設定してください。
load-module module-device-manager
を /etc/pulse/default.pa
に追加するのが有用です。
さらに、KMix や pavucontrol の KDE 代替として AUR から kdeplasma-applets-veromixAUR[リンク切れ: アーカイブ: aur-mirror] が利用できます。
Xfce
Xfce で動いているアプリケーションは PulseAudio を使うことができます。PulseAudio の設定を管理するには pavucontrol を使います。
アプリケーション
Audacious
Audacious は PulseAudio にもとから対応しています。利用するためには、Audacious で 設定→オーディオ→出力プラグイン で「PulseAudio 出力」に設定しましょう。
Java/OpenJDK 6
Pulseaudio と Java のサウンドに書かれているように padsp を使って java のラッパーを作成してください。
Music Player Daemon (MPD)
PulseAudio を使うように MPD を 設定 してください。Music Player Daemon/ヒントとテクニック#PulseAudio を参照。
MPlayer
MPlayer はネイティブで PulseAudio 出力をサポートしており "-ao pulse
" オプションを使います。PulseAudio への出力をデフォルトに設定することも可能で、ユーザー別の設定には ~/.mplayer/config
で、システム全体では /etc/mplayer/mplayer.conf
で設定します:
/etc/mplayer/mplayer.conf
ao=pulse
Skype (x86_64)
lib32-libpulse をインストールしてください。そうしないと通話をしようとした時に次のエラーが発生します: "Problem with Audio Playback"。
guvcview
PulseAudio で guvcview を使用するとウェブカメラからの入力で音声入力が中止され音声が記録されないことがあります。次を実行して確認できます:
$ pactl list sources
音声ソースが "suspended" になっている場合 /etc/pulse/default.pa
の以下の行を:
load-module module-suspend-on-idle
次のように修正してください:
#load-module module-suspend-on-idle
PulseAudio を再起動すれば音声ソースが中止される代わりにアイドル状態になるようになります。これで guvcview でデバイスから音声を正しく記録できるようになるはずです。
ヒントとテクニック
キーボードのボリュームコントロール
以下のコマンドをボリュームキーにマッピングしてください: XF86AudioRaiseVolume
, XF86AudioLowerVolume
, XF86AudioMute
。
まず制御したい音声出力に対応する sink を確認します。sink を確認するには:
pactl list sinks short
ボリュームを上げるには:
sh -c "pactl set-sink-mute 0 false ; pactl set-sink-volume 0 +5%"
ボリュームを下げるには:
sh -c "pactl set-sink-mute 0 false ; pactl -- set-sink-volume 0 -5%"
ボリュームをミュート(解除)するには:
pactl set-sink-mute 0 toggle
マイクをミュート(解除)するには:
pactl set-source-mute 1 toggle
X11 ベルイベント
pulseaudio で X11 のベルイベントを処理するには、X11 セッションが起動した後に以下のコマンドを実行:
pactl upload-sample /usr/share/sounds/freedesktop/stereo/bell.oga x11-bell pactl load-module module-x11-bell sample=x11-bell display=$DISPLAY
X11 ベルのボリュームを調整するには、以下のコマンドを実行:
xset b 100
100 はパーセンテージです。上記のコマンドを使うには xorg-xset パッケージが必要です。X11 セッションが起動したときに自動的にコマンドを実行する方法は自動起動を参照。
Switch on connect
新しく接続されたデバイスに音声出力を切り替えるモジュールです。例えば、USB ヘッドセットを接続した場合、出力がそれに切り替わります。切断したときは、出力は元のデバイスに戻ります。大量にバグが存在していましたが PulseAudio 8.0 になって注目を集め、今では問題なく動くようになっています。
モジュールをテストしていみたい場合、次を実行することでロードできます:
# pactl load-module module-switch-on-connect
変更を永続化させたい場合、ローカルの pulseaudio 設定あるいは /etc/pulse/default.pa
(システム設定) に以下の行を追加してください:
load-module module-switch-on-connect
KDE/Plasma5 では更に module-device-manager を無効化してください。Plasma5 は起動するとすぐに (start-pulseaudio-x11 によって) pulseaudio でデバイスを管理するために module-device-manager モジュールをロードします。しかしながら、このモジュールは module-switch-on-connect と競合します。/bin/start-pulseaudio-x11
を編集して KDE の行をコメントアウトすることでモジュールを無効化できます。pulseaudio セッションを新しくするために一度ログアウトしてからログインしなおしてください。
トラブルシューティング
PulseAudio/トラブルシューティングを見て下さい。
参照
- http://www.alsa-project.org/main/index.php/Asoundrc - Alsa wiki on .asoundrc
- http://www.pulseaudio.org/ - PulseAudio 公式サイト
- http://www.pulseaudio.org/wiki/FAQ - PulseAudio FAQ