1.はじめに
こんにちは、2018年度の4月にシー・エス・エスに入社しました、イノベーションLABのゆーたろーです。
皆さま日々の疲れはどのように解消していますか?
僕は入浴時には必ず半身浴をして体の芯まで温めてから寝るようにしています。
体調にはお気を付けください!
2.AWSの活用について
さて、イノベーションLABではAWSサービスの有効活用を進めています。
AWSを利用する中で、システム担当者から『作業が属人化してしまうので専門知識のない人でもAWSを操作できるようにしたい…』 や『日常的に行うAWSの操作を効率化したい…』 などといった【声】が挙がっていました…。そんな【声】は【声】で解決してしまおう!ということで、家庭用AIスピーカのAmazon Alexaを使用した業務用スキル開発を行いました。
今回はそのAmazon Alexaのスキル開発で得たノウハウについて紹介したいと思います!
3.“声でAWSを操作する”
AWS音声操作スキルとは、「声でAWSを簡単に操作したい」というコンセプトで生まれたスキルです。
利用者がAlexaに話しかけることで、会話を聞き取ったAlexaが会話内容を理解し、AWSの操作を行うという仕組みになっています。
今回開発したスキルには以下の機能が備わっています。
・EC2インスタンスのデプロイ / 削除を実行
・EC2 インスタンスのバックアップを取得
・ステータスなどEC2インスタンスの情報を取得
・AWSの利用料金を取得
各スキルの処理の流れについて解説します。
①Alexa対応の音声認識・通知デバイスが利用者の音声を受信します。
②受信した音声データをAmazon Lexがテキストデータに変換し、形態素解析を行います。
形態素解析とは、認識した自然言語を単語ごとに分割し、辞書などの情報と照らし合わせて単語の品詞の種類、活用形の種類などを割り出す作業のことです。
③形態素解析したテキストデータを基に、Alexaはユーザーの「Intent(インテント)」を判断し、開発者の設定に応じて「Slots(スロット)」に割り当てます。
インテントとは、意図という意味で、ユーザーの「やりたいこと」を示します。
スロットとは、インテントを得るために必要な「パラメータ」です。
④Alexaはインテントとスロットを基にAmazon LambdaでAWSのAPIを実行します。実行結果に応じてデータを取得します。
⑤取得したデータはAmazon Lambdaでテキスト化され、再びAlexaに返されます。
⑥返されたデータはText to Speechで音声化されます。
⑦音声化されたデータが音声認識・通知デバイスによって、利用者に音声として伝わります。
このような構成にすることで、利用者は音声でやりたいことを伝えるだけで、AWSの知識を必要とせずに、AWSを操作することができます。
4.社内にAlexaを導入した効果
社内にAWS音声操作スキルを導入したところ、導入前に比べて次の効果がありました。
Before
・AWS特定の作業が属人化した状態だった
・操作ミスによるヒューマンエラーが起こることがあった
After
・特定の作業が属人化せず、AWSの専門知識がない人でも操作ができるようになった
・ヒューマンエラーを減らすことができた
・AWSコンソールにログインしなくても声でAWSの操作ができるため、作業時間の短縮につながった
Alexaスキルの実装で、『作業の属人化を解消したい。』、『日常的に行うAWSの操作を効率化したい』
といった【声】を無事に解決することができました!
5.今後の課題
今回AWSの音声操作スキルを開発するよりも前に、社内の受付システムにAlexaを導入する企画がありましたが、Alexaにおける以下の問題点によって受付システムの実装は諦めることとなりました。
・「雨」と「飴」等の同音異義語を判別ができない
・名前などの固有名詞を聞き取る精度が低い
Alexaが日本語を苦手とする理由は、スキルを実行する仕組みにありました。
①Alexaは利用者の音声データをAmazon Lexに送信します。
②Amazon LexのSpeech to Text機能を用いて音声をテキストへ変換し、形態素解析を行いインテントやスロットに情報を当てはめます。それらの情報はJSON形式でAmazon Lambdaへ送信されます。
③イベントを受け取ったAmazon Lambdaはインテントに基づいた処理を行なった後にAmazon Lexへ実行結果のテキストを返します。
④Amazon LexはText to Speech機能を使ってテキストを音声化し、Echo端末の内臓スピーカから音声が流れるという仕組みです。
ここで注目してほしい点は、行きは音声からテキスト変換しているのに対し、帰りはテキストを音声化しているという部分です。
Alexaスキルを開発する際の実作業は、主にスキルの会話設定とAmazon Lambdaのビジネスロジック部分の実装のみになります。テキストの自然言語処理に関してはAlexaが担っている為、開発者は簡単にスキルを開発しデプロイすることができます。
音声データをテキストに変換する際にはAmazon LexのSpeach to Text機能が使用されます。しかし、その際に、音声の変換結果を開発者がハンドリングできる手段が提供されていません。
つまり、受け取った音声がAmazon LexからAlexaにどのようなテキストで変換されて渡されるのか予測することが出来ないのです。
多様な表現が多い日本語が音声認識に向いていない点も大きいと思います。
今回のようなAlexa自体の認識精度については自然言語処理の精度そのものの向上を待つ他ありません。音声認識の精度が上がることで、Alexaスキルで出来ることも広がっていくのではないでしょうか。
株式会社シー・エス・エスは随時、業務に関するお悩みを受け付けています。
▼【お問い合わせ・ご相談はこちらから】