Audio signal comparison for automatic singing evaluation
Please update your question to mention which kind of comparison you want to perform. You seem to want your comparison to be robust to amplitude changes and time delays, but what about:


Audio coding. Should a signal and a MP3 version of itself be considered as similar or different?
EQ and filtering. Should a signal and the same signal with the high frequencies shifted by 10° be considered similar or different?
Dynamics change. Does applying a time-varying gain factor to one signal make it different from the original?
Time and pitch shifting. Should a signal and a slightly accelerated version of itself be considered as similar or different?
Noise and recording conditions. Should two versions of the same signal recorded on different equipment, microphone type, etc. be considered as similar or different?
Timbre. Should two versions of the same melody played by two different instruments be considered as similar or different?


Depending on your application (assessing degradations through a signal processing chain, identifying copyrighted work in an audio stream, shazam-like song identification, plagiarism detection on music...), you might want your comparison to be robust to some of these transformations.

Your approach consisting in normalizing the signals is not very robust. If you have two identical signals $x$ and $y(t)$, and if you change $x(0) = 2 \max_t y(t)$, the normalized version of $x$ is twice smaller than the normalized version $y$ and the comparison will fail.

Using cross-correlation to look for a time delay is a sound approach.