#!/usr/bin/env bash set -euo pipefail # CPU inference for ghana-tts-36k via VoxCPM.cpp # Usage: bash infer_cpu.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.gguf" # recommended CPU variant THREADS="${THREADS:-4}" if [ ! -d VoxCPM.cpp ]; then git clone --depth 1 https://github.com/bluryar/VoxCPM.cpp.git fi if [ ! -f VoxCPM.cpp/build-cpu/examples/voxcpm_tts ]; then cmake -S VoxCPM.cpp -B VoxCPM.cpp/build-cpu -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DVOXCPM_CUDA=OFF \ -DVOXCPM_BUILD_TESTS=OFF \ -DVOXCPM_BUILD_WASM=OFF \ -DVOXCPM_BUILD_BENCHMARK=OFF cmake --build VoxCPM.cpp/build-cpu --target voxcpm_tts -j"$(nproc)" fi VoxCPM.cpp/build-cpu/examples/voxcpm_tts \ --text "$TEXT" \ --prompt-audio "$PROMPT_AUDIO" \ --prompt-text "$PROMPT_TEXT" \ --output "$OUTPUT" \ --model-path "$MODEL_PATH" \ --backend cpu \ --threads "$THREADS" echo "Wrote $OUTPUT"