はじめに
OpenAvatarChatは、HumanAIGC-Engineeringチームによって開発され、GitHubでホストされているオープンソースプロジェクトです。モジュール式のデジタルヒューマン対話ツールで、ユーザーは1台のPCで全機能を実行できます。このプロジェクトは、リアルタイムビデオ、音声認識、デジタルヒューマン技術を組み合わせ、柔軟なモジュール設計と低遅延インタラクションを中核機能としています。音声コンポーネントには、SenseVoice、qwen-plusおよび コージーボイス ビデオ部分はLiteAvatarアルゴリズムに依存しています。コードは完全にオープンになっており、開発者が研究・改良できるようになっています。
機能一覧
- モジュラー・デジタル・ヒューマン・ダイアログ:音声とビデオによるリアルタイムのインタラクションをサポートし、モジュールは自由に組み合わせることができる。
- リアルタイムオーディオ・ビデオ伝送:グラディオ・ウェブラートによる低遅延オーディオ・ビデオ通信。
- 音声認識と生成:SenseVoiceとCosyVoiceを統合し、音声の入出力を処理。
- デジタルヒューマンアニメーション:LiteAvatarを使って、滑らかなデジタルヒューマンの表情や動きを生成することができます。
- オープンソースのサポート:完全なコードが提供され、ユーザーは必要に応じてそれを変更または最適化することができます。
ヘルプの使用
OpenAvatarChatはオープンソースプロジェクトであり、ユーザーは自分でコードをダウンロードし、環境を設定する必要があります。以下は、すぐに使い始められるように、詳しいインストールと使用手順です。
設置プロセス
- システム要件の確認
作業を始める前に、お使いのデバイスが以下の条件を満たしていることを確認してください:- Python 3.10以降。
- 10GB以上のグラフィックメモリを搭載したCUDA対応GPU(未計量モデルでは20GB以上)。
- CPU性能は強力だ(i9-13980HXで30FPSをテスト)。
Pythonのバージョンは以下のコマンドで確認できる:
python --version
- Git LFSのインストール
このプロジェクトでは、大きなファイルを管理するためにGit LFSを使っているので、まずそれをインストールすること:
sudo apt install git-lfs
git lfs install
- ダウンロードコード
ターミナルで以下のコマンドを入力して、プロジェクトをローカルにクローンする:
git clone https://github.com/HumanAIGC-Engineering/OpenAvatarChat.git
cd OpenAvatarChat
- サブモジュールの更新
プロジェクトはいくつかのサブモジュールに依存しており、以下のコマンドを実行することで更新される:
git submodule update --init --recursive
- ダウンロードモデル
マルチモーダル言語モデルMiniCPM-o-2.6は手動でダウンロードする必要があります。ダウンロードは ハギングフェイス もしかしたら モデルスコープ 手に入れる。モデルをmodels/
フォルダにダウンロードするか、スクリプトを実行して自動的にダウンロードする:
scripts/download_MiniCPM-o_2.6.sh
ビデオメモリが足りない場合は、int4量子化バージョンをダウンロードすることができます:
scripts/download_MiniCPM-o_2.6-int4.sh
- 依存関係のインストール
プロジェクトのルート・ディレクトリで実行する:
pip install -r requirements.txt
- SSL証明書の生成
リモートアクセスが必要な場合は、自己署名証明書を生成する:
scripts/create_ssl_certs.sh
証明書はデフォルトで ssl_certs/
フォルダー
- ランニングプログラム
スタートアップには2つのタイプがある:
- 直接走る::
python src/demo.py
- コンテナ運転(Nvidia Dockerが必要):
build_and_run.sh
主な機能
- デジタル・ヒューマン・ダイアローグの開始
プログラムを実行した後、ブラウザーを開き、次のサイトにアクセスする。https://localhost:8282
(ポートはconfigs/sample.yaml
(修正)。インターフェイスはデジタル人物を表示し、"Start "をクリックし、プログラムはカメラとマイクを呼び出し、対話モードに入ります。 - 音声対話
マイクに向かって話すと、システムはSenseVoiceを通して音声を認識し、MiniCPM-oが答えを生成し、CosyVoiceが音声出力に変換する。デジタイザーが表情と口の形を同期させる。テストによると、応答待ち時間は約2.2秒(i9-13900KFとRTX 4090の場合)。 - コンフィギュレーションの調整
コンパイラconfigs/sample.yaml
ドキュメント例 - ポートの変更
service.port
別の値に変更する。 - フレームレートの調整:設定
Tts2Face.fps
30に設定する。
設定を有効にするには、プログラムを保存して再起動します。
ワークフロー
- 番組を開始し、インターフェイスの読み込みが終わるのを待つ。
- カメラとマイクが正常に動作していることを確認してください。
- 対話を開始すると、システムは自動的に音声と映像を処理する。
- 停止するには、Ctrl+Cを押してターミナルを閉じるか、インターフェイスを終了する。
クラウドベースの代替案
ローカルの設定が不十分な場合は、MiniCPM-oをクラウドLLMに置き換えることができる:
- 修正
src/demo.py
ASR、LLM、TTSプロセッサを有効にするには、MiniCPMセクションを参照してください。 - ある
configs/sample.yaml
コンフィグLLM_Bailian
APIのアドレスとキーを記入する:
LLM_Bailian:
model_name: "qwen-plus"
api_url: "https://dashscope.aliyuncs.com/compatible-mode/v1"
api_key: "yourapikey"
- 使用するにはプログラムを再起動してください。
ほら
- GPUメモリが不足するとアプリケーションがクラッシュする可能性があるため、int4モデルまたはクラウドAPIの使用を推奨します。
- 不安定なネットワークはリアルタイム伝送に影響を与えるため、有線接続を推奨する。
- コンフィギュレーション・パスには、相対パス(プロジェクトのルート・ディレクトリーに基づく)と絶対パスがあります。
アプリケーションシナリオ
- 技術研究
開発者は、デジタル・ヒューマン・ダイアローグのテクニックを研究したり、モジュラー・デザインの実装を分析したりするのに使うことができる。 - パーソナルテスト
ユーザーは、ローカルサービスを構築し、音声主導のデジタル・ヒューマン・インタラクションを体験することができる。 - 教育とトレーニング
学生はコードを通して音声認識、言語モデリング、デジタル・ヒューマン・アニメーションの原理を学ぶことができる。
品質保証
- ビデオメモリーが足りない場合は?
int4 定量モデルをダウンロードするか、ローカルモデルの代わりにクラウドベースの LLM API を使用します。 - 多人数での対話に対応していますか?
現在のバージョンはシングルプレイヤーでの対話に適しており、マルチプレイヤー機能は自分で開発する必要がある。 - ランニングラグについては?
CPU/GPUのパフォーマンスをチェックし、フレームレートを下げるか、高速モードをオフにする。