None of the words need necessarily be about voicing speech (words).
Shout is about loudness. "Keep your voice low, don't shout!"
ety.: ← schowten "to call or cry out loudly,"
Scream is essentially about pitch, with probably an intent to scare, to raise an alarm or to alert.
ety.: ← Old Norse skræma (“to terrify; scare”); compare Dutch schremen (“to shout; yell; cry”), Swedish skrämma (“to spook; frighten”),
Yell is more often found in informal use. It may often be characterized by both loudness and high-pitch at the same time. However, etymologically, it comes from "to call" and no more.
ety.: ← extended form of root of Old English galan "to sing" (source of the -gale in nightingale); from PIE root *ghel- (1) "to call."
Note the interesting reference to -gale in nightingale. The deep PIE root merely means "to call". (So not necessarily loud or high-pitched?)
True, there's been a lot of obfuscation of meanings today and the words are sometimes used interchangeably, what with even dictionaries giving overlapping definitions.
For more, holler at me.