The only thing I can suggest within my knowledge is a one time thing. I have done many times on my map, and it works well. So you have your command block testing for the player at certain coordinates, and then the one that plays the sound. What you need to do is place a "one time" command block in between the two. So after the test for command block, place the comparator connected to the first command block, then place the "one time" command block, then another comparator linked to that, then place your sound command block. Now, in the "one time" command block, place a command that will not say anything in the chat (as long as you have sendCommandFeedback turned off), or make any noticeable changes, when it's activated, such as "/weather clear". So now, when it finds the player, it will activate the "one time" command block, then activating the sound command block. The thing about putting in "/weather clear", is that not only does it not make any noticeable difference to your surroundings, but when the command block is activated, the comparator stays "activated", shall we say (the two redstone torches on the comparator stay lit until you edit the command block). So now when the player is on the cliff, it only plays the sound once. Does that make sense?
Hope it helped!