遠くにいる人とカラオケしたいですよね?ということで,リモートカラオケできる環境を作ってみましょう.
今回は Ubuntu 仕様で書きますが,Bluetooth で音源を持ってくるところと仮想オーディオのドライバを変えれば,同じ構成で Windows でもできると思います.
A: 筆者が Windows をメインで使うようになるときです.
流す音源は権利的に問題のないものを用いてください.流せる音源や詳しい条件を調べてから実行しましょう.
同研究室の KMGI 先生(同級生)が Bluetooth で PC にストリーミングされており,そこから着想を得ました.ありがとう,KMGI 先生.
必要なもの
使うツールとかは後述するので,物理的に必要なものだけ.
- Ubuntu がインストールされた PC
- スマートフォン
- 有線イヤフォン
ハウリング防止です.また,無線でも良いのですが,スマートフォンと PC が Bluetooth を用いて音をストリーミングするため,Bluetooth イヤフォンを用いると干渉して音がプチプチするためです.
環境
こんな感じの環境を作ってみます.
スマホでしか流せない音源(あるのか知らんけど)や,諸々の需要を満たすためです.自分はあくまでも,手元で流せるのが便利だからやってるだけですよ,ええ.
スマートフォンの音源を PC で受け取る1
まず,pulseaudio で使える bluetooth モジュールをインストールします
sudo apt install pulseaudio-module-bluetooth
/etc/pulse/system.pa
を編集します.
sudo vim /etc/pulse/system.pa
次の記述をファイル末尾に記載します
load-module module-bluetooth-policy
load-module module-bluetooth-discover
PulseAudio を再起動します.
pulseaudio --kill
pulseaudio --start
あとは通常のように,スマホを PC を Bluetooth でペア設定すれば,スマートフォンの音が PC から流れるようになります.
仮想オーディオ・インターフェイスを作る2
OBS の音源を通話アプリケーションに流すために,仮想オーディオ・インターフェイスを作ります.
pacmd load-module \
module-null-sink \
sink_name=Virtual-Speaker \
sink_properties=device.description=Virtual-Speaker
pacmd load-module \
module-remap-source source_name=Remap-Source \
master=Virtual-Speaker.monitor
OBS を設定する
OBS をインストールし,起動します
OBSが起動しないとき
ターミナルから OBS を起動してみてください(obs
).このとき,
...
The Wayland connection experienced a fatal error: プロトコルエラー
と出る時は,Wayland を用いていることによるエラーが発生しています.Wayland が絡む問題を解決しようとするのはわりと大変であるため,代わりに xcb を使います.
QT_QPA_PLATFORM=xcb obs
スマートフォンを追加
音声入力キャプチャを追加.
デバイスが表示されていると思いますので選択.
スマートフォンから数秒音をならさないでいると,項目から消えてしまう/載らないみたいです.追加する時は適当な音源を流しながら,消えてしまった場合は再度再生しながら OBS を再起動してみてください(Bluetooth の再接続はおそらくいらない).
モニタリング設定(通話アプリ出力用)
設定から,モニタリング出力先を仮想オーディオ・インターフェイスにします.
オーディオの詳細設定を開いて,
マイクと電話音源の音声モニタリングを[ モニターのみ(出力はミュート)]に設定します.
通話アプリケーション側の操作
Remapped Monitor of Virtual-Speaker と書いてるマイクを選択します.うまく行っていれば,OBS の音源(マイク+音源)が垂れ流れてくるはずです.
Signal の場合はこんな感じ.
いざカラオケ
歌いましょう.
相手に対して音源をコントロール
相手に対して音源をコントロール/ミュートするときは,OBS から行います.