AfterShokz(現:Shokz)のOpenCommを使っていますが、Ubuntu で利用していると、プロファイルがA2DPを選択されてしまい、毎朝仕事をする前に、Handsfree Head Unit(HFP)に選択し直さないといけないという作業があったんですが、いい加減ちゃんと調べようと思って調べました。
pactl list cards
を使って利用可能なプロファイルを検索する
下記のコマンドを実行すると、
LANG=C pactl list cards |less |grep -E 'Name|profile'
下記のようになります(他にも色々でますが)。
Name: bluez_card.**_**_**_**_**_** Part of profile(s): a2dp_sink, handsfree_head_unit Part of profile(s): handsfree_head_unit
上記の通り、下記の2つのプロファイルがあります。
- a2dp_sink
- handsfree_head_unit
pacmd set-card-profile
でプロファイルを指定する
下記のようにpacmdコマンドに、カード名とprofileを渡して実行すると、プロファイルが切り替わります。
pacmd set-card-profile bulez_card.**_**_**_**_**_** a2dp_sink pacmd set-card-profile bulez_card.**_**_**_**_**_** handsfree_head_unit
pacmd set-default-source
で入力(マイク)も選択する
a2dp_sink を選んでいると、マイクをShokzにできないので、会議とかに使う場合は、HFPの方を選択します。その場合には、マイクも設定したいですね。
ちなみに、PulsAudio の sinks というのは、出力(スピーカー)のことで、sources というのは、入力(マイク)のことになります。
pactl list sources
で、検索できるんですけども、A2DPを選んでいると、出てきませんので、サウンド設定で変更してください。
pactl list sources |grep bluez_source
下記のようでてきます。
Name: bluez_source.**_**_**_**_**_**.handsfree_head_unit
pacmd set-default-source
で入力を選択する。
pacmd set-default-source bluez_source.**_**_**_**_**_**.handsfree_head_unit
音量も設定する
A2DPとHFPの切り替えはこれで大丈夫なんですが、mixerで同じ音量にあわせているとA2DPとHFPで音量が微妙に異なって聞こえます。 骨伝導イヤホン使ってると、声質によりますが、音量が大きいと、すごいこそばゆい感覚になる時があり、大きい音量だと微妙な場合があります。
こちらもコマンドで設定できます。
※ちなみに、A2DPの出力ボリュームが0になってることに気づかず、なんで聞こえないんやろって、なってました...ので、聞こえない人は、pavucontrol --tab=4
とかで調節しましょう(以下に紹介するコマンド使ったら良いんですが)
pactl set-sink-volume
で、出力の音量を設定する
下記のコマンドでsinksを特定します。これも、A2DP選んでいると、HFPの設定は出てこないので、設定で選び直してから、それぞれ特定してください。
LANG=C pactl list sinks| grep Name | grep bluez_sink
下記のように出てきます。
Name: bluez_sink.**_**_**_**_**_**.a2dp_sink
サブコマンドのset-sink-volume
で設定できます。
pactl set-sink-volume bluez_sink.*_*_*_*_*_*.handsfree_head_unit 75%
pactl set-sink-volume bluez_sink.*_*_*_*_*_*.a2dp_sink 90%
pactl set-source-volume
で、入力の音量を設定する
下記のコマンドでsource を特定します。
LANG=C pactl list sources| grep Name |grep bluez
下記のようにでてきます。
Name: bluez_sink.**_**_**_**_**_**.a2dp_sink.monitor
サブコマンドのset-source-volume
で設定できます。
pactl set-source-volume bluez_sink.**_**_**_**_**_**.a2dp_sink.monitor 135%
マイク音量が小さいとよく言われるので、大きめにしてみました。
終わり
このコマンドを、こないだ作ったSTREAM DECKをコントロールするプログラムに組み込んで、仕事用のページとか、ZoomやMeetが、Active windowになったら、コマンドを実行するみたいにしてみました。後は、PodCastやYoutubeとかのbookmark的なページにいったら、A2DPに変えるようにしてみました。
ちなみに、OpenCommについて
仕事で一日中つけっぱなしで使っていますが、かなり気に入ってます。
朝から晩まで10時間以上仕事でつけっぱなしでも(ずっと会議してるわけではないですが、僕の仕事上、会議はかなり多い)、充電切れない。 充電忘れたときでも、5分の充電で2時間通話くらいの充電してくれるので、昼休みとかに充電しとけば基本問題ないかなと思います。
欠点としては、頭痛のときには、つけっぱなしはちょっとしんどいかも、くらいです(僕は頭痛もちではないので、そんなことはあんまりない)。