diff --git a/speech/install_cepstral.sh b/speech/install_cepstral.sh new file mode 100755 index 0000000..d36e2da --- /dev/null +++ b/speech/install_cepstral.sh @@ -0,0 +1,108 @@ +#!/usr/bin/env bash +# This script installs Cepstral voices for use with the audiogame-manager +# To purchase a license for a voice you like, visit https://cepstral.com + +# This script is released under the terms of the WTFPL: http://wtfpl.net +# Installer files are saved to ~/Downloads + + +# Dialog accessibility +export DIALOGOPTS='--no-lines --visit-items' +# Make sure display is set in case installed from console. +export DISPLAY="${DISPLAY:-:0}" + + +register() { + local v="${1##*Cepstral_}" + v="${v%%_*}" + company="$(dialog --inputbox "Company name (leave empty if none)" -1 -1 --stdout)" + customer="$(dialog --inputbox "Customer name" -1 -1)" || exit $? + key="$(dialog --inputbox "License key" -1 -1)" || exit $? + eval "wine \"c:\\Cepstral\\bin\\swift.exe\" --reg-voice --voice-name \"'$v'\" --customer-name \"'$customer'\" --company-name \"'$company'\" --license-key \"'$key'\"" + exit 0 +} + + +action="install" +declare -a voices=( + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Allison_windows_6.2.3.801.exe" + "Allison" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Amy_windows_6.2.3.801.exe" + "Amy" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Belle_windows_6.2.3.801.exe" + "Belle" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Callie_windows_6.2.3.801.exe" + "Callie" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Charlie_windows_6.2.3.801.exe" + "Charlie" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Dallas_windows_6.2.3.801.exe" + "Dallas" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Damien_windows_6.2.3.801.exe" + "Damien" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_David_windows_6.2.3.801.exe" + "David" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Diane_windows_6.2.3.801.exe" + "Diane" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Duchess_windows_6.2.3.801.exe" + "Duchess" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Duncan_windows_6.2.3.801.exe" + "Duncan" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Emily_windows_6.2.3.801.exe" + "Emily" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Linda_windows_6.2.3.801.exe" + "Linda" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Robin_windows_6.2.3.801.exe" + "Robin" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Shouty_windows_6.2.3.801.exe" + "Shouty" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Walter_windows_6.2.3.801.exe" + "Walter" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Whispery_windows_6.2.3.801.exe" + "Whispery" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_William_windows_6.2.3.801.exe" + "William" +) + +# Get the desired wine bottle + +declare -a bottle +for i in $(find ~/.local/wine -maxdepth 1 -type d -not -name 'wine' | sort) ; do + bottle+=("$i" "${i##*/}") + done +export WINEPREFIX="$(dialog --backtitle "Use the up and down arrow keys to find the option you want, then press enter to select it." \ + --clear \ + --no-tags \ + --menu "Select A Wine Bottle" 0 0 0 "${bottle[@]}" --stdout)" + + +if [[ -z "${WINEPREFIX}" ]]; then + exit 0 +fi + + +if [ "$1" == "-r" || "$1" == "--register" ]; then + action="register" +fi + +voice="$(dialog --backtitle "Use the up and down arrow keys to find the option you want, then press enter to select it." \ + --clear \ + --no-tags \ + --menu "Select A voice to $action" 0 0 0 "${voices[@]}" --stdout)" + +if [ "$1" == "-r" || "$1" == "--register" ]; then + register $voice +fi + +# make sure the ~/Downloads directory exists. +mkdir -p ~/Downloads + +if ! [[ -e ~/Downloads/${voice##*/} ]]; then + wget -O ~/Downloads/${voice##*/} "$voice" | dialog --progressbox "Download voice..." -1 -1 +fi + +# Install the voice +(wine ~/Downloads/${voice##*/} & +xdotool sleep 20 key --delay 75 alt+n key --delay 75 alt+a key --delay 75 alt+n key --delay 75 alt+o key --delay 75 alt+i sleep 20 key --delay 75 alt+f +find "${WINEPREFIX}/drive_c/Program Files/Cepstral/voices" -type d -not -name voices -exec bash -c 'for d ; do echo "GAIN 2.5" > "$d/default.sfx";done' _ {} \;) | dialog --progressbox "installing voice..." -1 -1 + +exit 0