ヤマムギ

growing hard days.

*

D-IDでTalks APIを使って動的にビデオを作成する

   

D-IDでは1枚の写真をもとに表情豊かにテキストをしゃべらせることができます。
チャットに入力された質問に答えてくれる自分のクローンを作ってみたくなったのでやってみました。

RocketChatのWebhookから呼び出したAPI Gateway + LambdaでChatGPT APIを呼び出して、生成されたテキストでD-IDビデオを作成して、呼び出し元のRocketChatへ投稿してみました。

ChatGPTのAPI

RocketChatのOutgoing WebhookでAPI GatewayとLambda関数で作成したAPIを呼び出してます。
ChatGPT APIにRocketChatに投稿されたテキストを渡しています。
性格はなるべく自分に近い設定を目指してみますが、これからも微調整していきます。

ChatGPT APIをTeamsボットから使いました(AWS Lambda(Python) + API Gateway)
RocketChatからOutgoing Webhookで呼び出されたAPI Gatewayでtokenをリクエスト検証する

D-IDのAPI

D-IDのプランとTrialのままAPIを実行しようとしたらエラーになりましたので、Liteプランにしてクレジットカードを登録しました。

D-IDのSettings & APIでAPIキーを作成しました。

D-IDのAPI Reference Create Talkで試せます。
AUTHENTICATIONのusernameとpasswordには、API Keyの:(コロン)の前後を入力します。
コロンの前がusernameで後ろがpasswordでした。

source_urlに顔写真の画像URLを指定しました。

TEXTSCRIPTを展開して、MICROSOFT_TTS_PROVIDERでja-JP-KeitaNeuralを入力しました。
Amazon Pollyも設定できるようでしたが、動画生成時にエラーになったので、とりあえずこちらを使っています。
ja-JP-KeitaNeuralはAzure Voice Galleryで調べました。
inputに話させたい文字を入力しました。
実際のコードではinputはChatGPTで生成したテキストを渡します。

これでAPIリクエストを実行すると、動画生成がスタートします。
動画が作成済みになったタイミングで動画のURLを受け取る必要があります。
受け取るためにWebhook送信先のAPIを用意しました。
このWebhookも試せます。

APIリファレンス画面で言語を選択すると、サンプルコードが生成されて実行を試せます。

あとは、D-IDからの動画作成済み情報を受け取ったAPIからのLambda関数がRocketChatに動画URLを投稿すると、画像のようにチャットで入力したテキストに対してのレスポンスを自分の写真にしゃべらせることができました。
D-IDの動画URLはS3署名付きURLでした。

D-IDはほかにもStreaming APIもあるので今度また試してみます。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - API , , , , , ,

ad

ad

  関連記事

「API Meetup Tokyo #29 ニッポンのAPIエコノミー最前線 〜国産APIが社会を変える〜」に参加しました

API Meetup Tokyoに来ました〜 会場はおしゃれなDEJIMAさんで …

RocketChatのスレッドと返信をPythonで取得する

RocketChatのOutgoing Webhookを使って、投稿と返信をki …

Zoom API でミーティング作成を試す

Zoom APIをPostmanで試すの環境で、ミーティングスケジュールを新規作 …

docomo Developer supportの 雑談対話APIから自然対話APIへ移行しました

LINEやSlackのbotで重宝していた、雑談対話APIが終了する、とのことで …

Zoom APIをPostmanで試す

ビデオコミュニケーションサービスのZoomには豊富なAPIが用意されています。 …

Slackでチームを作成してbotから投稿出来るようにする

Slackで新しいチームを作成して、botが投稿出来るように設定します。 ※20 …

Feedly APIのタグストリームとカテゴリストリームの取得

以前からタグのストリームだけ取得していて、タグ付けをする前のカテゴリからストリー …

Twilioで電話を受ける人の仕事を少し楽に出来ないか考えてみた

Twilio Advent Calendar 2017の参加記事です。 Twil …

Stripe CheckoutをローカルのPythonで試す

Stripe Advent Calendar 2017の参加記事です。 Stri …

Twilioのサインアップをして最初の電話番号を設定する

ハンズオンなどTwilioを使ってみる場合に、最初は無料トライアルアカウントとな …