AmazonTextractとAmazonPollyPlatoBlockchain Data Intelligenceを使用して、視覚障害者がドキュメントを聞くことができるようにします。 垂直検索。 愛。

AmazonTextractとAmazonPollyを使用して、視覚障害者がドキュメントを聞くことができるようにします

ラスベガスで開催された2021AWSre:Inventカンファレンスで、デモを行いました 私のために読んでください AWS Builders Fair —視覚障害者がドキュメントを聞くのに役立つウェブサイト。

より良い品質のために、ビデオを見る こちら.

アダプティブテクノロジーとアクセシビリティ機能は、利用できるとしても、多くの場合高価です。 オーディオブックは、視覚障害者の読書に役立ちます。 音声ガイドは映画にアクセスできるようにします。 しかし、コンテンツがまだデジタル化されていない場合はどうしますか?

この投稿はAWSAIサービスに焦点を当てています アマゾンテキストラック & Amazon Polly、視力障害のある人に力を与えます。 Read For Meは、視覚障害のあるジャック・マルケッティによって共同開発されました。

ソリューションの概要

イベント駆動型のサーバーレスアーキテクチャと複数のAIサービスの組み合わせにより、ドキュメントの画像やテキスト付きの画像から、複数の言語で自然な音声ファイルを作成できます。 たとえば、IRSからの手紙、家族からのホリデーカード、さらには映画のオープニングタイトルなどです。

以下 リファレンスアーキテクチャAWSアーキテクチャセンター は、ユーザーが携帯電話で写真を撮り、そのドキュメント内にあるコンテンツのMP3を再生するワークフローを示しています。

AmazonTextractとAmazonPollyPlatoBlockchain Data Intelligenceを使用して、視覚障害者がドキュメントを聞くことができるようにします。 垂直検索。 愛。

ワークフローには次の手順が含まれます。

  1. 静的コンテンツ(HTML、CSS、JavaScript)はでホストされています AWS 増幅.
  2. 匿名ユーザーには、を介してバックエンドサービスへの一時的なアクセスが許可されます。 アマゾンコグニート IDプール。
  3. 画像ファイルはに保存されます Amazon シンプル ストレージ サービス (Amazon S3)。
  4. ユーザーはを介してPOSTリクエストを行います アマゾンAPIゲートウェイ エクスプレスにプロキシするオーディオサービスに AWSステップ関数 ワークフロー。
  5. ステップ関数ワークフローには、次のステップが含まれます。
    1. アマゾンテキストラック 画像からテキストを抽出します。
    2. Amazon Comprehend テキストの言語を検出します。
    3. ターゲット言語が検出された言語と異なる場合、 Amazon翻訳 ターゲット言語に翻訳します。
    4. Amazon Polly テキストを使用して出力としてオーディオファイルを作成します。
  6. AWS Step Functionsワークフローは、出力としてオーディオファイルを作成し、それをMP3形式でAmazonS3に保存します。
  7. Amazon S3に保存されているオーディオファイルの場所を含む事前署名されたURLは、APIGatewayを介してユーザーのブラウザに返送されます。 ユーザーのモバイルデバイスは、事前に署名されたURLを使用してオーディオファイルを再生します。

次のセクションでは、このソリューションに特定のサービス、アーキテクチャパターン、およびサービス機能を選択した理由について説明します。

AWS AIサービス

いくつかのAIサービスは、ReadForMeに電力を供給するために相互に接続されています。

  • Amazon Textractは、アップロードされた画像のテキストを識別します。
  • AmazonComprehendが言語を決定します。
  • ユーザーが写真の言語とは異なる話し言葉を選択した場合、AmazonTranslateを使用して翻訳します。
  • AmazonPollyはMP3ファイルを作成します。 より自然でリアルなオーディオ録音を作成するAmazonPollyニューラルエンジンを利用しています。

これらのAIサービスを使用する主な利点のXNUMXつは、コアとなる機械学習の経験がほとんどまたはまったく必要ないため、導入が容易なことです。 このサービスは、PythonやJavaなどの複数のプログラミング言語で利用できるSDKを使用してクライアントが呼び出すことができるAPIを公開します。

Read For Meを使用して、基礎となるものを作成しました AWSラムダ Pythonの関数。

AWS SDK for Python(Boto3)

  AWS SDK for Python(Boto3) AWSサービスとのやり取りが簡単になります。 たとえば、Pythonコードの次の行は、指定した画像またはドキュメントで見つかったテキストを返します。

import boto3
client = boto3.client('textract')
response = client.detect_document_text(
Document={ 'S3Object': { 'Bucket': 'bucket-name', 'Name': 's3-key'
}
})
#do something with the response

すべてのPythonコードは、個々のLambda関数内で実行されます。 プロビジョニングするサーバーや維持するインフラストラクチャはありません。

アーキテクチャパターン

このセクションでは、ソリューションで使用されるさまざまなアーキテクチャパターンについて説明します。

サーバレス

サーバーレスアーキテクチャを実装した主な理由は、構築の速度とコストの3つです。 維持する基盤となるハードウェアや展開するインフラストラクチャがないため、ビジネスロジックコードのみに焦点を当てました。 これにより、機能するプロトタイプを数日で稼働させることができました。 ユーザーが写真を積極的にアップロードしたり録音を聴いたりしていない場合、何も実行されていないため、ストレージ以外のコストは発生しません。 S3ライフサイクル管理ルールは、アップロードされた画像とMP1ファイルをXNUMX日後に削除するため、ストレージコストが低くなります。

同期ワークフロー

サーバーレスワークフローを構築する場合、非同期プロセスよりもアーキテクチャとユーザーエクスペリエンスから同期呼び出しの方が理にかなっている場合を理解することが重要です。 Read For Meでは、最初は非同期パスをたどり、WebSocketを使用してフロントエンドと双方向通信することを計画しました。 私たちのワークフローには、ステップ関数ワークフローに関連付けられた接続IDを見つけるステップが含まれ、完了時にフロントエンドにアラートを送信します。 このプロセスの詳細については、を参照してください。 ポーリングからプッシュへ:Amazon API GatewayRESTAPIとWebSocketを使用してAPIを変換します.

最終的にはこれを行わないことを選択し、同期する高速ステップ関数を使用しました。 ユーザーは、画像の処理がすぐには行われないことを理解していますが、30秒またはXNUMX分もかからないことも知っています。 私たちは、エンドユーザーにとって数秒で十分であり、WebSocketのメリットを必要としないスペースにいました。 これにより、ワークフロー全体が簡素化されました。

ExpressStepFunctionsワークフロー

コードをより小さな分離された関数に分割する機能により、きめ細かい制御、より簡単なメンテナンス、およびより正確なスケーリングが可能になります。 たとえば、Amazon Pollyがオーディオファイルを作成するきっかけとなったLambda関数の実行速度が、言語を決定する関数よりも遅いと判断した場合、他の関数を使用しなくても、その関数を垂直方向にスケーリングしてメモリを追加できます。 同様に、範囲とリーチを制限するときに、Lambda関数が実行またはアクセスできるブラスト半径を制限します。

ステップ関数を使用してワークフローを調整する利点のXNUMXつは、コードを記述せずに意思決定フローロジックを導入できることです。

ステップ関数のワークフローは複雑ではありません。 変換ステップまで線形です。 翻訳Lambda関数を呼び出す必要がない場合は、コストが低くなり、ユーザーのエクスペリエンスが向上します。 ステップ関数コンソールのビジュアルデザイナを使用して、入力ペイロード内の特定のキーを見つけ、存在する場合は、JSONPathを使用して一方の関数をもう一方の関数に対して呼び出すことができます。 たとえば、ペイロードにはtranslateというキーが含まれています。

{ 
extracted_text: "hello world",
target_language: "es",
source_language: "en",
translate: true
}

Step Functionsビジュアルデザイナ内で、変換キーを見つけ、一致するルールを設定します。

AmazonTextractとAmazonPollyPlatoBlockchain Data Intelligenceを使用して、視覚障害者がドキュメントを聞くことができるようにします。 垂直検索。 愛。

ヘッドレスアーキテクチャ

Amplifyはフロントエンドコードをホストします。 フロントエンドはReactで記述され、ソースコードはチェックインされます AWS コードコミット。 Amplifyは、静的Webサイトを展開および管理しようとするユーザーのいくつかの問題を解決します。 これを手動で行っていた場合(静的なウェブサイトホスティング用に設定されたS3バケットを使用して、 アマゾンCloudFrontの)、展開を行うたびに、自分でキャッシュを期限切れにする必要があります。 また、独自のCI/CDパイプラインを作成する必要があります。 Amplifyがこれを処理します。

これにより、フロントエンドコードがバックエンドから分離され、各レイヤーを互いに独立して管理およびスケーリングできるヘッドレスアーキテクチャが可能になります。

IDを分析する

前のセクションでは、アップロードされた画像を処理し、そこからMP3ファイルを作成するためのアーキテクチャパターンについて説明しました。 ドキュメントを読み返してもらうことは素晴らしい最初のステップですが、すべてを読み返してもらうことなく、特定のことだけを知りたい場合はどうでしょうか。 たとえば、オンラインでフォームに記入し、州IDまたはパスポート番号、あるいはその有効期限を入力する必要があります。 次に、IDの写真を撮り、それを読み返してもらいながら、その特定の部分を待つ必要があります。 または、AnalyzeIDを使用することもできます。

分析IDは、ドキュメントのクエリを可能にするAmazonTextractの機能です。 Read For Meには、有効期限、発行日、またはドキュメント番号を具体的に尋ねることができるドロップダウンメニューが含まれています。 同じワークフローを使用して、特定の質問に対する回答を提供するMP3ファイルを作成できます。

IDの分析機能は次の場所でデモできます readforme.io/analyze.

追加のポリー機能

  • Read For Meは、さまざまな言語と方言を利用した複数のニューラルボイスを提供します。 他にもいくつかあることに注意してください 実装しなかったものから選択できます。 新しい音声が利用可能になると、フロントエンドコードとラムダ関数を更新するだけで、それを利用できます。
  • Pollyサービスは、ReadForMeにまだ含まれていない他のオプションも提供します。 それらは調整を含みます 声の速さ & スピーチマーク.

まとめ

この投稿では、視覚障害者を支援するために、AIやサーバーレスを含む多数のAWSサービスを使用する方法について説明しました。 Read For Meプロジェクトの詳細については、次のWebサイトをご覧ください。 readforme.io。 また、AmazonTextractの例は GitHubレポ。 Analyze IDの詳細については、こちらをご覧ください。 AmazonTextractを使用してIDドキュメントからデータを抽出するためのサポートを発表.

このプロジェクトのソースコードはオープンソースであり、まもなくAWSのパブリックGitHubに追加されます。


著者について

AmazonTextractとAmazonPollyPlatoBlockchain Data Intelligenceを使用して、視覚障害者がドキュメントを聞くことができるようにします。 垂直検索。 愛。ジャック・マルケッティ AWSのシニアソリューションアーキテクトです。 ソフトウェアエンジニアリングのバックグラウンドを持つJackは、主に顧客がサーバーレスのイベント駆動型アーキテクチャを実装できるよう支援することに重点を置いています。 彼は、2013回目のAWS re:Invent会議に参加した後、XNUMX年に最初の分散型クラウドベースのアプリケーションを構築し、それ以来ずっと夢中になっています。 AWSの前は、ジャックはキャリアの大部分を世界最大のブランドのいくつかの広告代理店スペース構築の経験に費やしていました。 ジャックは法的に盲目で、妻のエリンと猫のミノウと一緒にシカゴに住んでいます。 彼はまた、脚本家であり、クリスマス映画とホラーに主な焦点を当てている監督です。 ジャックのフィルモグラフィを彼で見る IMDbの ページで見やすくするために変数を解析したりすることができます。

AmazonTextractとAmazonPollyPlatoBlockchain Data Intelligenceを使用して、視覚障害者がドキュメントを聞くことができるようにします。 垂直検索。 愛。アラック・エスワラダス イリノイ州シカゴを拠点とするAWSのソリューションアーキテクトです。 彼女は、お客様がAWSサービスを利用してビジネス上の課題を解決するクラウドアーキテクチャを設計するのを支援することに情熱を注いでいます。 彼女はコンピュータサイエンスエンジニアリングの修士号を持っています。 AWSに参加する前は、さまざまな医療機関で働いていました。彼女は、複雑なシステムの設計、技術革新、および研究に豊富な経験を持っています。 彼女は娘たちとたむろし、自由な時間に屋外を探索します。

AmazonTextractとAmazonPollyPlatoBlockchain Data Intelligenceを使用して、視覚障害者がドキュメントを聞くことができるようにします。 垂直検索。 愛。スワガットクルカルニ AWSのシニアソリューションアーキテクトであり、AI/ML愛好家です。 彼は、クラウドネイティブサービスと機械学習を使用して、顧客の現実の問題を解決することに情熱を注いでいます。 仕事以外では、スワガットは旅行、読書、瞑想を楽しんでいます。

タイムスタンプ:

より多くの AWS機械学習