Please tell us the line the error is on. Or else paste the actual error message so that we can see the line number on it, plus paste your exact code in tags.
Also, are you sure there’s an audio clip called “crowd” inside a “Resources” folder? I’m not sure what happens if you don’t, but perhaps the Load() command is simply returning null.
You have correctly declared properties (aka fields) called “source” and “cp”. But then in your Start method, you ignore these and instead create local variables with the same names. You assign your AudioSource and AudioClip to these local variables, the Start method ends, those variables go poof, and the whole while, your properties were never touched.
To fix this, change your Start method like so:
source = gameObject.AddComponent<AudioSource>();
cp = Resources.Load ("crowd") as AudioClip;
Now, because you haven’t specified a type, the compiler knows you mean to refer to the already-declared properties rather than make new local variables.