Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS Amplify Gen2とAmazon Translateを使ってリアルタイム翻訳機能...
Search
Daiki Hosomi
March 28, 2025
0
6
AWS Amplify Gen2とAmazon Translateを使ってリアルタイム翻訳機能を作ってみた
connpassで主催されていた秋にチャレンジにしたことLT会の登壇資料です。
Daiki Hosomi
March 28, 2025
Tweet
Share
More Decks by Daiki Hosomi
See All by Daiki Hosomi
ECS×EFSマウントで 実際にミスした小ネタ話
hosso
0
45
進化したContainer Insightsで、ECSのクラスターからコンテナレベルまでをモニタリングしてみた
hosso
0
11
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
53
7.7k
Done Done
chrislema
185
16k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Unsuck your backbone
ammeep
671
58k
RailsConf 2023
tenderlove
30
1.2k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Automating Front-end Workflow
addyosmani
1370
200k
Embracing the Ebb and Flow
colly
86
4.8k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
How to train your dragon (web standard)
notwaldorf
96
6.2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Transcript
None
この秋に挑戦したことは・・・
None
【 デ モ 】 AWS Amplify Gen2 と Amazon Translate
を 使 っ て リ ア ル タ イ ム 翻 訳 機 能 を 作 っ て み た
技術スタック Node.js React AWS Amplify Amazon Translate 実際に さわってみたい!!
AWS Amplify gen2の特徴 1. Webアプリケーションをホスティング a. 静的フロントエンドアプリケーションを簡単にでデプロイできる 2. TypeScriptによるフルスタック開発 a.
BackendリソースをTypeScriptで定義する b. 多様なAWSサービスと連携できる 3. サンドボックス環境 a. ローカルから自分専用のAWSリソースを一時的に構築できる b. 変更を自動検知して反映される仕組み
どんなAWSサービスと連携できるの? Amazon Cognito AWS AppSync AWS Lambda Amazon S3
どんなAWSサービスと連携できるの?
AI/MLサービスの連携でできること 1. テキストを音声に変換する 2. 音声をテキストに書き起こす 3. 言語を翻訳する 4. テキストを識別する 5.
画像からエンティティを識別する 6. 画像内のオブジェクトにラベルをつける 7. テキストを解釈する 挑戦してみる!
実装手順 1. Reactプロジェクトを作成する・サンドボックス機能を起動する 2. Backendを実装する 1. Predictionsを設定して翻訳機能(Amazon Translate)を追加する 3. Frontendを実装する
1. Backendで定義したPredictionsを読み込む 2. 翻訳機能を呼び出すカスタムフックを実装する 3. 翻訳画面を実装する 4. サンドボックス機能で動作確認する
Reactプロジェクトを作成する/ サンドボックス機能を起動する とにかく、QuickStart を参考に、手順通り、 進めれば大丈夫!!
Backendを実装する backend.addOutput({ custom: { Predictions: { convert: { translateText: {
defaults: { sourceLanguage: "ja", targetLanguage: "en", }, proxy: false, region: Stack.of(backend.auth.resources.authenticatedUserIamRole) .region, }, }, }, }, }); amplify/backend.ts フロントエンドへの連携として カスタムリソースを定義する!!!
Frontendを実装する(Backendリソース読み込み) Amplify.configure(outputs); // ---------- 下記を追加する ---------- Amplify.configure({ ...Amplify.getConfig(), Predictions: outputs.custom.Predictions,
}); // ---------- ここまで ---------- ReactDOM.createRoot(document.getElementById("root")!).render( <React.StrictMode> <App /> </React.StrictMode> ); Backendで定義した Predictionsを読み込む!!! src/main.ts(抜粋)
Frontendを実装する(翻訳機能のカスタムフック) import { Predictions } from '@aws-amplify/predictions'; —------------------------省略---------------------------------- const result
= await Predictions.convert({ translateText: { source: { text: sourceText, language: sourceLanguage, }, targetLanguage: targetLanguage, }, }); —------------------------省略---------------------------------- Predictions.convertメソッドを 使用してテキストを翻訳する!!! src/hooks/translate.tsx(抜粋) // Amplify提供のPredictions用のライブラリを追加する npm add --save-dev @aws-amplify/predictions
Frontendを実装する(翻訳画面) • UIコンポーネントを作成する ◦ ソース言語・ターゲット言語の選択コンポーネントを表示する ◦ テキスト入力フィールドを表示する(AmplifyのUIライブラリを活用する) • ステートを管理する ◦
コンポーネント表示に必要な値の状態を管理する • ハンドラーを実装する ◦ 入力テキストやターゲット言語の変更を検知し、翻訳機能のカスタムフックを実行 する • 翻訳結果を表示 ◦ 翻訳機能によって返されたテキスト結果を表示する 実装したいことを 言語化して、 コードに落とし込む
サンドボックス機能で動作確認する リアルタイムに 翻訳されてる!! 言語選択でき る!!
感想 • Amplifyを使ってAI/MLサービスと簡単に統合できた! • Amplify gen2のサンドボックス機能すごすぎる! • React/TypeScriptも併せて学びを得られた!
ご清聴 ありがとうございました!