そういう、モデルなんです。

ビジネスモデル、3Dモデル、設計図、模型などの現状と動向を考察、関連書籍の紹介

スマートスピーカーを検討した結果...買いま…せん!

を読んで、音声応答システム IVR(今風にいえば VUI ) の開発(実装)はどのようにするのかが気になって調査。

とりあえず最近 CM が流れているアレクサ Alexa が勝ち組なんだろうと思って、下記の書籍を読んだところ、 開発そのものは極めて簡単そうだった。

以下の本は見通しが良く、アーキテクチャが分かりやすいので、最初に読むのにちょうどいい。実装サンプルは少なめ。

はじめてのAlexaスキル開発 [音声認識アプリ開発の基礎知識を身に付ける! ]

はじめてのAlexaスキル開発 [音声認識アプリ開発の基礎知識を身に付ける! ]

 

以下の書籍は、Node.js による実装サンプルが多め。 音声対応デバイス側 (AVS) の開発についても言及がある。

Amazon Alexa開発ガイド Alexa対応スキル&AVS対応アプリの作り方 (AI & TECHNOLOGY)

Amazon Alexa開発ガイド Alexa対応スキル&AVS対応アプリの作り方 (AI & TECHNOLOGY)

 

 以下の書籍は、Google アシスタントとアレクサ Alexa 両方に対応。実装はJavaScript ではなく Python となっている。

HTTPリクエストなど Web アプリの仕組みの説明、Python 文法の説明などもかなりあるので、Webアプリ開発の経験が乏しい読者も想定しているようだ。 

以下の書籍は Google アシスタント、アレクサ Alexa、LINE クローバ (Clova) の3つ全てに対応。ソフトウェアエンジニアなら、この一冊で十分だろう。少しだけだが、エージェント、スキルを Node-Red  対応させる方法の記述などもある。

スマートスピーカーアプリ開発入門 3大スマートスピーカー Amazon Echo Google Home LINE Clova対応

スマートスピーカーアプリ開発入門 3大スマートスピーカー Amazon Echo Google Home LINE Clova対応

 

画面付きモデルは、どんなものがあるのか

デザイニング・ボイスユーザーインターフェース ―音声で対話するサービスのためのデザイン原則では、何もかも音声でやるのではなく、画面と組み合わせるべきだと言っていたので、画面付きモデルのアレクサが出ているか調べたところ、

のようなものがあった。

標準で目覚まし時計などの用途で使えて、ラジオ再生のスキルなどは既に揃っているので、なかなかよさそうだ。

これとは別に、10インチモニタ付きのもの (Show) もあったが、それだと最早スマートスピーカーではなく、ただのタブレットだろうが!

と思ってしまったので対象外とした。

魔のキャンペーン

Amazon Music Unlimitedへの登録で対象のAmazon Echoシリーズが50%OFF

 

が目に留まり、危うく衝動買いしそうになったが自制して、本当に Echo Spot でいいのか?と仕様を詳細に調べた。

電源がダメだわ!

結論としては、アレクサに限らずスマートスピーカーの多くは、電源を差し込み(コンセント)から取るようになっていた。動かすのは難しそうだ。商品写真では、不細工な電源ケーブルは無いかのように見えるが、仕様を見ると、USB給電ですらない。

バッテリー内蔵で、あちこち動かせそうなサードパーティーの商品も1つあったが、値段はかなり高い。かなり大きい上、画面も無い。

バッテリーも、毎日充放電させていると長くは持たないことは W01 の件でトラウマになっているので、現在はそのようなことはないと信じたいところだが、ちょっと踏ん切りがつかなかった。

tombi-aburage.hatenablog.jp

スマホGoogle Assistant で十分

アルーアはとても魅力的だが、ひと桁、安くなるのを待ってからでいいや。

とりあえずスマートフォンが常時電源オンで身近にあるので、マイクボタンを押せばよく、わざわざスピーカーを待機させておくこともない。

開発したければ、スマホに Alexa エージェントのソフトウェアをインストールすればいいようだし…

Echo Spot の画面も最初はよさそうに思えたが、画面が円だとたぶん不便だろう。
スマホの縦長長方形の画面を前提に、多くのサイトやコンテンツは作られているので。
画面が正方形のモデルならば、そこそこ使えそうだが。

そもそも自分にとってスマートスピーカーって必要だろうか?

と思い始めてしまった。

もともとスピーカー(音質)にかなりのこだわりがあり、音楽を鳴らしっぱなしにしているような方々にとっては、いいことなのかもしれないが、

スピーカーで音を鳴らすどころか、むしろイヤホンやヘッドセットで音を出さないように抑えこんでいる自分には関係なかったようだ・・・ヘッドセットに投資したほうがよさそう。

スピーカーデバイスは買っていないが、アレクサ Alexa でのアプリ開発は試してみた

さきほど紹介した書籍をまず読んで開発方式を机上で大体理解してから、実際にアカウントを作成して試してみた。

はじめてのAlexaスキル開発 [音声認識アプリ開発の基礎知識を身に付ける! ]

はじめてのAlexaスキル開発 [音声認識アプリ開発の基礎知識を身に付ける! ]

 

の巻末の付録には、米国の Amazon アカウントを保有している場合には、日本ではなくて米国アマゾンの方に同じユーザ名(メールアドレス)のアカウントが作られてしまうので混同状態に陥ってしまうという罠について詳細に記載されているのだが、付録までは読み進めていなかったので、まずはその罠にズッポリハマった。

以前に Amazon Kindle Direct Publishing を試したさいに、米国アマゾンにアカウントを作っていたために、米国がわの Alexa Developer Console にログインしてしまったようだ。
米国がわのコンソールであっても、インタフェースは日本語に切り替えられるので、しばらくは全く気づかなかった。

付録まで読んだタイミングで混同に気付いて、日本側の Alexa Developer Console に作成し直した。見かけは日米で全く差が無いので、とても紛らわしい。

アレクサの開発環境はさらに改善されており、上記の書籍以上に手順が簡単になっていた。

2019年にアレクサの開発環境がさらに改善されており、バックエンドの AWS 環境を別途用意しなくてもアレクサ開発コンソール内で開発を完結できるようになった。

これを Alexa-hosted スキルというらしい。

Lambda やら Node.js やら S3 やらの環境を自ら別途準備する手間すら要せずに、簡単に開発が行えるので、ほとんど手間いらずだった。(上記の書籍は2018年刊行なので、Alexa-hosted 登場前の分離方式での説明となっており、少し余計に手間がかかる)

テストのさいに少しハマった

もっともテストの段階では、自作のスキルを「Alexaシミュレータ」から当初はうまく呼び出せず、ずっと「わかりません」「ごめんなさい」と拒否され続け、

スキルI/Oという通信ログをダンプしてくれるモニタ(つまりデバッガ相当)には、ずっと

スキルのI/Oは、ユーザーが作成したスキルに対する音声リクエストにのみ使用できます。

という封印メッセージが表示され続け、何が原因かサッパリ分析できないという事象に遭遇して、数時間はまってしまった。

呼び出し名は一文字違わず正確に入力すること

自作のスキルの呼び出しについては、Alexaシミュレータに対して、ひらがな・カタカナ・漢字の表現を一文字違わず正確にして「呼び出し名」を入力することで解決した。

アレクサ、<呼び出し名>を起動して

のような感じで入力するのだが、読みがまったく同じでも、入力のさいに漢字・ひらがな・カタカナちょっとでも違うと起動しないので、コピペ以外の方法でやろうとしてはいけない。

f:id:tombi-aburage:20190314233515p:plain

スマートスピーカーバイス(実機)を使った音声でのテストの場合には、文字入力のように厳密ではないのかもしれないが、文字でのテストの場合は要注意。

Clova だと、呼び出し名についても複数、発話を定義できるらしいので、そのうち追いつくとは思うが。

呼び出しに成功すれば、スキル I/O も表示されるようになった

なお、

スキルのI/Oは、ユーザーが作成したスキルに対する音声リクエストにのみ使用できます。

というメッセージの方については、これは実は単なる初期表示のメッセージであり、開発者の作業が何か足りないとか、ミスしたとかを示唆するものではない。

上記の呼び出しに成功しさえすれば、このメッセージは消えてI/Oが表示されるようになる。

このメッセージについてはフォーラムで、「メッセージとして紛らわしすぎるから、さっさと直せ!」と叩かれていた。

https://forums.developer.amazon.com/questions/145271/skill-io-is-only-available-when-you-invoke-a-skill.html

全く同感。初期表示では、何も表示しないのが妥当だと思う。

そして結局、買ってしまった・・・

一度、興味を持ったものは、結局買ってしまうのだ。物欲って… 

tombi-aburage.hatenablog.jp