【AI】ChagtGPT4による画像の要約をAmazon Pollyで読み上げる
最終更新日: 2024/02/21 11:36am
こんにちは。
小高です。
ここのところ集中してAI関連のトピックスをアップしています。
2回連続してAmazon(AWS)のAIサービス「Amazon Rekognition」を紹介しました。クラウドサービスは(プログラムを作りさえすれば使えるので)とても便利ですね。
今回もAmazonのAIサービスの1つ「Amazon Polly」を紹介します。
Amazon Pollyは「テキストの読み上げ」をするサービスです。以前から1度使ってみたいと思っていました。
Amazon AlexaやGoogle Mapなど、コンピュータ(AI)が合成する音声もだいぶイントネーションが自然に近づいてきた感じがしますね。(初期のナビゲーションシステムの音声などは、かなり人工的でした)
Amazon Pollyの使い方ですが、文章(テキストデータ)をAmazon Pollyに投げるだけで音声データを生成してくれる、という簡単なものです。
図1:Amazon Polly
(注記)Amazon Pollyでは、テキスト文書の代わりに、SSML(W3C : Speech Synthesis Markup Language)というXMLドキュメントを入力することで読み方をカスタマイズすることでできますが、今回のブログでは触れません。詳しくはAWS公式「SSML ドキュメントから音声を生成する」を参照ください。
Pollyの具体的な使い方ですが、aws cliを使う場合には、AWS公式ページ「ステップ 2.2: AWS CLI を使用した実習の開始」にあるサンプルをなぞるだけでできてしまいます。
さて。
Pollyを使うには、Voice ID(誰に読んでもらうか)を指定しなくてはならないので、まずそれを調べておきましょう。日本語のテキストが読める人だけ抽出します。
aws polly describe-voices --language-code ja-JP --output json
結果は以下のようになりました。
{
"Voices": [
{
"Gender": "Female",
"Id": "Kazuha",
"LanguageCode": "ja-JP",
"LanguageName": "Japanese",
"Name": "Kazuha",
"SupportedEngines": [
"neural"
]
},
{
"Gender": "Female",
"Id": "Tomoko",
"LanguageCode": "ja-JP",
"LanguageName": "Japanese",
"Name": "Tomoko",
"SupportedEngines": [
"neural"
]
},
{
"Gender": "Male",
"Id": "Takumi",
"LanguageCode": "ja-JP",
"LanguageName": "Japanese",
"Name": "Takumi",
"SupportedEngines": [
"neural",
"standard"
]
},
{
"Gender": "Female",
"Id": "Mizuki",
"LanguageCode": "ja-JP",
"LanguageName": "Japanese",
"Name": "Mizuki",
"SupportedEngines": [
"standard"
]
}
]
}
4名が抽出されましたが、男性(Male)はTakumiさんだけで、残りの3名は女性です。
SupportedEngineは、Pollyを利用するときに指定する項目です。音声合成のアルゴリズム(音声品質)の違いを意味しています。
standardが標準音声、neural(ニューラル)が高品質音声です。詳しくはAWS公式「ニューラル TTS」を参照ください。
価格表をみると、neuralはstandardの4倍の価格に設定されています。下に価格表へのリンクを貼っておきます。
AWS公式「Amazon Polly 料金」
また、声の聞き比べはAWSコンソールのPollyメニューから可能になっています。
ChatGPT4に画像を要約してもらい、それをAmazon Pollyで読み上げて動画にする
簡単にAmazon Pollyでできることについて紹介しました。
ただ、それだけではつまらないのでプログラムを作ります。
内容ですが、画像をChatGPT4に要約してもらい、その結果(テキスト)をAmazon Pollyに投げます。Amazon Pollyは合成した音声をMP3で返却してくれるので、それと元画像をドッキングしてMP4動画を作成します。
ニュースの一場面みたいになりますかね。
以下に簡単な処理フローを描きました。
図2:ChatGPT4に画像を要約してもらい、Amazon Pollyで音声合成して動画にする処理フロー
まず、画像を1枚用意します。ここでは、先日のブログ(【AI】集合写真から社員をさがせ! Amazon Rekognition (search users by image))で使用した、社長がお掃除をしている画像をつかいます。社内に設置した監視カメラで撮影したものです。
図3:ChatGPT4に解釈してもらう画像
次に、これをOpenAIのAPIを使って、ChatGPT4(モデル:gpt4-vision-preview)に要約してもらいます。
プロンプトは「この画像を要約してください。」というベタな内容にしました。
上の画像について、ChatGPTからは以下のような回答がありました。
画像は室内に立っている一人の人物を捉えており、監視カメラか何かで取られた写真のように見えます。人物は上着を着ており、片手には何かを持っています。背景には机、椅子、室内植物があります。また、左上には時刻を示すタイムスタンプがあり、日付と時間が「2024-01-19 08:31:14」と表示されています。画像の一部には緑の枠があり、これは通常、動きを検知したり対象物を追跡するための監視システムで使用されるものです。全体として、写真は監視カメラを通じて見た何らかの室内空間でのシーンを示しています
次に、これをAmazon Pollyに投げて音声合成してもらいます。今回はVoice ID=Kazeha、Engine=neuralを使いました。
最後に、合成された音声と画像をくっつけて動画(mp4)にします。
完成した動画をYouTubeにアップしました。
図4:お掃除写真を要約した動画
どうでしょう。朝のNHKニュースの「AIによる自動音声でお送りします」に近い感じはしないでしょうか???
もう1枚、会社の入り口の監視カメラの画像を使ってやってみます。
お向かいのアパートにワゴンが止まっています。宅配便の配達でしょうか?
図5:監視カメラの画像
図6:監視カメラの画像を要約した動画
これもなかなかイケてますね。ChagtGPTの認識能力の高さ、文章の滑らかさにあらためて驚かされました。
さて。いかがだったでしょうか?
今回もかなり楽しかったですね。
最後のサンプルでは、画像に人が写り込んでいました。
監視という目的からすると、カメラに人が写っている、というのは「重大なイベント」です。
人の検知については、ChatGPTの他に、YOLOv8、Amazon Rekognitionと見てきましたが、いずれの場合も「結果を目で見る」必要があります。
Amazon Pollyを使うことで「耳で聴く」ことができるようになるのは、監視レベルをアップさせることにつながります。
そういったのを作ってみようかな、と思いました。
以下にAmazon pollyの料金表へのリンクを掲載しておきます。無料枠も設定されていますので、遊んでみられてはいかがでしょうか。
- Amazon Pollyの価格表
←「【AI】集合写真から社員をさがせ! Amazon Rekognition (search users by image)」前の記事へ 次の記事へ「【お知らせ】イー・レンジャーかわら版(2024年3月号: Microsoft365をバックアップするべき理由 )を発行しました。」→