クラムシェルではSiriは使えない
今は、Mirror-DTC Ver1.4.5の開発フェーズで、最初に開発が簡単そうなmacOS版から実装している。今日の時点でサーバーとクライアントに加え、TiLoopBackの追加用の更新も完了した。なので、後はトランスポーターだ。
トランスポーターというのは、画面上にある指定ウインドウの内容だけをクライアントに転送するMirror-DTCサーバーになる。
なので、通常のMirror-DTCクライアントから接続して利用できるのだが、その利用形態としては、サーバーとクライアントの両方が手元にある事が想定されている。
何故なら、トランスポーターでは、転送ウインドウを指定する必要があるのだが、その指定は、Mirror-DTCクライアントからは出来ないので、サーバー画面を直接操作する必要があるからだ。
そんなリモートデスクトップサーバーに何の意味がある? と、思う人もいるかもしれないのだが、このブログの読者であれば、作者がMirror-DTCを普通のリモートデスクトップソフトとして開発した訳ではない! と、言う事はわかっている筈だ。
つまり、Mirror-DTCというのは、遠隔地にあるサーバーPCを出先なんかからリモート操作する! 為に開発した訳ではなくて、作者環境の様に、数台以上のPC/Macを、単一の操作用PC/Macから操作できる様に開発したモノな訳だ。
なので、このブログでは、Mirror-DTCを、ソフト的な、モニター/キーボード/スピーカー切り替え機、みたいに表現してきた事もある筈なのだが、トランスポーターというのは、その延長線上にあるソフトになる。
具体的には、トランスポーターを使うと、普通のデュアルモニター構成よりも、より便利なデュアルモニター構成を構築できる。
トランスポーターで転送する事を指定したウインドウは、通常は、サーバーの画面表示からは隠され、Mirror-DTCクライアントの画面上に表示される事になる。
しかし、サーバー側で、Dockのアイコンをクリックしたりして、そのウインドウを最前面に持ってくると、表示はMirror-DTCクライアントの画面からサーバー画面に戻ってくる。
そして、サーバー画面上で、デスクトップをクリックしたりして、表示を最前面から外すと、表示は、また、Mirror-DTCクライアントに戻る。
つまり、デスクトップ上に多くのウインドウを表示していると、それらの内容が見えなくなるのだが、トランスポーターを使えば、それらの表示をMirror-DTCクライアントの画面上で確認可能になる。
そして、そのウインドウを操作したくなったら、そのウインドウを最前面に移動させるだけで、サーバー上に表示させる事が出来るので、操作するためにはマウスカーソルを大きく移動させる必要がある通常のデュアルモニター構成よりも、快適な操作も可能になる訳だ。
と、言う事で、トランスポーターは、そのコア部分には、Mirror-DTCサーバーの機能を内蔵し、それを使ってMirror-DTCクライアントと通信しているのだが、用途や利用形態はMirror-DTCサーバーとは異なる。
なので、例えば、今回の更新を行う動機となった、AIアシスタントに音声で話しかける! 為に必要になるクライアントからサーバーへの音声転送機能の実装は、トランスポーターには不要だ。
何故なら、トランスポーターを使っているユーザーは、サーバーを直接操作しているので、AIアシスタントに話しかけたければ、普通に、サーバーのマイクを使えば良いからだ。
もっとも、トランスポーターにもサーバーと同様のサーバーからクライアントへの音声転送機能はあるので、その入力が規定の入力デバイスに固定されていると、再生音の転送用に規定の入力デバイスにMacの再生音が流れ込む格好にしておく必要がある。
それでは、AIアシスタント用にマイクを規定の入力デバイスには出来なくなるので、トランスポーターでも、サーバーと同様に、音声転送の転送元の指定だけは、行える様にしておく事にする。
ちなみに、MacのAIアシスタントといえば、Siriになるのだが、今回の更新機能を使って、クライアントマシンからサーバーマシンのSiriに音声で話しかけるテストを行っていて、Siriには、驚きの仕様がある事を確認した。
具体的には、テストでは、クライアントにM2 Pro Mac mini、サーバーにMacBook Pro 13インチ M1モデルを使用したのだが、MacBook Pro 13インチ M1モデルの蓋を開けた状態でテストしていた段階では、普通に動作した。
つまり、クライアント側のマイクを使って、Siriに、「今日は何日?」みたいに話しかければ、Siriが答えてくれたのだが、MacBook Pro 13インチ M1モデルの蓋を閉めた状態で、同じ事をやったら、Siriのアイコンをクリックした時点で、Siriは動作できない旨のメッセージが表示された。
なので、ネットで調べてみた所、セキュリティ上の理由から、Siriは、蓋が閉じられたMacBookでは利用できません! みたいなApple公式のQ&Aがあったりした。
つまり、巷でよく使われている「クラムシェルモード」なんかでは、外付けマイクを接続してあったとしても、それを使ってSiriに話しかけても、Siriは無視する! というのが仕様になっている。
その結果としては、作者の様に、MacBookは蓋を閉めて本箱に入れた状態で、Mirror-DTC接続して使う様な人的にも、そんなMacBookにあるSiriは使えない事が判明した訳だ。
まあ、Siriを使いたければ、蓋は完全に閉めてしまわず、小さめの本なんかを挟んで、少し開けた状態で使えば事足りるのだが、巷で、クラムシェルモードを使っている人的には、Siriが使えない筈なので、今時のAI時代に、そんなので良いの? と、思ったりもした今日この頃だ。
もっとも、蓋を閉めた状態でも、クライアントからサーバーへの音声転送自体は行えているので、AGMPlayerの録音機能なんかを使って、クライアントのマイクで入力した音声をサーバー側で録音する事は可能だ。
Appleの公式見解では、蓋を閉めた状態で不可能にしているのは、音声によるテキスト入力、だけ、という事なので、入力音声をテキスト化して利用するSiriは利用出来ないものの、入力された音声の録音は可能! という事になる様だ。
- 2025/03/31追記 -
色々とやってみていると、USB端子にヘッドセットを接続しておくと、そのマイクを使わなくても、蓋を閉じた状態で、クライアントからサーバーに転送した音声で、Siriが使えた。
なので、蓋を閉めた状態でSiriを使いたければ、何かしらの外部USBマイクを接続しておけば良さそうなのだが、キーボード設定で、音声入力を許可し、その入力元に、サーバーからの音声出力先であるTiLoopBackを指定しておくと、ヘッドセットを接続しておかなくても、テキストの音声入力は行えた。
つまり、ネットで検索して出てくる内容と、実機動作は合致しない感じなのだが、これはサーバーのテスト環境にしているmacOS 15.3.2のバグなのか、改良された仕様なのかは、今日の時点では良くわからない状況だ。
と、言う事で、外部マイクを接続しなくても、音声入力は使えるのであれば、クライアントからサーバーへの音声転送機能を追加した意味はあるかもしれない。
しかし、テキストの音声入力とSiriの使用に必要になる条件が異なる、というのは、イリーガルな状況に感じるので、近い将来、それぞれの挙動は変更されるのかもしれない今日この頃だ。

