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版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2023/01/9784815617929-1-407x596.jpg)
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2024/01/9784815625382-3-420x596.jpg)
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
![](https://www.shuwasystem.co.jp//images/book/637791.jpg)
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
![](https://book.mynavi.jp/files/topics/135344_ext_06_0.jpg?v=1673514682)
「AWSではじめるLinux入門ガイド」という本を書きました。
![](https://www.yamamanx.com/wp-content/uploads/2023/12/81Rp5O9We6L._SY522_.jpg)
![@yamamanx](https://www.yamamanx.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
RocketChatのスレッドと返信をPythonで取得する
RocketChatのOutgoing Webhookを使って、投稿と返信をki …
-
-
Slackでチームを作成してbotから投稿出来るようにする
Slackで新しいチームを作成して、botが投稿出来るように設定します。 ※20 …
-
-
Stripe CheckoutをローカルのPythonで試す
Stripe Advent Calendar 2017の参加記事です。 Stri …
-
-
Feedly APIのタグストリームとカテゴリストリームの取得
以前からタグのストリームだけ取得していて、タグ付けをする前のカテゴリからストリー …
-
-
チャットボットのAPIでA3RTのTalk APIを使った
Microsoft TeamsのOutgoing Webhooksを使ってAWS …
-
-
Twilioのサインアップをして最初の電話番号を設定する
ハンズオンなどTwilioを使ってみる場合に、最初は無料トライアルアカウントとな …
-
-
docomo Developer supportの 雑談対話APIから自然対話APIへ移行しました
LINEやSlackのbotで重宝していた、雑談対話APIが終了する、とのことで …
-
-
Twilioで電話を受ける人の仕事を少し楽に出来ないか考えてみた
Twilio Advent Calendar 2017の参加記事です。 Twil …
-
-
A3RTのTalk APIエンドポイントが変更していたので修正しました
チャットボットのAPIでA3RTのTalk APIを使った LINEやTeams …
-
-
「API Meetup Tokyo #29 ニッポンのAPIエコノミー最前線 〜国産APIが社会を変える〜」に参加しました
API Meetup Tokyoに来ました〜 会場はおしゃれなDEJIMAさんで …