はじめての機械学習をデプロイしてみた(後編)

はじめに

前回の記事の Amazon sagemaker のチュートリアルの続きです。

次に、データを SageMaker インスタンスにダウンロードして、データフレームにロードする必要があります。
次のコードをコピーして実行します。

[crayon-5f73634a429fe936521033/]

image.png
次に、データをシャッフルし、トレーニングデータとテストデータに分割します。

トレーニングデータ
(顧客の70%)がモデルのトレーニングループ中に使用されます。
勾配ベースの最適化を使用して、モデルパラメータを繰り返し調整します。
モデルエラーを最小化していきます。

テストデータ
(顧客の30%を、残りの)モデルの性能を評価し、目に見えないデータに、訓練されたモデルのデフォルト値を測定するために使用されます。

次のコードを新しいコードセルにコピーし、[run]を選択してデータをシャッフルおよび分割します。

[crayon-5f73634a42a10527606906/]

image.png

ステップ4.データからモデルをトレーニングする

トレーニングデータセットを使用して機械学習モデルをトレーニングします。

ビルド済みXGBoostモデルを使用するには、トレーニングデータのヘッダーと最初の列を再フォーマットし、S3バケットからデータをロードする必要があります。

次のコードを新しいコードセルにコピーし、[Run]を選択してデータを再フォーマットしてロードします。

[crayon-5f73634a42a1c221132727/]

次に、Amazon SageMaker セッションをセットアップし、XGBoost モデルのインスタンス(推定器)を作成し、モデルのハイパーパラメーターを定義する必要があります。
次のコードを新しいコードセルにコピーし、[ 実行 ] を選択します。

[crayon-5f73634a42a26522559489/]

データが読み込まれ、XGBoost 推定器が設定されたら、次のコードを次のコードセルにコピーして[実行]を選択することにより、ml.m4.xlarge インスタンスで勾配最適化を使用してモデルをトレーニングします。

数分後、生成されるトレーニングログの表示を開始する必要があります。

[crayon-5f73634a42a30292426278/]

成功すればこのようにログが出てきます。
image.png

コンソール上でもこのように、トレーニングジョブが立ち上がっています。

2020-05-14_14h40_17.png

ステップ5.モデルをデプロイする

このステップでは、トレーニング済みモデルをエンドポイントにデプロイし、CSVデータを再フォーマットしてロードしてから、モデルを実行して予測を作成します。

サーバーにモデルをデプロイし、アクセス可能なエンドポイントを作成するには、次のコードを次のコードセルにコピーして、[ 実行 ] を選択します。

[crayon-5f73634a42a3b197326911/]

銀行商品に登録されたテストデータの顧客がいるかどうかを予測するには、次のコードを次のコードセルにコピーして、[ Run ] を選択します。

[crayon-5f73634a42a45208289334/]

2020-05-14_14h38_44.png

ステップ6.モデルのパフォーマンスを評価する

このステップでは、機械学習モデルのパフォーマンスと精度を評価します。

以下のコードをコピーして貼り付け、[Run]を選択します。

混合行列と呼ばれるテーブルの実際の値と予測値を比較します。

[crayon-5f73634a42a50826609063/]

予測に基づいて、テストデータの90%の顧客に対して、顧客が預金証書を正確に登録すると予測したと、結論付けることができます。
登録済みの精度は65%(278/429)で、90%(10,785 / 11,928)登録しませんでした。

image.png

ステップ7.リソースを終了する

このステップでは、Amazon SageMaker 関連のリソースを終了します。

重要※
アクティブに使用されていないリソースを終了すると、コストが削減されます。
リソースを終了しないと、料金が発生します。

Amazon SageMaker エンドポイントと S3 バケット内のオブジェクトを削除するには、次のコードをコピーして貼り付け、実行します。

[crayon-5f73634a42a5b185502368/]

2020-05-29_09h53_49.png

感想

ただデータを用意するだけではなく、訓練したりテストしたり、様々なデータが機械学習には必要であることが分かったと思います。
さらにその精度を評価したり。本当に結果が正しいものかを推測する必要もあります。
今回はコンソール画面ではなく、Jupyter-notebook 上でほとんど完結する内容でした。
あまり使い慣れていない方でも気軽に試せるので、ぜひ実際にやってみてください。

公式リンク

Amazon SageMaker

 

 

SageMakerの導入ならナレコムにおまかせください。

日本のAPNコンサルティングパートナーとしては国内初である、Machine Learning コンピテンシー認定のナレコムが導入から活用方法までサポートします。お気軽にご相談ください。

ソリューションページはこちら

 


AWS Transit Gateway にざっくり触れる【初心者】

はじめに

今回は AWS Transit Gateway というサービスについて、便利なところをピックアップしてご紹介していきます。
2020-06-25_14h21_51.png

Transit Gateway は中央※ハブを介して、 VPC とオンプレミスネットワークを接続するクラウドルーターだと言われています。
ネットワークが簡素化され、VPCの複雑なピアリング接続をしなくてよくなります。

2020-06-25_14h28_52.png
パッと見て分かる通り、ごちゃごちゃVPC同士を繋げなくて良いので、管理がとてもしやすそうですよね。

※ハブとは
HUBとは、LAN上で各端末(コンピューター、ネットワークプリンタなど)同士を接続する機器のことです。
ネットワーク内のデバイスの共通接続ポイントとして機能します。

2020-06-25_14h22_28.png

image.png

ルーティング

  • Amazon Virtual Private Cloud (VPC) と VPN の間の動的および静的レイヤー 3 ルーティングをサポート
  • パケットの送信先 IP アドレスに応じて、ルートでネクストホップが決定
  • ルートでは、Amazon VPC または VPN 接続を指定できる

エッジ接続

  • AWS Transit Gateway とオンプレミスゲートウェイの間に、VPN を使用して VPN 接続を作成
  • 同じプレフィックス(単語なり何なりの頭につける文字列)の複数の VPN 接続を作成できる
  • トラフィックを複数のパスに負荷分散することで、帯域幅を広げることができる

Amazon VPC 機能の相互運用性

AWS Transit Gateway にアタッチされている Amazon VPC からクエリが発行されたときに、パブリック DNS ホスト名をプライベート IP アドレスに解決できます。

Amazon VPC のインスタンスは、この AWS Transit Gateway にアタッチされている他の Amazon VPC の

  • NAT ゲートウェイ
  • Network Load Balancer
  • AWS PrivateLink
  • Amazon Elastic File System

にアクセスできます。

モニタリング

AWS Transit Gateway では統計とログが提供されます。

  • Amazon VPC と VPN 接続間の帯域幅の使用量
  • パケットフロー数
  • パケットドロップ数
  • Amazon VPC フローログを有効にできる
  • ルーティングされた IP トラフィックに関する情報を取得できる

AWSとオンプレミスでのイベントおよびグローバルネットワークの品質をモニターするメトリクスが含まれます。

管理

コマンドラインインターフェイス (CLI)、AWS マネジメントコンソール、AWS CloudFormation を使用して AWS Transit Gateway の作成と管理を行うことができます。

  • Amazon VPC と VPN の間の送受信バイト数
  • パケット数
  • ドロップ数などの Amazon CloudWatch メトリクスを提供

さらに、Amazon VPC フローログを使用して、AWS Transit Gateway のアタッチメントを経由する IP トラフィックについての情報を取得できます。

リージョン間のピア接続

  • リージョン間のピア接続により、AWS グローバルネットワークを使用して AWS リージョン全体のトラフィックを作成できる
  • リージョン間でリソースを共有出来る
  • 地理的な冗長性のためにデータをレプリケートできる
  • シンプルで費用対効果が高い

マルチキャスト

Transit Gateway マルチキャストを使用して、クラウドに簡単にマルチキャストグループを作成し、管理できるようになりました。
オンプレミスでレガシーのハードウェアをデプロイ、管理するよりずっと簡単です。

  • クラウドのマルチキャストソリューションを、スケールアップ
  • スケールダウンして、同時に複数のサブスクライバ―に、一連のコンテンツを届けることができる
  • 誰がマルチキャストトラフィックを作り、誰がそれを消費しているか、細かいコントロールができる

セキュリティ

  • Identity and Access Management (IAM) と統合されている
  • AWS Transit Gateway へのアクセスを安全に管理
  • IAM を使用すると、AWS のユーザーとグループを作成および管理できる
  • アクセス権を使用して AWS Transit Gateway へのアクセスを許可、拒否できる

自動処理プロビジョニング

既存の AWS Transit Gateways に登録すると、ネットワークマネージャーが VPN 接続および関連するオンプレミスリソースを自動的に特定します。

  • Transit Gateway ネットワークマネージャーの、新しい VPN 接続を自動的にプロビジョン
  • ネットワークマネージャーの、オンプレミスネットワークを自動的に定義
  • オンプレミスネットワークを手動でも定義できる
  • クラウドとオンプレミスにある、プライベートネットワークを、マネジメントコンソールで一括管理できる

イベント

  • ネットワーク変更、ルート変更、接続ステータス更新の通知を受けるメトリクス
  • バイトイン/アウト、パケットイン/アウト、ドロップパケットなどの、パフォーマンスおよびトラフィックメトリクスを通して、グローバルネットワークをモニターする

グローバルネットワーク

AWS 内のユーザーの、プライベートグローバルネットワークを表す AWS Transit Gateway network manager のオブジェクトです。

  • AWS Transit Gateway のハブ
  • そのアタッチメント
  • およびオンプレミスのデバイス、サイト、リンク

が含まれます。

グローバルネットワークの監視に役立つ

AWS Transit Gateway network manager のダッシュボードには

  • 入出力バイト数
  • 入出力パケット数
  • ドロップされたパケット数
  • リアルタイムのイベントとメトリクス

これらが表示されます。

接続ステータスは、グローバルネットワークの地理的ビューに埋め込まれています。

AWS Transit Gateway network manager は、AWS CloudWatch を通じた可視化により、一つのダッシュボードから多くのロケーションの、ネットワークアクティビティを確認できます。

まとめ

ちょっと情報多めでしたが、 Transit Gateway があるだけでかなり全体管理が楽になるということは伝わったでしょうか。
どうしても規模が大きくなるにつれて、VPC や接続環境が増えていくので、ぜひ重宝したいサービスですよね!
アクティビティを比較して、オンプレミスのロケーションと AWS クラウド間の不整合や、複数のロケーションに異なる影響を与える問題を特定できるので
問題対処も早くなりそうですよね!

公式サイトリンク

AWS Transit Gateway


初めての機械学習をデプロイしてみた

はじめに

このチュートリアルでは、Amazon SageMaker を使用して機械学習(ML)モデルを構築、トレーニング、デプロイする方法を学びます。
Amazon SageMaker は、モジュール式のフルマネージド機械学習サービスであり、開発者やデータサイエンティストがMLモデルを大規模に構築、トレーニング、デプロイできるようにします。
Jupyter-notebook を触ることにもなりますので、はじめて使う方は一連の流れを知ることが出来ます。

Amazon SageMaker の利用

機会学習モデルをトレーニングするには

  1. 大量のデータを管理
  2. トレーニングに最適なアルゴリズムを選択
  3. トレーニング中に計算能力を管理
  4. モデルを本番環境にデプロイする必要があります。

Amazon SageMaker は、MLモデルの構築とデプロイをはるかに簡単にすることで、この複雑さを軽減します。
利用可能な幅広い選択肢から適切なアルゴリズムとフレームワークを選択すると、

  • 基盤となるすべてのインフラストラクチャを管理
  • ペタバイト規模でモデルをトレーニングし、本番環境にデプロイします。

チュートリアルの内容

このチュートリアルでは、銀行で顧客が預金証明書(CD)に、登録するかどうかを予測する機械学習モデルを開発します。
モデルは、顧客の人口統計、マーケティングイベントへの応答、および外部要因に関する情報を含むマーケティングデータセットでトレーニングされます。

データには便宜上ラベルが付けられており、データセットの列には、銀行が提供する商品に顧客が登録されているかどうかが示されています。
このチュートリアルでは、データにラベルが付けられているため、教師あり機械学習モデルを実装しています。
(教師なし学習は、データセットがラベル付けされていない場合に発生します。)

  1. ノートブックインスタンスを作成する
  2. データを準備する
  3. モデルをトレーニングしてデータから学習する
  4. モデルをデプロイする
  5. MLモデルのパフォーマンスを評価する

ステップ1. ノートブックインスタンスを作成

Amazon SageMaker コンソールに移動します。
image.png
Amazon SageMaker ノートブックインスタンスを作成します。

ダッシュボードから[ ノートブックインスタンス]を選択します。

2020-05-13_11h42_25.png

[ ノートブックインスタンスの作成]ページで、[ ノートブックインスタンス名]フィールドに名前を入力します。
このチュートリアルでは、デフォルトの Notebook インスタンスタイプを 「ml.t2.medium」 のままにしておきます。
image.png

ノートブックインスタンスがデータにアクセスして、 Amazon S3 に安全にアップロードできるようにするには、IAMロールを指定する必要があります。
[ IAMロール]フィールドで、[新しいロールの作成]を選択して、Amazon SageMakerが必要なアクセス許可を持つロールを作成し、それをインスタンスに割り当てます。
または、既存のIAMロールを選択できます。
image.png

[ IAMロールの作成]ボックスで、[ 任意のS3バケット]を選択します。
これにより、Amazon SageMakerインスタンスがアカウント内のすべてのS3バケットにアクセスできるようになります。
ただし、代わりに使用するバケットがある場合は、[ 特定のS3バケット]を選択し、バケットの名前を指定します。
image.png
AmazonSageMaker-ExecutionRole-日付というロールを作成されたことを留意してください。

他のフィールドにはデフォルト値を使用します。[ ノートブックインスタンスの作成]を選択します。

[ ノートブックインスタンス]ページに、先程作ったノートブックインスタンスが[保留中]状態で表示されます。
image.png

ノートブックインスタンスは、2分未満で Pending 状態から InService 状態に移行するはずです。

ステップ2.データを準備する

このステップでは、Amazon SageMakerノートブックを使用して、機械学習モデルのトレーニングに必要なデータを前処理します。
[Jupyterを開く]を選択します。
2020-05-13_12h25_37.png
Jupyterが開いたら、 [ Files ]タブから[ new ]を選択し、次に[conda_python3]を選択します。
image.png
こんなページが立ち上がります。
image.png
データを準備し、MLモデルをトレーニングしてデプロイするには、Jupyterノートブック環境でいくつかのライブラリをインポートし、いくつかの環境変数を定義する必要があります。

次のコードを緑の枠内にコピーし、[Run]をクリック、またはShift+Enterを押します。

[crayon-5f73634a436aa588401969/]

コードの実行中、角括弧の間にアスタリスクが表示されます。
数秒後、コードの実行が完了し、アスタリスクが数字の1に置き換えられます。
右側の2番目のスクリーンショットに示すように、成功のメッセージが表示されます。
image.png

次はチュートリアルのデータを格納するS3バケットを作成します。

下記のコードをノートブックの次の緑の枠にコピーし、S3バケットの名前を変更して一意にします。
S3バケット名はグローバルに一意である必要があり、制限があります。

[Run]を選択します。
成功メッセージが表示されない場合は、バケット名を変更して再試行してください。

[crayon-5f73634a436b9935271608/]

image.png

このチュートリアルで作成および使用されるリソースは、AWS無料利用枠の対象です。
手順を完了したら、リソースを終了することを忘れないでください。
これらのリソースを使用してアカウントが2か月以上アクティブである場合、アカウントの請求額は0.50ドル未満です。

後編に続きます。

公式サイトリンク

Amazon SageMaker

 

 

 

SageMakerの導入ならナレコムにおまかせください。

日本のAPNコンサルティングパートナーとしては国内初である、Machine Learning コンピテンシー認定のナレコムが導入から活用方法までサポートします。お気軽にご相談ください。

ソリューションページはこちら

 

 


QuickSight の使い方 - ユーザの招待とデータ共有編

はじめに

今回は、QuickSight を用いたユーザの招待と、データの共有方法について簡単に紹介したいと思います。

■やりたいこと
・閲覧権限のみを付与した ユーザを作成したい(ユーザは、IAMユーザと紐付けたい)
・QuickSight 上の可視化してある特定の分析データを、閲覧権限を持ったユーザと共有したい

ユーザの招待方法

ユーザを招待する側の設定

QuickSight の閲覧ユーザの招待方法について、紹介したいと思います。
手順は以下です。
image.png
①QuickSight の画面右上のアイコンをクリックし、「QuickSIght の管理」を選択します。

image.png
②画面左の「ユーザを管理」を選択したら、「ユーザを招待」を選択

2020-05-21_12h09_14.png
③「ユーザを招待」を選択すると、ユーザ登録となりますので、下記の情報を入力します。

■情報

  • ユーザ名:登録する IAM ユーザ名
  • Eメール:ここ宛に QucikSight 登録のメールが届く
  • ロール;閲覧・作成・管理のどこまでのロールを許可するかを選択
  • IAMユーザ:作成するユーザが、既存のIAMユーザと紐付ける場合は「はい」を選択

招待された側の設定

ここからは、QuickSight アカウントに招待された側の手順になります。
image.png
①上記で設定したメールアドレス宛に QuickSight からメールが届いているので確認し、クリックします

image.png
②下記の情報を入力し、無事にサインインできたら完了です。

■入力情報
・QuickSight のアカウント名(これは管理者に確認)
・IAM ユーザ名
・IAM ユーザのログインパスワード

データ共有

ダッシュボードの公開

次に、閲覧権限を有した ユーザと QuickSight 上で可視化したデータを共有する手順を紹介します。
image.png
①共有したいデータのダッシュボードを開いた状態で、右上の「共有」を選択
②「ダッシュボードの公開」を選択
(※「分析の共有」は「閲覧」権限のユーザとは共有できません。)

image.png
③公開するダッシュボードの名前を決めたら、「ダッシュボードの公開」を選択

以上の手順で、閲覧権限ユーザは、公開されたダッシュボードを見ることが可能となります。
データの予測などを実施する場合は、「作成」や「管理者」権限を持ったユーザを招待し、
「分析の共有」を選択する必要があります。

おわりに

QuickSight にユーザの招待方法と、データ共有方法は以上となります。
上記の設定を利用することで、複数のユーザと可視化したデータを共有することができるようになります。
特定のデータのみを複数のユーザと共有したい場合など、是非、使用して下さい。


サッと始める QuickSight の使い方

はじめに

今回は、AWS で利用できる QuickSight ML Insights を使ってサッと可視化と予測をしたい方向けに、手順について説明していきたいと思います。

■やりたいこと
S3においてある csv データを QuickSight で可視化したり、ML Insights を利用して予測をしたい

QuickSight とは

QuickSight について簡単に説明したいと思います。下記が QucikSight の主な特徴です。

■特徴
①S3 などに置いてある csv データの可視化が可能
②豊富なビジュアルでデータの可視化が可能(データに対して適したビジュアルを自動で選択する機能付き)
③ML Insight という機能で、誰でも簡単に予測が可能

開始前準備

1. QuickSight にインポートする csv データのチェック

可視化と予測をする場合、インポートする csv データは少なくとも以下の条件が必要となります。
より詳細な条件については下記の公式リンクを参照ください。
ML Insights を Amazon QuickSight で使用するためのデータセット要件

例:ある商品の売上の可視化と予測をしたい場合の csv の条件
(画像は可視化予定の csv の内容の一例)
image.png
image.png

  • csv を UTF-8 形式に変更
  • csv に最低限必要な内容
    • 年月日
    • 商品の名前とその商品の日々の売上数字

2. S3 に csv データをアップロード

QuickSight で可視化したい csv データを、S3 にアップロードします。
csv のデータ内に日本語がある場合、アップロードする csv は UTF-8 形式にしておきましょう。
QuickSight にインポートした際に、文字化けするリスクを回避できます。

3. QuickSight のアカウント用意

以下の手順で QuickSight のアカウントを作成します。
2020-04-24_14h54_53.png
①AWS のコンソール画面で、「QuickSight」と検索し、そこから QuickSight のサービス画面に移動

image.png
②「QuickSight にサインアップ」を選択して、アカウント作成画面へ

image.png
③可視化したデータの予測を実施する場合は、「エンタープライズ版」を選択
※可視化だけなら「スタンダード版」でもOK。

開始

1. S3 にあるデータを QuickSight にインポート

以下の手順で、S3 にある csv データをインポートすることができます。
image.png
①QuickSight にインポートしたい csv のパスをコピーしておきます
②QuickSight にサインイン

image.png
③QuickSiht にサインイン後、左上の「新しい分析」をクリック

image.png
④左上の「新しいデータセット」をクリック

image.png
⑤S3 のアイコンをクリックし、下記の項目を埋める

  • データソース名(QuickSight 上でこれから可視化をするデータの名前を決める)
  • マニフェストファイルのアップロード(下記を JSON フォーマットで保存し、それをアップロードして利用)
[crayon-5f73634a43d18110994406/]

⑥「接続」をクリックして、問題なければ無事完了。

2. QuickSight にインポートしたデータを編集

必ず編集が必要というわけではないですが、インポートした csv の内容によっては日付がうまく反映されてないことがあるので、「データ管理」で該当のデータを確認をして編集をします。
(※上記で紹介した csv の可視化をした際は、日付形式の編集が必要となりました)
image.png
可視化したデータセットの日付が、図のように、カレンダーのアイコンがついた日付(Date)で表示されていれば大丈夫です。そうでない場合は、以下の手順で日付形式の変更を行います。
①「日付」を選択して「データタイプの変更」をクリック
②「日付形式の編集」を選択し、日付の形式を変更したら保存して完了

3. 編集が完了したデータの可視化

インポートしたデータはいつでも可視化することができます。
可視化したいデータセット項目や日付を選択することで、日付毎のデータの可視化や項目毎のデータの可視化などができます。

4. 可視化したデータの予測方法

可視化したデータを予測するには、以下の点に注意する必要があります。

■注意

  • QuickSight のアカウントがスタンダードだと、予測はできません
  • 複数の項目を一度に予測することはできません

予測手順は以下となります(売上の予測を行う場合)
①予測したい項目と、日付を選択
image.png
②「予測を追加」を選択

image.png
③「期間をすすめる」で、予測で見たい期間を決める(オレンジ色のグラフが予測期間)
④期間を決めたら、「適用」をクリック

その他

1. データの可視化ができない

自分が遭遇したミスとしては、主に下記の3つになります。

①UTF-8形式に csv が変換できてなかった
②csv の行が多すぎて、読み込んでもらえなかった(1000行を超えると駄目みたいです)
③行と列のデータを逆にすることで読み込めた

※データセットの詳しい要件は、下記の公式 AWS 参照でお願いします
ML Insights を Amazon QuickSight で使用するためのデータセット要件

2. 予測結果を excel フォーマットの様に数値で可視化

image.png

予測をした分析結果は、csv にしてインポートすることができます。
予測結果を csv にして、再び QuickSight で可視化することで、予測結果のみのデータを数値で可視化することができます。
(QuickSight の標準機能には、予測結果を数値で可視化は用意されていません)

おわりに

QuickSight ML Insights の利用方法についての簡単な説明は以上となります。

①少ないデータでも、誰でも簡単に予測の実施が可能
②自動で適したビジュアルも選択される可視化機能あり(豊富なビジュアル)

手軽に簡単な可視化や予測の検証を行うにはピッタリのサービスだと思いますので、ぜひ利用してみてください。


Amazon Connectで「ダイヤル分岐」コネクトセンターを実装する【ハンズオン】

はじめに

この記事では

  • Amazon Connectにダイヤル分岐処理を実装する手順

についてハンズオン形式で解説していきます。
なお、Amazon Connectの概要やAWSアカウントの登録方法・Amazon Connectのインスタンスの作成手順についてはこちらの記事をご参考ください。

Amazon Connectの使い方[丁寧に解説してみた]

コネクトセンターに必須の「ダイヤル分岐」

新型コロナウイルス感染症の拡大に伴い、次に示すような問い合わせフロー図を目にする機会が増えてきたように思います。

スクリーンショット 2020-04-28 19.27.20.png

(新型コロナウイルス感染症にかかる相談窓口について[東京都福祉保健局]より引用)

ダイヤル分岐による音声案内を実施しているところもあるようです。

スクリーンショット 2020-04-28 19.21.55.png

(新型コロナウイルス感染症に対する「帰国者・接触者相談センター」の設置について[神奈川県]より引用)

Amazon Connectを活用すれば上記のような「ダイヤル分岐」を実装することも可能です。
実装には基本ブロックの一つである「顧客の入力を取得する」を使用します。

「ダイヤル分岐」の実装

それでは、実装していきます。
電話をかけると音声案内が流れ、

  • 「0」を押すとAさんに電話が転送
  • 「1」を押すとBさんに電話が転送
  • 「0」または「1」以外を押してしまった場合は再度正しい値の入力を促す
  • 一定時間操作がない場合は値入力を促す

という機能を実装していきます。

AWSアカウントの登録方法からAmazon Connectのインスタンスの作成までは次の記事を参考にしてください。
Amazon Connectの使い方[丁寧に解説してみた]

問い合わせフローの作成

左のメニューから「ルーティング」→「問い合わせフロー」をクリックします。

図1.png

「問い合わせフローの作成」をクリックします。

図2.png

「名前の入力」にフローのタイトル(SampleFlowとします)を書いて「保存」をクリックします。

図3.png

「設定」の「音声の設定」を選んでドラッグし「エントリポイント」と接続します。

図4.png

音声の設定は「日本語」に設定しておきましょう。「Save」をクリックします。

図5.png

「顧客の入力を取得する」ブロックの実装

「操作」より「顧客の入力を取得する」をドラッグし「音声の設定」と接続します。

図6.png

「テキストの入力」に読み上げたい内容を記載します。

図7.png

下にスクロールしてタイムアウトの設定を行い、「別の条件を追加」をクリックして「0」「1」を追加します。終わったら「Save」をクリックします。

図8.png

タイムアウト処理

「ブランチ」から「ループ」をドラッグし、「顧客の入力を取得する」のタイムアウトと接続します。

図9.png

ループの数を設定します(今回は3回とします)。その後「Save」をクリックします。

図10.png

「終了/転送」の「切断/ハングアップ」をドラッグし、「ループ」ブロックの「ループ」を「顧客の入力を取得する」に接続し、「ループ」ブロックの「完了」を「切断/ハングアップ」に接続します。

図11.png

これによって音声案内が流れて一定時間操作がない場合にタイムアウト時間分経過するたびに再度案内が流れ、3回案内が流れても操作がない場合は電話が切れるようになります。

デフォルト処理

予定外の入力があった場合(「0」「1」以外の番号など)はデフォルト処理として実行されます。

「操作」から「プロンプトの再生」をドラッグし、「顧客の入力を取得する」の「デフォルト」を「プロンプトの再生」に接続し、「プロンプトの再生」の出力から「顧客の入力を取得する」に接続します。

図12.png

予定外の入力があった場合に読み上げるテキストを設定します。設定したら「Save」します。

図13.png

これで予定外の入力があった場合は再度ダイヤル分岐の案内が流れるようになります。

エラー処理

それ以外の予期せぬエラーが生じた場合は電話が切断されるようにします。

「顧客の入力を取得する」ブロックの「エラー」を「切断/ハングアップ」に接続すればOKです。
次からは分岐処理の実装に移ります。別の画面に移るので一度「保存」しておきましょう。

図14.png

分岐処理の実装

音声案内に従い「0」を押したらAさんに電話が繋がり、「1」を押したらBさんに繋がるようにします。

左のメニューから「ルーティング」の「キュー」を選択します。

図15.png

「新しいキューの追加」をクリックします。

図16.png

名前や説明を記載し、「新しいキューの追加」をクリックします。
アウトバウンド発信者ID番号はインスタンス作成時に取得した電話番号を選択します。キューはユーザーの数だけ作成します。

図99.png

同様の手順でもう一人の分のキューも作成します。
図3.png

続いて左のメニューから「ユーザー」の「ルーティングプロファイル」を選択してください。

図100.png

「新しいプロファイルの追加」をクリックします。

図19.png

名前と説明を記載し、「Voice」にチェックを入れます。

図20.png

ルーティングプロファイルのキューに先ほど作成したキューを選択します。デフォルトのアウトバウンドキューも先ほどのキューを設定しておきましょう。

図21.png

「新しいプロファイルを追加」がクリックできるようになります。

図22.png

同様の手順でもう一人の分も作成します。
図2.png

左のメニューで「ユーザー」の「ユーザー管理」をクリックします。

図23.png

「新しいユーザーの追加」をクリックします。

図24.png

「作成」を選択し次へ進みます。

図25.png

必要事項を記載します。
ルーティングプロファイルは先ほど作成したものを選択してください。電話の種類はソフトフォンでOKです。セキュリティプロファイルは受信発信を実施する場合は「Agent」を選択します。(※複数ユーザーを作成する場合はいずれかのユーザーに「Admin」も選択しておくことを推奨します。)
エージェント階層は空欄で大丈夫です。

図26.png

「保存」をクリックします。

図27.png

「ユーザーの作成」をクリックします。

図28.png

「他のユーザーの作成」または「戻る」をクリックします。(今回はもう一人のユーザーを追加します。)

図29.png

もう一人のユーザーも作成しました。
図1.png

左メニューから「ルーティング」の「問い合わせフロー」をクリックし、先ほどまで作成していた問い合わせフローを開きます。
そして、「設定」の「キューの設定」をドラッグし、「Pressed 0」に接続します。

図30.png

キューの設定は作成したキューを選択します。「Save」します。

図31.png

「終了/転送」の「キューへの転送」をドラッグし、「キューの設定」から接続します。「キューへの転送」ブロックはデフォルト設定のままでOKです。

図32.png

「キューの設定」の「エラー」、「キューへの転送」の「容量」及び「エラー」を「切断/ハングアップ」に接続します。

図33.png

同様にして「Pressed 1」にBさんのブロックを追加します。その後、「公開」をクリックします。

図34.png

これでほとんど完成です!次にデフォルト顧客キューの音声設定を変更しましょう。

デフォルト顧客キューの音声設定

左のメニュー「ルーティング」の「問い合わせフロー」から「Default customer queue」を選択してください。

図35.png

テキストの内容を変更しましょう。こちらの設定でキュー転送時に流れる音声内容を設定できます。設定が終わったら「Save」して「公開」にしましょう。

図36.png

最後にインスタンス生成時に取得した電話番号を今回作成した問い合わせフローに割り当てれば完成です。

電話番号の割り当て

左メニュー「ルーティング」の「電話番号」をクリックします。
図1.png

取得した電話番号をクリックします。
図2.png

作成した問い合わせフローを選択し、「保存」します。
図3.png

お疲れ様でした!以上で実装作業は完了です。

オペレーターとして運用する方法

それではオペレーターとして受電対応する場合について説明します。

AWSのマネジメントコンソールから「Amazon Connect」を開きます。
図4.png

「アクセスURL」をクリックします。
図5.png

作成したユーザー(「Agent」権限が与えられているもの)のユーザー名、パスワードを入力してサイインインしてください。
図6.png

「ステータスの変更」で「Offline」から「Available」へ変更します。
図7.png

これでいつでも受電できる状態になりました。
図8.png

架電した人が音声案内に従い、こちらのオペレーター接続すると次のような表示になります。
「通話を受信」で通話が開始されます。
図9.png

「通話を終了」で切断されます。
図101.png

「デスクフォン」で携帯電話に転送して受電する

歯車マークからデスクフォンを選択し、電話番号を入力すると携帯電話で受電することもできます。
図10.png

おわりに

ダイヤル分岐のコネクトセンターの実装方法についてハンズオン形式で説明しました。
Amazon Cennectでは基本ブロックの組み合わせで様々なことができると改めて実感しました。
ご参考いただけると幸いです。


Amazon Connectの使い方[丁寧に解説してみた]

はじめに

現在、急なリモート対応に追われている方も多いと存じますが、当社ではAmazon Connectを活用したリモートワークの導入に成功しています。
本記事では当社がそこに到るまでに得た経験や知識を踏まえて、わかりやすく導入方法を解説致します。
リモート勤務を検討している皆様の一助となれば幸いです。
*この記事は大変長いため目次を一覧するにはページ右側をスクロールする必要があります。

本記事のターゲットとゴール

  • ターゲット
    • 社内のリモートワーク導入の第一歩として、社内電話を在宅でも使用できるようにしたい人
    • 電話対応のために現在どうしても出社する必要がある人
    • 将来的にAmazon Connect導入することでコールセンターの効率化を目指しており、まずはお試しで触れてみたい人
  • ゴール
    • 社内電話をAmazon Connectというサービスに代替するために、初期設定と実際に機能しているかテストするところまで(ゴールまでの想定時間は2時間です) alt

今回の想定使用方法

  • 受信: 受信: 会社に電話→電話をAmazon Connectに転送→キューに転送→PCで受信→更に携帯電話に転送(上図参照) 。外部から着信する電話番号は「現在使っている番号」となります。
  • 発信: Amazon Connectから発信。外部へ発信する電話番号は「Amazon Connectで取得した番号」となります。(050-など)

*今回の方法では会社の固定電話を転送する必要があります。
会社の固定電話を転送するにはNTTのボイスワープを導入しましょう。

NTTボイスワープとは

  • 電話の受信時に、指定の電話機等を鳴らすことなく希望の番号に転送することができるサービスです。 電話回線がNTTの場合、工事不要で利用できるオプションサービスです。 事務用ですと月額800円でご利用できます。

参考URL
NTT東日本 ボイスワープとは
https://web116.jp/shop/benri/vw/vw_00.html

NTT西日本 ボイスワープ(オプション)
https://www.ntt-west.co.jp/denwa/service/voicewp/gaiyou.html

Amazon Connectとは何か?

Amazon ConnectとはAmazon社の提供する簡単にコールセンターを開設できるサービスです。
自動音声案内を使った本格的なコールセンターの構築などもできますが、今回は社内電話を在宅勤務中に携帯電話で受信する方法を記述します。

Amazon Connectを使用するメリットとしては、導入までが早い、低コスト、障害に強い、現在の電話番号を使用できることが挙げられます。
以下ではそれらについて少しだけ詳しく記述します。
alt

メリット

1. 導入までが早い

コールセンターの開設が独力で実現します。
全くのゼロからでもAWSアカウントを作成し、初期設定をし、電話番号に関する設定を完了させればその日に使用を開始することが出来ます。

2. 初期コストが安い

Amazon Connectは初期費用、長期契約や最低月額費用などが必要ありません。
基本的に使った分だけ請求される従量課金制なので安心して無料で使用を開始出来ます。

料金表(日本)
alt
目安例:日本国内で受信通話を使用した金額(概算)
→→→直通ダイヤルの時は0.5円。無料通話の時は5円
*ただし別途で1日あたりの要求された電話番号の数も課金されます。

ケース:月に受信(50時間)、発信(50時間)利用する際の概算(1ドル=100円として)
→→→受信(約1200円)+発信(約30000円)=約31200円(月額)
参考URL
https://aws.amazon.com/jp/connect/pricing/

3. 障害に強い

サーバーは巨大なデータセンター内で分散して立てられるので災害などの急なトラブルに非常に強いです。
またAWSの性質として急なアクセス増加に非常に強く、回線がパンクすることがありません。

4. 現在の電話番号を使用できる

着信時に既存の番号からAmazon Connectの番号に転送することで、会社に行かなくても電話を受けることができます。ただし発信時は既存番号をお客様に通知することはできません。

従来の電話システムとAmazon Connectの比較

alt

1. システム導入までのハードル

従来の電話システム<<Amazon Connect
Amazon Connectは電話回線を引く必要がなく、すぐにコールセンターの構築ができます。

2. リモート適性

従来の電話システム<<<Amazon Connect
インターネットでAmazon Connectに繋ぐだけで在宅勤務が可能です。

3. 音声の品質

従来の電話システム>Amazon Connect
インターネット接続のため電話回線よりも安定性が足りない面があります。
結果として少し音声が乱れるケースもあるでしょう。

4. オペレーターをサポートする機能

従来の電話システム>>Amazon Connect
Amazon Connectのオペレーター画面はシンプルなので、既存のコールセンターのものと比べて不便な面があります。

AWSにログイン

ここから実際にAmazon Connectの設定を行い、固定電話にかかってきた電話を転送してパソコン/携帯電話で受ける方法や電話の掛け方を解説します。

Amazon Connectを導入するにはAWSアカウントが必要です。
もし所持していない場合は以下のURLに従ってアカウントの作成をしましょう。
参考URL
https://aws.amazon.com/jp/register-flow/

alt
アカウントの用意ができたらAWSコンソールにサインインをクリックしましょう。

alt
ルートユーザーを選択し、Eメールアドレスとパスワードを入力してログインします。

alt
ログインしたら、”サービス”から”Amazon Connect”を検索しクリックしましょう。
また右上のリージョンは”東京リージョン”を必ず指定してください。

alt
次の画面にある”今すぐ始める”をクリックしてください。

alt
この画面に移るのでアクセスURLの空欄には好きなワードを入れてください。
アクセスURLはメールアドレスのようなものです。
会社で使う場合は会社名をローマ字表記で入力すれば無難でしょう。

初期設定の方法

1. 管理者設定

alt
ここから初期設定です。それぞれの欄を埋めて、”次のステップ”をクリックしてください。
ユーザー名は日本語が使えないのでローマ字と一部の記号、パスワードは大文字・数字を含めた8字以上で設定してください。

2. テレフォニーオプション

alt
今回は受信も発信もAmazon Connectで実行するので、両方チェックが付いているまま”次のステップ”をクリックします。

3. データとストレージ

alt
ここでは通話記録など諸々のデータを保存する場所を確認できます。 データと問い合わせフローログの保存場所チェックしたら”次のステップ”をクリックしましょう。

4. レビューと作成

alt

最後にここまで設定した内容を確認できるので、問題なければ”インスタンスの作成”をクリックしましょう。
(作成には1〜2分かかることがあります)

インスタンスの中身を作成する

インスタンスとはAmazon Connect上に構築したシステムを入れる箱(またはPBX)のようなものだと思っていてください。
ここまでの初期設定ではコールセンターという家の外観を作ったようなものです。
次は家の中身を作らなければいけません。
以下ではコールセンターのシステムを本格的に構築していきます。

alt
インスタンスの作成が終わると、上記の画面が表示されるので”今すぐ始める”をクリックしましょう。

alt
サイトが英語表記になっても右上の部分で日本語を選択することで変更できます。”Let's go”をクリックしてください。

1. 電話番号の取得

alt
まずはAmazon Connect上のあなたの(主に発信で利用する)電話番号を取得しましょう。 国は”日本”を選び、完了したら”次へ”をクリックしてください。(電話番号右側のバーで他の番号の選択もできます)

2. キューの作成

電話をユーザーに転送するには一度キューと呼ばれる場所を経由しなくてはいけません。
(Amazon Connectに電話受信→キューに転送→ユーザーに転送)
電話中のユーザーにいきなり転送されてしまうと困りますよね?
そこで一度キューに預けている間に、電話を受け取れるユーザーを探すわけです。
つまりキューとは電話がユーザーに転送されるまで電話を一時的に保持する領域のことです。

alt
ルーティングの欄のキューをクリックしてください。

alt
新しいキューを追加しましょう。右上にある”新しいキューの追加”をクリックします。

alt
今回の手順では”general_que”という名前でキューを追加しています。説明はキューの使用用途を書けば分かりやすいです。オペレーション時間は”Basic”で大丈夫です。 またアウトバウンドの発信番号を先程取得したAmazon Connectの番号にすることで発信ができるようになります。忘れずに設定するようにしましょう。完了したら”新しいキューの追加”をクリックしてください。

3. ルーディングプロファイル設定

上記のようにキューを作成しましたが、キューを複数作ることで電話によって受信するユーザーを変えることができます。

[例]サービスの新規契約についてはAの部署、サービス解約についてはBの部署のように振り分けられる。

alt
そうなると、どのキューに電話を転送されたら誰に転送するかを決める必要がありますよね。
ルーティングプロファイルではそれを設定することができます。

今回は複数のキューを併用しませんが、一応設定する必要があります。

alt
ユーザーの欄にあるルーティングプロファイルをクリックしてください。

alt
右にある“新しいプロファイルを追加”をクリックします。

alt
今回の手順では「general_profile」という名前でルーティングプロファイルを追加していきます。説明はこのプロファイルがどういう役割を果たすかという軸で書くと分かりやすいでしょう。今回のようなテストでは適当でも大丈夫です。Chatも使う予定はないので”Voice”だけ選択しましょう。

alt
ルーティングプロファイルのキューとアウトバウンドキューは先ほど作った”general_que”を選びましょう。ルーティングプロファイルの”Channels”は”Voke”を選択してください。
完了したら”新しいプロファイルを追加”をクリックしてください。

4. ユーザー設定

ここではコールセンターの各オペレーターの設定をします。

alt
ユーザーの欄のユーザー管理をクリックしてください。

alt
右にある“新しいユーザーの追加”をクリックしてください。

alt
ここは”作成”を選択してください。

alt
氏名、ログイン名、メールアドレス(なくてもいい)、パスワードを入力してください。ルーティングプロファイルは先ほどの”general_profile”を 、セキュリティプロファイルは”Agent”を選択してください。 ”Agent”にすると電話の受信と発信ができます (画面では”QualityAnalyst”になっていますが”Agent”にしましょう)
電話の機能はソフトフォンのままにしてください。

alt
確認したら作成をしましょう。

alt
私はその後に徳川さんも加えました。
一覧はこのようにユーザーの管理のトップ画面から見えます。

5. 問い合わせフローの作成

最後に問い合わせフローを作成します。
問い合わせフローを設定すると、電話を受信した時に指定したプログラムを順次実行できます。

alt
ルーティングの問い合わせフローをクリックしましょう。

alt
問い合わせフロー作成をクリック

alt
まずは左から右に上記のようにドラッグアンドドロップで配置してください。
(“音声の設定”、 “プロンプトの再生”、 “キューの設定”、 “キューへの転送”、 “切断”をドラッグアンドドロップ)

alt
まずは音声の設定をクリックし、言語を”日本語”、音声を”mizuki”に設定します。 (この作業をすることで日本語の音声案内を流せます)

alt
次に”プロンプトの再生”をクリックし、電話を転送して通話できるまでに流れる自動音声を設定します。
“テキスト読み上げまたはチャットテキスト”を選択し、読み上げたい音声を”テキストの入力”欄に記入してください。

alt
キューの設定で先ほど作成したキューを指定してセーブしましょう。
*画像では”test”になっていますが本来は”general_que”です。

alt
キューの転送をクリックし、上記のようになっているのを確認したらセーブしましょう。

alt

最後に上記のようにフローを結んでください。
できたら”保存”して”公開”しましょう。

6. 問い合わせフローと電話番号の紐付け

alt
次に作成した問い合わせフローと電話番号を紐付けます。
ルーティングから電話番号をクリックしてください。

alt
自分の電話番号をクリックしてください。

alt
上記画面に移るので
先ほどの問い合わせフローを選択し、保存してください。
以上で設定終了です。お疲れ様です。

受信、着信テストをしてみよう

alt
設定が終わったので動作確認をしましょう。
AWSコンソールにログインし、サービスのAmazon Connectをクリックしましょう。
すると上記の画面が表示されます。
自分のインスタンス名をクリックしてください。

alt
ログインURLからCCP(オペレーター用画面)に入りましょう。

1. 発信テスト

alt
まずOfflineになっているのでAvailableに変更してください。
発信テストからいきましょう。
”番号をダイヤル”をクリックしてください。

alt
国を日本に変更し、電話番号の一桁目を抜いて電話番号を入力してください。

alt
この画面になれば発信成功です。

2. 受信テスト

alt
次に受信してみましょう。
今回はAmazon Connectにきた電話を自分の携帯に転送します。
歯車マークの設定画面から”デスクフォン”に変更し、
自分の携帯番号の一桁目を抜いたナンバーを入力してください。

"ソフトフォン"と”デスクフォン”とは?

  • ソフトフォン→インターネット回線を通じてPC上で使える電話
  • デスクフォン→置き型の電話や携帯電話など電話回線を使う電話

alt
あとは誰かに電話をしてもらって転送できてるか確認しましょう。
電話を受けると上記の画面になります。

インスタンスの削除方法

alt

最後にコールセンターが不要になった場合は
上記のようにチェックマークをつけて削除をクリックするだけで簡単にインスタンスを削除できます。

終わりに

いかがでしたか?
今回は単純なフローを設定しましたが、フローをより複雑に構築することで電話対応の業務を大きく効率化できます。
次回はより効率化されたコールセンターの開設の仕方について取り上げます。
ぜひお楽しみに!!


5/28(木)いますぐできます!在宅コールセンター開設ウェビナー!構築デモあり【Amazon Connect】を開催します!!

セミナー内容

現在、新型コロナウイルスの影響により在宅勤務に切り替える企業様が増えております。
一方で電話受付業務(輪番電話受付業務)で出社せざるを得ない企業様、団体様も多くいらっしゃると思います。
このような状況でも、急遽コールセンターの環境を用意しなくてはいけないなどの悩みを抱えている企業様、団体様もいらっしゃると思います。

クラウドベースのコンタクトセンターソリューション「Amazon Connect」を利用すれば、自宅での電話の受付業務が継続はもちろん、コールセンター環境も簡単、且つ短時間で実現可能です。

本セミナーではそんな「Amazon connect」を利用した弊社でのユースケースをはじめ、ルーティング機能、ダイヤル分岐等のデモを交えて「Amazon connect」の使い勝手を知っていただけたらと思っております。

対象となるお客様

  • 電話受付業務のため、出社しなければならず、自宅で固定電話の受付をしたい
  • 急遽コールセンターを開設する必要が出てしまったので相談したい
  • 現状の電話業務を効率化・高度化できるか相談したい

本セミナーのゴール

  • Amazon Connectがどういったものかを知ることができます
  • 簡単なコンタクトセンターをすぐに作れるようになります

alt

Amazon Connectとは?

Amazon ConnectとはAWSの提供するコンタクトセンターを簡単に開設できるサービスです。

アジェンダ

  • 電話業務における現状の課題
  • Amazon Connectで解決できること
  • ユースケース
  • デモ
  • QA

タイムテーブル(予定)

時間 内容
11時55分 受付開始
12時~ 開会のご挨拶
~12時15分 セミナー
~12時40分 構築デモ
~12時55分 QA
13時 閉会の挨拶

日時:2020年 5月28日(木) 12時~13時
場所:オンライン(Microsoft Teams)
参加費:無料

参加方法

当日のウェビナーはteamsを使用して開催します。 こちらよりお申し込みいただいた後に、登録完了メールがお手元に届きます。 そちらのメールに当日の参加用 URLが掲載されておりますので、ご確認をお願いします。

下記「プライバシーポリシー」をご確認・ご了承いただいた上で、お申し込みの際はお名前等のご記入をお願いします。 ご協力いただけない場合は当日参加をお断りさせていただく場合がございますので、予めご了承ください。
プライバシーポリシー / 個人情報の取り扱いについて

株式会社ナレッジコミュニケーションについてのご紹介

ナレッジコミュニケーションではAmazon Web Services、Microsoft Azure等のクラウドサービスを企業に導入する事業を行っております。
お客様の課題に対してクラウドを使って課題解決のご支援をさせていただいております。

実績掲載

1.ブックリスタ様 事例

https://aws.amazon.com/jp/solutions/case-studies/booklista-knowledgecommunication/

2.全国保証様 事例

https://prtimes.jp/main/html/rd/p/000000014.000004474.html

関連記事

1.Amazon Connectの使い方[丁寧に解説してみた]

https://recipe.kc-cloud.jp/?p=16741&preview=true

2.Amazon Connectで「ダイヤル分岐」コネクトセンターを実装する【ハンズオン】

https://recipe.kc-cloud.jp/?p=16743&preview=true

3.ナレコムコロナ対策特設ページ

https://www.knowledgecommunication.jp/event/COVID-19/


MMLSpark を Databricks on EC2 のクラスタにインストールする方法

はじめに

MMLSpark を Databricks (on AWS EC2) のクラスタで使用できるようにする手順を示します。

対象者

  • Databricks on EC2(AWS) で分析環境を立ち上げている
    • init_script をいじったけどなんだかうまく行かない
    • pip でもうまくいかない
    • MMLSpark は Azure 以外のプラットフォームで使えないの?
  • 現在使用しているアルゴリズムをSparkによる分散処理に最適化できないか方法を探している

mmlspark とは?

正式名称は、Microsoft Machine Learning for Apache Spark

Microsoft Azure のマネージド機械学習サービスである Cogninive Services や、機械学習の現場でよく使われる LightGBM などを Spark で効率的に活用できるように最適化したパッケージが揃っているライブラリです。

画像処理ライブラリの雄である OpenCV のパッケージもあります。2020年5月現在では一部の関数のみが実装されているのみですが、大量の画像に対してシンプルな前処理を並列かつ高速に行いたい場合には選択肢に入ってきそうです。
MMLSpark OpenCV Package

そしてこのパッケージ、Microsoft Azure 以外のプラットフォームでも使えます。

インストール方法

Databricks のワークスペースで、
ClustersからLibrariesに飛び、Install Newをクリック
スクリーンショット 2020-05-15 7.08.01.png

Library Source に Mavenを選択し、Repository に以下を入力、Installをクリック
com.microsoft.ml.spark:mmlspark_2.11:1.0.0-rc1
スクリーンショット 2020-05-15 7.10.58.png

しばらくするとこちらの画面に遷移します。
Status が InstalledになっていればOK。これで完了です。
スクリーンショット 2020-05-15 7.13.14.png

参考スクリプト

以下のような感じで、Collaborative Notebook 上でモジュールが使えるようになります。

[crayon-5f73634a442ca405580101/]

result
image.png

[crayon-5f73634a442d8522269818/]

result
image.png

[crayon-5f73634a442e3585640608/]

result
image.png

[crayon-5f73634a442ed367889038/]

result
image.png

おわりに

モジュールのインストール方法にもいろいろあるんですね。
依存関係が出やすいので pip 乱発はやめたいところです(自戒)

参考資料

公式 MMLSpark 紹介サイト
公式 MMLSpark Github

LightGBM 上記スクリプトソース


Amazon Polly を使用した日本語テキスト読み上げの最適化(後編)

はじめに

前回に引き続き、Amazon Pollyを使用した、精密な発音をする音声の読み上げの機能について
AWS はどのようにして最適化を行っているのか、についてご紹介いたします。
しばし長くなっておりますがご了承願いますm(_ _)m

日本語の発音をコントロールする方法

単語の区切りを指定するだけで、目的の発音を示すことができる場合があります。
2020-04-23_04h38_23.png
『東京都』を「とうきょうと」と読むと「東京」と「都」の、 2 つの単語で構成されていると解釈できます。
しかし、「ひがしきょうと」と読み、「京都の東部」を指すことで、
この語は「東」と「京都」の、 2 つの単語で構成されていると解釈できます。

その1.単語境界タグ<w>...</w>を適用する

単語境界タグを適用することにより、『東京都』のデフォルトの発音が上書きされ、「とうきょうと」ではなく「ひがしきょうと」と発音されます。
このタグは、個々の単語を囲むことによって TTS の発音をコントロールするために、使用できる SSML (音声合成マークアップ言語)の形式です。

[crayon-5f73634a44a32303169339/]

★pollyの読み上げ音声

その2.振り仮名で発音をコントロールする

単語の区切りを指定する方法は便利ですが、合成したい語が複数の単語で構成されている場合にのみ有効です。
しかし単一の単語(または単一の文字)が、複数の発音を有することも多々あります。

例1:東京の地名である『日本橋』は「にほんばし」
例2:大阪の同じ地名を指す場合は「にっぽんばし」
と発音されます。文脈がなければ、正しい発音がわかりません。

発音を指定する最も簡単な方法は、括弧内に振り仮名表記をすることです。

日本橋(にほんばし)
★pollyの読み上げ音声

日本橋(にっぽんばし)
★pollyの読み上げ音声

振り仮名表記だけではうまく機能しない

その2の手法だと、振り仮名が表示されてしまうため、用途によっては望ましくない場合もあります。
振り仮名が Amazon Polly が認識する、発音の1 つと一致しない場合は、うまく機能しません。

例:「海(やま)」
『海』という漢字に対して「やま」という振り仮名を当てても振り仮名としては認識されません。

例:「七音(どれみ)」
標準的ではない文字の読み方をする人名の場合に当てはまります。

Amazon Polly の特別な音声形式

この問題を克服するために、Amazon Polly には日本語用の特別な SSML タイプ属性があり、振り仮名を用いて発音を指定できます。

次の例に示すようにルビ(ruby)という、音素(phoneme)タイプのタグを使用します。
デフォルトの発音が「にほんばし」である『日本橋』という表記に、「にっぽんばし」という振り仮名を適用できます。

[crayon-5f73634a44a41890963488/]

★pollyの読み上げ音声

この構文を使用すると、任意の振り仮名(発音)を任意の文字列に適用できます。
このルビタグは、単語の区切りに関係なく使えます。
次の例のように、送り仮名を除いた漢字部分のみにタグを付けることもできます。

[crayon-5f73634a44a4b015248336/]

★pollyの読み上げ音声

[crayon-5f73634a44a55530132647/]

★pollyの読み上げ音声

振り仮名が Amazon Polly が認識する発音の 1 つと一致しない場合、モデルを使ってアクセントを予測しますが、この予測されたアクセントは正しくない場合があります。

たとえば、ルビタグを使って『山』という文字に、「うみ」という読みを強制します。
「うみ」は『山』という文字の、認識されていない発音のため、想定外のアクセントとなる場合があります。

ph 属性について

ph 属性は、平仮名または片仮名を使うことができます。
ただし、振り仮名が有効な形式でない場合、指定された発音は効果がなく、タグで囲まれた文字列に対して予測されたデフォルトの発音になります。

たとえば、数字や記号など、仮名以外の文字を振り仮名に含めることはできません。
また、二重の長音符(長音記号)などの、一般的ではない振り仮名の使用も無効とみなされます。

ルビタグが無効になる例

次の例では、振り仮名の形式が正しくないため、ルビタグは有効になりません。

[crayon-5f73634a44a5f099265399/]

次の例のようにタグの内部に文字列のない状態でルビタグを使用すると、何も合成されません。

[crayon-5f73634a44a68944325733/]

その3.発音仮名でコントロールする

ルビタグはアクセントを細かくコントロールできないため、目的通りにならない場合があります。

「雨」⇒「あ↗め」、「飴」⇒「あめ↘」のように、アクセントが変わることで単語の意味が変わることがあります。
また、同じ単語であっても、文脈に応じてアクセントが変わる場合があります。

「音声」という単語の発音は、「オ↗ンセー」のように、最初の拍 (音節) にアクセントが付きます(頭高型)。
「合成」という単語はアクセントのない「ゴーセー」と発音されます(平板型)。

ただし、2 つの単語が組み合わさって、「音声合成」という複合語が形成されると、アクセントの位置が移動し、「オ↗ンセーゴーセー」ではなく、「オンセーゴ↘ーセー」と発音されます。
したがって、語や文章のアクセントを予測することは、TTS にとって容易ではありません。

ML モデルを使ってある程度は解決できますが、時々間違うこともあります。

x-amazon-pron-kanaを使う

x-amazon-pron-kana は、発音仮名と呼ばれる発音表記を使用しており、アクセントを直接かつ明示的に指定することができます。
「毎日新聞を読む」という文章の、 2 つの読み方を区別できます。

例1:「毎日、新聞を読む」という意味
例2:「毎日新聞という新聞を読む」という意味

最初のパターンは、現在 Amazon Polly が予測するデフォルトのアクセントです。

例2のアクセントを適用する方法

[crayon-5f73634a44a72574135253/]

★pollyの読み上げ音声

x-amazon-pron-kana(発音仮名)は片仮名で表記され、振り仮名に似ていますが、いくつかの点で異なります。
振り仮名は必ずしも、発音を正確に反映するわけではありませんが、発音仮名は忠実に反映します。

例:1. 助詞「は」は、発音仮名では「ハ」ではなく「ワ」と表記
例:2. 助詞「へ」は、「ヘ」ではなく「エ」と表記
例:3. 助詞「を」は「ヲ」ではなく「オ」と表記

「格子」と「子牛」は、振り仮名では両方とも『こうし』ですが、発音仮名ではそれぞれ「コーシ」と「コウシ」と、表記が異なります。

アクセントの違い

発音仮名では、アポストロフィはピッチが下がる位置を示します。
アポストロフィがない場合、アクセントがないものとみなされます(平板アクセント)。

次の例は、アクセントの違いを示しています。

[crayon-5f73634a44a7c730385334/]

★pollyの読み上げ音声

[crayon-5f73634a44a85969937551/]

★pollyの読み上げ音声

各単語には、最大 1 つのアクセントを含めることができます。
この単語とは韻律語を意味し、各単語につき最大 1 箇所、ピッチが下がる拍を指定できるというわけです。

タグ付けする語句に複数のアクセント(ピッチの複数のピーク)がある場合は、各単語の発音仮名をスペースで区切るか、別々のタグで囲む必要があります。

イントネーションの違い

次の例は、韻律語の分け方の違いによる、イントネーションの違いを示しています。
同じ句をさまざまな方法で韻律語に分割できるため、すべて同じ発音仮名で表されますが、スペースの位置によってイントネーションが異なります。

[crayon-5f73634a44a8f353309060/]

★pollyの読み上げ音声

[crayon-5f73634a44a98299376324/]

★pollyの読み上げ音声

[crayon-5f73634a44aa1501716215/]

★pollyの読み上げ音声

phoneme alphabet="x-amazon-pron-kana" は phoneme type="ruby" とは異なり、
その周囲に単語境界を強制挿入するので、送り仮名のある単語に x-amazon-pron-kana を用いる場合、送り仮名を含む単語全体にタグ付けする必要があります。

振り仮名(片仮名表記)と発音仮名の違い

image.png

まとめ

日本語の TTS システムの開発において、その書記体系の複雑さにより、生じるいくつかの課題について説明しました。
このサービスでは、いくつかの ML モデルを使用して、発音およびアクセントを予測しますが、
日本語固有の SSML タグを使用することで、Amazon Polly の自然な日本語音声のコンテンツを、より簡単に作成できます。
是非ご活用ください。

公式サイトリンク

Amazon Polly