Inicio>Relacionado con la programación>Código Fuente de IA

Servidor vits

⚡ Un servidor VITS ONNX diseñado para una inferencia rápida, admitiendo la transmisión y la configuración de inferencia adicional para habilitar la configuración de preferencias del modelo y optimizar el rendimiento.

Ventajas?

Documentación de API

Ofrecemos sistemas de llamadas listos para usar.

 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 )

¿Correr?

Recomendamos usar un entorno virtual para aislar el entorno de tiempo de ejecución. Debido a que las dependencias de este proyecto pueden potencialmente interrumpir su biblioteca de dependencia, recomendamos usar pipenv para administrar el paquete de dependencia.

Servidor de configuración?

La configuración está en .env , incluidos los siguientes campos:

 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"

O puede usar el siguiente comando para establecer la variable de entorno:

 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 significa Reiniciar automático el servidor cuando se cambia el archivo.

¿Corre desde Pipenv? y 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

Y tenemos un script de un solo clic para instalar pipenv y npm :

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

¿Edificio de Docker?

Tenemos docker pull sudoskys/vits-server:main a Docker Hub.

También puede construir desde Dockerfile.

docker build -t < image-name > .

Donde <image-name> es el nombre que desea dar a la imagen. Luego, use el siguiente comando para iniciar el contenedor:

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

donde <local-path> es la ruta de carpeta local que desea asignar al directorio /App /Model en el contenedor.

¿Configuración del modelo?

En la carpeta model , coloque los archivos model.pth / model.onnx y model.json correspondientes. Si es .pth , se convertirá automáticamente en .onnx !

Puede usar .env para establecer VITS_SERVER_INIT_CONFIG y VITS_SERVER_INIT_MODEL para descargar archivos de modelo.

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

Estructura de carpetas model :

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

Model ID es 1000_epochs y 233_epochs .

Cuando coloca archivos de modelo en la carpeta model , debe reiniciar el servidor.

Diseño de extensión de modelo?

Puede agregar campos adicionales en la configuración del modelo para obtener información como el nombre del modelo correspondiente al ID del modelo a través de la 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 es la configuración de inferencia predeterminada (preferir) para el modelo.

info es la información del modelo.

¿Cómo puedo recuperar esta información del modelo?

Puede acceder a {your_base_url}/model/list?show_speaker=True&show_ms_config=True para obtener información detallada sobre roles y configuraciones del modelo.

HACER

Expresiones de gratitud

Nos gustaría reconocer las contribuciones de los siguientes proyectos en el desarrollo de este proyecto:

Expandir
Información adicional