Functions」シリーズも今回で最後です。Functionsで社会貢献をしてみたいと思います。労働人口の減少に伴う経済力の低下が懸念されています。少ない労働人工の中でも効率的に日本の経済を回す方法の模索が急務です。以下の3つの視点で働き方が見直されています。残業して長時間働くのではなく、労働の生産性を上げることを目標とします。労働の多様化ITやクラウドツールを活用し、オフィス以外で仕事ができるようにします。テレワークとも呼ばれています。労働市場に参加できる人を今まで以上に拡大します。高齢者や育児中の女性などが労働しやすい環境を作ります。「働き方改革」により労働形態が多様化、出社時間もより自由になります。日々変わる起床時間に対応した「確実に気持ちよく起きることのできる」ことが必要となります。Functionsで目覚まし(二度寝防止機能付き)を作りました。Functions目覚ましは以下のように動作します。指定した時刻になると、あらかじめ指定した電話番号に対して、10桁のコードをプッシュ入力するようにアナウンスが流れる。指定された10桁の番号をプッシュ入力する。正しい10桁のコードを入力すれば終わり。間違っていれば、一旦電話が切れて、最初に戻り、再び10桁のコードをプッシュ入力するようにアナウンスが流れる。音声ガイダンスで流れる10桁のコードを正確にプッシュしない限り延々とアナウンスが流れ続けます。正確に10桁のコードをプッシュ入力できるくらい、頭が働いているならば、きっちり起きることもできるでしょう。Functions目覚ましで使っている技術は以下のとおりです。Azureが提供するサーバーレスアーキテクチャであり、オンデマンドでコードを実行でき、必要に応じてスケーリングするサービスです。Functionsのオーケストレーションサービスです。Functionsの実行状態を管理し、ワークフローのような処理を実現します。Twilio指定した電話番号にメッセージやSMSを送信したり、ユーザーのプッシュ入力を受け取ってインタラクティブな処理を行うクラウドAPIサービスです。入力された日本語テキストに基づいて自由な音声を生成するHMMテキスト音声合成システムです。電話で流す音声メッセージの生成に使っています。Functions目覚ましの処理シーケンスをご説明致します。Functionsは、指定した時刻になると、クライアント関数経由でメッセージ送信関数(アクティビティ関数gatherCode)を起動します。Functionsは待機状態となります。メッセージ送信関数(アクティビティ関数gatherCode)は、Twilioに対して、指定した番号にメッセージを流すよう、命令します。このとき、Twilio独自の言語「Twiml」を使います。Twilioは指定された番号に対して、コードを入力する旨のメッセージ(おはようございます!!次の指定した10桁の番号を入力してね。8395...)を流します。その2:ユーザーのコード入力ユーザーは、メッセージで指定された10桁のコードをスマートフォンなどからプッシュ入力します。Twilioは、ユーザーが入力した10桁のコードをクエリパラメータに付与して、入力コードチェック関数(アクティビティ関数checkCode)をHTTPプロトコルにて呼び出します。その3:入力コードのチェック入力コード送信関数は、ユーザーが入力したコードが、最初に要求したコードと一致しているかをチェックします。Functionsにイベントとして送信します。Functionsはイベントを受け取ると、処理を再開します。その4:最終チェックもしユーザーが入力したコードと、最初に要求したコードが一致してなければ、一旦電話を切り、再度メッセージ送信関数を起動し、ユーザーに電話をかけて、コード入力のメッセージを送信します。ユーザーが正しいコードを入力するまで、延々とこのフローを繰り返します。音声メッセージの作成ユーザーに流す音声を作成します。JTalkで作成することとします。インストール手順は以下のとおりです。/usr/local/hts_engine_API/hts_voice/では、実際に音声を作ってみましょう。/usr/local/open_jtalk/open_jtalk_dic_utf_8-1.09上記のコマンドを実行しますと、output.wavが出力されます。今回作らなければいけない音声は以下のとおりです。ユーザーが電話を取ったら一番最初に流す音声(コードを入力してねみたいなもの)ユーザーが入力したコードが正しい場合に流す音声(コードは正しいよみたいなもの)ユーザーが入力したコードが間違っている場合に流す音声(コードが間違っているよもう一回入力してねみたいなもの)やっぱり、きれいな萌え声で起こしてほしいと思います。チューニングした結果、以下のコマンドが一番気持ちよく起きることができると思いました。/usr/local/open_jtalk/open_jtalk_dic_utf_8-1.09ソースコード本システムのソースコードは、以下のGitHubに登録してあります。言語はC#で書いております。https://github.com/noriyukitakei/durable-moemoe-alarmソースコードの解説は以下のとおりです。Functionsには限りない可能性を感じております。これからも、どんどん使っていきたいと思います。雑誌等の執筆依頼を受付しております。役に立たなかった1人がこの投稿は役に立ったと言っています。コメントをキャンセルメールアドレスは表示されません。Reserved.本サイトに掲載されている社名、製品名、サービス名等は各社の商標または登録商標です。プライバシーポリシーお問い合わせ。