FC2ブログ

スマフォのアプリを作りたい(37):Bluetoothヘッドセットのマイクが使えない

   プログラミング [2021/04/24]
まじこのテーマに飽きちゃってるんだけど、意地で続けてます。

今月に入って、ReactNative環境を何とかしようと調べを再開したところで、別の問題に気が付いちゃった。
なので、そっちを先に調べました。


◆Bluetoothヘッドセットのマイク入力問題
Bluetooth接続のヘッドセットを実機(スマフォ)と接続して、作ったアプリで音声認識させてみたら、
ヘッドセットのマイク入力が使えてないことに気が付いた!
音声出力はイヤホン側になってるんだけど、入力は内蔵マイクから拾ってます。

なんで?

参考:http://xawa99.blogspot.com/2013/01/Android-UseBluetoothHeadset.html
Androidでは、Bluetoothヘッドセットが接続されるとデフォルトでA2DPというプロファイルを割り当てるそうだ。このプロファイルはステレオの音声出力用で、マイク入力はサポートされてないんだって。
余計なことをしてくれちゃいますね。

接続されたBluetoothデバイスのプロファイルをHSP/HFPプロファイルに変更してくれるのかは分からないが、なんかアプリ(BTMono)があってそれを使うとヘッドセットのマイクが使えるとある。

やってみた。
ヘッドセットのマイク入力が使えた。


まずは、使えない原因が割り当てられているBluetoothのプロファイルにあるらしいことが分かった。
でも、他人様(別アプリ)の力を借りるのは、ちょっとアプリの独立性(独り立ち度)が低いので、標準的な設定、あるいは処理追加で何とかならないかさらに調べます。

参考:https://xtech.nikkei.com/atcl/nxt/column/18/00095/00005/?P=3
ヘッドセットを接続するときの設定オプションの意味が書いてありました。
「電話の音声」、「メディアの音声」と選択できるようになっているけど、これが「HSP/HFP」、「A2DP/AVRCP」に相当する指定なんだって。(なんと分かりにくい。)

ということは、先の「BTMono」アプリで設定しなくとも「HSP/HFP」:モノラル入出力にして使えるようになるのかと思って、「メディアの音声」を非チェック状態にして、「電話の音声」のみ指定して試してみました。
が、ダメでした。マイクのみならず出力側も内蔵スピーカーだけになってしまいます。

なんで?

使っているスマフォで同様の問題について書いているところはないか探してみました。
「SkypeでBluetoothのイヤホンマイクでマイクが使えない」というようなことを書いているところがありましたが、「ヘッドセットのせい?」で終わってました。

誰も同じ問題にぶち当たったことはないのだろうか・・・
持ってるスマフォ+Bluetoothヘッドセットの機種依存の現象なのか、Androidのバージョン依存なのかすらはっきりしない。
ちょっとげせねぇ。


Android(OS)として、Bluetooth周りの制御がどんな構成で行われているか本家のサイトの説明にありました。
参考:https://source.android.google.cn/devices/bluetooth?hl=ja
なるほど。Andorid7以前とAndroid8以降でがらっと変わってますね。
「android.bluetooth」というフレームワークがあるという点は共通です。
(フレームワーク?:ランタイムであって、OSバージョン毎にビルドが必要ということではないと期待。)

参考:https://android.roof-balcony.com/bluetooth/bluetooth_headset_getstate/
参考:https://www.javaer101.com/ja/article/17472281.html
Android上で、Bluetooth接続を制御するやり方をサンプルコード含めて解説されています。
全文を読んでいないので、はっきりしたことは言えませんが、「電話の音声(HSP/HFP)」Only設定が手持ちのスマフォで機能しない件の対策コードを書くことができるかも。


作成中のアプリに取り込んで試そうかとも思いましたが、
「Android8以降のスマフォでは問題ない」とかだと力を注いだ甲斐がないし、「BTMono」を使えば現状でも何とかなるみたいだし。
この件は、しばらくこのままにしちゃいます。




◆オフラインでも音声認識可能?
前の問題の解決方法を検索している最中に「Andoroid6.0以降だとオフラインでも音声認識可能」とか書いてあるサイトが目に入りました。
参考:https://gourmet-technology-crypto.jp/tech/android-speechrecognizer%E3%81%A7%E5%B8%B8%E6%99%82%E3%82%AA%E3%83%95%E3%83%A9%E3%82%A4%E3%83%B3%E9%9F%B3%E5%A3%B0%E8%AA%8D%E8%AD%98%E3%82%92%E3%81%99%E3%82%8B/

これまで、オフラインで音声認識できないと思ってたから一生懸命Juliusを移植したのに・・・そんな。

手持ちのAndroidスマフォ(arrowsM03)で早速設定を試みました。
でも、サイトの説明通りの設定項目は出てこなかった。
使える/使えないは、機種依存があるみたいですね。
Androidのバージョンが上がった機種だとどうなんですかね。

なので、「ホンマけ?」の答えは出ませんでした。

これも放置します。
新たなスマフォ(Android 8とか)の購入も今のところその気ないし。
いまさらねー。




割り込みでちょと脱線してしまいましたが、
次回からデバッグ環境を何とかしたいを再開します。

では、この話はこの辺で。ごきげんよう。
m(__)m
スポンサーサイト





コメントの投稿

非公開コメント

カレンダー
01 | 2024/02 | 03
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 - -
プロフィール

さるもすなる

Author:さるもすなる
さるです。別HPサイト「さるもすなる」から侵食してきました。 山菜/きのこ、それとタイトルにしたPPバンド籠のことをメインに徒然に・・・・暇を持て余したさるの手仕事:男手芸のブログってことで。

最新記事
最新コメント
月別アーカイブ
カテゴリ
天気予報

-天気予報コム- -FC2-
本家のHPのトップ
山菜や茸の話です
PPバンドの籠作品と作り方です
投稿をお待ちしております



PVアクセスランキング にほんブログ村 にほんブログ村 ハンドメイドブログへ



マニュアルのお申し込み



検索フォーム
リンク
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

QRコード
QR