From 55e8235b02d698aa30f0136110bc3ee5047f4b7c Mon Sep 17 00:00:00 2001 From: legop3 <46182676+legop3@users.noreply.github.com> Date: Tue, 7 Jul 2026 00:23:50 -0400 Subject: [PATCH] Keep laptop Google TTS changes out of Pi profile --- pi/install/debian_laptop_profile.sh | 79 +++++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 3 deletions(-) diff --git a/pi/install/debian_laptop_profile.sh b/pi/install/debian_laptop_profile.sh index 439fe2a1..1ab64c8f 100644 --- a/pi/install/debian_laptop_profile.sh +++ b/pi/install/debian_laptop_profile.sh @@ -69,14 +69,87 @@ install_debian_laptop_audio_support() { install -m 0644 pi/asound.debian-laptop.conf /etc/asound.conf log "Installed dedicated Debian laptop ALSA config to /etc/asound.conf" - install -D -o root -g root -m 0755 pi/bin/chromegtts-daemon.py /usr/local/bin/chromegtts-daemon - log "Installed chromegtts daemon" + install -D -o root -g root -m 0755 pi/bin/chromegtts-daemon-laptop.py /usr/local/bin/chromegtts-daemon + log "Installed laptop chromegtts daemon" - install_google_tts_assets + install_google_tts_assets_laptop log "ALSA config updated; reboot recommended before testing laptop rover audio" } +install_google_tts_assets_laptop() { + local asset_dir="/opt/roverd/googletts" + local voice_dir="${asset_dir}/en-us-x-multi-r30" + local dist_url="https://storage.googleapis.com/chromeos-localmirror/distfiles/googletts-26.5.tar.xz" + local tmp_dir + local lib_member="" + local member + + if [[ -f "${asset_dir}/libchrometts.so" && -f "${voice_dir}/pipeline.pb" ]]; then + log "Google Chrome TTS assets already installed; skipping download" + return + fi + + tmp_dir="$(mktemp -d)" + log "Downloading Google Chrome TTS assets for Debian laptop profile..." + if ! curl -L -o "${tmp_dir}/googletts-26.5.tar.xz" "$dist_url"; then + rm -rf "$tmp_dir" + log "WARNING: failed to download Google Chrome TTS assets; chromegtts will be unavailable" + return + fi + + local -a candidate_libs=() + case "$(uname -m)" in + aarch64|arm64) + candidate_libs=(libchrometts_arm64.so) + ;; + armv7l|armhf) + candidate_libs=(libchrometts_armv7.so) + ;; + x86_64|amd64) + candidate_libs=(libchrometts_x86_64.so libchrometts_amd64.so libchrometts_x64.so libchrometts.so) + ;; + i386|i686) + candidate_libs=(libchrometts_x86.so libchrometts_i386.so libchrometts.so) + ;; + *) + log "WARNING: unsupported Chrome TTS architecture $(uname -m); skipping Google TTS assets" + rm -rf "$tmp_dir" + return + ;; + esac + + for member in "${candidate_libs[@]}"; do + if tar -tf "${tmp_dir}/googletts-26.5.tar.xz" "$member" >/dev/null 2>&1; then + lib_member="$member" + break + fi + done + + if [[ -z "$lib_member" ]]; then + log "WARNING: no libchrometts library matching $(uname -m) found in Google TTS archive; chromegtts will be unavailable" + rm -rf "$tmp_dir" + return + fi + + if ! tar -xf "${tmp_dir}/googletts-26.5.tar.xz" -C "$tmp_dir" en-us-x-multi.zvoice "$lib_member"; then + rm -rf "$tmp_dir" + log "WARNING: failed to unpack Google Chrome TTS assets; chromegtts will be unavailable" + return + fi + + install -d -o root -g root -m 0755 "$asset_dir" + install -o root -g root -m 0644 "${tmp_dir}/${lib_member}" "${asset_dir}/libchrometts.so" + rm -rf "$voice_dir" + install -d -o root -g root -m 0755 "$voice_dir" + unzip -q "${tmp_dir}/en-us-x-multi.zvoice" -d "$voice_dir" + chown -R root:root "$asset_dir" + find "$asset_dir" -type d -exec chmod 0755 {} + + find "$asset_dir" -type f -exec chmod 0644 {} + + rm -rf "$tmp_dir" + log "Installed Google Chrome TTS assets to $asset_dir using $lib_member" +} + install_debian_laptop_profile() { install_debian_laptop_deps disable_debian_laptop_desktop_audio_stack