- プロジェクトルートに.env.localファイルを作成し、以下の4つの変数を登録してください。各APIキーはご自身で用意してください。
| API-KEY | 説明 | 入手先 |
|---|---|---|
NEXT_PUBLIC_OPENAI_API_KEY |
回答を生成するためのOpenAIのAPIキー | https://openai.com/index/openai-api/ |
REPLICATE_API_TOKEN |
ripsync動画を生成するための推論サービスReplicateのAPIキー | https://replicate.com/home |
FACE_IMAGE_BASE_URL |
デジタルヒューマン画像が配置されたフォルダ | https://localhost:3000/personaと設定 |
GCS_BUCKET_NAME |
Google Cloud Storageで使用するバケット名 | 任意のバケット名を設定 |
TEAM_NAME |
チーム名を表示するための文字列 | 任意の名称 |
デジタルヒューマンの名前はparticipants.jsonに記載されたnameフィールドから取得します。
アプリケーションでは、Google Cloud APIsのText-to-Speech APIを利用しています。これを利用するために、アプリケーションのデフォルト認証情報(ADC:Application Default Credentials)の設定が必要です。
以下のリンクに沿ってADC認証を実施してください:
ADC認証の手順 (Google Text-to-Speech クライアントライブラリ)
※ 認証を行わないと、Google Cloud APIs関連のエラーが発生します。
【手順の概要】
- ADCのインストール
- ADCで認証(例:
gcloud authコマンドを使用) - gcloud上でプロジェクトの作成
- 作成したプロジェクト内でText-to-Speech APIを有効化
- 使用するバケットを作成してください。バケット名は任意です。環境変数
GCS_BUCKET_NAMEに設定します。 - バケットに対して、ロール
roles/storage.objectUserを付与してください。
ターミナルで以下のコマンドを実行してください。
npm install
事前準備が完了したら、以下のコマンドでアプリケーションを起動します。
npm run dev
ブラウザで http://localhost:3000 を開いて、アプリケーションを確認してください。
- "Start"を押す(マイクの許可が求められることがあります)
- マイクからデジタルヒューマンにむかって話す
- 話す内容が終わったら"Chat"を押す
- 回答が返ってくるまで30秒程度待つ
※"Stop"はマイクOFF機能です。"Chat"を押すとマイクはOFFになります。
public/personaにペルソナの情報があります。
ペルソナを切り替えることでディベートのテーマや肯定・否定を選択できます。
- Documents - RAGに入れる情報はこのディレクトリに入れてください。
- face.jpg - デジタルヒューマンの顔写真です。
- system_prompt_template.txt - システムプロンプトです。主にディベートの流れを記述しています。
- interview_transcript.txt - インタビュースクリプトです。ペルソナの口調や人格等の属性を定義します。ディベートでは必須ではありません。
ペルソナを追加するときはperticipants.jsonにid、name、genderを追加してください。
- 詳細情報およびデモは、以下のリンクから確認できます。
- Google CloudのText-to-Speech APIを使用しています。詳細および設定方法は以下のリンクを参照してください。
- Reactの音声認識ライブラリreact-speech-recognitionを使用しています.
このプログラムはDigital Nature Group支援の元、以下の人々によって実装されました。