網頁

2026年2月3日 星期二

DGX Spark 安裝 Riva TTS

參考文件 https://docs.nvidia.com/nim/riva/tts/latest/overview.html

$ export NGC_API_KEY="Y6NWM0NjYzYjYtMzczMy00MjVkLTg1NWQtZTE2MDNmZTAxNDBj"
$ echo "$NGC_API_KEY" | docker login nvcr.io --username '$oauthtoken' --password-stdin

$ export CONTAINER_ID=magpie-tts-multilingual
$ export NIM_TAGS_SELECTOR=name=magpie-tts-multilingual

$ docker run -it --rm --name=$CONTAINER_ID \
   --gpus '"device=0"' \
   --shm-size=8GB \
   -e NGC_API_KEY \
   -e NIM_HTTP_API_PORT=9000 \
   -e NIM_GRPC_API_PORT=50051 \
   -p 9000:9000 \
   -p 50051:50051 \
   -e NIM_TAGS_SELECTOR \
   nvcr.io/nim/nvidia/$CONTAINER_ID:latest

# Create the cache directory on the host machine
$ export LOCAL_NIM_CACHE=~/.cache/nim
$ mkdir -p $LOCAL_NIM_CACHE
$ chmod 777 $LOCAL_NIM_CACHE

# Set appropriate value for container ID
$ export CONTAINER_ID=magpie-tts-multilingual

# Set the appropriate values for NIM_TAGS_SELECTOR.
$ export NIM_TAGS_SELECTOR="name=magpie-tts-multilingual,model_type=prebuilt"

# Run the container with the cache directory mounted in the appropriate location
$ docker run -it --rm --name=$CONTAINER_ID \
   --gpus '"device=0"' \
   --shm-size=8GB \
   -e NGC_API_KEY \
   -e NIM_TAGS_SELECTOR \
   -e NIM_HTTP_API_PORT=9000 \
   -e NIM_GRPC_API_PORT=50051 \
   -p 9000:9000 \
   -p 50051:50051 \
   -v $LOCAL_NIM_CACHE:/opt/nim/.cache \
   nvcr.io/nim/nvidia/$CONTAINER_ID:latest
   
$ curl -X 'GET' 'http://localhost:9000/v1/health/ready'
{"status":"ready"}

$ sudo apt-get install python3-pip
$ pip install -U nvidia-riva-client
$ cd $HOME
$ git clone https://github.com/nvidia-riva/python-clients.git

$ curl -sS http://localhost:9000/v1/audio/list_voices | jq
{
   "en-US,es-US,fr-FR,de-DE,zh-CN": {
      "voices": [
            "Magpie-Multilingual.ZH-CN.HouZhen",
            "Magpie-Multilingual.ZH-CN.Siwei",
            "Magpie-Multilingual.ZH-CN.Louise",
            "Magpie-Multilingual.ZH-CN.Pascal",
            "Magpie-Multilingual.ZH-CN.Isabela",
            "Magpie-Multilingual.ZH-CN.Diego",
            "Magpie-Multilingual.ZH-CN.Ray",
            "Magpie-Multilingual.ZH-CN.Mia",
            "Magpie-Multilingual.ZH-CN.Aria",
            "Magpie-Multilingual.ZH-CN.Long",
            "Magpie-Multilingual.ZH-CN.North",
      ]
   }
}

$ curl -sS http://localhost:9000/v1/audio/synthesize --fail-with-body \
   -F language=zh-CN  \
   -F text="說書,相聲這種東西,人靠一張嘴,通過語言的結構,把看官聽眾吸引到故事里面。在演出的時候要求你身上的每個動作,都必須要有含義。" \
   -F voice=Magpie-Multilingual.ZH-CN.Mia \
   --output output.wav
$ curl -sS http://localhost:9000/v1/audio/synthesize_online --fail-with-body \
   -F language=zh-CN  \
   -F text="說書,相聲這種東西,人靠一張嘴,通過語言的結構,把看官聽眾吸引到故事里面。在演出的時候要求你身上的每個動作,都必須要有含義。" \
   -F voice=Magpie-Multilingual.ZH-CN.Ray \
   -F sample_rate_hz=22050 \
   --output output.raw
$ sudo apt update
$ sudo apt install -y sox
$ sox -b 16 -e signed -c 1 -r 22050 output.raw output.wav

Available Voices
Magpie-Multilingual.ZH-CN.Aria
Magpie-Multilingual.ZH-CN.Diego
Magpie-Multilingual.ZH-CN.HouZhen
Magpie-Multilingual.ZH-CN.Isabela
Magpie-Multilingual.ZH-CN.Long
Magpie-Multilingual.ZH-CN.Louise
Magpie-Multilingual.ZH-CN.Mia
Magpie-Multilingual.ZH-CN.North
Magpie-Multilingual.ZH-CN.Pascal
Magpie-Multilingual.ZH-CN.Ray
Magpie-Multilingual.ZH-CN.Siwei

$ docker stop $CONTAINER_ID
$ docker rm $CONTAINER_ID

沒有留言:

張貼留言