Tech:android:voicerecog

出典: Tariki

目次

androidの音声認識

Android 1.6から音声認識が利用できるようになった。1.5からOSにこの機能はついたときいたが、実際にアプリケーションにお目にかかったのは1.6である。

英語に限られるが、不特定話者の学習なしの音声認識である。さてこれがどのくらい実用になるかというと。

実は私は、この手の『知的処理』アプリケーションで汗をかくまで遊ぶマニアである。IBMやMSIMEの音声認識(日本語、特定話者・学習あり)で学習させまくった上で猫の鳴き声などを流し込んで『拝啓ふげげげマヨネーズごばびょでございます』などと変換するのをみて笑い死にしそうになったのもこの私であるし、日記あたりに書いたと思うが電話の音声の真実度測定ソフト・ハードのセット『Truster』を買って友人に片端から電話をかけ、しまいにゃ117の時報が嘘をついていると断定したのもこの私である。

というわけで、今回はOS 1.6のアプリ『VoiceSearch』で遊んでみたレポートである。

バイケルギャクソン (または台風) が上位に来ないわけ

その前に、いちおう私も音声処理をかじった者ではあるから、内部がどうなっているか憶測してみたい。

まず音声認識系は、Googleアプリとしてはこの後述べる『VoiceSearch』 (OS1.6では虫眼鏡ボタンを長押しすればショートカット起動できる)のほか、『VoiceDialer』(同じく通話ボタンを長押し)がある。

後者はネットワークを使う(オフラインでは利用できない - まあGoogle検索なんだから使えなくて当たり前だが)が、前者は単独の携帯電話内で利用できる。どういうことかというと、音素を認識する (かなりいい加減でよい) ところまでは携帯電話内で行なっているようだが、それを用いて最尤な単語を検索(さらにサーチの場合は最尤な単語の並びを検索)するのは、後者ではサーバで行なっているようなのだ。

これは大変賢いアプローチである。上で『いい加減で良い』と書いたのは、人間も実際音素レベルではたとえば[o]と[a]、[k]と[t]と[p]などいい加減に認識していて、音素のつながりで単語、さらに単語のつながりで文章の前後関係から誤り訂正をしている、という研究論文を前にみかけたことがある。嘘だと思ったら電話とか(口元が見えないように)「久しぶり、電気?」とか喋ってみたら相手は「元気」と認識するだろうし、「バイケルギャクソン」というひとはいないので「マイケルジャクソン」と認識されるだろう。

まあMSIMEなど前述の音声認識アルゴリズムでも当然、そういったアプローチ導入はしているだろうが (だから『ございます』などが変なところに出現する)、Google検索サーバが加わると強力なことになる。使用頻度(検索人気度)も加味した候補を提示することができる。後述の例でいくら台風『typhoon』を検索しても『iPhone』としか認識されないのはこの強力さが裏目に出ている例だ。日本でいくら台風18号が猛威を振るっていても、世界全体で見たらiPhoneの方が重要なのだ(笑)。

ただし残念なのは、現状でGoogle検索データベースは音素単位の辞書とはなっていない(だろう)。だから、単語の認識には検索人気度を利用するようだが、いったん単語が確定してしまうとその単語を含む候補しか出てこない。

たとえば、『バイケル・ギャクソン』というスターがいてムーンウォークが得意だが、マイケル・ジャクソンほど人気がないとする。端末で音素認識した結果「?いける ?くそん」がサーバに送られると、検索人気度1200 (この数字は私の創作であり意味はない) の『マイケルジャクソン ムーンウォーク』が人気度1100の『バイケルギャクソン ムーンウォーク』より上に来てしまったとする。すると、検索結果は人気度1200の『マイケルジャクソン ムーンウォーク』、人気度900『マイケルジャクソン 味噌汁の具』、人気度700『マイケルジャクソン 好きな色』……、というように、マイケルジャクソン関連しか表示されなくなってしまう。たとえ『バイケルギャクソン ムーンウォーク』の人気度が1100であってもだ。

VoiceDialerの実力

さてさて、サーバを利用したVoiceSearchは1.6系ROMでしか利用できていないのだが、VoiceDialerは1.5系で利用できている。2009年11月現在愛用しているTrojan (SuperMagic)では配布パッケージにVoiceDialerが入っている。

ただしOS/アプリ的に音声認識のキモの部分は、VoiceSearchも利用している音素解析の部分だろうし、1.6その他ROMからひっぱってきたVoiceSearchを1.5で動かすと落ちる落ち方からして、ライブラリが足りないだけのような気がする。まあともかく、2009年10月末にちょっと出かけて(外で地図・webを参照する必要があった)OSを1.5系に戻してからは、下記のVoiceSearch遊びはやっていない。

VoiceDialerは1.5系でもきちんと動いているのだが、これは先にも述べたように電話機単体で利用できる(オフライン時も作動する)。これがまたユニークで、電話帳の検索だけではなく、アプリケーションを開いたりもできる。

起動すると使用例が出てくるが『Call だれそれ』で電話帳の中のだれそれを検索してくれるほか『Redial』とかできるし、『Open なんとか』でインストールされているアプリケーションのなんとかを起動してくれたりする。

電話帳の中の日本人名だが、これはちょっと微妙だ。私はWindows Mobileの時代から、すべてひとの名前はローマ字 + 漢字で登録しているので (おかげで日本語化で問題になっているインクリメンタル検索問題も回避できている)、検索そのものはできる。だが日本人名は必ずしもきちんと認識されるとは限らない。後述のVoiceSearchの日本人名の例でもそうなのだが、音素の違い(日本語の『あ』と英語の[a]の違いとか)、アクセント、その他が影響しているのだろう。人名を『外人読み』してみてもダメなものはダメである。

ただしやはりアメリカ人名には強いようだ。私の電話帳には、通常の英語圏であり得る人名は5人ほどしか登録されていないのだが、このひとたちはほぼ100%で認識する。他の『あり得る人名』が少ないからかもしれないが、その他英語圏的にはあり得ない人名の文字の並びが1000件近く入っている中、これらがピンポイントで探索できるということは、やはり英語的な音素の並びには強いように辞書ができているのだと思う。

アプリケーションのオープンであるが、これまた微妙だ。もちろん日本語名(中国語名なんてのもある)のアプリケーションは開けないが、英語名であっても、たとえば『Wnn』(うんぬ)『GPSstatus』(じーぴーえすすてーたす)みたいに、ふつーじゃない読み方をするものはまず起動してくれぬ。もっとも『Gmail』は「じーめいる」で開くので、特殊な読みは辞書を持っていればOKということになる。

ほかに数字で読み上げた電話番号に電話をかけてくれる機能もある。ただし電話番号は10桁を仮定しているようで、これ以外の長さには認識結果はならない。しかし候補に並んでいる電話番号をみると結構違っていて、ぞっとしますな(笑)。

VoiceSearchの実力

以下は私が遊んでみた記録である。なおこのページを書いた(記録だけ取っておいたのだ)現在は、半月以上1.5系なので、いまとなっては確かめるのは面倒だ。リクエストとかは勘弁してもらいたい(笑)。

ここで実験台となっている私の英語の発音はというと、日本人訛りがあるけど一応人間相手なら通じるという程度でしょうな。

ふつーのフレーズ

まずはふつーの英文をぐぐる。西洋人のふつーというと聖書が代表的でしょう。マタイ3.16だったと思うけど分割してみました。この検索機能、結構短いポーズでも文章終了とみなされるし(一気読みしなければいけない)、あまり長いとヒット率が落ちるようです。

ちなみに発声が切れ目になるると「ぽ」とかいって認識に入るのだが、このときてきとーっぽい音声波形がロゴっぽく表示される。と思ってよくよく発声したものとの関連をみてみたら、きちんと発声した音に応じた波形になっている。んだが、それにしてもSF漫画に出てくる波形っぽい。

※は私のツッコミ、『o』印は正しく認識したことを示します。

  • for god so loved the world → 2回目でo
  • he gave his only begotten son
    → gay people ※ 神に向かって何を
    → cheesecake bites on b b customs ※ ちょっと詩的だ
    → 3回目でo
  • whosoever believeth in him should not perish
    → crucify believe in sleeve shirt north face ※ なんじゃそりゃ
    → roosevelt relief to kingston ※ キングストンて誰
    → f abcnews.com ※ 聖書の時代にabcnews.comが
    → …… ※ ギブアップ (だいたい古い単語が多すぎ)

そのとき思いついたフレーズでも試してみました。塩くらげを使った料理(いかにも検索しそうでしょ?)。

  • dried jelly fish cooking
    → stripe jelly fish cooking ※ 縞クラゲって気持ち悪いぞ
    ※ …… 4回目で成功

時事ネタ

こういうのはGoogleの検索巡回スピードがものをいうね。上でも書いたけどそのときホットだった台風関連。

  • typhoon news
    → iphone news ※ ×3回
  • typhoon storm → iphone storm/stolen
    ※ 関連ありそうな単語を結び付けてみてもまったくダメ。
  • jail break → jailbreak ※ 検索数が多いんでしょうなー。

以下全部、一発で正しく認識できたもの

  • htc magic ※ 当たり前か
  • obama blackberry ※ 時事ネタ
  • swine flu ※ これも
  • super talent ssd price ※ 手元にあったんだが、こんなのが正しく認識できてびっくり
  • ebay.com
  • microsoft mouse
  • windows 7
  • kit kat ※ 甘いもの大好きアメリカンには当たり前
  • ikea furniture ※ 諸外国では結構有名?
  • panasonic ※ ををっ。

というわけで↓日本の名前に続く

日本の地名・人名を含む

まずは日本の地名でも英語発音で検索できれば便利、ということで手近なところから。

  • map yokohama west exit → map oklahoma west exit ※ オクラホマ駅西口ってあるのか? (笑)

逆パターン。今話題のあの地名もやってみます。

  • map of 小浜 → map of obama
    ※ ってobamaだけ言われたら人間だってどっちのオバマかわからないしね。

ニコンはアメリカではナイコンといわないと通じない、というのは有名な話なので

  • nikon (ni-kon) → iphone ※ どうしてもiPhoneにしたいらしい。
  • nikon (nai-kon) → nikon ※ こっちのが「あいふぉーん」に似てると思うのだが。
  • tokio ※ 外人っぽく「とぉきぉ」みたいに
    → tokyo
  • 東京 ※ きれいな日本人発音で(以下日本語で書いているのは日本語発音)
    → tokyo ※ 日本人発声のは音素辞書あるんだろうか?
  • 横浜 → yokohama ※ あれ日本人発音のほうが認識できるじゃん? というわけで
  • 横浜駅西口 → oklahoma commission ※ どーしても横浜はオクラホマにしたいようです
  • 東京タワー → tokyo tower

タワーなんてカタカナ英語でOKなのね。というわけで次は↓

カタカナ英語・和製英語

なんでも(日本語で言えることまで)カタカナ英語化したいのはDQNおやじの証。

  • コンプライアンス ※ 以下日本語で書いているのは日本語発音
    → o'briens
    → dialysis
  • ベースボール
    → facebook
    → baseball

では正しい英語の発音で和製英語をいってみましょう。

  • intelligent building
    → impatient beauty
    → carrot peeler ※ おいおい(笑)

そもそも"building"がダメで、10回近く発音してもほとんど認識されない。

  • building
    → stephen king
    → puking ※ ……(以下延々失敗)
  • world trade center building
    → youtube ※ おい (観ろってことか?)

日本の企業名 その2

気を取り直して。

  • mixi
    → mix ※ さすがに人造語、それもド日本ローカルじゃダメ
    → nixie
  • 楽天 ※ これも
    → stockton
    → doctor
  • ソフトバンク
    → softbank ※ 同じくらい海外で無名企業なのに

これ単に一般英単語2つだったからOKだったのか? とも思って

  • softbank ※ 流暢に発音してみると
    → first bank
    → soft bank ※ 認識できても一般英単語2つ(上との違いわかる? 結合していない)。

やっぱり日本語発音の「ソフトバンク」で音素並び辞書登録してあるのか?

  • エヌティーティー ※CM口調で
    → in a t t ※ まあ類似企業ですけども
  • N T T ※ きちんと英語発音で一文字ずつ区切って
    → n e t ※ちなみに略語の認識結果はこういう風に出ます
    → n d t v
  • nihon telephone and telegram
    → u-haul castle and cooke ※ U-Haul社は引越し用トラックの会社だそうで。城とかクッキーは作ってないと思う
    → home telephone and telegram ※ にほんがダメみたい
  • nippon telephone and telegram
    → people telephone and telegraph ※ 皆様のNTTってか
  • J R → j r ※ おおっ
  • japan railways
    → japan red light ※ 日本赤なんとかはいろいろありますが
    → japan rail rates
  • japan airlines → o ※ さすがフラッグシップ(やばいけど)
  • all nippon airways
    → old nippon airways ※ おいっ(笑)
    → on the family
  • it's a sony ※ ちょっと古いか?
    → sony
    → its awesome ※ まあ確かに
  • it's a (ei) sony → o ※ ふつーの会話でもそうですが、"a"を正しく伝えたければエイと発音しろと。
  • for beautiful human life ※ 英語として変らしいですが
    → fork utah human life
    → o ※2回目で成功

ドメイン・サイト名関連

  • www.washingtonpost.com
    → www washingtonpost ※ このへんはできなきゃ困る
  • weathernews.jp
    → return use g p
    → matine use static
    → …… ※ そもそもジェーピーってのがダメみたい。
  • weather news japan →without you japan
  • weather news → without you ※ 唄の歌詞かよ

コンピュータネタ

  • FQDN → x (※ 略語には弱いみたい)
  • full qualified domain name → o
  • voip → p o r i p
  • voice over ip → o
  • database sql → database isqft/database in sql
  • programming language c → programming a b c ※ うーん検索は多そうな気がするが……
  • ip address netmask → o

他の専門用語

ではコンピュータ業界以外の専門用語はいかがか。

  • acid indigestion ※ 胃酸過多のことです
    → at&t dsl ※ 意味は通じる
    → 8 inches ※ どこの長さよ
    → … 8回目で成功
  • acidity ※ これも胃酸過多のこと
    → kentucky ※ 食い過ぎて
    → wiki
    → spdt ※ なにそれ
  • cecum ※ 盲腸のこと
    → stickam
    → hickam

まあ胃酸過多くらいなら日常生活でも使うかもしれないけど。しかし英語圏の分野外のひとの専門用語知らなさってのはすげーです。それについては小栗左多里さんが『ダーリンは外国人』で考察していたが、例えば日本語や中国語なら『胃酸過多』という字面をみれば、「ああ胃の酸が過分に多いのだな」と推測できる(たとえ症状がどうとか原因がとか分からなくても)。ところが英語だとラテン語起源とかになることもあって、ちょっとでも医学用語だと知らないひとは全然わからない。らしいです。

日本以外の外来語

この認識エンジン、日本語がわからない、のではなく、英語以外がわからんのだ。もちろんイタリア語とかはダメだというのは当たり前だが、英語化している外国語は?

  • rockfall cheese → rock falls cheese ※ かろうじて同じような英単語があるからおk。
  • chopin nocturne → o ※ ショパンの読みは英語圏では違うと思うが
  • dobussie alavesque → the pc avast ※ PC禁止命令?
  • beethoben → pentel pens ※ おおおおおっ!? 意味が通った聞き間違い。それにしてもぺんてるってそんなに有名なの? と思って
  • pentel pens → o ※ ふむ。

machだけだとmac/markと区別がつかないと思ったので数値を付けてみました。

  • mach 9/10/11 ※ 英語では「まーく」と発音します
    → mark knight
    → lockton
    → mac 11
  • mach (-ch) 9 ※ ドイツ語読みで(日本語と同じ)「まっは」
    → mustang

ラテン語由来で英語になっているものはどうでしょう。知的な会話には欠かせないとされているが (日本における外来語大好きおやぢと同じかも)

  • vice versa
    → buy stamps
    → fight status ※ そもそもこれ書き言葉だしなあ。
  • vice versa ※ 英語っぽく「ヴぁーさ」と読んでみた
    →toys r us ※ 検索多いんだろうね
    → iphone ※ またかよ
  • vice president → o ※ だから「ヴぁいす」自体がダメなわけではないみたい
  • vs → francis
  • i.e. → speed test ※ 「いどえすと」と読む(ってこれも書き言葉か)

ちなみに何でもかんでも既存のデータベースに結び付けてしまうわけではなく、あまりにも分からなすぎる単語があると認識エラーになるようです。

外国人(系)名はどうか。

  • steeve reich → steve price
  • arnold schwarzenegger → o ※ さすがに知事だしなぁ
  • steven spielberg → o ※ さすがにスターウォーズだしなぁ
  • phoebe cates → o ※ さすがに美女だしなぁ
  • ichiro → mitchell ※ 何回やってもダメ。

イチローは、えっ、という感じでした。検索対象としてホットでもある上、通常の日本人名として認識できてもいいはず。日本語読みならばと

  • 一郎 → jewel

orz。その割に(たまたま目の前でNHKのクソドラマに出ていたので)

  • 国仲涼子 → kuninaka ryoko

おーいおいおい(笑) 国仲なんて珍名の一種だし。こりゃ絶対にGoogle Japanにファンがいるだけちゃうか?

気を取り直して映画関係。

  • jean-luc godal
    → joan dakota ※ あまりフランス映画って米ではやらないのかな
    → shinjuku hotel ※ なんで日本語やねん
  • luc besson
    → duke passat
    → duke the song
  • luc besson great blue
    → castle creek
    →pistol grip
  • great blue → great britain
  • john woo
    → john wooten

中華系のひとって英名つけるけど、こういう場面で重要かも(あとボイスサーチの電話帳で)。って苗字が中華名のまま認識不能なので効果半減ですけどね。

ザ・ベストヒットUSA (小林克也風に)

  • donna summer → o
  • whitney houston → o ※ 小林克也さんは「ぅいっにー」みたいに発音してたのが印象的。
  • the gratest love of all → travel phone ※ これも「だ・れいてすと・らぼぼー」みたいに
  • whitney houston the gratest love of all
    → whitney houston the gratest love quotes ※ このくらい長いと、逆に雑音が混ざっていても検索結果は使い物になりました
  • michael jackson thriller
    → michael jackson sleep ※ 永い眠りですが
    → michael jackson 3 ※ そもそもthrillerの発音が難しいんだってば
  • michael jackson off the wall → o
  • pink floyd the wall → o

いかがわしワード

もちろん辞書をみればやらしい単語を引くのが男子中学生。

  • f*ck → ####
  • fu*k you → #### you

いわゆるfour letter wordsはほんとにシャープ印が四つ表示されます。認識は正しくした上でお咎めがあるという。

ところが

  • kiss my ass → o
  • god damn → o

まあ単独の単語がいかがわしくないものはは外すわけにいかないしね。

日本語ではどうか。

  • ち*こ → cinco ※ へーそういう単語あるんだー。

歌ってみた

音程を付けて歌ってみました。切らないのがコツ。もちろん声まね・物まね(スティービーの場合は首を上げて振る)も忘れずに。

  • you're the sunshine of my life
    → you are the sunshine home made 9
  • Everybody's got a thing
    → aim buddies guide listings
  • But some don't know how to handle it
    → canton ohio to handle movie
  • Don't you worry 'bout a thing
    →don't you worry bout a thing ※ おお。さすがタイトルでサビだけのことはある
  • When you get it off... your trip ※『...』部分は延々半音進行で伸ばしてみました(笑)
    → when you get dual boot no no no no infuse jeep
  • That girl thinks that she's so fine
    → zach guy thins he's so fine
  • With her emotional rescue of love
    →that you'll leave torn apart
    → pizza emotional rescue mass judge judy stone in pounds ※ ピザ食って太ったのかよ
  • Before I tell her that I love her
    → before i can love you

ふつーに喋ってみると

  • Before I tell her that I love her
    → before i can hide that i love song

また歌います。

  • Isn't she lovely
    → pizza sheila movie ※ pizzaってやっぱり多数検索されるのか?
  • happy birthday to you → o ※ こっちは伝統歌のほう
  • happy birthday happy birthday happy birthday => エラー (server problem)※ S. Wonderバージョン

白人歌手が黒人風に歌ったのを黄色人種が物まねして緑色人種が認識します。

  • Uptown girl → jungle
  • She's been living in her uptown world → shifting between a hawk down moon
  • You know I've seen her in her uptown world → ufc hiney ho uptown world

あとは思いつく限り。

  • parsley, sage, rosemary and thyme → ashley sage rosemary and thyme
  • welcome to the hotel california → wiccan to the top 10 california
  • london bridge is falling down, falling down, falling down
    → long is falling down folding a 14 pound
  • Annie, are you ok?/So, Annie are you ok/Are you ok, Annie
    →ikea realty itil qui qui qui ※ なげーよ。

とここで思いついて

空耳アワー

空耳アワーというのは英語の歌を聴いて日本語に聞こえるわけですが、ならばその日本語を歌ったら元の英語に認識されるか?

  • 朝からちょっと運動 表参道 赤信号 (As he came into the window/It was the sound of a crescendo)
    → ahsoka digital window candles shingles ※ windowだけあってる
  • 悦子の母乳だ!(It's gonna bring you down) → xsport logan utah

メタル系の方はVoiceSearch使わないほうがいいでしょう(笑)。まあああいう歌い方は人間のネイティブでも聞き取れないっていいますけどね。