おはようございます!!
先日、こちら↓の記事を書きました!
LINE CLOVAがM5Stackで動くようになる日が来るかも!!という夢の話で、
「LINEのイベントでESP32(※M5Stackにも入っているCPUモジュール)上で動くCLOVAが紹介されますよ~」って内容でした。
・・・で、11/25(水)に開催されましたので、簡単に報告させていただきます!!
2USDでスマートスピーカーが動く「ESP32 CLOVA」(LINE DEVELOPER DAY 2020より)
こちらです。
LINE CLOVA のスマートスピーカーは、AndroidやLinux上のアプリケーションとして実装されています。これらのOSを動作させるためのSoCは安価とは言えず、スマートスピーカー自体のコスト引き上げと、活用範囲を狭めてしまう要因の一つとなっていました。そこで、ESP32という、比較的低性能ですが小型で安価なSoCを利用して、CLOVA Platformをベースとしたスマートスピーカーの実装を行いました。どのように動作しているか、また、実装するにあたって苦労した点やノウハウなどを紹介します。
・・・で、今回の発表内容がこちら↓です。
(※ ↑この動画、いつまで公開されているかわかりませんので、視聴はお早めに)
8分37秒と短い動画ですので、お時間のある方は見ていただいた方がいいのですが、ポイントだけ書かせていただきます。
- CLOVAデバイスはCICというLINEのクラウドに常時接続している。
- CICの先には認証や音声認識、各種スキル、音声合成などの機能がある。
- デバイスではCIC)との通信だけ意識すれば良い。
(一種のルーターのような役割) - CLOVAデバイスの仕組み(結構詳しいです)
- 現在、ここでのCLOVAはAndroidやLinux上のアプリとして動作していたが、Soc(システムオンチップ)は高価だった。
- そこで、ESP32というSocに着目し、CLOVAを動かす検証をした。
- ESP32はIoT向けのSocでコストが$2ほど。Dualコアで最高240MHzで動作する。RAMはFlash、OSはRTOS(リアルタイムOS)をサポート。
- 動作デモは「ねぇCLOVA」などのウェイクアップワードが使えないので、ボタンで起動。天気予報をいつものCLOVAの声で読み上げ(泣)
- ESP32を利用したCLOVAデバイスの利用シーン「おもちゃ(ぬいぐるみなど)」「情報端末(書店やショッピングモールにあるような)」「ウェラブルデバイス(腕時計(※今後より低消費電力のデバイスが出た場合))」
- 2つのバージョン(Arduino Base,CLOVA NativeSDK Base)を順番に実装して評価した。後者はC言語で開発。
- 音声の入出力はEspressif社のオーディオ関連のSDKであるESP-ADFを使用。
- それ以降のCICとの接続はCLOVA NativeSDKを使用。
- ボードはEspressif社公式の開発ボードを使用。ボードの違いはEDP-ADFで吸収できるので移植は容易。
- ESP32の各コアの負荷分散を手動でやる必要があり苦労した。
(うまくいかないとWifi不安定、CICのレスポンスが悪くなる、音声が途切れる、などの問題も) - NATIVE SDKでは複数のオーディオプレイヤーとミキサーだったが、これを1つのメディアプレイヤータスクで共有するよう変更
- ESP32ではRAM520KBと小さいのでオプションのPS-RAMを活用するようにした。
・・・そのまんま、ノートですね(泣)
ちょこちょこっとわからない部分(全部かも?)がありましたので、その辺もふくめてRobo8080先生に聞いてみました。
「たとえば、ESP-ADFの部分をCore2用に書き換えれば、そのままいけるのでしょうか?」(※ 「そのままいける」関西弁→ 「そのまま動作する」標準語)
答えは「たぶん」でした!
まとめ
残念ながら、某Appleのプレゼンのような「今日からリリースします!!」というのはありませんでしたが、実際にCLOVAが動く姿が見れてよかったです。
できることなら、一般ユーザーにも開放してほしいですね~!!
以上です。
そういえば、Alexa(Amazon Echo)も同じように組み込みタイプのボードがあったのですが、実はそれもESP32だったと「今日」知りました(泣)
もはや、業界標準になりつつあるんですね~
(おわり)