Last active
April 13, 2021 17:12
-
-
Save ArtBIT/139504dd05c910cc82e6b5f4729702b4 to your computer and use it in GitHub Desktop.
GLaDOS eSpeak
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 "$@" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The instaud.io service has been shut down, apparently. Try this https://sndup.net/8dp2