First off, you place a ScriptArea into your level at the point where you want the player to walk to activate the sound.
Hop into your script file for the level and add the collide callback between the player and your area.
Check the wiki
here for information on all the scripts you can use.
PS: This callback should be within your OnStart() function, so like this:
void OnStart()
{
AddEntityCollideCallback("Player", "ScriptArea_1", "MyCollideFunction", true, 1);
/*
The first two arguments here define the two entities that should collide.
Make sure ScriptArea_1 matches the name of your script area in the level.
MyCollideCallback can be whatever you want;
it is the name of your function that will run when the two entities collide.
The "true" means this only happens once, and 1 means when you enter the area.
*/
}
Keep in mind that if you already have an OnStart function, don't make another one; instead just add the callback inside the one you have.
Next, you need the function you defined in argument #3:
void MyCollideFunction(string &in asParent, string &in asChild, int alState)
{
/*
This function will run when Player hits ScriptArea_1.
There are 2 main functions you can use to play sounds.
If you want it to play from a source in the level, use PlaySoundAtEntity.
If you just want to play it and don't care, use PlayGuiSound.
I'll let you try that one yourself. Look those two functions up on the wiki I linked and put them here.
*/
}
Feel free to delete my comments between /* and */.