its not too hard, just use
PlaySoundAtEntity(string name , string soundfile , string entity , float fadeintime , bool savesound);
Its pretty easy to do this, just place two script areas, one where you collide with, and one where the sound willl come from, and use
void OnStart()
{
AddEntityCollideCallback("Player" , "scriptarea_1" , "Collide" , true , 1);
}
void Collide(string &in asParent , string &in asChild , int &in alState)
{
PlaySoundAtEntity("MySpookySound" , "23_sawvoices1" , "scriptarea_2" , false);
}
but to make more randomised sounds you should use timers, so the player could be anywhere when the sound starts, just to make it seem a bit less scripted!