because i think OnMouseOver is calling code everytime the mouse is over something. so it would be trying to start the audio every frame the mouse is over something. and then stop as soon as it's not. so try OnMouseEnter().
so it'd be
function OnMouseEnter()
{
print("The mouse is over the object.");
audio.Play();
}
function OnMouseExit()
{
print("The mouse is in space and not over this object.");
audio.Stop();
}