このプロジェクトは、Silero-API-Serverに触発され、XTTSV2を利用しています。
このサーバーはSillytavern用に作成されましたが、ニーズに合わせて使用できます
PRSを自由に作るか、自分のニーズに合わせてコードを使用してください
コンピューターが弱い場合は、使用できるGoogleコラブバージョンがあります。
通常のXTTSのオプションを探している場合は、こちらをご覧くださいhttps://github.com/daswer123/xtts-webui
最近、このプロジェクトを行う時間がほとんどないので、同様のプロジェクトに精通することをお勧めします
リリースページのすべての変更を追跡できます
簡単なインストール:
pip install xtts-api-serverこれにより、PytorchのCPUサポートのみバージョンを含む、必要なすべての依存関係がインストールされます
処理速度を改善するためにGPUバージョンをインストールすることをお勧めします(最大3倍高速)
python -m venv venv
venv S cripts a ctivate
pip install xtts-api-server
pip install torch==2.1.1+cu118 torchaudio==2.1.1+cu118 --index-url https://download.pytorch.org/whl/cu118sudo apt install -y python3-dev python3-venv portaudio19-dev
python -m venv venv
source venv b in a ctivate
pip install xtts-api-server
pip install torch==2.1.1+cu118 torchaudio==2.1.1+cu118 --index-url https://download.pytorch.org/whl/cu118 # Clone REPO
git clone https://github.com/daswer123/xtts-api-server
cd xtts-api-server
# Create virtual env
python -m venv venv
venv/scripts/activate or source venv/bin/activate
# Install deps
pip install -r requirements.txt
pip install torch==2.1.1+cu118 torchaudio==2.1.1+cu118 --index-url https://download.pytorch.org/whl/cu118
# Launch server
python -m xtts_api_server
DockerFileがDockerイメージを構築するために提供され、Docker-Compose.ymlファイルが提供され、Docker Composeがサービスとしてサーバーを実行します。
次のコマンドで画像を作成できます。
mkdir xtts-api-server
cd xtts-api-server
docker run -d daswer123/xtts-api-server
または
cd docker
docker compose build次に、次のコマンドでサーバーを実行できます。
docker compose up # or with -d to run in background python -m xtts_api_serverデフォルトのIPとポートで実行されます(localhost:8020)
--deepspeedフラグを使用して結果を高速に処理します(2〜3倍の加速)
usage: xtts_api_server [-h] [-hs HOST] [-p PORT] [-sf SPEAKER_FOLDER] [-o OUTPUT] [-t TUNNEL_URL] [-ms MODEL_SOURCE] [--listen] [--use-cache] [--lowvram] [--deepspeed] [--streaming-mode] [--stream-play-sync]
Run XTTSv2 within a FastAPI application
options:
-h, --help show this help message and exit
-hs HOST, --host HOST
-p PORT, --port PORT
-d DEVICE, --device DEVICE `cpu` or `cuda`, you can specify which video card to use, for example, `cuda:0`
-sf SPEAKER_FOLDER, --speaker-folder The folder where you get the samples for tts
-o OUTPUT, --output Output folder
-mf MODELS_FOLDERS, --model-folder Folder where models for XTTS will be stored, finetuned models should be stored in this folder
-t TUNNEL_URL, --tunnel URL of tunnel used (e.g: ngrok, localtunnel)
-ms MODEL_SOURCE, --model-source ["api","apiManual","local"]
-v MODEL_VERSION, --version You can download the official model or your own model, official version you can find [here](https://huggingface.co/coqui/XTTS-v2/tree/main) the model version name is the same as the branch name [v2.0.2,v2.0.3, main] etc. Or you can load your model, just put model in models folder
--listen Allows the server to be used outside the local computer, similar to -hs 0.0.0.0
--use-cache Enables caching of results, your results will be saved and if there will be a repeated request, you will get a file instead of generation
--lowvram The mode in which the model will be stored in RAM and when the processing will move to VRAM, the difference in speed is small
--deepspeed allows you to speed up processing by several times, automatically downloads the necessary libraries
--streaming-mode Enables streaming mode, currently has certain limitations, as described below.
--streaming-mode-improve Enables streaming mode, includes an improved streaming mode that consumes 2gb more VRAM and uses a better tokenizer and more context.
--stream-play-sync Additional flag for streaming mod that allows you to play all audio one at a time without interruption
ファイルへのパスをテキストとして指定してから、パスがカウントされ、ファイルが表示されます
独自のモデルをロードできます。これには、モデルにフォルダーを作成し、モデルに構成をロードする必要があります。フォルダーの注は3ファイルconfig.json vocab.json model.pthである必要があります。
ホストを聞いてもらいたい場合は、-HS 0.0.0.0を使用するか、-Listenを使用してください
-tまたは - タンネルフラグが必要であるため、スピーカーを取得すると、プレビューを聞くための正しいリンクを取得できます。詳細については、こちらをご覧ください
モデルソースは、XTTSを使用する形式を定義します。
local - デフォルトでバージョン2.0.2をロードしますが、-Vフラグを介してバージョンを指定し、モデルはモデルフォルダーに保存し、 XttsConfigとinferenceを使用できます。apiManualデフォルトでバージョン2.0.2をロードしますが、-Vフラグを介してバージョンを指定でき、モデルはモデルフォルダーに保存し、TTS APIのtts_to_file関数を使用できますapiモデルの最新バージョンをロードします。 -vフラグは機能しません。XTTSV2モデルのすべてのバージョンはここで見つけることができます。モデルバージョン名はブランチ名[v2.0.2、v2.0.3、main]などと同じです。
最初に実行または生成したときは、XTTSを使用することに同意することを確認する必要があります。
ストリーミングモードを使用すると、オーディオを取得してすぐに再生できます。ただし、多くの制限があります。
このモードがこことここでどのように機能するかを見ることができます
さて、制限について
tts_to_fileのみが動作しませんtts_to_audioのみで、1秒の沈黙を返します。 -vフラグを使用して、XTTSモデルのバージョンを指定できます。
改良されたストリーミングモードは、中国語、日本、ヒンディー語などの複雑な言語に適しています。また、スピーチの処理時に言語エンジンに詳細を考慮したい場合。
--stream-play-syncフラグ - グループチャットを使用する場合に役立つキュー順序ですべてのメッセージを再生できます。 Sillytavernでは、ストリーミングをオフにして正しく動作する必要があります
APIドキュメントは、http:// localhost:8020/docsからアクセスできます
デフォルトでは、 speakersフォルダーがフォルダーに表示されます。音声サンプルにWAVファイルを配置する必要があります。フォルダーを作成して、いくつかの音声サンプルを配置することもできます。これにより、より正確な結果が得られます。
APIを介してスピーカーのフォルダと出力用のフォルダーを変更できます。
次の投稿は、redditのユーザーMaterials1276による引用です
良いサンプルを作成するためのいくつかの提案
約7〜9秒の長さを保ちます。長くは必ずしも良いわけではありません。
オーディオがモノ、22050Hz 16ビットWAVファイルにサンプリングされていることを確認してください。処理が大幅に減速し、それ以外の場合は質の低い結果を引き起こすようです(いくつかのテストに基づいて)。とにかく24000Hzはそれが出力される品質です!
Audacityの最新バージョンを使用して、[クリップと追跡]> [リセンプ]を22050Hzに選択し、[> [Mix]> [Stereo]からMonoを追跡します。そして、ファイル>エクスポートオーディオ、22050Hzの波として保存します
オーディオクリーニングを行う必要がある場合は、上記の設定(Mono、22050Hz、16ビット)まで圧縮する前に実行してください。
使用するクリップには、多くの俳優が話しているときに、多くの映画が静かな音楽を持っているという背景の騒音や音楽がないことを確認してください。悪い品質のオーディオには、クリアアップが必要なヒスがあります。 AIは、たとえそうでなく、ある程度シミュレートされた音声である程度使用しても、これを拾います。
含まれているサンプルファイルのように、クリップを流れるようなスピーチの1つにしてみてください。大きな一時停止、ギャップ、その他の音はありません。できれば、あなたがコピーしようとしている人が少しボーカルの範囲を表示することができます。ファイルの例はこちらにあります
息をのむような音(呼吸/外出など)でクリップが起動または終了しないことを確認してください。
AI生成されたオーディオクリップを使用すると、既に音声のコピー/シミュレーションがあるため、不要なサウンドが導入される場合がありますが、これにはテストが必要です。