#!/usr/bin/env bash set -euo pipefail # CUDA inference for ghana-tts-36k via VoxCPM.cpp # Requires an NVIDIA GPU + CUDA toolkit (nvcc) on this machine. # Usage: bash infer_gpu.sh "text" prompt.wav "prompt transcript" out.wav TEXT="${1:?text required}" PROMPT_AUDIO="${2:?prompt audio path required}" PROMPT_TEXT="${3:?prompt transcript required}" OUTPUT="${4:-out.wav}" MODEL_PATH="$(dirname "$0")/ghana-tts-36k-q8_0-audiovae-f16.gguf" # recommended GPU variant THREADS="${THREADS:-4}" if ! command -v nvcc >/dev/null 2>&1; then echo "nvcc not found — this script requires a CUDA toolkit installed." >&2 exit 1 fi if [ ! -d VoxCPM.cpp ]; then git clone --depth 1 https://github.com/bluryar/VoxCPM.cpp.git fi if [ ! -f VoxCPM.cpp/build-cuda/examples/voxcpm_tts ]; then cmake -S VoxCPM.cpp -B VoxCPM.cpp/build-cuda -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DVOXCPM_CUDA=ON \ -DVOXCPM_BUILD_TESTS=OFF \ -DVOXCPM_BUILD_WASM=OFF \ -DVOXCPM_BUILD_BENCHMARK=OFF cmake --build VoxCPM.cpp/build-cuda --target voxcpm_tts -j"$(nproc)" fi VoxCPM.cpp/build-cuda/examples/voxcpm_tts \ --text "$TEXT" \ --prompt-audio "$PROMPT_AUDIO" \ --prompt-text "$PROMPT_TEXT" \ --output "$OUTPUT" \ --model-path "$MODEL_PATH" \ --backend cuda \ --threads "$THREADS" echo "Wrote $OUTPUT"