Add welcome and color to script.
This commit is contained in:
		
							parent
							
								
									a90d7ec3ca
								
							
						
					
					
						commit
						f39deaf1df
					
				|  | @ -9,15 +9,45 @@ | ||||||
| # - https://github.com/ideasman42/nerd-dictation | # - https://github.com/ideasman42/nerd-dictation | ||||||
| 
 | 
 | ||||||
| set -e | set -e | ||||||
|  | # Reset | ||||||
|  | Color_Off='\e[0m'       # Text Reset | ||||||
|  | # Regular Colors | ||||||
|  | Black='\e[0;30m'        # Black | ||||||
|  | Red='\e[0;31m'          # Red | ||||||
|  | Green='\e[0;32m'        # Green | ||||||
|  | Yellow='\e[0;33m'       # Yellow | ||||||
|  | Blue='\e[0;34m'         # Blue | ||||||
|  | Purple='\e[0;35m'       # Purple | ||||||
|  | Cyan='\e[0;36m'         # Cyan | ||||||
|  | 
 | ||||||
|  | printwc() { | ||||||
|  |     printf "%b$2%b" "$1" "${Color_Off}" | ||||||
|  | } | ||||||
|  | print_title() { | ||||||
|  | printwc "${Blue}" "\n#--------------------------------------------------" | ||||||
|  | printwc "${Blue}" "\n# $1" | ||||||
|  | printwc "${Blue}" "\n#--------------------------------------------------\n" | ||||||
|  | } | ||||||
|  | printf ' | ||||||
|  | ######################################################################## | ||||||
|  |                     Welcome to Nerd-Dictation Installer | ||||||
|  | ######################################################################## | ||||||
|  | # Install nerd-dictation offline speech2text tool script using VOSK backend/model. | ||||||
|  | # | ||||||
|  | # Follow the installer repo at: | ||||||
|  | # - https://forge.switnet.net/Ark74/simple-nerd-dictation-installer | ||||||
|  | # | ||||||
|  | # Nerd Dictation repo at: | ||||||
|  | # - https://github.com/ideasman42/nerd-dictation\n\n' | ||||||
| 
 | 
 | ||||||
| if [ "$(id -u)" = 0 ]; then | if [ "$(id -u)" = 0 ]; then | ||||||
|    echo "Please don't use with root privileges, sudo will be used only when necessary!" |    printwc "${Yellow}" "Please don't use with root privileges, sudo will be used only when necessary!" | ||||||
|    exit 0 |    exit 0 | ||||||
| fi | fi | ||||||
| if dpkg-architecture -e amd64 ;then | if dpkg-architecture -e amd64 ;then | ||||||
|     echo "Supported architecture." |     printwc "${Green}" "> amd64: supported architecture." | ||||||
| else | else | ||||||
|     echo "Warning: Only run this script on amd64 arch." |     printwc "${Red}" "> Warning: Only run this script on amd64 arch." | ||||||
|     exit |     exit | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
|  | @ -31,7 +61,9 @@ CHINESE_VOSK_MODEL="https://alphacephei.com/vosk/models/vosk-model-small-cn-0.22 | ||||||
| NERD_DIC_GIT_REPO="https://github.com/ideasman42/nerd-dictation.git" | NERD_DIC_GIT_REPO="https://github.com/ideasman42/nerd-dictation.git" | ||||||
| OPT_VOSK="/opt/vosk-python" | OPT_VOSK="/opt/vosk-python" | ||||||
| 
 | 
 | ||||||
| # Select language. | #-------------------------------------------------- | ||||||
|  | print_title "# Select language." | ||||||
|  | #-------------------------------------------------- | ||||||
| printf "\n> Vosk Model Language selection.\n" | printf "\n> Vosk Model Language selection.\n" | ||||||
| PS3='Select one of the available language models to use on nerd-dictation: ' | PS3='Select one of the available language models to use on nerd-dictation: ' | ||||||
| options=("English" "Spanish" "French" "German" "Chinese" "Exit") | options=("English" "Spanish" "French" "German" "Chinese" "Exit") | ||||||
|  | @ -68,15 +100,19 @@ do | ||||||
|             exit 0 |             exit 0 | ||||||
|             break |             break | ||||||
|             ;; |             ;; | ||||||
|         *) echo "Invalid option $REPLY, choose one number of the above.";; |         *) printwc "${Yellow}" "Invalid option $REPLY, choose one number of the above.";; | ||||||
|     esac |     esac | ||||||
| done | done | ||||||
| VOSK_FOLDER="$(basename $VOSK_MODEL|sed 's|.zip||')" | VOSK_FOLDER="$(basename $VOSK_MODEL|sed 's|.zip||')" | ||||||
| 
 | 
 | ||||||
| # Install dependencies | #-------------------------------------------------- | ||||||
|  | print_title "Install dependencies" | ||||||
|  | #-------------------------------------------------- | ||||||
| sudo apt-get install -y git ssh python3-setuptools pulseaudio-utils xdotool | sudo apt-get install -y git ssh python3-setuptools pulseaudio-utils xdotool | ||||||
| 
 | 
 | ||||||
| # Install vosk python3 module. | #-------------------------------------------------- | ||||||
|  | print_title "Install vosk python3 module." | ||||||
|  | #-------------------------------------------------- | ||||||
| [ -d "$OPT_VOSK" ] && sudo rm -rf "$OPT_VOSK" | [ -d "$OPT_VOSK" ] && sudo rm -rf "$OPT_VOSK" | ||||||
| sudo mkdir "$OPT_VOSK" | sudo mkdir "$OPT_VOSK" | ||||||
| cat << EOF  | sudo tee "$OPT_VOSK"/setup.py | cat << EOF  | sudo tee "$OPT_VOSK"/setup.py | ||||||
|  | @ -94,39 +130,47 @@ sudo python3 "$OPT_VOSK"/setup.py install | ||||||
| if [ $? = 0 ]; then | if [ $? = 0 ]; then | ||||||
|     sudo rm "$OPT_VOSK"/setup.py |     sudo rm "$OPT_VOSK"/setup.py | ||||||
| else | else | ||||||
|     echo "something went wrong, please check setup.py file" |     printwc "${Red}" "Something went wrong, please check setup.py file" | ||||||
|     exit |     exit | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| # Cleaning existing local directories and binary link. | #-------------------------------------------------- | ||||||
|  | print_title "Cleaning existing local directories and binary link." | ||||||
|  | #-------------------------------------------------- | ||||||
| rm -rf "$HOME"/.local/nerd-dictation | rm -rf "$HOME"/.local/nerd-dictation | ||||||
| rm -f  "$HOME"/.local/bin/nerd-dictation | rm -f  "$HOME"/.local/bin/nerd-dictation | ||||||
| rm -rf "$HOME"/.config/nerd-dictation | rm -rf "$HOME"/.config/nerd-dictation | ||||||
| 
 | 
 | ||||||
| # Set repo as local package. | #-------------------------------------------------- | ||||||
|  | print_title "Set repo as local package." | ||||||
|  | #-------------------------------------------------- | ||||||
| cd "$HOME"/.local | cd "$HOME"/.local | ||||||
| git clone "$NERD_DIC_GIT_REPO" | git clone "$NERD_DIC_GIT_REPO" | ||||||
| cd nerd-dictation | cd nerd-dictation | ||||||
| 
 | 
 | ||||||
| # Setup language model | #-------------------------------------------------- | ||||||
|  | print_title "Setup language model" | ||||||
|  | #-------------------------------------------------- | ||||||
| wget "$VOSK_MODEL" | wget "$VOSK_MODEL" | ||||||
| unzip "$(basename $VOSK_MODEL)" | unzip "$(basename $VOSK_MODEL)" | ||||||
| if [ $? = 0 ]; then | if [ $? = 0 ]; then | ||||||
|     rm "$(basename $VOSK_MODEL)" |     rm "$(basename $VOSK_MODEL)" | ||||||
| else | else | ||||||
|     echo "something went wrong, please check $(basename $VOSK_MODEL) file" |     printwc "${Red}" "Something went wrong, please check $(basename $VOSK_MODEL) file" | ||||||
|     exit |     exit | ||||||
| fi | fi | ||||||
| mv "$VOSK_FOLDER" model | mv "$VOSK_FOLDER" model | ||||||
| mkdir "$HOME"/.config/nerd-dictation | mkdir "$HOME"/.config/nerd-dictation | ||||||
| mv model "$HOME"/.config/nerd-dictation/ | mv model "$HOME"/.config/nerd-dictation/ | ||||||
| 
 | 
 | ||||||
| # Setup local bin for nerd-dictation | #-------------------------------------------------- | ||||||
|  | print_title "Setup local bin for nerd-dictation" | ||||||
|  | #-------------------------------------------------- | ||||||
| [ ! -d "$HOME"/.local/bin ] && mkdir "$HOME"/.local/bin | [ ! -d "$HOME"/.local/bin ] && mkdir "$HOME"/.local/bin | ||||||
| ln -s "$HOME"/.local/nerd-dictation/nerd-dictation "$HOME"/.local/bin | ln -s "$HOME"/.local/nerd-dictation/nerd-dictation "$HOME"/.local/bin | ||||||
| 
 | 
 | ||||||
| if [ $? = 0 ]; then | if [ $? = 0 ]; then | ||||||
|     echo "Completed script!\nPlease exit and login for nerd-dictation to be used on the terminal." |     printwc "${Green}" "Completed script!\nPlease exit and login for nerd-dictation to be used on the terminal." | ||||||
| else | else | ||||||
|     echo "Something went wrong please check." |     printwc "${Red}" "Something went wrong please check the previous output." | ||||||
| fi | fi | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue