Skip to content

Instantly share code, notes, and snippets.

@ArtBIT
Last active April 13, 2021 17:12
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ArtBIT/139504dd05c910cc82e6b5f4729702b4 to your computer and use it in GitHub Desktop.
Save ArtBIT/139504dd05c910cc82e6b5f4729702b4 to your computer and use it in GitHub Desktop.
GLaDOS eSpeak
random_pitch() {
local delta=${1:-50}
local value=$(( ($RANDOM % $delta) - $delta/2 ))
echo "+${value}" | sed 's/+-/-/'
}
glados() {
local pitch=70
local speed=180
local lang=en
local voice=f3
local output=
local text="Hello, and, again, welcome to the Aperture Science Computer-aided Enrichment Center"
while true; do
case "$1" in
-v | --voice )
voice="$2"
shift 2
;;
-l | --language )
lang="$2"
shift 2;
;;
-p | --pitch )
pitch="$2"
shift 2;
;;
-s | --speed )
speed="$2"
shift 2
;;
-o | --output)
output="-w $2"
shift 2
;;
-- )
shift
break
;;
* )
if [ -z "$1" ]; then
break;
fi
text="$1"
shift
;;
esac
done
local word_pitch=0
local prosody_data=""
for word in $text; do
word_pitch=$(random_pitch 50)
prosody_data="${prosody_data}<prosody pitch=\"${word_pitch}\">${word}</prosody>";
done
espeak "${prosody_data}" -m -p ${pitch} -s ${speed} -v "${lang}+${voice}" ${output}
}
glados "$@"
@ivin-v
Copy link

ivin-v commented Dec 2, 2020

Greetings. How to listen to an example of a synthesized voice with this script? Thanks.

@ArtBIT
Copy link
Author

ArtBIT commented Dec 2, 2020

Greetings. How to listen to an example of a synthesized voice with this script? Thanks.

The instaud.io service has been shut down, apparently. Try this https://sndup.net/8dp2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment