lib/mac/say/voices_attributes.rb
# Additional voice attributes mixed to the original Hash of
# parsed voices (to provide additional context when looking for a voice)
#
# @note Unfortunately information in system *.plist files
# e.g. /System/Library/Speech/Voices/<VoiceName>.SpeechVoice/Contents/Info.plist"
# is inconsistent, fragmentary and sometimes incorrect, but:
#
# WARNING: all the attributes values provided here are highly subjective!!!
ADDITIONAL_VOICE_ATTRIBUTES = {
_unknown_voice: {
gender: nil,
joke: nil,
quality: nil,
singing: nil
},
agnes: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
albert: {
gender: :male,
joke: true,
quality: :medium,
singing: false
},
alex: {
gender: :male,
joke: false,
quality: :medium,
singing: false
},
alice: {
gender: :female,
joke: false,
quality: :high,
singing: false
},
allison: {
gender: :female,
joke: false,
quality: :high,
singing: false
},
alva: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
amelie: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
angelica: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
anna: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
audrey: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
aurelie: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
ava: {
gender: :female,
joke: false,
quality: :high,
singing: false
},
:'bad news' => {
gender: :male,
joke: true,
quality: :high,
singing: true
},
bahh: {
gender: :male,
joke: true,
quality: :low,
singing: false
},
bells: {
gender: :neutral,
joke: true,
quality: :medium,
singing: true
},
boing: {
gender: :neutral,
joke: true,
quality: :medium,
singing: false
},
bruce: {
gender: :male,
joke: false,
quality: :low,
singing: false
},
bubbles: {
gender: :male,
joke: true,
quality: :medium,
singing: false
},
carlos: {
gender: :male,
joke: false,
quality: :high,
singing: false
},
carmit: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
catarina: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
cellos: {
gender: :male,
joke: true,
quality: :medium,
singing: true
},
cem: {
gender: :male,
joke: false,
quality: :medium,
singing: false
},
chantal: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
claire: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
damayanti: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
daniel: {
gender: :male,
joke: false,
quality: :high,
singing: false
},
deranged: {
gender: :neutral,
joke: true,
quality: :medium,
singing: false
},
diego: {
gender: :male,
joke: false,
quality: :low,
singing: false
},
ellen: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
ewa: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
federica: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
felipe: {
gender: :male,
joke: false,
quality: :medium,
singing: false
},
fiona: {
gender: :female,
joke: false,
quality: :high,
singing: false
},
fred: {
gender: :male,
joke: true,
quality: :low,
singing: false
},
:'good news' => {
gender: :male,
joke: true,
quality: :high,
singing: true
},
henrik: {
gender: :male,
joke: false,
quality: :high,
singing: false
},
hysterical: {
gender: :male,
joke: true,
quality: :medium,
singing: false
},
ioana: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
iveta: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
joana: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
jorge: {
gender: :male,
joke: false,
quality: :low,
singing: false
},
juan: {
gender: :male,
joke: false,
quality: :medium,
singing: false
},
junior: {
gender: :male,
joke: true,
quality: :low,
singing: false
},
kanya: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
karen: {
gender: :female,
joke: false,
quality: :high,
singing: false
},
kate: {
gender: :female,
joke: false,
quality: :high,
singing: false
},
kathy: {
gender: :female,
joke: true,
quality: :low,
singing: false
},
katya: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
klara: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
kyoko: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
laila: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
laura: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
lee: {
gender: :male,
joke: false,
quality: :high,
singing: false
},
lekha: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
luca: {
gender: :male,
joke: false,
quality: :high,
singing: false
},
luciana: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
maged: {
gender: :male,
joke: false,
quality: :low,
singing: false
},
magnus: {
gender: :male,
joke: false,
quality: :medium,
singing: false
},
mariska: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
markus: {
gender: :male,
joke: false,
quality: :low,
singing: false
},
:'mei-jia' => {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
melina: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
milena: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
moira: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
monica: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
nicolas: {
gender: :male,
joke: false,
quality: :high,
singing: false
},
nikos: {
gender: :male,
joke: false,
quality: :medium,
singing: false
},
nora: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
oliver: {
gender: :male,
joke: false,
quality: :low,
singing: false
},
oskar: {
gender: :male,
joke: false,
quality: :medium,
singing: false
},
otoya: {
gender: :male,
joke: false,
quality: :medium,
singing: false
},
paola: {
gender: :female,
joke: false,
quality: :high,
singing: false
},
paulina: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
petra: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
:'pipe organ' => {
gender: :male,
joke: true,
quality: :high,
singing: true
},
princess: {
gender: :female,
joke: true,
quality: :low,
singing: false
},
ralph: {
gender: :male,
joke: true,
quality: :low,
singing: false
},
samantha: {
gender: :female,
joke: false,
quality: :high,
singing: false
},
sara: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
satu: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
serena: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
:'sin-ji' => {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
soledad: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
susan: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
tarik: {
gender: :male,
joke: false,
quality: :low,
singing: false
},
tessa: {
gender: :female,
joke: false,
quality: :high,
singing: false
},
thomas: {
gender: :male,
joke: false,
quality: :high,
singing: false
},
:'ting-ting' => {
gender: :female,
joke: false,
quality: :high,
singing: false
},
tom: {
gender: :male,
joke: false,
quality: :high,
singing: false
},
trinoids: {
gender: :neutral,
joke: true,
quality: :medium,
singing: false
},
veena: {
gender: :female,
joke: false,
quality: :high,
singing: false
},
vicki: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
victoria: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
whisper: {
gender: :male,
joke: true,
quality: :medium,
singing: false
},
xander: {
gender: :male,
joke: false,
quality: :high,
singing: false
},
yannick: {
gender: :male,
joke: false,
quality: :medium,
singing: false
},
yelda: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
yuna: {
gender: :female,
joke: false,
quality: :medium,
singing: false
},
yuri: {
gender: :male,
joke: false,
quality: :low,
singing: false
},
zarvox: {
gender: :neutral,
joke: true,
quality: :medium,
singing: false
},
zosia: {
gender: :female,
joke: false,
quality: :low,
singing: false
},
zuzana: {
gender: :female,
joke: false,
quality: :high,
singing: false
}
}.freeze