印刷された単語を読むことは、情報、想像力、そして創造性の世界を開きます。 ただし、スキャンした本や文書は、視覚障害や学習障害のある人にとっては使いにくい場合があります。 さらに、テキストベースのコンテンツを読むよりも聞くことを好む人もいます。 ドキュメントから音声へのソリューションは、テキストコンテンツに音声を与えることにより、デジタルコンテンツの範囲を拡大します。 次のようなさまざまな業界で使用されています。
- エンターテインメント– 独自のオーディオブックを作成できます。
- 教育 –学生は講義ノートをスピーチに変換し、どこからでもアクセスできます。
- 患者ケア –投与量の説明と注意事項は、通常、小さいフォントで読みにくいものです。 このソリューションを使用すると、潜在的な危害を回避するために、写真を撮り、音声に変換し、指示を聞くことができます。
document-to-speechソリューションは、スキャンした本や携帯電話やハンドヘルドデバイスで撮影したドキュメントを自動的に音声に変換します。 このソリューションは、 Amazon Polly。 我々 テキストを抽出 を使用してスキャンしたドキュメントから アマゾンテキストラック、次に変換します スピーチテキスト AmazonPollyを使用します。 ソリューションのメリットには、ユーザーの機動性と自由度に加えて、初期の読者向けの強化された学習機能が含まれます。
このアイデアは、ブログの作者のお気に入りの親子活動のXNUMXつである本を読むハリーパンから生まれました。 「私の息子は童話を楽しんでいますが、自分で読むには若すぎます。 私は彼に本を読むのが大好きですが、時々仕事をしたり、家事をする必要があります。 これは、私が忙しいときに彼に読めるドキュメントからスピーチへのソリューションを構築するというアイデアを引き起こしました。」
ソリューションの概要
このソリューションは、Amazon AIサービスを使用してスキャンしたドキュメントを音声に変換する、イベント駆動型のサーバーレスアーキテクチャです。 AmazonTextractとAmazonPollyは、AWS機械学習(ML)スタックの最上位レイヤーに属しています。 これらのサービスにより、開発者はMLの予備知識がなくても、アプリケーションにインテリジェンスを簡単に追加できます。
Amazon Textractは、スキャンしたドキュメントからテキスト、手書き、データを自動的に抽出するMLサービスです。 単純な光学式文字認識(OCR)を超えて、フォームやテーブルからデータを識別、理解、抽出します。 Amazon Textractは、MLを使用してあらゆるタイプのドキュメントを読み取り、処理し、手動の作業なしでテキスト、手書き、表、およびその他のデータを正確に抽出します。
Amazon Pollyは、テキストをリアルな音声に変換するテキスト読み上げサービスであり、音声を話すアプリケーションを作成し、まったく新しいカテゴリの音声対応製品を構築できます。 Amazon Pollyは、高度なディープラーニングテクノロジーを使用して、人間の声のように聞こえる音声を合成します。
AmazonAIサービスを使用することには大きな利点があります。
- 彼らはほとんど努力をしません。 これらのAPIを任意のアプリケーションに統合できます
- それらは非常にスケーラブルで費用効果の高いソリューションを提供します
- 組織は、カスタムモデルの開発からビジネスの成果に焦点を移すことができます
ソリューションはまた使用します アマゾンAPIゲートウェイ ドキュメントのアップロードやスキャンしたドキュメントの音声への変換などの操作を実行するためにWebUIが呼び出すことができるAPIをすばやく立ち上げるため。 API Gatewayは、安全なAPIを作成、公開、維持するためのスケーラブルな方法を提供します。 このソリューションでは、API Gateway WebSocketサポートを使用して、Web UIとバックエンド間の永続的な接続を確立します。これにより、バックエンドは進行状況の更新をリアルタイムでユーザーに送信し続けることができます。
を使用しております AWSラムダ AmazonTextractとAmazonPollyの非同期ジョブをトリガーする関数。 Lambdaは、リソースをプロビジョニングせずにコードを実行できる高可用性でスケーラブルなコンピューティングサービスです。
私たちは使用します AWSステップ関数 XNUMXつの並列Lambda関数をオーケストレーションするステートマシン– XNUMXつはテキストをモデレートし、もうXNUMXつはテキストを保存します Amazon シンプル ストレージ サービス (Amazon S3)。 Step Functionsは、アプリケーションワークフローを一連のイベント駆動型ステップとして定義するサーバーレスオーケストレーションサービスです。
アーキテクチャとコード
前のセクションで説明したように、AmazonTextractとAmazonPollyのXNUMXつの主要なAIサービスを使用して、ドキュメントから音声への変換ソリューションを構築します。 私たちが触れていない追加のサービスのXNUMXつは AWS 増幅。 Amplifyを使用すると、フロントエンド開発者は拡張可能なフルスタックのWebアプリとモバイルアプリをすばやく構築できます。 Amplifyを使用すると、バックエンドを簡単に構成し、アプリケーションを数分以内に接続し、簡単に拡張できます。 Amplifyを使用して、ユーザーがスキャンしたドキュメントをアップロードできるWebUIをホストします。
Amplifyなしで独自のUIを使用することもできます。 このソリューションを深く掘り下げながら、RESTおよびWebSocket APIをサポートしている限り、クライアントアプリケーションを使用してバックエンドに接続し、ドキュメントを音声に変換する方法を示します。 ここでのWebUIは、このソリューションの主要な機能を示すためのものです。 この記事の執筆時点では、ソリューションはJPEG、PNG、PDFの入力形式、および英語をサポートしています。
次の図は、ソリューションのアーキテクチャを示しています。
シングルユーザーリクエストのパスをたどって、このアーキテクチャをウォークスルーします。
- ユーザーは、AmplifyでホストされているWebUIにアクセスします。 UIコードは
index.html
内のファイルclient
コードリポジトリのフォルダ。 - ユーザーは、Web UIを使用してアップロードするJPG、PDF、またはPNGファイルを選択します。
- ユーザーが開始します オーディオの変換と再生 入力ファイルをS3バケットにアップロードするWebUIから、APIGatewayでホストされているRESTAPIを介して処理します。
- アップロードが完了すると、ドキュメントから音声への変換がバックグラウンドプロセスとして開始されます。
- 変換中、WebクライアントはAPIGatewayとの永続的なWebSocket接続を維持します。 これにより、バックエンドプロセス(Lambda関数)が進行状況の更新をWebクライアントに継続的に送信できるようになります。
- リクエストはAPIGatewayを通過し、Lambda関数をトリガーします
convert-images-to-text
。 この関数は、Amazon Textractを非同期的に呼び出して、ドキュメントをテキストに変換します。 - 画像からテキストへの変換が完了すると、AmazonTextractはに通知を送信します Amazon シンプル通知サービス (AmazonSNS)。
- 通知はLambda関数をトリガーします
on-textract-ready
、StepFunctionsステートマシンを開始します。 - ステートマシンは、次の手順を調整します。
- Lambda関数を実行します
retrieve-text
変換されたテキストをAmazonTextractから取得します。 - 次に、Lambda関数を実行します
moderate-text
およびstore-text
並行して。moderate-text
望ましくない単語が検出されると、それ以上の処理を停止し、store-text
変換されたテキストのコピーをS3バケットに保存します。 - 並列ステップが完了すると、ステートマシンはLambda関数を実行します
convert-text-to-audio
、音声変換のために、変換されたテキストと非同期でAmazonPollyを呼び出します。 このステップの後、ステートマシンは終了します。
- Lambda関数を実行します
- Amazon Textractと同様に、AmazonPollyはジョブが完了するとAmazonSNSに通知を送信します。 通知はLambda関数をトリガーします
on-polly-ready
、変換されたオーディオファイルのAmazonS3の場所とともに最終メッセージをWebUIに送信します。
- Web UIは、RESTAPIを介してAmazonS3から最終的に変換されたオーディオファイルをダウンロードし、ユーザーのために再生します。
- アプリケーションは Amazon DynamoDB Amazon TextractジョブID、AmazonPollyジョブIDなどのジョブ情報を追跡するためのテーブル。
コードはでホストされています GitHubの を使用して展開されます AWSクラウド開発キット (AWS CDK)、使い慣れたプログラミング言語を使用してクラウドアプリケーションリソースを定義するためのオープンソースソフトウェア開発フレームワーク。 AWS CDKは、以下を通じて繰り返し可能な方法でリソースをプロビジョニングします AWS CloudFormation.
前提条件
このソリューションをデプロイするための唯一の前提条件は、AWSアカウントです。
ソリューションを展開する
次の手順では、アプリケーションをデプロイする方法について詳しく説明します。
- AWSアカウントにサインインします。
- ソフトウェア設定ページで、下図のように AWS クラウド9 コンソール、既存の環境を開く、またはを選択します 環境を作る 新しいものを作成します。
- AWS Cloud9 IDEで、 ウィンドウ メニュー、選択 新しいターミナル ターミナルを開きます。
以下のすべての手順は、同じ端末で実行されます。
- gitリポジトリのクローンを作成し、プロジェクトディレクトリに入ります。
- Python仮想環境を作成します。
- 初期化プロセスが完了し、仮想環境が作成されたら、次の手順を使用して仮想環境をアクティブ化します。
- 仮想環境がアクティブ化されたら、必要な依存関係をインストールします。
- これで、AWSCDKコードからCloudFormationテンプレートを合成できます。
- AWS CDKアプリケーションをデプロイし、後で必要なAWSCDK出力をキャプチャします。
スタックごとにデプロイする変更を確認する必要があります。 スタックの作成の進行状況は、AWSクラウドフォーメーションコンソールで確認できます。
- Webクライアントにアクセスするには、次のコマンドを実行し、その出力に従ってフロントエンドの展開を開始し、Webクライアントを使用します。
注意すべき重要事項:
-
extract-cdk-outputs.py
スクリプトは、WebUIのURLを出力します。 このスクリプトは、S3バケット名、ファイルAPIエンドポイント、および変換APIエンドポイントの文字列も出力します。これらは、ドキュメントをアップロードする前にWebUIで設定する必要があります。 - の変数に望ましくない単語のリストを設定できます
moderate-text
ラムダ関数。
アプリケーションを使用する
次の手順は、WebUIを介してアプリケーションを使用する方法を示しています。
- 展開の最後のステップに続いて、次のフィールドに入力します S3バケット名, ファイルエンドポイント, コンバージョンエンドポイント WebUIで。
- 選択する ファイルを選択してください 入力ファイルをアップロードします。
- 選択する オーディオの変換と再生.
Web UIには、進行中の変換の進行状況が表示されます。
変換が完了すると、WebUIはオーディオを自動的に再生します。
クリーンアップ
次のコマンドを実行して、すべてのリソースを削除し、将来の料金が発生しないようにします。
まとめ
この投稿では、AmazonTextractとAmazonPollyのXNUMXつの強力なAIサービスを使用して、ドキュメントから音声への変換アプリケーションをすばやくデプロイするソリューションを示しました。 ソリューションがどのように機能するかを示し、コードと展開手順の詳細なウォークスルーを提供しました。 このソリューションは、さらに強化できるリファレンスアーキテクチャまたはクイックスタートとなることを目的としています。 特に、より多くの人間の言語のサポートを追加したり、着信要求をバッファリングするためのキューを追加したり、ユーザーを認証したりできます。
この投稿で説明したように、さまざまな業界にわたるこのソリューションの複数のユースケースが見られます。 試してみて、コメントセクションにフィードバックを残して、これがユースケースをどのように解決したかをお知らせください。 ソリューションのリソースにアクセスするには、 ドキュメントからスピーチへGitHubリポジトリ.
参考文献
詳細については、次のリソースを参照してください。
- Amazon Textract開発者ガイド
- Amazon Polly 開発者ガイド
- WebSocket API の操作
- AWS CDK コンストラクト ライブラリ
- AWS Amplify コンストラクト ライブラリ
著者について
ハリーパン サンフランシスコベイエリアに拠点を置くアマゾンウェブサービスのISVソリューションアーキテクトであり、適切に設計されたITシステムを構築することにより、ソフトウェア企業がビジネス目標を達成するのを支援しています。 彼は余暇を家族と過ごすのが大好きで、テニスをしたり、Haskellでコーディングしたり、旅行したりするのが大好きです。
Cハイトラ・マトゥール AWSのプリンシパルソリューションアーキテクトです。 彼女は、AWSで高度にスケーラブルで信頼性が高く、安全で費用効果の高いソリューションを構築するために、パートナーと顧客をガイドします。 余暇には、読書、ヨガ、娘たちとの時間を楽しんでいます。
- "
- &
- 10
- 100
- 7
- 9
- アクセス
- 越えて
- 活動
- 添加
- NEW
- 高度な
- 利点
- AI
- AIサービス
- すべて
- 許可
- Amazon
- Amazon Webサービス
- どこにでも
- API
- API
- 申し込み
- アプリ
- 建築
- AREA
- オーディオ
- 自動化
- 利用できます
- AWS
- 背景
- ベイ
- 利点
- 越えて
- ブログ
- 本
- 国境
- ビルド
- 建物
- ビジネス
- 機能
- キャプチャー
- 例
- CD
- 課金
- 選択する
- クラウド
- コード
- コーディング
- 注釈
- 企業
- 計算
- お問合せ
- 接続
- 領事
- 消費する
- コンテンツ
- 変換
- コスト効率の良い
- 可能性
- 作ります
- 作成した
- 創造
- カスタム
- Customers
- データ
- 実証します
- 実証
- 展開します
- 展開
- 展開
- 記載された
- 破壊する
- 詳細
- 詳細な
- 検出された
- Developer
- 開発者
- 開発
- デバイス
- 異なります
- 難しい
- デジタル
- ドキュメント
- ダウンロード
- 早い
- 簡単に
- 努力
- エンドポイント
- 英語
- 入力します
- 環境
- 確立する
- 既存の
- 抽出物
- 家族
- 特徴
- フィードバック
- フィールズ
- フォーカス
- フォロー中
- フォーム
- フレームワーク
- フランシスコ
- 自由
- フル
- function
- さらに
- 未来
- Gitの
- GitHubの
- 与え
- 目標
- ガイド
- ことができます
- こちら
- 非常に
- 主催
- 家庭
- 認定条件
- How To
- HTTPS
- 人間
- アイデア
- 識別する
- 想像力
- include
- 増える
- 産業を変えます
- 情報
- install
- 統合する
- インテリジェンス
- IT
- ジョブ
- Jobs > Create New Job
- キー
- 知識
- 言語
- ESL, ビジネスESL <br> 中国語/フランス語、その他
- 学習
- リスト
- 少し
- 場所
- 長い
- 愛
- 機械
- 機械学習
- 維持する
- 方法
- マニュアル
- ML
- モバイル
- 携帯電話
- モビリティ
- モデル
- 他には?
- の試合に
- 通常の
- ノート
- 通知
- 提供
- 継続
- 開いた
- 開きます
- 業務執行統括
- 編成
- 注文
- 組織
- その他
- 自分の
- パートナー
- のワークプ
- 画像
- プレイ
- 再生
- 潜在的な
- 強力な
- 前
- 校長
- プロセス
- ラボレーション
- 処理
- 製品
- プログラミング
- プログラミング言語
- プロジェクト
- は、大阪で
- パブリッシュ
- クイック
- すぐに
- リーチ
- 読者
- リーディング
- 倉庫
- 要求
- リクエスト
- の提出が必要です
- 要件
- リソース
- REST
- ラン
- サン
- サンフランシスコ
- ド電源のデ
- 規模
- セクター
- 安全に
- シリーズ
- サーバレス
- サービス
- サービス
- セッションに
- シフト
- 重要
- 簡単な拡張で
- 小さい
- So
- ソフトウェア
- ソフトウェア開発
- 固体
- 溶液
- ソリューション
- 一部
- 息子
- 支出
- スタック
- start
- 開始
- 都道府県
- ストレージ利用料
- 店舗
- 店舗
- サポート
- サポート
- システム
- Talk
- テクノロジー
- テンプレート
- ターミナル
- 介して
- 時間
- 一番上の
- 追跡する
- 旅行
- 一般的に
- ui
- わかる
- 更新版
- us
- つかいます
- users
- 対
- バーチャル
- ビジョン
- ボイス
- ウェブ
- Webサービス
- 以内
- 無し
- 言葉
- 仕事
- 作品
- 世界
- 書き込み