Clovaを構成する4つのコンポーネント
LINEでは2017年より「Clova WAVE」や「Clova Friends」などのスマートスピーカーを提供している。それらの頭脳であるAIアシスタントが「Clova」だ。
Clovaは「クライアント」「ブレイン」「スキル」「プラットフォーム」という4つのコンポーネントから構成される。クライアントは、デバイスやアプリなどユーザーとの接点になる部分。ブレインは、クライアントから入力された音声データのテキスト化や自然言語理解の処理を担当。出力時にはテキストの音声合成なども行う。スキルは、音楽の再生やニュースの読み上げ、LINEのメッセージ送信など、要求に応じたサービスを提供する。プラットフォームは、ユーザー情報の保存や認証などの機能をクライアント、ブレイン、スキルに対して横断的に提供している。
そして、これら4つのコンポーネントをつなぐ仕組みとして「CIC(Clova Interface Connect)」と「CEK(Clova Extensions Kit)」がある。CICは、クライアントとプラットフォーム、ブレインをつなぐインターフェースだ。クライアントはCICを通じてユーザーの音声をClovaに送信し、Clovaからの出力を受け取る。一方、CEKはスキルとプラットフォーム、ブレインをつなぎ、さまざまなサービスを提供するインターフェースとなる。
立花氏は「本日のテーマはスキルやCEKだが、ブレインにも少し触れておきたい」として、ブレインでの自然言語理解で使われている技術について紹介した。
「形態素解析では、新しい用語にも対応できるように定番ツールの『MeCab』に毎週更新されるシステム辞書『NEologd』を追加した。また、文字列の類似度測定の精度を高めるために、『Resembla』という自社開発の類似文字列検索ライブラリを使っている」
ほかに、機械学習モデルの配信マネージャー「Drucker」も自社開発したという。
Clovaに「秋に合う音楽をかけて」と呼びかけると?
続いて立花氏はClovaで行われる処理の流れについて、具体例を挙げて解説した。
「例えばユーザーがClova WAVEに『秋に合う音楽をかけて』と話しかけた場合、まずCICを通じてその音声データがClovaのブレインに渡される。ブレインでは音声認識モジュールでテキストに変換し、自然言語理解のモジュールで解析。ユーザーの意図が『音楽を再生すること』であると認識したら最適なスキルを選択し、CEKを通じて『秋に合う』音楽をリクエストする。そして、スキル内のロジックで意図に合った音楽を探して決定したら、CEKからCICを通じてストリーミング配信される」
こうして最終的にユーザーの要求した「秋に合う音楽」がClova WAVEで再生されるというわけだ。
では、ユーザーが「この曲は何?」と話しかけた場合はどうか。この場合も選択されるのは音楽のスキルだが、後半のフローが一部変わってくるそうだ。
「ユーザーの発話から音声認識・自然言語理解モジュールを経て、取り出した意図などをCEK経由で音楽スキルに渡すところまでの流れは同じ。このあと、スキル側では再生中の曲名やアーティスト名などの情報を提供する。そして、CEKを通じてこの情報を取得し、ユーザーに返す文章を生成したら、それをCICに渡す前にブレインの音声合成モジュールで音声ファイルに変換する。これをClova WAVEが再生することで、『この曲は○○です』と答えられる仕組みになっている」