Kazeia-engine/dist/build_tts_pipeline_chraac.sh

53 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Build tts_pipeline contre chraac-llama au lieu de ql/ggml (qualcomm fork).
# Cible : exploiter le ggml-cpu chraac qui a démontré RTF 0.96 sur decoder seul
# (vs 1.47 llama-upstream, cf /opt/Kazeia/kazeia-tts-perf-validated/).
#
# Diff vs build_tts_pipeline.sh :
# - headers depuis /opt/Kazeia/chraac-llama/{include,ggml/include}
# - link libs depuis dist/lib-chraac (copies de /opt/Kazeia/chraac-llama/build-android-kazeia/bin)
# - libqwen3tts-decoder.a depuis /opt/Kazeia/kazeia-tts-perf-validated (build chraac validé)
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
NDK_ROOT="${ANDROID_NDK_ROOT:-/opt/Kazeia/android-ndk-r27d}"
CXX="$NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android31-clang++"
JNI="$HERE/jni"
INC_CHRAAC_LLAMA="/opt/Kazeia/chraac-llama/include"
INC_CHRAAC_GGML="/opt/Kazeia/chraac-llama/ggml/include"
LIB_CHRAAC="$HERE/lib-chraac"
OUT="$HERE/b-jni/tts_pipeline_chraac"
DECODER_DIR="/opt/Kazeia/kazeia-tts-decoder-ggml"
DECODER_INC="$DECODER_DIR/src"
# La lib decoder fresh chraac, code actuel (avec load_with_backends + snake_consts).
# Buildée 30/05 via la procédure docs/BUILD.md.
DECODER_A="/opt/Kazeia/kazeia-tts-decoder-ggml/build-android-chraac-fresh/libqwen3tts-decoder.a"
[ -f "$DECODER_A" ] || { echo "libqwen3tts-decoder.a chraac absent: $DECODER_A"; exit 1; }
[ -d "$LIB_CHRAAC" ] || { echo "lib-chraac absent: $LIB_CHRAAC"; exit 1; }
mkdir -p "$HERE/b-jni"
CFLAGS=(
-std=c++17 -O3 -fPIE
-march=armv8.6-a+i8mm+bf16+dotprod+fp16
-Wno-unused-parameter -Wno-unused-variable -Wno-sign-compare
)
INCS=( -I"$INC_CHRAAC_LLAMA" -I"$INC_CHRAAC_GGML" -I"$DECODER_INC" )
LIBS=(
"$JNI/tts_pipeline.cpp"
"$JNI/tts_engine.cpp"
"$JNI/cp_inference.cpp"
"$JNI/sampler.cpp"
"$JNI/kazeia_text_tokenizer.cpp"
"$DECODER_A"
-L"$LIB_CHRAAC" -lllama -lggml -lggml-base -lggml-cpu
-Wl,-rpath,'$ORIGIN'
-llog -ldl -lm
)
echo "== building tts_pipeline_chraac =="
"$CXX" "${CFLAGS[@]}" "${INCS[@]}" "${LIBS[@]}" -o "$OUT"
echo "== built: $OUT =="
ls -la "$OUT"