Do you have a Stata script that runs forever?
Then save this ado file in the ado personal folder, in C:

program sound
version 14
args n_beeps
if missing(“`n_beeps'”) {
local n_beeps= # /* # : times the sound will be repeated */
forvalues n= 1/`n_beeps’ {
!”C:\Program Files\Windows Media Player\wmplayer” C:yourownpath/xxxx.mp3 /* xxxx : name of the mp3 file with the sound that you like*/
sleep yyyy /* yyyy : this is the time elapsed between the sound repeats, i.e. 100 to 1000 */
shell pause

Then, within the do file do:
cap noisily {

Or more simply:

Stata will play # times the sound you want when your command is finally ended.

The idea for this ado came from these sources: ; ;

Note that you could have your computer do anything to warns you the Stata script is done, not only sound. You can manipulate the line << !”C:\Program Files\Windows Media Player\wmplayer” C:yourownpath/xxxx.mp3 >> as it pleases you (i.e. you could tell Stata to open a short video)