mirror of
https://github.com/legop3/MultiRoombaRover.git
synced 2026-09-15 17:12:59 -04:00
Share Google TTS asset installer with laptop profile
This commit is contained in:
+52
-17
@@ -113,20 +113,8 @@ install_google_tts_assets() {
|
|||||||
local voice_dir="${asset_dir}/en-us-x-multi-r30"
|
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 dist_url="https://storage.googleapis.com/chromeos-localmirror/distfiles/googletts-26.5.tar.xz"
|
||||||
local tmp_dir
|
local tmp_dir
|
||||||
local lib_member
|
local lib_member=""
|
||||||
|
local member
|
||||||
case "$(uname -m)" in
|
|
||||||
aarch64|arm64)
|
|
||||||
lib_member="libchrometts_arm64.so"
|
|
||||||
;;
|
|
||||||
armv7l|armhf)
|
|
||||||
lib_member="libchrometts_armv7.so"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
log "WARNING: unsupported Chrome TTS architecture $(uname -m); skipping Google TTS assets"
|
|
||||||
return
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [[ -f "${asset_dir}/libchrometts.so" && -f "${voice_dir}/pipeline.pb" ]]; then
|
if [[ -f "${asset_dir}/libchrometts.so" && -f "${voice_dir}/pipeline.pb" ]]; then
|
||||||
log "Google Chrome TTS assets already installed; skipping download"
|
log "Google Chrome TTS assets already installed; skipping download"
|
||||||
@@ -135,8 +123,55 @@ install_google_tts_assets() {
|
|||||||
|
|
||||||
tmp_dir="$(mktemp -d)"
|
tmp_dir="$(mktemp -d)"
|
||||||
log "Downloading Google Chrome TTS assets..."
|
log "Downloading Google Chrome TTS assets..."
|
||||||
curl -L -o "${tmp_dir}/googletts-26.5.tar.xz" "$dist_url"
|
if ! curl -L -o "${tmp_dir}/googletts-26.5.tar.xz" "$dist_url"; then
|
||||||
tar -xf "${tmp_dir}/googletts-26.5.tar.xz" -C "$tmp_dir" en-us-x-multi.zvoice "$lib_member"
|
rm -rf "$tmp_dir"
|
||||||
|
log "WARNING: failed to download Google Chrome TTS assets; chromegtts will be unavailable"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The ChromeOS tarball has had architecture-specific library names. The Pi
|
||||||
|
# profile historically hard-coded ARM names; the laptop profile should be able
|
||||||
|
# to use the same installer when a matching x86_64 library exists, and should
|
||||||
|
# fail soft when it does not.
|
||||||
|
local -a candidate_libs=()
|
||||||
|
case "$(uname -m)" in
|
||||||
|
aarch64|arm64)
|
||||||
|
candidate_libs=(libchrometts_arm64.so libchrometts.so)
|
||||||
|
;;
|
||||||
|
armv7l|armhf)
|
||||||
|
candidate_libs=(libchrometts_armv7.so libchrometts.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 -d -o root -g root -m 0755 "$asset_dir"
|
||||||
install -o root -g root -m 0644 "${tmp_dir}/${lib_member}" "${asset_dir}/libchrometts.so"
|
install -o root -g root -m 0644 "${tmp_dir}/${lib_member}" "${asset_dir}/libchrometts.so"
|
||||||
@@ -147,7 +182,7 @@ install_google_tts_assets() {
|
|||||||
find "$asset_dir" -type d -exec chmod 0755 {} +
|
find "$asset_dir" -type d -exec chmod 0755 {} +
|
||||||
find "$asset_dir" -type f -exec chmod 0644 {} +
|
find "$asset_dir" -type f -exec chmod 0644 {} +
|
||||||
rm -rf "$tmp_dir"
|
rm -rf "$tmp_dir"
|
||||||
log "Installed Google Chrome TTS assets to $asset_dir"
|
log "Installed Google Chrome TTS assets to $asset_dir using $lib_member"
|
||||||
}
|
}
|
||||||
|
|
||||||
install_pi_profile() {
|
install_pi_profile() {
|
||||||
|
|||||||
Reference in New Issue
Block a user