iOSで大きく先行しているためか、それほど話題にならないmacOS Sierraの「Siri」。何気なくメニューバー上のアイコンをクリックしているが、よく調べれば興味深いあれやこれやが見えてくる。さらに、「拡張音声入力」と組み合わせると……iOSでは対応しない使いかたを探ってみよう。

Sierraの「Siri」はこう動く

macOS Sierraの「Siri」は、基本的にはiOSのものと同じと考えていい。システム環境設定「Siri」パネルで有効にすると、Dock上のアイコンまたはメニューバー上のアイコンをクリックするか、ショートカットキー(初期値はOptionとスペースキーの長押し)で音声入力の状況を示すダイアログが現れる。あとは話しかければOK、マイクから入力した音声データはクラウドへ送信され、認識エンジンによる分析ののち命令としてMacにフィードバックされる。

iOSと異なるのは、その仕組みをチェックできること。クラウド上の過程は非公開のため想像するしかないが、Macでは初期化スクリプト(/System/Library/LaunchAgents/com.apple.Siri.plist)によりサービスとして起動され、それを見れば動作部分が「/System/Library/CoreServices/Siri.app」とわかる。アプリケーションフォルダにもSiri.appがあるが、こちらは単なるランチャーだ。

他のmacOS/iOSのアプリケーション同様にデフォルトデータベースを持つため、「defaults read com.apple.Siri」を実行すると、どのような情報を記録しているかある程度推測できる。バイナリデータは解読不能だが、「refId」や「aceId」という項目には固有のIDらしき文字列があり、それで個人情報を管理しているのだろう。

macOS Sierraは「Siri」に対応、話し言葉でMacに命令できる

Siriの各種設定は、システム環境設定「Siri」パネルで行う

Siriの動作部分は/System/Library/CoreServices/Siri.appにある

Mac版Siriは「ヘイ、シリ」できるのか?

Siriに命令を伝える方法はiOSと変わらないが、macOSには拡張性が用意されている。それはアクセシビリティ機能の「音声入力」、システムやアプリケーションの機能を呼び出すことができるのだ。インストール直後は有効化できないが、システム環境設定「キーボード」パネルの「音声入力」タブで「拡張音声入力」をチェックすると、800MB近いデータのダウンロード後に利用できるようになる。Siriや初期状態の音声入力とは異なり、実行時にインターネット接続は必要ない。

拡張音声入力を有効にすると、システムやアプリケーションに対する命令の種類が増える

拡張音声入力とSiriは、どちらも日本語を解釈できるが、処理内容はまるで違う。前者はMacローカルで波形データを分析のうえ命令を実行するが、後者は日本語の文/会話としての解釈をクラウドに任せる。だから、Siriがこなせる命令は、クラウド上で(波形データとして)認識可能な文字列であり、クラウドに語い/認識パターンを追加する術がない現状では拡張性がない。

その結果、拡張音声入力はSiriと似て非なる機能となる。ダウンロードした789MBの音声パターンの範囲内で分析するためか、クラウド上のリソースを利用できるSiriに比べると認識精度は大きく見劣りするが、オフラインで利用できるうえ、文字列の範囲指定やコピー&ペースト、画面のスクロール、タブの開閉といった処理が可能だ。処理内容を設定し新規コマンドとして登録する拡張性も備えている。

呼び掛けに応じて命令の入力待ちにすることもできる。「ヘイ、シリ」と話しかけるとSiriが起動するように、なにか言葉をかけて拡張音声入力をスタートさせる設定が可能なのだ。Mac版Siriは「ヘイ、シリ」に対応しないが、「ヘイ」を合い言葉に拡張音声入力を開始することはできる。

高度なコマンドを有効にすると、拡張音声入力からSiriを起動できるようになる

前置きが長くなったが、拡張音声入力を有効にしたうえで「ヘイ」を合図に聞き取り開始するよう設定すれば、「ヘイ、シリ」に近い形でSiriを起動できる。拡張音声入力には「高度なコマンド」に分類される音声コマンドがいくつかあり、そのうち「Siriを開始」を利用しようというわけだ。だから、正確には「ヘイ、シリを開始」でSiriを起動することになるが、「シリを開く」や「シリを起動」という言い回しにも対応することを考えれば、目くじらを立てるほどのことではないだろう。

具体的な設定手順だが、まずはシステム環境設定「アクセシビリティ」パネルで「音声入力」を選択し、「音声入力コマンド...」をクリック、現れた画面左下の「高度なコマンドを有効にする」をチェックする。そして「音声入力」画面に戻り、「次のキーワードで音声入力を有効にする」をチェックし、空欄部分に「ヘイ」と入力 すれば準備完了だ。

これで、すべて話し言葉だけで拡張音声入力の命令を実行できるようになる

これで、Macに「ヘイ、シリ(を開始)」と話しかければSiriが起動するはずだが……反応がない。「ヘイ、これをコピー」とか「ヘイ、これをカット」などの命令はすぐに認識されるので、「シリを開始」部分の認識でつまづいているのだろう。

繰り返すこと5回、ようやく認識されたが、Siriや音声入力(クラウドでの音声認識)と比べると聞き取り精度が低く、かなりストレスがたまる。これなら、Siriのアイコンをクリックしたほうが断然早い。Mac版Siriが「ヘイ、シリ」に対応しなかったのは、ドライブ中に使うと便利なiOS版Siriのようにハンドフリーで起動する利点に乏しいからなのか。

ともあれ、Mac版Siriでも拡張音声入力を使えば「ヘイ、シリ」でSiriを起動することは可能だが、認識精度が低くストレスフルなうえ、ハンドフリー用途に乏しいMacでは積極的に利用する意味がない。ここまで書いておいてナニだが、使わないことを強くお勧めする。

「ヘイ、シリ(を起動)」と話しかけてSiriを起動できたが、正直なところメリットに乏しい