先日、東京のFM放送局J-WAVEの「BOOM TOWN」という番組からお声がかかり、デジタルフォトフレームについて話をさせていただきました。人前に姿をさらすのはイヤですが、声だけならよかろうと。で、オンエアされた自分の声は……鼻にかかった声で、サイテー。いやあ、クリス・ペプラーさんを気取って収録に臨んだつもりなんですけどね(嘘)。

というわけで、今回は「音声認識機能」について。マイクから入力した音声を分析し、アプリケーションに対する命令として実行するこの機能、MacBookやiMacなどマイク内蔵型の機種がMacの大半を占めるようになったにもかかわらず、いまひとつ浸透していない。工夫次第では便利に使えるのでは? というわけで、音声認識機能の現実的な使い途を検討してみたい。

音声認識機能のしくみ

OS Xの音声認識機能は、Carbonに含まれる「SpeechRecognition.framework」など、複数のフレームワークにより実現されている。システム環境設定の「スピーチ」ペインを開き、「Speakable Items」を入にすると音声認識サーバが常駐を開始、マイクから入力した音声を解析してシステムに命令として伝える。

音声認識機能を有効にすると、このようなダイアログがデスクトップに常駐する

初めて音声認識機能を利用するときには、マイクの補正を念入りに行うこと

音声の入力は、「スピーチ」ペインにリスンキーとして登録したキー (デフォルトでは [ESC]キー ) を押しながら行う。音声認識サーバが解析できるのは、話者が北米英語を使う前提で構成された、/System/Library/PrivateFrameworksディレクトリ以下にあるSpeechObjects.frameworkおよびSpeechDictionary.frameworkで定義された音声パターン / 語句だ。つまり、英語以外の言語は原則として受け付けられない。

音声認識の精度だが、ネイティブスピーカーどころか日常会話さえ拙い筆者のこと、予想どおりの低空飛行。FM放送のDJ気取りで (しつこい?) Macに話しかけても、期待通りに認識されない。これは困った……。

発想の転換で「掘った芋いじるな」

以前見たテレビ番組で、元米国在住者がチケットのことを (複数形で) 「ティケツ」 と発音していた。そう、英和辞書にある発音記号にまどわされず、日本人に適した発音を心がければいいのだ。それに、「What time is it now?」の代わりに「掘った芋いじるな」で通じる、という話を耳にしたことも……ということは、音声認識機能に解析される英文を、日本人が発音しやすいものに置き換えてしまえば、こちらの思惑どおり事が進むことになる。

この作業を半自動でこなしてくれるのが、システムワイドで利用できる音声コマンド (Speakable Items) の1つ「Define a keyboard command」だ。対象のアプリケーションを前面に表示した状態で、[ESC]キーを押しながら「でぃふぁいん・あ・きーぼー・こめーん」と話すと、「キーボードコマンドの定義」ダイアログが現れる。そこへアプリケーションで定義済のショートカットキーを登録し、「このフレーズを話すとき」欄へ適当な英単語 (たとえば「tickets」) を入力、[保存]キーをクリックすれば作業は完了だ。

なお、アプリケーションごとの音声コマンドは、Application Speakable Itemsディレクトリ以下に設けられるアプリケーション名のサブディレクトリに保存される。この「tickets」を例にすると、~/Library/Speech/Speakable Items/Application Speakable Items/Safari/ticketsとして保存される、というしくみだ。

このように登録しておけば、Safariがアクティブなとき「ティケツ」と話すと、そのとき表示されているページをブックマーク登録できるようになる

「空耳アワー」のネタで和製音声コマンドをつくる

システム標準装備の音声コマンドは、~/Library/Speech/Speakable Itemsディレクトリ以下に、音声コマンドと同名のファイルとして保存されている。

ここで思い出したのが、筆者が大好きなTV番組「タモリ倶楽部」内の「空耳アワー」。曲のワンフレーズ (英語の曲が多い) が日本人にはこう聞こえるという読者の投稿を、再現VTRによりおもしろおかしく紹介しているこのコーナー、おそらくご存知と思う。EW&Fの「Getaway」で登場する「I know we can」が「青森県」、The Beatlesの「Eleanor Rigby」に出てくる「Father McKenzie」が「間健二」など、十数年の歴史を誇る番組なだけにネタのストックも豊富。発音が面倒な音声コマンドがある場合、コピーして"空耳コマンド"にリネームしてしまえば、発音もラクだし作業も楽しいはず、という目論見だ。

自作した「間健二」コマンドを試したところ。日本人には「Make this page speakable」よりはるかに話しやすく、認識精度も高い?

作業例で紹介してみよう。Safariに表示されているURLを登録する音声コマンド「Make this page speakable」 (~/Library/Speech/Speakable Items/Application Speakable Items/Safari/Make this page speakable ) をコピーし、「Father McKenzie」にリネームすると……音声コマンドダイアログのSafari項に「Father McKenzie」が登録されるはず。以降Safariに表示されているURLを登録する場合、「間健二」と話しかければOK。Make this page speakableと発音するより、はるかにかんたんなはず!

もっとも、標準語のイントネーションで「間健二」と話しかけてもストレートに認識されないことが多く、実際のところ「ふぁざま健二」としなければならない。あとは、試行錯誤しながら綴りを微調整するしかなさそうだ。