背景
最近開発をUbuntu20.04でやっていて、ZoomやTeamsのようなビデオ通話も今後使いたく、マイクを繋いでみました。
(ミニタワーの自作デスクトップでフロントのマイク3極+イヤホン3極に4極変換プラグをかましてEarPodsを接続)
サンワサプライ ヘッドセット用変換アダプタケーブル(4極メス->3極オスx2) 黒 KM-A24-005
Teamsのテスト通話をやってみたところ、ノイズが酷く、比較のため手持ちのMacBook Proでテスト通話をやってみるとノイズはありませんでした。
調べたこと
調べたところ、Mac等では音声入力に対しノイズ軽減をしているとのことで、LinuxではPulseAudioのエコーキャンセルモジュールを使うと良いようでした。
使用しているUbuntu20.04もデフォルトでPulseAudioは入っており、設定ファイルにひと手間加えることでノイズ軽減ができるようでした。
ハマったこと
ネットの情報を頼りに/etc/pulse/default.pa
にload-module module-echo-cancel
を追記して、とやったところ、確かにオーディオ設定で(echo cancelled ...
の選択肢が出てくるのですが、これが音が出ません。
よく見るとUSB3.0 capture Analog Input (echo cancelled ...
となっており、現状ノイズはあるが音が出ているBuilt-in Audio
ではないようです。これの正体に気づくまでに時間がかかりました。
見落としていたこと
気づけばしょうもない話なのですが、実はこれ数ヶ月前にPCにUSBで差し込んでいたHDMIキャプチャーボードのようでした。(忘れてました...←)
Chilison HDMI キャプチャーボード
どうやらアナログのinputよりこちらが優先されてエコーキャンセルが適用されていたようで、それでマイクからのinputに適用されていなかったようです。
解決した方法
How To Enable Echo / Noise Cancellation Of Microphone Input On Your Linux Desktop (PulseAudio)
こちらの記事の「How to choose the microphone in setups with multiple microphones, to use with the PulseAudio module-echo-cancel」の章に求めていた答えがありました。
どうやらinputするデバイスが複数ある場合、エコーキャンセルにどれを適用するか指定ができるようです。
詳細はリンク先を見て頂ければと思いますが、こちらの方法で繋いでいるマイクの方が適用になるようにしたところ、無事Built-in Audio Analog Stereo (echo cancelled ...
が表示され、Teamsのテスト通話でノイズキャンセルされたマイク入力の確認ができました
余談
ここまでやってみてですが、ノイズは消えたものの音がこもってるような感じもするので、音質自体はデバイスの問題もあるかもしれないです。(PC側や4極変換プラグ等)
→追記:USB接続できる変換プラグを買い直したら音質は解決しました(ただノイズが少しあって結局エコーキャンセルは必要でした)
UGREEN USB オーディオ 変換アダプタ
また、あまり自分のようなケースの人はいないと思うので、今回情報が出てこず手こずりました
もし似た境遇で困っている人がいたらヒントになると良いなと思います。