Slide 1

Slide 1 text

Realtime-transate with Web Speech API but… @jacoyutorius 1

Slide 2

Slide 2 text

w 3VCZJTU w +"846()BNBNBUTV w 'BWPSJUF"84$-*DPQJMPUDMJ খ໦༔ే !KBDPZVUPSJVT 安いリプロダクト椅子を使っていましたが、 仕事がリモートワークに切り替わってオフィスが解約されて余ったいい感じの椅子 がもらえました。 (CC BY - SA 2.5 Copyright © 2006, Yukihiro Matsumoto ) 2

Slide 3

Slide 3 text

Contents w)PXUPEFWFMPQ3FBMUJNFUSBOTMBUJPSXJUI"NQMJGZ w4FOEMPHTUP$MPVE8BUDI-PHTGSPN"NQMJGZ-PHHFS Amplify で翻訳アプリを作った話と CloudWatchLogsにアプリケーションのログをカジュアルに送る方法について話します。 3

Slide 4

Slide 4 text

Why? +"841BOLSBUJPO 🧐 wIPVSTTQFBLFSTGSPNPWFSUIFXPSME w$SB[Z😇 w BOE*DBO`UTQFBL&OHMJTIʜ 頭おかしぃ。。。 4

Slide 5

Slide 5 text

Solution w8FC4QFFDI"1*"NB[PO5SBOTMBUF w3FBMUJNFUSBOTMBUPS📻 Web Speech API と AWS Translateで リアルタイム翻訳アプリ作れるのでは? 5

Slide 6

Slide 6 text

構成はこんな感じです。 w #VJMEJOHXJUI"NQMJGZ7VF w 5SBOTDSJCFVUUFSBODFCZ8FC 4QFFDI"1* w 5SBOTMBUFUIFUFYU KQFO CZ "NB[PO5SBOTMBUF w 4FOEUIFSFTVMUUP$MPVE8BUDI-PHT 6

Slide 7

Slide 7 text

Chromeじゃないとイマイチ調子悪い。 7

Slide 8

Slide 8 text

こんな感じのJavascriptで発話内容をテキストとして取得することができます。 Web Speech API 8

Slide 9

Slide 9 text

amplify predictions には既にAmazon Transcribeも統合されていますが、 日本語には未対応だったので今回は使っていません (2021/11) Yes, amplify predictions already integrated with Amazon Transcribe. but Japanese was not. 9

Slide 10

Slide 10 text

Amazon Translateも Amplifyに統合されているので、 10

Slide 11

Slide 11 text

Amplify CLIから add predictions コマンドを実行することでアプリケーションに組 み込むことができます。 How to add Amazon Translate to Amplify 11

Slide 12

Slide 12 text

こちらもたった10行くらいのJavascriptで翻訳結果を受け取ることができます。 How to add Amazon Translate to Amplify 12

Slide 13

Slide 13 text

では出来上がったものを見てみましょう。 Demo https://webspeechtranslate.yutoogi.com/ 13

Slide 14

Slide 14 text

14 )FMMPUPBMMPGZPVXIPBSFXBUDIJOHKBXTQBOLSBUJPO 5IJTJT0HJ *USJFEUPNBLFBUSBOTMBUJPOBQQVTJOHXFCTQFFDIBQJBOEBNB[PO USBOTMBUF 5IFSFTVMUJTBTZPVDBOTFF 5IFSFJTOPQSPCMFNXJUIUIFUSBOTMBUJPOBDDVSBDZPGBNB[POUSBOTBMBUF CVUUIFIFBSJOHSFTVMUTBSFEJTBQQPJOUJOH "DUVBMMZ *UIPVHIUJUXPVMECFOJDFJG*DPVMEVTFUIJTUPUSBOTDSJCFB NFFUJOH *OTUFBEPGBNFFUJOH UIFSFTVMUXBTMJLFMZUPCFBRVBSSFM *UIJOLJUTTUJMMBMPOHXBZUPVTFJUJOCVTJOFTT

Slide 15

Slide 15 text

デバッグのためにログを出したいことはよくあることです。 We wants to output logs for debugging. 15

Slide 16

Slide 16 text

AmplifyにはLoggerがあります 16

Slide 17

Slide 17 text

.ZNJTVOEFSTUBOEJOH😇 w lBNQMJGZMPHHFSzTFOETMPHTUP$MPVE8BUDI-PHT w /P TJNQMZEJTQMBZTUPDPOTPMF AmplifyにはLoggerがあります AmplifyにはLoggerがあります ただし、Amplify Loggerはログをコンソールに出力するだけです。 17

Slide 18

Slide 18 text

issueを漁っていたらこれぞ僕が欲しいと思っていた機能のプルリクエストがあり、 しかもマージされていました。 Finaly, I found this pull-request 18

Slide 19

Slide 19 text

AWSCloudWatchProviderを使うことで Amplify LoggerからCloudWatchにログを送信することができるようです。 Moreover, already merged. 19

Slide 20

Slide 20 text

ということでやってみます! 使い方はプルリクエストのページに書いてあります。 Do it!! 20

Slide 21

Slide 21 text

Vueだったらこのような感じでインスタンスプロパティにLoggerを登録しておけば コンポーネントのどこからでも呼べて便利。 Do it!! 21

Slide 22

Slide 22 text

CloudWatchLogsログストリームの最初のログはSDKからだとエラーになる様子.. マネジメントコンソールから手作業で最初のログを登録した。 Failed🔥 UPBWPJEUIJTJTTVF QVUB fi STUMPHPGMPHTUSFBNGSPN.BOBHFNFOU$POTPMF 22

Slide 23

Slide 23 text

バグのようです。 It seems a bug 23

Slide 24

Slide 24 text

やったぜ! I did it! 24

Slide 25

Slide 25 text

By the way, amplify cli returns the following message AmplifyにAuth関連のリソースが追加されていない場合はそれらを追加するように言われるので従いましょう。 認証時と非認証していない時用の2種類のIAMロールが作成されます(authRole, unAuthRole) wBNQMJGZBQQOFFET*".SPMFGPSBDDFTTUP"84SFTPVSDFT FH4 (FP 5SBOTMBUFʜ wJGZPVXFSFOPUBEE"VUISFTPVSDFT ZPVTIPVMEBEESVOlBNQMJGZBEEBVUIz w*".3PMFXFSFDSFBUFE BVUI3PMF VO"VUI3PMF 25

Slide 26

Slide 26 text

作成されたIAMロールに対してCloudWatchLogsへの書き込みを許可するアクションを設定します。 (IAMポリシーとして定義しておくと便利) BMMPXGPMMPXJOHBDUJPOT ‣ MPHT$SFBUF-PH4USFBN ‣ MPHT%FTDSJCF-PH(SPVQT ‣ MPHT%FTDSJCF-PH4USFBNT ‣ MPHT$SFBUF-PH(SPVQ ‣ MPHT1VU-PH&WFOUT allow IAMRole to put logs to CloudWatchLogs Important#1 26

Slide 27

Slide 27 text

allowUnAuthenticatedIdentitiesプロパティは、認証されていないユーザーに対してAWSリソースの利用 を許可するためのフラグです。 allowUnAuthenticatedIdentities Important#2 ./amplify/#current-cloud-backend/auth/amplifyapp/parameters.json 27

Slide 28

Slide 28 text

allowUnAuthenticatedIdentities Important#2 これがtrueになっていないとエラーになります。 28

Slide 29

Slide 29 text

Amplifyは簡単にデプロイできて楽しいけど 使い込んでいくとハマるポイントがあったりするので皆で知見を共有していき ましょう!! Amplify is powerful & useful. easy to deploy, easy to integrate AWS services to your app. but if you use amplify heavy, you may encounts unfortunate error. so lets share your knowledge with everyone!! IUUQTRJJUBDPNBEWFOUDBMFOEBSBNQMJGZ 29

Slide 30

Slide 30 text

おわり。 thank you! 30