Parallel ステートと Amazon Polly を使用して日本語テキストを音声化してみた

 
この記事は、前回投稿した Parallel ステートと Amazon Translate を使用して日本語を英訳してみた の続きとなります。

 

AWS Step Functions の Parallel ステートと Amazon Polly 使用してテキストを音声化してみました。

 

Amazon Polly とは

Amazon Polly はテキストを肉声に近い音声に変換するクラウドサービスです。Amazon Polly を使用して、エンゲージメントやアクセシビリティを高めるアプリケーションを開発できます。

Amazon Polly では多様な言語がサポートされており、さまざまのリアルな音声が含まれています。そのため、お客様に最適なボイスを使用して、さまざまな場所で機能する音声対応アプリケーションを構築できます。

 
引用 AWS公式サイト

 

 

1. DynamoDB 更新

出力された英訳文も DynamoDB に更新したいので、英訳する出力設定を「$.Result」を使用して変更していきます

 

① ステートマシンを選択 →「編集」→ ワークフローを開いて、DynamoDB の「Updateitem」を「TranslateText」の下にドラッグ&ドロップします




 

② 状態名を任意で設定し、統合タイプで「AWS SDK」を選択します


 

③ API パラメータを編集します

以下のように設定し、「保存」をクリックします

変更前 変更後
TableName test-Article
Column ArticleID
S "S.$": "$.Item.ArticleID.S"
UpdateExpression "SET EnglishVersion = :EnglishVersionRef"
:myValuRef :EnglishVersionRef
S "S.$": "$.Result.TranslatedText"




 

 

2. TranslteText の出力を変更

「ArticleID」をDynamoDB に出力するたに TranslteTex の出力を変更していきます

 

① ワークフローの「TranslteText」を選択し「出力」をクリックし、「ResultPath」にチェックを入れます


 

② 「Combine original input with result」の下に「$.Result」と入力し「保存」→「実行」をクリックします




 

③ ステートマシーンを実行します

・「0001」で実行します






 

④ DynamoDB テーブルに「EnglishVersion」に英訳した結果が出ていることが確認します




 

結果が出ていることが確認できました

 

 

3. S3バケット作成

Amazon Polly で音声化した後の出力先のS3バケットを作成します

 

① AWSコンソール画面で「S3」を選択し、「バケットを作成」をクリック


 

② S3バケットの設定をします

「AWS リージョン」と「バケット名」を指定して、その他はデフォルトのまま「バケットを作成」をクリックします




 

 

4. IAMロールにポリシーを追加

Amazon Polly と のポリシーを追加します

 

① ステートマシーンのIAMロールのリンクをクリックしてロールの画面を表示し、「許可を追加」→「ポリシーをアタッチ」を選択




 

② 「polly」と検索「AmazonPollyFullAccess」を選択します


 

③ 検索タブの「polly」を削除し「S3」と入力し、「AmazonS3FullAccess」を選択して「許可を追加」をクリックします




 

・IAMポリシー「AmazonPollyFullAccess」と「AmazonS3FullAccess」の追加が完了しました

 

 

5. ステートマシーンに「Polly」を設定

テキストを音声化するために、ステートマシーンのワークフローに Polly を設定します

 

① ステートマシンを選択 →「編集」→ ワークフローを開き、「Pass」をクリックしてDeleteキーなどで削除します




 

② 画面左の検索窓で「polly」と入力し「StartSpeechSynthesisTask」を「Paraleel」の右下にドラッグ&ドロップします




 

③ 「StartSpeechSynthesisTask」をクリックし、APIパラメータを編集します

以下のように設定し、「保存」→「実行」をクリックします

項目
OutputFormat mp3
OutputS3BucketName 作成S3バケット名
Text "Text.$": "$.Item.Detail.S",
VoiceId Mizuki (日本語の女性の音声)






 

 

6. ステートマシーンの実行

ステートマシーンを実行して、音声化したファイルをS3バケットに作成されていることを確認します

 

① ステートマシーンを実行してS3バケットに音声ファイルが作成されていることを確認します






 

② Amazon Polly でも確認してみます

AWSコンソール画面で「Amazon Polly」を選択し、「S3 合成タスク」をクリック




 

 

7. 音声化されているか確認

S3バケットに保存されている音声化されたファイルを聞いてみましょう

 

① S3から音声ファイルをダウンロードして、メディアプレーヤーなどで音声を聞いてみてください




 

日本語テキストを音声化できていました。

私が作成した音声ファイルは聞いていただけないので、ご自身で確認してみてください。

 

まとめ

この記事は、前回投稿した「Parallel ステートと Amazon Translate を使用して日本語を英訳してみた」の続きとなりました。

 

AWS Step Functions の Parallel ステートと Amazon Polly を活用して、テキストを音声化する方法を紹介しました。

 
Amazon Polly は、テキストを肉声に近い音声に変換するクラウドサービスです。多様な言語やリアルな音声を提供し、エンゲージメントやアクセシビリティを高めるアプリケーションの開発に活用されています。

 

参考資料

■ AWS Hands-on for Beginners
https://aws.amazon.com/jp/events/aws-event-resource/hands-on/

 

関連記事

◆ AWS Step Functions を使用したプログラミング不要のサーバーレスワークフロー構築
https://cloud5.jp/mk-step-functions/

◆ Parallel ステートと Amazon Translate を使用して日本語を英訳してみた
https://cloud5.jp/mk-step-functions-parallel-state-translate/
 

Last modified: 2024-02-21

Author