Self-Perception Theory provides an alternative explanation for cognitive dissonance effects. For example Festinger and Carlsmith's experiment where people were paid $1 or $20 to lie. Cognitive dissonance says that people felt bad about lying for $1 because they could not justify the act. Self-perception takes an 'observer's view, concluding that those who were paid $1 must have really enjoyed it (because $1 does not justify the act) whilst those who were paid $20 were just doing it for the money.
Note that this indicates how changing people's attitudes happens only when two factors are present:
They are aroused, feeling the discomfort of dissonance.
They attribute the cause of this to their own behaviors and attitudes.