「オーケーグーグル、僕らは友達になれる?」 スマートスピーカーの自然な声の秘密

「オーケーグーグル、僕らは友達になれる?」 スマートスピーカーの自然な声の秘密

SHARE

「オーケーグーグル」。
私たちは最初、この言葉を機械に向かって喋ることに、とても抵抗を感じていました。
しかしいつのまにか、多くの人が自然にGoogle Homeに話掛けるようになっています。
少しずつ人間の世界に溶け込んでいくスマートスピーカーの存在。
この親しみやすい自然な「声」には、どんな秘密があるのでしょうか。

機械的ではない、自然な声

「Google Home」や「Amazon Echo」、LINEの「Clova」といったスマートスピーカーが、少しずつ、家庭に入りはじめています。

利便性もさることながら、その認識率の良さ、声の聞きやすさに驚きます。なぜなら、いままでの「機械的な声」ではなくて、とても自然な声だからです。

この声は人間の声ではなく、コンピュータによって合成された声です。
では、いままでの機械的な声と、どこが違うのでしょうか。

スマートスピーカーの仕組み

「スマートスピーカー」は、簡単に言ってしまうと、人間がやりたいことがわかったら、それをGoogleなどの検索エンジンで検索して、その結果を音声で返す、という機械です。

具体的には、スマートスピーカーは①音声を聞き取る(マイク)、②人間がやりたいことを識別する(音声認識)、③実行する(検索処理)、④結果を音声で返す(音声合成)ーーという4つの流れで構成されています。

AIスピーカの仕組み

このなかで、②の「音声認識」と④の「音声合成」に、「AI」(人工知能)が使われています。そこが「スマートスピーカー」と言われるゆえんです。

音声認識は全部理解しているわけではない

実は、スマートスピーカーは、人間が喋った言葉を、全部理解しているわけではありません。これは、意外と大きなポイントです。

入力された音声は、AIによって処理されるのですが、ここで使われるAIは、さまざまな「例文」をすでに学習済みで(学習は固定ではなくて、どんどん進化するので、日々、賢くなります)、「意図」と「そこに含まれる単語」を抽出できるようになっています。

たとえば、Google Homeに向かって、「OK Google。今日の天気は?」と喋ったとしましょう。

このとき、Google Homeは、人間が「天気を知りたい」ということと「今日」という単語を抽出します。
そこで、「今日」の天気を検索するという処理が実行され、その結果の、「晴れ」とか「雨」とかを音声で返します。

ここでポイントとなるのは、Google Homeは「を」とか「知りたい」とかは「無視している」ということです。
ですから、「今日の天気を教えて」とか「今日の天気を教えてほしい」とか「天気、今日は晴れる?」とか、言い回しが変わったり、語順が変わったりしても、ある程度正しく認識できるのです。

今日の天気は?
今日の天気を教えて
今日の天気を教えてほしい
天気、今日は晴れる?

コラム スマートスピーカーには翻訳機能はない
「スマートスピーカーは翻訳機能はあるの?」という話をよく聞きますが、そうした機能は、いまのところありません。
動作の原理的に、ここで説明しているように、会話の主要な部分以外は読み飛ばしている(単語以外は飛ばしている)ので、仮に、それを翻訳処理しても、カタコトになってしまうのです。

音声の切り貼りで合成する方法

音声認識が済んだら、それを実行します。
たとえば、インターネットから検索すると場合は、Googleなどの検索エンジンの「検索語句」として、それを手入力して検索して結果を出力しているのと、仕組みは同じです。

スマートスピーカーは、こうして検索した結果を、音声で返します。
このとき、「音声合成の技術」が使われます。

今までの音声合成で、もっとも基本となるのは、AIなどを使わない「波形合成」と「計算」によって作る方法です。すごく簡単に言えば、「音声の切り貼り」です。

わかりやすく言うと、「あ」「い」…「ん」といった音声を誰かがあらかじめ録音しておいて、それを切り貼りして、音声を作る方法です(実際には「あ」「い」…、ではなくて、英語の時間に習ったような「a」「e」「i」「o」「u」他の「発音記号」に対応した音声データを用意します)。

これだと、さすがに機械的すぎて聞き取りにくいので、揺らぎを与えるなど、自然っぽく聞こえるように工夫します。

「初音ミク」などのボーカロイドも、これよりは、ずっと洗練された方法をとっていますが、かなり乱暴な言い方をしてしまうと、基本原理は同じです。

音の大きさ(抑揚)をAIに学習させる

スマートスピーカーが「自然な会話」ができるようになったのは、こうした「切り貼り」による方法ではなくて、AIを使った革新的な方法が発案されたからです。

AIを使った音声合成には、いくつかの手法がありますが、注目を集めているのは、Google Homeに使われている「WaveNet」という技術です。
これは「ディープラーニング」(深層学習)と呼ばれる機械学習の手法を使ったものです。

少し前に、囲碁のプロ棋士に勝ったと話題にになった「Alpha Go」の開発元であるDeep Mind社が発案しました。Deep Mind社はGoogle傘下の会社です。

「WaveNet」では、音声を「波」として捉えるのではなくて、とても小さく分割した「連続した音の大きさ」として捉えます。
この音の大きさをAIで学習させます。そうすると、時間とともに音の大きさの変化――つまり、抑揚――がわかります。
こうして学習させていけば、人間のように、抑揚が付いた音を発生させることができるのです。

資料によると、WaveNetでは、間に3つの層があり、16個前までの音の大きさに基づいて、次の音の大きさを、どのようにするものかを定めます。

WaveNetの仕組み[1]

「ため息」や言葉の「間」も再現できる

学習のさせ方によっては、「その人の癖」や「ため息」、そして、単語と単語の「間」も習得するため、人間と間違えるような発話ができます。

実際、Deep Mine社のWebサイトには、人間が発話したものと、音声合成した結果の例があり、聞き比べることができます。英語ではありますが、自然な会話になっていることがわかるでしょう。

WaveNetは単なる音量の流れを学習させるだけなので、音声以外にも適用できます。
実際、楽器を学習させ、「その音色」を再現しようという試みもあります。

【WaveNet launches in the Google Assistant】
https://deepmind.com/blog/wavenet-launches-google-assistant/

会話が出来れば、友達になれるのか

このように、音声を学習させることで、アニメや映画などに登場する、自分の好きなキャラクターと会話することが可能になります。

では、会話をするだけで、友達のような感覚を得ることはできるのでしょうか。

子どもの永遠の夢である、友達ロボット「ドラえもん」。あの愛らしい姿格好も、もちろん重要ですが、それよりもドラえもんがとても身近に感じるのは、「バカだなあ、君は」とか「何やってんだよ、のび太くん」といった何気ない、自然な会話のせいではないでしょうか。

もう少し年代を遡れば、一時期一世を風靡した米国ドラマ「ナイトライダー」[2]での、車との自然な会話に多くの人が憧れたはずです。車と友達になれる、と。

不思議な道具が使えるのはまだ先の未来かもしれませんが、マシンと自然に会話できて、そして友達になれる日は、もうそこまで来ています。


source:
[1]Alphabetのサイト「WaveNetの仕組み」より引用:https://deepmind.com/blog/wavenet-launches-google-assistant/#gif-114
[2]ナイトライダーがわからない人は、周りの少し年上の人に聞いてみてください。