Page 216 - Designing Sociable Robots
P. 216
breazeal-79017 book March 18, 2002 14:16
Expressive Vocalization System 197
Kismet’s vocalizations are generated as follows:
Randomly choose number of proto-words, getUtteranceLength() = length
utterance
For i = (0, length ), generate a proto-word, protoWord
utterance
Generate a (wordAccent, word) pair
Randomly choose word accent, getAccent()
Randomly choose number of syllables of proto-word, getWordLength() = length
word
Choose which syllable receives primary stress, assignStress()
For j = (0, length word ), generate a syllable
Randomly choose the type of syllable, syllableType
if syllableType = vowelOnly
if this syllable has primary stress
then syllable = getStress() + getVowel() + getDuration()
else syllable = getVowel() + getDuration()
if syllableType = consonantVowel
if this syllable has primary stress
then syllable = getConsonant() + getStress() + getVowel() +
getDuration()
else syllable = getConsonant() + getVowel() + getDuration()
if syllableType = consonantVowelConsonant
if this syllable has primary stress
then syllable = getConsonant() + getStress() + getVowel() +
getDuration() + getConsonant()
else syllable = getConsonant() + getVowel() + getDuration() +
getConsonant()
if syllableType = vowelVowel
if this syllable has primary stress
then syllable = getStress() + getVowel() + getDuration() + getvowel() +
getDuration()
else syllable = getVowel() + getDuration() + getVowel() +
getDuration()
protoWord = append(protoWord, syllable)
protoWord = append(wordAccent, protoWord)
utterance = append(utterance, protoWord)
Where:
• GetUtteranceLength() randomly chooses a number between (1, 5). This specifies the
number of proto-words in a given utterance.

