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
9
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
61
進化したContainer Insightsで、ECSのクラスターからコンテナレベルまでをモニタリングしてみた
hosso
0
11
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
68
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
38
SEO for Brand Visibility & Recognition
aleyda
0
4.2k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
78
Bash Introduction
62gerente
615
210k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
180
Amusing Abliteration
ianozsvald
0
86
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
57
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
41
Context Engineering - Making Every Token Count
addyosmani
9
590
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.8k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
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も併せて学びを得られた!
ご清聴 ありがとうございました!