AWS Transit Gateway にざっくり触れる【初心者】
はじめに
今回は AWS Transit Gateway というサービスについて、便利なところをピックアップしてご紹介していきます。
Transit Gateway は中央※ハブを介して、 VPC とオンプレミスネットワークを接続するクラウドルーターだと言われています。
ネットワークが簡素化され、VPCの複雑なピアリング接続をしなくてよくなります。
パッと見て分かる通り、ごちゃごちゃVPC同士を繋げなくて良いので、管理がとてもしやすそうですよね。
※ハブとは
HUBとは、LAN上で各端末(コンピューター、ネットワークプリンタなど)同士を接続する機器のことです。
ネットワーク内のデバイスの共通接続ポイントとして機能します。
ルーティング
- 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 クラウド間の不整合や、複数のロケーションに異なる影響を与える問題を特定できるので
問題対処も早くなりそうですよね!
公式サイトリンク
初めての機械学習をデプロイしてみた
はじめに
このチュートリアルでは、Amazon SageMaker を使用して機械学習(ML)モデルを構築、トレーニング、デプロイする方法を学びます。
Amazon SageMaker は、モジュール式のフルマネージド機械学習サービスであり、開発者やデータサイエンティストがMLモデルを大規模に構築、トレーニング、デプロイできるようにします。
Jupyter-notebook を触ることにもなりますので、はじめて使う方は一連の流れを知ることが出来ます。
Amazon SageMaker の利用
機会学習モデルをトレーニングするには
- 大量のデータを管理
- トレーニングに最適なアルゴリズムを選択
- トレーニング中に計算能力を管理
- モデルを本番環境にデプロイする必要があります。
Amazon SageMaker は、MLモデルの構築とデプロイをはるかに簡単にすることで、この複雑さを軽減します。
利用可能な幅広い選択肢から適切なアルゴリズムとフレームワークを選択すると、
- 基盤となるすべてのインフラストラクチャを管理
- ペタバイト規模でモデルをトレーニングし、本番環境にデプロイします。
チュートリアルの内容
このチュートリアルでは、銀行で顧客が預金証明書(CD)に、登録するかどうかを予測する機械学習モデルを開発します。
モデルは、顧客の人口統計、マーケティングイベントへの応答、および外部要因に関する情報を含むマーケティングデータセットでトレーニングされます。
データには便宜上ラベルが付けられており、データセットの列には、銀行が提供する商品に顧客が登録されているかどうかが示されています。
このチュートリアルでは、データにラベルが付けられているため、教師あり機械学習モデルを実装しています。
(教師なし学習は、データセットがラベル付けされていない場合に発生します。)
- ノートブックインスタンスを作成する
- データを準備する
- モデルをトレーニングしてデータから学習する
- モデルをデプロイする
- MLモデルのパフォーマンスを評価する
ステップ1. ノートブックインスタンスを作成
Amazon SageMaker コンソールに移動します。
Amazon SageMaker ノートブックインスタンスを作成します。
ダッシュボードから[ ノートブックインスタンス]を選択します。
[ ノートブックインスタンスの作成]ページで、[ ノートブックインスタンス名]フィールドに名前を入力します。
このチュートリアルでは、デフォルトの Notebook インスタンスタイプを 「ml.t2.medium」 のままにしておきます。
ノートブックインスタンスがデータにアクセスして、 Amazon S3 に安全にアップロードできるようにするには、IAMロールを指定する必要があります。
[ IAMロール]フィールドで、[新しいロールの作成]を選択して、Amazon SageMakerが必要なアクセス許可を持つロールを作成し、それをインスタンスに割り当てます。
または、既存のIAMロールを選択できます。
[ IAMロールの作成]ボックスで、[ 任意のS3バケット]を選択します。
これにより、Amazon SageMakerインスタンスがアカウント内のすべてのS3バケットにアクセスできるようになります。
ただし、代わりに使用するバケットがある場合は、[ 特定のS3バケット]を選択し、バケットの名前を指定します。
AmazonSageMaker-ExecutionRole-日付というロールを作成されたことを留意してください。
他のフィールドにはデフォルト値を使用します。[ ノートブックインスタンスの作成]を選択します。
[ ノートブックインスタンス]ページに、先程作ったノートブックインスタンスが[保留中]状態で表示されます。
ノートブックインスタンスは、2分未満で Pending 状態から InService 状態に移行するはずです。
ステップ2.データを準備する
このステップでは、Amazon SageMakerノートブックを使用して、機械学習モデルのトレーニングに必要なデータを前処理します。
[Jupyterを開く]を選択します。
Jupyterが開いたら、 [ Files ]タブから[ new ]を選択し、次に[conda_python3]を選択します。
こんなページが立ち上がります。
データを準備し、MLモデルをトレーニングしてデプロイするには、Jupyterノートブック環境でいくつかのライブラリをインポートし、いくつかの環境変数を定義する必要があります。
次のコードを緑の枠内にコピーし、[Run]をクリック、またはShift+Enterを押します。
コードの実行中、角括弧の間にアスタリスクが表示されます。
数秒後、コードの実行が完了し、アスタリスクが数字の1に置き換えられます。
右側の2番目のスクリーンショットに示すように、成功のメッセージが表示されます。
次はチュートリアルのデータを格納するS3バケットを作成します。
下記のコードをノートブックの次の緑の枠にコピーし、S3バケットの名前を変更して一意にします。
S3バケット名はグローバルに一意である必要があり、制限があります。
[Run]を選択します。
成功メッセージが表示されない場合は、バケット名を変更して再試行してください。
このチュートリアルで作成および使用されるリソースは、AWS無料利用枠の対象です。
手順を完了したら、リソースを終了することを忘れないでください。
これらのリソースを使用してアカウントが2か月以上アクティブである場合、アカウントの請求額は0.50ドル未満です。
後編に続きます。
公式サイトリンク
SageMakerの導入ならナレコムにおまかせください。
日本のAPNコンサルティングパートナーとしては国内初である、Machine Learning コンピテンシー認定のナレコムが導入から活用方法までサポートします。お気軽にご相談ください。
QuickSight の使い方 - ユーザの招待とデータ共有編
はじめに
今回は、QuickSight を用いたユーザの招待と、データの共有方法について簡単に紹介したいと思います。
■やりたいこと
・閲覧権限のみを付与した ユーザを作成したい(ユーザは、IAMユーザと紐付けたい)
・QuickSight 上の可視化してある特定の分析データを、閲覧権限を持ったユーザと共有したい
ユーザの招待方法
ユーザを招待する側の設定
QuickSight の閲覧ユーザの招待方法について、紹介したいと思います。
手順は以下です。
①QuickSight の画面右上のアイコンをクリックし、「QuickSIght の管理」を選択します。
②画面左の「ユーザを管理」を選択したら、「ユーザを招待」を選択
③「ユーザを招待」を選択すると、ユーザ登録となりますので、下記の情報を入力します。
■情報
- ユーザ名:登録する IAM ユーザ名
- Eメール:ここ宛に QucikSight 登録のメールが届く
- ロール;閲覧・作成・管理のどこまでのロールを許可するかを選択
- IAMユーザ:作成するユーザが、既存のIAMユーザと紐付ける場合は「はい」を選択
招待された側の設定
ここからは、QuickSight アカウントに招待された側の手順になります。
①上記で設定したメールアドレス宛に QuickSight からメールが届いているので確認し、クリックします
■入力情報
・QuickSight のアカウント名(これは管理者に確認)
・IAM ユーザ名
・IAM ユーザのログインパスワード
データ共有
ダッシュボードの公開
次に、閲覧権限を有した ユーザと QuickSight 上で可視化したデータを共有する手順を紹介します。
①共有したいデータのダッシュボードを開いた状態で、右上の「共有」を選択
②「ダッシュボードの公開」を選択
(※「分析の共有」は「閲覧」権限のユーザとは共有できません。)
③公開するダッシュボードの名前を決めたら、「ダッシュボードの公開」を選択
以上の手順で、閲覧権限ユーザは、公開されたダッシュボードを見ることが可能となります。
データの予測などを実施する場合は、「作成」や「管理者」権限を持ったユーザを招待し、
「分析の共有」を選択する必要があります。
おわりに
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 の内容の一例)
- csv を UTF-8 形式に変更
- csv に最低限必要な内容
- 年月日
- 商品の名前とその商品の日々の売上数字
2. S3 に csv データをアップロード
QuickSight で可視化したい csv データを、S3 にアップロードします。
csv のデータ内に日本語がある場合、アップロードする csv は UTF-8 形式にしておきましょう。
QuickSight にインポートした際に、文字化けするリスクを回避できます。
3. QuickSight のアカウント用意
以下の手順で QuickSight のアカウントを作成します。
①AWS のコンソール画面で、「QuickSight」と検索し、そこから QuickSight のサービス画面に移動
②「QuickSight にサインアップ」を選択して、アカウント作成画面へ
③可視化したデータの予測を実施する場合は、「エンタープライズ版」を選択
※可視化だけなら「スタンダード版」でもOK。
開始
1. S3 にあるデータを QuickSight にインポート
以下の手順で、S3 にある csv データをインポートすることができます。
①QuickSight にインポートしたい csv のパスをコピーしておきます
②QuickSight にサインイン
③QuickSiht にサインイン後、左上の「新しい分析」をクリック
- データソース名(QuickSight 上でこれから可視化をするデータの名前を決める)
- マニフェストファイルのアップロード(下記を JSON フォーマットで保存し、それをアップロードして利用)
⑥「接続」をクリックして、問題なければ無事完了。
2. QuickSight にインポートしたデータを編集
必ず編集が必要というわけではないですが、インポートした csv の内容によっては日付がうまく反映されてないことがあるので、「データ管理」で該当のデータを確認をして編集をします。
(※上記で紹介した csv の可視化をした際は、日付形式の編集が必要となりました)
可視化したデータセットの日付が、図のように、カレンダーのアイコンがついた日付(Date)で表示されていれば大丈夫です。そうでない場合は、以下の手順で日付形式の変更を行います。
①「日付」を選択して「データタイプの変更」をクリック
②「日付形式の編集」を選択し、日付の形式を変更したら保存して完了
3. 編集が完了したデータの可視化
インポートしたデータはいつでも可視化することができます。
可視化したいデータセット項目や日付を選択することで、日付毎のデータの可視化や項目毎のデータの可視化などができます。
4. 可視化したデータの予測方法
可視化したデータを予測するには、以下の点に注意する必要があります。
■注意
- QuickSight のアカウントがスタンダードだと、予測はできません
- 複数の項目を一度に予測することはできません
予測手順は以下となります(売上の予測を行う場合)
①予測したい項目と、日付を選択
②「予測を追加」を選択
③「期間をすすめる」で、予測で見たい期間を決める(オレンジ色のグラフが予測期間)
④期間を決めたら、「適用」をクリック
その他
1. データの可視化ができない
自分が遭遇したミスとしては、主に下記の3つになります。
①UTF-8形式に csv が変換できてなかった
②csv の行が多すぎて、読み込んでもらえなかった(1000行を超えると駄目みたいです)
③行と列のデータを逆にすることで読み込めた
※データセットの詳しい要件は、下記の公式 AWS 参照でお願いします
■ML Insights を Amazon QuickSight で使用するためのデータセット要件
2. 予測結果を excel フォーマットの様に数値で可視化
予測をした分析結果は、csv にしてインポートすることができます。
予測結果を csv にして、再び QuickSight で可視化することで、予測結果のみのデータを数値で可視化することができます。
(QuickSight の標準機能には、予測結果を数値で可視化は用意されていません)
おわりに
QuickSight ML Insights の利用方法についての簡単な説明は以上となります。
①少ないデータでも、誰でも簡単に予測の実施が可能
②自動で適したビジュアルも選択される可視化機能あり(豊富なビジュアル)
手軽に簡単な可視化や予測の検証を行うにはピッタリのサービスだと思いますので、ぜひ利用してみてください。
Amazon Connectで「ダイヤル分岐」コネクトセンターを実装する【ハンズオン】
はじめに
この記事では
- Amazon Connectにダイヤル分岐処理を実装する手順
についてハンズオン形式で解説していきます。
なお、Amazon Connectの概要やAWSアカウントの登録方法・Amazon Connectのインスタンスの作成手順についてはこちらの記事をご参考ください。
コネクトセンターに必須の「ダイヤル分岐」
新型コロナウイルス感染症の拡大に伴い、次に示すような問い合わせフロー図を目にする機会が増えてきたように思います。
(新型コロナウイルス感染症にかかる相談窓口について[東京都福祉保健局]より引用)
ダイヤル分岐による音声案内を実施しているところもあるようです。
(新型コロナウイルス感染症に対する「帰国者・接触者相談センター」の設置について[神奈川県]より引用)
Amazon Connectを活用すれば上記のような「ダイヤル分岐」を実装することも可能です。
実装には基本ブロックの一つである「顧客の入力を取得する」を使用します。
「ダイヤル分岐」の実装
それでは、実装していきます。
電話をかけると音声案内が流れ、
- 「0」を押すとAさんに電話が転送
- 「1」を押すとBさんに電話が転送
- 「0」または「1」以外を押してしまった場合は再度正しい値の入力を促す
- 一定時間操作がない場合は値入力を促す
という機能を実装していきます。
AWSアカウントの登録方法からAmazon Connectのインスタンスの作成までは次の記事を参考にしてください。
Amazon Connectの使い方[丁寧に解説してみた]
問い合わせフローの作成
左のメニューから「ルーティング」→「問い合わせフロー」をクリックします。
「問い合わせフローの作成」をクリックします。
「名前の入力」にフローのタイトル(SampleFlowとします)を書いて「保存」をクリックします。
「設定」の「音声の設定」を選んでドラッグし「エントリポイント」と接続します。
音声の設定は「日本語」に設定しておきましょう。「Save」をクリックします。
「顧客の入力を取得する」ブロックの実装
「操作」より「顧客の入力を取得する」をドラッグし「音声の設定」と接続します。
「テキストの入力」に読み上げたい内容を記載します。
下にスクロールしてタイムアウトの設定を行い、「別の条件を追加」をクリックして「0」「1」を追加します。終わったら「Save」をクリックします。
タイムアウト処理
「ブランチ」から「ループ」をドラッグし、「顧客の入力を取得する」のタイムアウトと接続します。
ループの数を設定します(今回は3回とします)。その後「Save」をクリックします。
「終了/転送」の「切断/ハングアップ」をドラッグし、「ループ」ブロックの「ループ」を「顧客の入力を取得する」に接続し、「ループ」ブロックの「完了」を「切断/ハングアップ」に接続します。
これによって音声案内が流れて一定時間操作がない場合にタイムアウト時間分経過するたびに再度案内が流れ、3回案内が流れても操作がない場合は電話が切れるようになります。
デフォルト処理
予定外の入力があった場合(「0」「1」以外の番号など)はデフォルト処理として実行されます。
「操作」から「プロンプトの再生」をドラッグし、「顧客の入力を取得する」の「デフォルト」を「プロンプトの再生」に接続し、「プロンプトの再生」の出力から「顧客の入力を取得する」に接続します。
予定外の入力があった場合に読み上げるテキストを設定します。設定したら「Save」します。
これで予定外の入力があった場合は再度ダイヤル分岐の案内が流れるようになります。
エラー処理
それ以外の予期せぬエラーが生じた場合は電話が切断されるようにします。
「顧客の入力を取得する」ブロックの「エラー」を「切断/ハングアップ」に接続すればOKです。
次からは分岐処理の実装に移ります。別の画面に移るので一度「保存」しておきましょう。
分岐処理の実装
音声案内に従い「0」を押したらAさんに電話が繋がり、「1」を押したらBさんに繋がるようにします。
左のメニューから「ルーティング」の「キュー」を選択します。
「新しいキューの追加」をクリックします。
名前や説明を記載し、「新しいキューの追加」をクリックします。
アウトバウンド発信者ID番号はインスタンス作成時に取得した電話番号を選択します。キューはユーザーの数だけ作成します。
続いて左のメニューから「ユーザー」の「ルーティングプロファイル」を選択してください。
「新しいプロファイルの追加」をクリックします。
名前と説明を記載し、「Voice」にチェックを入れます。
ルーティングプロファイルのキューに先ほど作成したキューを選択します。デフォルトのアウトバウンドキューも先ほどのキューを設定しておきましょう。
「新しいプロファイルを追加」がクリックできるようになります。
左のメニューで「ユーザー」の「ユーザー管理」をクリックします。
「新しいユーザーの追加」をクリックします。
「作成」を選択し次へ進みます。
必要事項を記載します。
ルーティングプロファイルは先ほど作成したものを選択してください。電話の種類はソフトフォンでOKです。セキュリティプロファイルは受信発信を実施する場合は「Agent」を選択します。(※複数ユーザーを作成する場合はいずれかのユーザーに「Admin」も選択しておくことを推奨します。)
エージェント階層は空欄で大丈夫です。
「保存」をクリックします。
「ユーザーの作成」をクリックします。
「他のユーザーの作成」または「戻る」をクリックします。(今回はもう一人のユーザーを追加します。)
左メニューから「ルーティング」の「問い合わせフロー」をクリックし、先ほどまで作成していた問い合わせフローを開きます。
そして、「設定」の「キューの設定」をドラッグし、「Pressed 0」に接続します。
キューの設定は作成したキューを選択します。「Save」します。
「終了/転送」の「キューへの転送」をドラッグし、「キューの設定」から接続します。「キューへの転送」ブロックはデフォルト設定のままでOKです。
「キューの設定」の「エラー」、「キューへの転送」の「容量」及び「エラー」を「切断/ハングアップ」に接続します。
同様にして「Pressed 1」にBさんのブロックを追加します。その後、「公開」をクリックします。
これでほとんど完成です!次にデフォルト顧客キューの音声設定を変更しましょう。
デフォルト顧客キューの音声設定
左のメニュー「ルーティング」の「問い合わせフロー」から「Default customer queue」を選択してください。
テキストの内容を変更しましょう。こちらの設定でキュー転送時に流れる音声内容を設定できます。設定が終わったら「Save」して「公開」にしましょう。
最後にインスタンス生成時に取得した電話番号を今回作成した問い合わせフローに割り当てれば完成です。
電話番号の割り当て
お疲れ様でした!以上で実装作業は完了です。
オペレーターとして運用する方法
それではオペレーターとして受電対応する場合について説明します。
AWSのマネジメントコンソールから「Amazon Connect」を開きます。
作成したユーザー(「Agent」権限が与えられているもの)のユーザー名、パスワードを入力してサイインインしてください。
「ステータスの変更」で「Offline」から「Available」へ変更します。
架電した人が音声案内に従い、こちらのオペレーター接続すると次のような表示になります。
「通話を受信」で通話が開始されます。
「デスクフォン」で携帯電話に転送して受電する
歯車マークからデスクフォンを選択し、電話番号を入力すると携帯電話で受電することもできます。
おわりに
ダイヤル分岐のコネクトセンターの実装方法についてハンズオン形式で説明しました。
Amazon Cennectでは基本ブロックの組み合わせで様々なことができると改めて実感しました。
ご参考いただけると幸いです。
Amazon Connectの使い方[丁寧に解説してみた]
はじめに
現在、急なリモート対応に追われている方も多いと存じますが、当社ではAmazon Connectを活用したリモートワークの導入に成功しています。
本記事では当社がそこに到るまでに得た経験や知識を踏まえて、わかりやすく導入方法を解説致します。
リモート勤務を検討している皆様の一助となれば幸いです。
*この記事は大変長いため目次を一覧するにはページ右側をスクロールする必要があります。
本記事のターゲットとゴール
- ターゲット
- 社内のリモートワーク導入の第一歩として、社内電話を在宅でも使用できるようにしたい人
- 電話対応のために現在どうしても出社する必要がある人
- 将来的にAmazon Connect導入することでコールセンターの効率化を目指しており、まずはお試しで触れてみたい人
- ゴール
今回の想定使用方法
- 受信: 受信: 会社に電話→電話を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を使用するメリットとしては、導入までが早い、低コスト、障害に強い、現在の電話番号を使用できることが挙げられます。
以下ではそれらについて少しだけ詳しく記述します。
メリット
1. 導入までが早い
コールセンターの開設が独力で実現します。
全くのゼロからでもAWSアカウントを作成し、初期設定をし、電話番号に関する設定を完了させればその日に使用を開始することが出来ます。
2. 初期コストが安い
Amazon Connectは初期費用、長期契約や最低月額費用などが必要ありません。
基本的に使った分だけ請求される従量課金制なので安心して無料で使用を開始出来ます。
料金表(日本)
目安例:日本国内で受信通話を使用した金額(概算)
→→→直通ダイヤルの時は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の比較
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/
アカウントの用意ができたらAWSコンソールにサインインをクリックしましょう。
ルートユーザーを選択し、Eメールアドレスとパスワードを入力してログインします。
ログインしたら、”サービス”から”Amazon Connect”を検索しクリックしましょう。
また右上のリージョンは”東京リージョン”を必ず指定してください。
この画面に移るのでアクセスURLの空欄には好きなワードを入れてください。
アクセスURLはメールアドレスのようなものです。
会社で使う場合は会社名をローマ字表記で入力すれば無難でしょう。
初期設定の方法
1. 管理者設定
ここから初期設定です。それぞれの欄を埋めて、”次のステップ”をクリックしてください。
ユーザー名は日本語が使えないのでローマ字と一部の記号、パスワードは大文字・数字を含めた8字以上で設定してください。
2. テレフォニーオプション
今回は受信も発信もAmazon Connectで実行するので、両方チェックが付いているまま”次のステップ”をクリックします。
3. データとストレージ
ここでは通話記録など諸々のデータを保存する場所を確認できます。 データと問い合わせフローログの保存場所チェックしたら”次のステップ”をクリックしましょう。
4. レビューと作成
最後にここまで設定した内容を確認できるので、問題なければ”インスタンスの作成”をクリックしましょう。
(作成には1〜2分かかることがあります)
インスタンスの中身を作成する
インスタンスとはAmazon Connect上に構築したシステムを入れる箱(またはPBX)のようなものだと思っていてください。
ここまでの初期設定ではコールセンターという家の外観を作ったようなものです。
次は家の中身を作らなければいけません。
以下ではコールセンターのシステムを本格的に構築していきます。
インスタンスの作成が終わると、上記の画面が表示されるので”今すぐ始める”をクリックしましょう。
サイトが英語表記になっても右上の部分で日本語を選択することで変更できます。”Let's go”をクリックしてください。
1. 電話番号の取得
まずはAmazon Connect上のあなたの(主に発信で利用する)電話番号を取得しましょう。 国は”日本”を選び、完了したら”次へ”をクリックしてください。(電話番号右側のバーで他の番号の選択もできます)
2. キューの作成
電話をユーザーに転送するには一度キューと呼ばれる場所を経由しなくてはいけません。
(Amazon Connectに電話受信→キューに転送→ユーザーに転送)
電話中のユーザーにいきなり転送されてしまうと困りますよね?
そこで一度キューに預けている間に、電話を受け取れるユーザーを探すわけです。
つまりキューとは電話がユーザーに転送されるまで電話を一時的に保持する領域のことです。
新しいキューを追加しましょう。右上にある”新しいキューの追加”をクリックします。
今回の手順では”general_que”という名前でキューを追加しています。説明はキューの使用用途を書けば分かりやすいです。オペレーション時間は”Basic”で大丈夫です。 またアウトバウンドの発信番号を先程取得したAmazon Connectの番号にすることで発信ができるようになります。忘れずに設定するようにしましょう。完了したら”新しいキューの追加”をクリックしてください。
3. ルーディングプロファイル設定
上記のようにキューを作成しましたが、キューを複数作ることで電話によって受信するユーザーを変えることができます。
[例]サービスの新規契約についてはAの部署、サービス解約についてはBの部署のように振り分けられる。
そうなると、どのキューに電話を転送されたら誰に転送するかを決める必要がありますよね。
ルーティングプロファイルではそれを設定することができます。
今回は複数のキューを併用しませんが、一応設定する必要があります。
ユーザーの欄にあるルーティングプロファイルをクリックしてください。
今回の手順では「general_profile」という名前でルーティングプロファイルを追加していきます。説明はこのプロファイルがどういう役割を果たすかという軸で書くと分かりやすいでしょう。今回のようなテストでは適当でも大丈夫です。Chatも使う予定はないので”Voice”だけ選択しましょう。
ルーティングプロファイルのキューとアウトバウンドキューは先ほど作った”general_que”を選びましょう。ルーティングプロファイルの”Channels”は”Voke”を選択してください。
完了したら”新しいプロファイルを追加”をクリックしてください。
4. ユーザー設定
ここではコールセンターの各オペレーターの設定をします。
氏名、ログイン名、メールアドレス(なくてもいい)、パスワードを入力してください。ルーティングプロファイルは先ほどの”general_profile”を 、セキュリティプロファイルは”Agent”を選択してください。 ”Agent”にすると電話の受信と発信ができます (画面では”QualityAnalyst”になっていますが”Agent”にしましょう)
電話の機能はソフトフォンのままにしてください。
私はその後に徳川さんも加えました。
一覧はこのようにユーザーの管理のトップ画面から見えます。
5. 問い合わせフローの作成
最後に問い合わせフローを作成します。
問い合わせフローを設定すると、電話を受信した時に指定したプログラムを順次実行できます。
まずは左から右に上記のようにドラッグアンドドロップで配置してください。
(“音声の設定”、 “プロンプトの再生”、 “キューの設定”、 “キューへの転送”、 “切断”をドラッグアンドドロップ)
まずは音声の設定をクリックし、言語を”日本語”、音声を”mizuki”に設定します。 (この作業をすることで日本語の音声案内を流せます)
次に”プロンプトの再生”をクリックし、電話を転送して通話できるまでに流れる自動音声を設定します。
“テキスト読み上げまたはチャットテキスト”を選択し、読み上げたい音声を”テキストの入力”欄に記入してください。
キューの設定で先ほど作成したキューを指定してセーブしましょう。
*画像では”test”になっていますが本来は”general_que”です。
キューの転送をクリックし、上記のようになっているのを確認したらセーブしましょう。
最後に上記のようにフローを結んでください。
できたら”保存”して”公開”しましょう。
6. 問い合わせフローと電話番号の紐付け
次に作成した問い合わせフローと電話番号を紐付けます。
ルーティングから電話番号をクリックしてください。
上記画面に移るので
先ほどの問い合わせフローを選択し、保存してください。
以上で設定終了です。お疲れ様です。
受信、着信テストをしてみよう
設定が終わったので動作確認をしましょう。
AWSコンソールにログインし、サービスのAmazon Connectをクリックしましょう。
すると上記の画面が表示されます。
自分のインスタンス名をクリックしてください。
ログインURLからCCP(オペレーター用画面)に入りましょう。
1. 発信テスト
まずOfflineになっているのでAvailableに変更してください。
発信テストからいきましょう。
”番号をダイヤル”をクリックしてください。
国を日本に変更し、電話番号の一桁目を抜いて電話番号を入力してください。
2. 受信テスト
次に受信してみましょう。
今回はAmazon Connectにきた電話を自分の携帯に転送します。
歯車マークの設定画面から”デスクフォン”に変更し、
自分の携帯番号の一桁目を抜いたナンバーを入力してください。
"ソフトフォン"と”デスクフォン”とは?
- ソフトフォン→インターネット回線を通じてPC上で使える電話
- デスクフォン→置き型の電話や携帯電話など電話回線を使う電話
あとは誰かに電話をしてもらって転送できてるか確認しましょう。
電話を受けると上記の画面になります。
インスタンスの削除方法
最後にコールセンターが不要になった場合は
上記のようにチェックマークをつけて削除をクリックするだけで簡単にインスタンスを削除できます。
終わりに
いかがでしたか?
今回は単純なフローを設定しましたが、フローをより複雑に構築することで電話対応の業務を大きく効率化できます。
次回はより効率化されたコールセンターの開設の仕方について取り上げます。
ぜひお楽しみに!!
5/28(木)いますぐできます!在宅コールセンター開設ウェビナー!構築デモあり【Amazon Connect】を開催します!!
セミナー内容
現在、新型コロナウイルスの影響により在宅勤務に切り替える企業様が増えております。
一方で電話受付業務(輪番電話受付業務)で出社せざるを得ない企業様、団体様も多くいらっしゃると思います。
このような状況でも、急遽コールセンターの環境を用意しなくてはいけないなどの悩みを抱えている企業様、団体様もいらっしゃると思います。
クラウドベースのコンタクトセンターソリューション「Amazon Connect」を利用すれば、自宅での電話の受付業務が継続はもちろん、コールセンター環境も簡単、且つ短時間で実現可能です。
本セミナーではそんな「Amazon connect」を利用した弊社でのユースケースをはじめ、ルーティング機能、ダイヤル分岐等のデモを交えて「Amazon connect」の使い勝手を知っていただけたらと思っております。
対象となるお客様
- 電話受付業務のため、出社しなければならず、自宅で固定電話の受付をしたい
- 急遽コールセンターを開設する必要が出てしまったので相談したい
- 現状の電話業務を効率化・高度化できるか相談したい
本セミナーのゴール
- Amazon Connectがどういったものかを知ることができます
- 簡単なコンタクトセンターをすぐに作れるようになります
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
をクリック
Library Source に Maven
を選択し、Repository に以下を入力、Install
をクリック
com.microsoft.ml.spark:mmlspark_2.11:1.0.0-rc1
しばらくするとこちらの画面に遷移します。
Status が Installed
になっていればOK。これで完了です。
参考スクリプト
以下のような感じで、Collaborative Notebook 上でモジュールが使えるようになります。
おわりに
モジュールのインストール方法にもいろいろあるんですね。
依存関係が出やすいので pip 乱発はやめたいところです(自戒)
参考資料
公式 MMLSpark 紹介サイト
公式 MMLSpark Github
Amazon Polly を使用した日本語テキスト読み上げの最適化(後編)
はじめに
前回に引き続き、Amazon Pollyを使用した、精密な発音をする音声の読み上げの機能について
AWS はどのようにして最適化を行っているのか、についてご紹介いたします。
しばし長くなっておりますがご了承願いますm(_ _)m
日本語の発音をコントロールする方法
単語の区切りを指定するだけで、目的の発音を示すことができる場合があります。
『東京都』を「とうきょうと」と読むと「東京」と「都」の、 2 つの単語で構成されていると解釈できます。
しかし、「ひがしきょうと」と読み、「京都の東部」を指すことで、
この語は「東」と「京都」の、 2 つの単語で構成されていると解釈できます。
その1.単語境界タグ<w>...</w>
を適用する
単語境界タグを適用することにより、『東京都』のデフォルトの発音が上書きされ、「とうきょうと」ではなく「ひがしきょうと」と発音されます。
このタグは、個々の単語を囲むことによって TTS の発音をコントロールするために、使用できる SSML (音声合成マークアップ言語)の形式です。
その2.振り仮名で発音をコントロールする
単語の区切りを指定する方法は便利ですが、合成したい語が複数の単語で構成されている場合にのみ有効です。
しかし単一の単語(または単一の文字)が、複数の発音を有することも多々あります。
例1:東京の地名である『日本橋』は「にほんばし」
例2:大阪の同じ地名を指す場合は「にっぽんばし」
と発音されます。文脈がなければ、正しい発音がわかりません。
発音を指定する最も簡単な方法は、括弧内に振り仮名表記をすることです。
日本橋(にほんばし)
★pollyの読み上げ音声
日本橋(にっぽんばし)
★pollyの読み上げ音声
振り仮名表記だけではうまく機能しない
その2の手法だと、振り仮名が表示されてしまうため、用途によっては望ましくない場合もあります。
振り仮名が Amazon Polly が認識する、発音の1 つと一致しない場合は、うまく機能しません。
例:「海(やま)」
『海』という漢字に対して「やま」という振り仮名を当てても振り仮名としては認識されません。
例:「七音(どれみ)」
標準的ではない文字の読み方をする人名の場合に当てはまります。
Amazon Polly の特別な音声形式
この問題を克服するために、Amazon Polly には日本語用の特別な SSML タイプ属性があり、振り仮名を用いて発音を指定できます。
次の例に示すようにルビ(ruby)という、音素(phoneme)タイプのタグを使用します。
デフォルトの発音が「にほんばし」である『日本橋』という表記に、「にっぽんばし」という振り仮名を適用できます。
この構文を使用すると、任意の振り仮名(発音)を任意の文字列に適用できます。
このルビタグは、単語の区切りに関係なく使えます。
次の例のように、送り仮名を除いた漢字部分のみにタグを付けることもできます。
振り仮名が Amazon Polly が認識する発音の 1 つと一致しない場合、モデルを使ってアクセントを予測しますが、この予測されたアクセントは正しくない場合があります。
たとえば、ルビタグを使って『山』という文字に、「うみ」という読みを強制します。
「うみ」は『山』という文字の、認識されていない発音のため、想定外のアクセントとなる場合があります。
ph 属性について
ph 属性は、平仮名または片仮名を使うことができます。
ただし、振り仮名が有効な形式でない場合、指定された発音は効果がなく、タグで囲まれた文字列に対して予測されたデフォルトの発音になります。
たとえば、数字や記号など、仮名以外の文字を振り仮名に含めることはできません。
また、二重の長音符(長音記号)などの、一般的ではない振り仮名の使用も無効とみなされます。
ルビタグが無効になる例
次の例では、振り仮名の形式が正しくないため、ルビタグは有効になりません。
次の例のようにタグの内部に文字列のない状態でルビタグを使用すると、何も合成されません。
その3.発音仮名でコントロールする
ルビタグはアクセントを細かくコントロールできないため、目的通りにならない場合があります。
「雨」⇒「あ↗め」、「飴」⇒「あめ↘」のように、アクセントが変わることで単語の意味が変わることがあります。
また、同じ単語であっても、文脈に応じてアクセントが変わる場合があります。
「音声」という単語の発音は、「オ↗ンセー」のように、最初の拍 (音節) にアクセントが付きます(頭高型)。
「合成」という単語はアクセントのない「ゴーセー」と発音されます(平板型)。
ただし、2 つの単語が組み合わさって、「音声合成」という複合語が形成されると、アクセントの位置が移動し、「オ↗ンセーゴーセー」ではなく、「オンセーゴ↘ーセー」と発音されます。
したがって、語や文章のアクセントを予測することは、TTS にとって容易ではありません。
ML モデルを使ってある程度は解決できますが、時々間違うこともあります。
x-amazon-pron-kanaを使う
x-amazon-pron-kana は、発音仮名と呼ばれる発音表記を使用しており、アクセントを直接かつ明示的に指定することができます。
「毎日新聞を読む」という文章の、 2 つの読み方を区別できます。
例1:「毎日、新聞を読む」という意味
例2:「毎日新聞という新聞を読む」という意味
最初のパターンは、現在 Amazon Polly が予測するデフォルトのアクセントです。
例2のアクセントを適用する方法
x-amazon-pron-kana(発音仮名)は片仮名で表記され、振り仮名に似ていますが、いくつかの点で異なります。
振り仮名は必ずしも、発音を正確に反映するわけではありませんが、発音仮名は忠実に反映します。
例:1. 助詞「は」は、発音仮名では「ハ」ではなく「ワ」と表記
例:2. 助詞「へ」は、「ヘ」ではなく「エ」と表記
例:3. 助詞「を」は「ヲ」ではなく「オ」と表記
「格子」と「子牛」は、振り仮名では両方とも『こうし』ですが、発音仮名ではそれぞれ「コーシ」と「コウシ」と、表記が異なります。
アクセントの違い
発音仮名では、アポストロフィはピッチが下がる位置を示します。
アポストロフィがない場合、アクセントがないものとみなされます(平板アクセント)。
次の例は、アクセントの違いを示しています。
各単語には、最大 1 つのアクセントを含めることができます。
この単語とは韻律語を意味し、各単語につき最大 1 箇所、ピッチが下がる拍を指定できるというわけです。
タグ付けする語句に複数のアクセント(ピッチの複数のピーク)がある場合は、各単語の発音仮名をスペースで区切るか、別々のタグで囲む必要があります。
イントネーションの違い
次の例は、韻律語の分け方の違いによる、イントネーションの違いを示しています。
同じ句をさまざまな方法で韻律語に分割できるため、すべて同じ発音仮名で表されますが、スペースの位置によってイントネーションが異なります。
phoneme alphabet="x-amazon-pron-kana" は phoneme type="ruby" とは異なり、
その周囲に単語境界を強制挿入するので、送り仮名のある単語に x-amazon-pron-kana を用いる場合、送り仮名を含む単語全体にタグ付けする必要があります。
振り仮名(片仮名表記)と発音仮名の違い
まとめ
日本語の TTS システムの開発において、その書記体系の複雑さにより、生じるいくつかの課題について説明しました。
このサービスでは、いくつかの ML モデルを使用して、発音およびアクセントを予測しますが、
日本語固有の SSML タグを使用することで、Amazon Polly の自然な日本語音声のコンテンツを、より簡単に作成できます。
是非ご活用ください。
公式サイトリンク
Amazon Polly を使用した日本語テキスト読み上げの最適化(前編)
はじめに
Amazon から発売されている Alexa のように、精密な発音をする音声の読み上げの機能について
AWS はどのようにして最適化を行っているのか、について記事があったのでご紹介いたします。
Amazon Polly とは
- 高度な深層学習テクノロジーを使用して、29 の言語および 61 の音声を使える
- 人間のように聞こえる音声を合成するテキスト読み上げ( TTS )を提供するクラウドサービス
- 自動コンタクトセンター、言語学習プラットフォーム、翻訳アプリ、および記事の読み上げ。 幅広い用途に対応する音声合成を使用するデジタル製品の開発に役立つ
Amazon Polly は現在、2 つの日本語音声を提供しています。
日本語は書記体系が複雑であるため、TTS システムに多くの課題をもたらします。
日本語は TTS にとって課題が多い言語
日本語の書記体系は、主に 3 つの書記法(漢字、平仮名、片仮名)で構成されています。
多くの場合、書記法は互換できます。
例:『ロウソク』を表す単語は、漢字『蝋燭』、平仮名『ろうそく』、片仮名『ロウソク』
と書くことができる。
- 漢字の読み方には音読みと訓読みがあり、さらに熟語の読みは、当て字の場合など、構成文字の読みから予想されるものとは異なる場合がある
- 人名の場合に特に顕著であり、文字列からその名前の発音を常に予測できるとは限らない
TTS システムを最適化するには
文を単語に分割する
英語の場合、単語はスペースで分かれているため、この作業は簡単ですが、日本語の場合は一筋縄にはいきません。
- 日本語は、間にスペースを入れずに単語をつなぎ合わせるため、単語と単語の境界を予測するモデルが必要になる
- 英語で、『Applesonatable』 などの文字列を個々の単語に分解する場面では、 言語的な知識を用いると、“Apple son at able” ではなく “Apples on a table” であり これを自動的に行うにはモデルを学習する必要がある
日本語の単語の発音は、周囲の文脈に大きく依存
同じ漢字の連なりの単語であっても、発音が異なり、文脈に応じて異なる意味を有することがあります (同形異義語)
例:1
例:2
「東京都に行った」⇒「東京/都/に/行った」と分割でき、この場合は「とうきょうとにいった」と読みます。
「東/京都/に/行った」⇒「ひがしきょうとにいった」と読みます。
これらの両方の場合に、「行った」は「いった」と読みますが、
「東京都に行った事業の報告をする」という文脈では、2 番目の意味『何かを実行したこと』となり、
「いった」ではなく「おこなった」と読みます。
日本語は高低アクセント言語
アクセントの違いによって単語の意味に違いが生じる可能性があります。
例:雨(頭高型アクセント)と飴(平板型アクセント)
平仮名で書くと両方とも「あめ」ですが、アクセントの表記がありません。
Amazon Polly のソリューション
- Amazon Polly は日本語のTTS システムで機械学習(ML)モデルを採用。
- ML モデルは、周囲の単語およびその構文(文法)および形態(単語構造)情報に関する情報を使用して、単語の発音または高低アクセントおよび抑揚を予測
- モデルは、言語のパターンを一般化するのに役立ち、合成されたことのない文の発音および抑揚を予測できる
正確な発音をさせるのは難しい
人は、書かれた文脈が不十分でも、より広い文化的または状況的知識から文脈情報を推測し、筆記された文を理解できます。
現在の TTS モデルでは、利用可能な情報はあってもモデルがそれを使って正確な予測を行うことができないこともあります。
母国語話者でさえ、背景知識がないために正しい発音を予測するのに苦労する場合があります。
人名や地名で特によくあることで、
例:「愛」という名前は、「あい」、「めぐみ」、「まなみ」、「まな」
このように少なくとも 28 通りの読み方があります。
この問題を回避するために、日本語テキストの発音をコントロールする方法がいくつかありますので、後編でご紹介していきます。