There is a step missing in this etymology, I think. In Latin "barbarian" only means "non-Roman" and was not originally pejorative.

The Greek/Latin word "barba" means "beard" (cf. English "barber"), and since Greek and Roman soldiers were required to be clean-shaven (until the Emperor Hadrian grew a beard), it seems likely this is the direct origin of the word "barbarian". Perhaps "barba" then came from the "bar bar" sound made by those that didn't speak Greek.