#!/bin/bash function voicesed() { sed 's/\([^ ]*\) .*/\1/;'; } function voicelist() { say -v ? | voicesed; } function voicelistenglish() { say -v ? | grep 'en_' | voicesed; } function voicerandom() { voicelistenglish | shuf -n 1; } function voicelistnormal() { voicelistenglish | sed '/Trinoids/d;/Zarvox/d;/Deranged/d;/Hysterical/d;/Bahh/d;/Bubbles/d' } function voicerandomnormal() { voicelistnormal | shuf -n 1; } function sayvoices() { for voice in $(voicelist); do say -v "$voice" $(say -v ? | grep $voice | sed 's/[^#]*# //'); done } function sayone() { local voice=$(voicerandom); say -v "$voice" $(say -v ? | grep $voice | sed 's/[^#]*# //'); }