「Experiments with Google」は、Googleが人工知能(AI)や拡張現実(AR)といった最新技術の可能性を示すために、実験的な応用例を紹介しているショーケースだ。膨大なコンテンツを公開しており、その多くはスマートフォンやPCで試せる。
この連載では、多種多様な応用例の中から興味深いものをピックアップして紹介。実際に遊んだ体験レポートを通して、裏側にある技術の解説を行っていく。
読者の皆さんも、ぜひ自分の手で試しながらその仕組みを学んでもらえたらうれしい。きっと、最新技術の魅力に気付くはずだ。
連載2回目の今回は、スマホさえあれば誰でもラッパーになれる「Giorgio Cam」を取り上げる。
Giorgio Camは、スマホやノートPCのカメラを使うWebアプリケーション。カメラで写した物体をAIで認識し、認識したものを題材にラップ風の歌詞を自動生成して、ビートに乗せて歌う。ラップなので「歌詞」でなく「リリック」と呼ぶべきだろうか。
使い方は至って簡単。Webブラウザ上で動くので、Giorgio Camのサイトにアクセスして「LAUNCH EXPERIMENT」をタップするだけ。読み込み完了したら「LET'S GO」ボタンを押せばすぐにプレイできる。
ノリノリの音楽が流れ出してカメラが起動したら、近くにある物を画面に捉えてみよう。写ったものが何かAIで判断して、それをテーマにしたラップを即興演奏する。画面のエフェクトも、DJフロアの照明みたいで気分が上がる。
写真を撮るだけで、その場に合わせた即興のラッププレイを誰でもできてしまう。純粋に楽しいし、AIの物体識別や音声合成などの技術を気軽に体験できる良さもある。まさにExperiments with Googleらしさいっぱいのコンテンツだ。
早速遊んでみよう。ノートPCとAndroidスマホで動くそうだが、さすがにPCを振り回すのは大変なのでスマホにした。
ところが、今回使った「Pixel 3」だと内側カメラでしか撮影できず、被写体を捉えにくかった。しかも画面に表示される映像が左右反転しないので、画角内にうまく収めることがなかなか難しい。サンプルビデオでは、外側カメラを使えていて便利そう。機種依存なのか、Android OSバージョン依存なのか分からないが、慣れるまで苦労した。
内側カメラだと持ち歩いて撮影しにくいので、スマホをスタンドに置いてやってみた。まずは手近にあった物から。一度起動すると、連続して5回プレイ可能。1回で2つの答えを歌ってくれる。
最初に写した腕時計は「sleeve」(袖)と「gesture」(ジェスチャー)に、2番目に写した万年筆は「hand」(手)と「finger」(指)になってしまった。
3番目に写した眼鏡は、素直に「glasses」(眼鏡)でなく「vision care」(視力補助具)という少しずれた解釈になり、続いて迷ったのか「thumb」(親指)と答えてきた。さすがに自信がないようで、表示された信頼度は80%と高くない。
4番目にハサミを見せたら「tableware」(食器類)と「nail」(爪)になった。トングを持つ手と間違えたのだろうか。
最後に「太陽の塔」のミニチュアを写したところ、「toy」(おもちゃ)と「creative arts」(アート作品)と歌ってくれた。やっと正解になって一安心だ。
どうも小さい物は苦手で、画面内にある別の目立つ物に影響されてしまう。もっとも、誤認識は誤認識で面白いし、拍手喝采で終わるのはフロアを盛り上げられたようで気分がいい。
次にもう少し大きな物で試してみた。すると、5回のうち4番目に写したヘッドフォン以外は見事正解した。カメラで写したものとGiorgio Camが返した答えは次の通りだ。
毛色を変えて手元にあった楽器を試したところ、十分に大きいためか正解率が高かった。間違えたのは1番目のタンバリンだけで、画面に入った「arm」と「sleeve」に引きずられてしまった。
2番目に見せたシンセサイザーは「musical instrument」(楽器)、「keyboard」(キーボード)と正解。ちなみに、別のタイミングでピアノを見せたら「piano」と答えており、両者をきちんと区別できていると分かった。
ところが、3番目からのアコースティックギター、エレキギター、エレキベースは、以下の通り見分けられなかった。
生き物とぬいぐるみは区別できるのだろうか。試してみた。
猫を写してみると、「cat」(猫)と正解しつつも「carnivore」(肉食動物)や「vertebrate」(脊椎動物)とひねった回答を出した。「leg」(脚)のように一部分だけ判定することもあり、案外難しいようだ。「comfort」(快適)と答えたこともあり、猫らしいと言えば猫らしいが、AIにどんな学習をさせたのだろうか。
ダンボは世界的に有名だからか、「toy」「stuffed toy」(ぬいぐるみ)と正解しつつも、「hand」「watch」(腕時計)を誤認識した。
チェコの国民的キャラクター「クルテク」と、日本で人気の「11ぴきのねこ」に登場する「のらねこ」は、結果が微妙だった。クルテクは「hand」「arm」の他、「joint」(関節)や「shoulder」(肩)と表示され、どうやら形に大きく影響されてしまった。のらねこは「head」(頭)、「product」(商品)、「eye」(目)というように、目立つ部分につられたようだ。
Giorgio Camは、機械学習をベースにしている。カメラで撮影した画像を認識して分類し、分類結果のテキストを合成音声で読み上げる仕組みだ。ただ、それだけだと遊び心に欠ける。そこで合成音声がラッパーに似ていることを利用して、音楽に合わせて発声させることで機械学習を楽しんで体験できるように開発した。
起動すると、クライアント側のJavaScriptアプリがWebRTC(Webブラウザを介してリアルタイム通信できる技術)を利用して撮影した画像をサーバに送信する。サーバ側では、画像内の情報を抽出する「Google Cloud Vision」を活用して写っている物を特定し、分類結果や信頼度を返す。
これらの結果をラップ風歌詞のテンプレートに埋め込んでテキストデータ化し、音声合成サーバ「MaryTTS」に送る。MaryTTSから送り返されたwavファイル形式の音声データを基に、Webブラウザ上で音楽を同期できる「Tone.js」を使って演奏する。
実際に使ってみると分かるが、精度は高くない。最近のスマホに搭載されているカメラアプリに比べると、よく間違える。
それでも、こうしたシステムの基本的な動作を学ぶには、良い教材になる。スマホのような小さなデバイスでも、サーバと通信して各種機能を組み合わせることで、以前だったら不可能な機能を簡単に提供できるのだ。
Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR