Page d'accueil>Lié à la programmation>Code Source AI

Vits-serveur

⚡ Un serveur ONNX est conçu pour une inférence rapide, en prenant en charge les paramètres de streaming et d'inférence supplémentaires pour activer les paramètres de préférence du modèle et optimiser les performances.

Avantages?

Documentation API

Nous proposons des systèmes d'appels prêts à l'emploi.

 client = VITS ( "http://127.0.0.1:9557" )
res = client . generate_voice ( model_id = "model_01" , text = "你好,世界!" , speaker_id = 0 , audio_type = "wav" ,
                            length_scale = 1.0 , noise_scale = 0.5 , noise_scale_w = 0.5 , auto_parse = True )
with open ( "output.wav" , "wb" ) as f :
    for chunk in res . iter_content ( chunk_size = 1024 ):
        if chunk :
            f . write ( chunk )

En cours d'exécution?

Nous vous recommandons d'utiliser un environnement virtuel pour isoler l'environnement d'exécution. Étant donné que les dépendances de ce projet peuvent potentiellement perturber votre bibliothèque de dépendances, nous vous recommandons d'utiliser pipenv pour gérer le package de dépendance.

Config Server?

La configuration est dans .env , y compris les champs suivants:

 VITS_SERVER_HOST = 0.0.0.0
VITS_SERVER_PORT = 9557
VITS_SERVER_RELOAD = false
# VITS_SERVER_WORKERS=1
# VITS_SERVER_INIT_CONFIG="https://....json"
# VITS_SERVER_INIT_MODEL="https://.....pth or onnx"

ou vous pouvez utiliser la commande suivante pour définir la variable d'environnement:

 export VITS_SERVER_HOST= " 0.0.0.0 "
export VITS_SERVER_PORT= " 9557 "
export VITS_SERVER_RELOAD= " false "
export VITS_DISABLE_GPU= " false "

VITS_SERVER_RELOAD Signifie Auto Redémarrer le serveur lorsque le fichier a changé.

Vous courez de pivenv? et pm2.json

apt-get update &&
  apt-get install -y build-essential libsndfile1 vim gcc g++ cmake
apt install python3-pip
pip3 install pipenv
pipenv install  # Create and install dependency packages
pipenv shell    # Activate the virtual environment
python3 main.py # Run
# then ctrl+c exit 
apt install npm
npm install pm2 -g
pm2 start pm2.json
# then the server will run in the background

Et nous avons un script en un clic pour installer pipenv et npm :

curl -LO https://raw.githubusercontent.com/LlmKira/VitsServer/main/deploy_script.sh && chmod +x deploy_script.sh && ./deploy_script.sh

Bâtiment de Docker?

Nous avons docker pull sudoskys/vits-server:main TO DOCKER HUB.

Vous pouvez également construire à partir de dockerfile.

docker build -t < image-name > .

<image-name> est le nom que vous souhaitez donner à l'image. Ensuite, utilisez la commande suivante pour démarrer le conteneur:

docker run -d -p 9557:9557 -v < local-path > /vits_model:/app/model < image-name >

<local-path> est le chemin de dossier local que vous souhaitez mapper vers le répertoire / modèle / modèle dans le conteneur.

Configuration du modèle?

Dans le dossier model , placez le model.pth / model.onnx et les fichiers model.json correspondants. S'il est .pth , il sera automatiquement converti en .onnx !

Vous pouvez utiliser .env pour définir VITS_SERVER_INIT_CONFIG et VITS_SERVER_INIT_MODEL pour télécharger des fichiers de modèle.

 VITS_SERVER_INIT_CONFIG = " https://....json "
VITS_SERVER_INIT_MODEL = " https://.....pth?trace=233 or onnx?trace=233 "

Structure du dossier model :

 .
├── 1000_epochs.json
├── 1000_epochs.onnx
├── 1000_epochs.pth
├── 233_epochs.json
├── 233_epochs.onnx
└── 233_epochs.pth

Model ID est 1000_epochs et 233_epochs .

Lorsque vous mettez des fichiers de modèle dans le dossier model , vous devez redémarrer le serveur.

Conception d'extension du modèle?

Vous pouvez ajouter des champs supplémentaires dans la configuration du modèle pour obtenir des informations telles que le nom du modèle correspondant à l'ID de modèle via l'API.

 {
  //...
  "info" : {
    "name" : "coco" ,
    "description" : "a vits model" ,
    "author" : "someone" ,
    "cover" : "https://xxx.com/xxx.jpg" ,
    "email" : "[email protected]"
  } ,
  "infer" : {
    "noise_scale" : 0.667 ,
    "length_scale" : 1.0 ,
    "noise_scale_w" : 0.8
  }
  //....
}

infer est les paramètres d'inférence par défaut (préférés) pour le modèle.

info sont les informations du modèle.

Comment puis-je récupérer ces informations de modèle?

Vous pouvez accéder à {your_base_url}/model/list?show_speaker=True&show_ms_config=True pour obtenir des informations détaillées sur les rôles et les configurations du modèle.

FAIRE

Remerciements

Nous tenons à reconnaître les contributions des projets suivants dans le développement de ce projet:

Développer
Informations supplémentaires