Linuxからの音声をWindows側で聞くためにしたこと

Linuxからの音声をWindows側で聞くためにしたこと Linux
Linuxからの音声をWindows側で聞くためにしたこと

Linuxの音をWindows側で聞きたい

Linux機を触っているとき、ふと「この音をWindows側でまとめて聞けたら楽だな」と思いました。机の上にスピーカーを何セットも置きたくないですし、できればメイン機に集約したいところです。

最初は単純な話に思えました。音を送るだけなので、何か方法はあるだろう、と。

方法を考えてみる

調べてみると、大きく分けて方法は3つくらいありそうでした。

  • LAN経由で音声を飛ばす(ソフトウェア的に共有する)
  • USBオーディオインターフェースなどを使う
  • アナログケーブルで物理的につなぐ

理屈だけでいえば、LAN共有がいちばんスマートに見えます。配線も増えませんし、デジタルのまま渡せます。

LANでの共有を試す(AudioRelay)

まず試したのが、LAN経由で音声を飛ばす方法でした。AudioRelayのようなソフトを使えば、ネットワーク越しに音を送れるらしい。

ただ、実際にやってみると想像以上に面倒でした。

Linux側では公式に配布されているバイナリがやや古く、ディストリビューションとの相性なのか、そのままではうまく起動しない場面がありました。AppImageではなくアーカイブ形式で配布されていたため、展開場所や実行権限の扱いでも少し引っかかります。

さらに、

  • 常時バックグラウンドで動かす必要がある
  • 接続が切れたときの再接続がやや不安定
  • レイテンシがゼロではない

といった点が気になりました。

仕組みとしては理にかなっていますが、常用するインフラとしては「少し重い」という印象でした。

Linux側の音声をWidows側で聞きたいという需要はあまりないのか、そこまで情報も多くありません。「もっと単純で、トラブルの少ない方法はないか?」という方向に気持ちが傾きます。

一番シンプルな方法:アナログでつなぐ

そこで結局、物理的にケーブルでつなぐ方法を試しました。

多くのデスクトップPCには、背面に色分けされた3.5mmジャックがあります。

  • 黄緑:スピーカー/ラインアウト
  • 水色:ライン入力
  • ピンク:マイク入力

Linux機の黄緑(ラインアウト)から、Windows機の水色(ライン入力)へ接続します。

構成としては、

Linux → 3.5mmケーブル → Windows(ライン入力)

これだけです。

仕組みが単純なので、トラブルの切り分けもしやすいはず…。

しかしノイズがひどい

ところが、つないでみると問題が出ました。

ブーンという低いハムノイズ。PCの負荷に応じて変化するジー音。

音楽が鳴っていないときでも常にノイズが聞こえ、かなり視聴体験は悪い状態です。正直聞いていられない…。

調べてみると、PCのアナログ入出力は電源やグラウンドを共有しています。別々の電源を持つPC同士をアナログで直結すると、グラウンド電位に差が生じ、その差が信号ラインに回り込むことがあります。

いわゆる「グラウンドループ」というそうです。

電源→筐体→ケーブルのシールド→もう一台の筐体→電源

というループができてしまい、50Hz/60Hzのハムや高周波ノイズが混入します。理屈としては納得ですが、このノイズを取り除かないと聞くに堪えないのでなんとかしないとでした。

グラウンドループアイソレータを導入

調べたところ、グラウンドループを解消するための機器が存在していることがわかりました。

オーディオ趣味の人にとっては常識なのかもですが「グラウンドループアイソレータ」という機器を使うとノイズが解消できるらしいです。

早速アマゾンで物色し、以下の商品を買いました。

Amazon.co.jp: サムコス グランドループアイソレーター ノイズフィルタノイズ除去 ホームオーディオ、カーステレオシステムで使用可能 ノイズフィルタ3.5mm対応 オーディオケーブル付き (ブラック) : 車&バイク
Amazon.co.jp: サムコス グランドループアイソレーター ノイズフィルタノイズ除去 ホームオーディオ、カーステレオシステムで使用可能 ノイズフィルタ3.5mm対応 オーディオケーブル付き (ブラック) : 車&バイク

価格は600円程度。もっと高い物もありましたが効果がどうなのかさっぱりわからなかったので、ほぼ最安に近い物を買いました。

中身はトランス(絶縁トランス)が入っているだけの受動部品です。電源も制御回路もありません。音声信号を磁気的に結合させることで、直流的なグラウンドを切り離すそうです。

つまり、信号は通すが、グラウンドは共有しない、という仕組みになっているとのこと。

実際に間に挟んでみると、

  • 低いブーン音がほぼ消える
  • PC動作に連動するノイズも消える

劇的に改善しました。

特に耳がいいわけではないので、一般的な感想でしかありませんが、多少の音質変化(低域のわずかな痩せなど)は感じました。やや低音が痩せたかな?と言った感じです。ただ「音質やノイズがひどくて聞けない」状態は完全に解消しました。

Windows側の設定で少し戸惑う

もうひとつ戸惑ったのがWindowsのサウンド設定です。

ライン入力を有効にするには「このデバイスを聴く」をオンにする必要があります。

録音タブを開いてレベルを触っていると、音の質感が一瞬変わることがありました。

最初は「アイソレータが切れているのでは?」と疑いましたが、これはWindowsの共有オーディオエンジンが入力を再初期化している挙動によるものらしいです。

アイソレータは受動部品なので、設定でオンオフされるものではありません。

通常時にハムが消えていれば、物理的にはきちんと機能しています。

まとめ

Linuxの勉強としてはLANによる音声共有をもっと深掘りするべきだったのだと思いますし、いずれまたチャレンジしようとは思いますが、一旦希望の状態を達成するのも大切かなとは思っています。

結果として、

Linux → アナログケーブル → グラウンドループアイソレータ → Windows

という非常に単純な構成が、いちばん安定したのは事実でした。PC付けたら既に音声を聴ける状態というのは結構便利です。

Linux側の音をWindowsでまとめて聞けるようになり、作業環境としてはかなり快適になりました。

結局のところ、「まずは一番単純な方法を試す」がいちばん確実だったなという教訓だったかもしれません。

コメント

タイトルとURLをコピーしました