The sound files can be found by using a .vpk viewing and extracting program like GCFscape (http://nemesis.thewavelength.net/index.php?p=26
) on the following file:
\steam\steamapps\common\dota 2 beta\dota\pak01_dir.vpk
Note that it is not really a good idea to change .vpk file itself for various reasons, some of which I don't really know the details myself. To change the announcer (or any other) sounds, what you should ideally do is go into this folder:
\steam\steamapps\common\dota 2 beta\dota\scripts
Most, if not all of the .txt files used by dota 2 as pointers to the correct sound to play can be found here. The following directory contains all voiceover (vo) pointers, including the hero voices and the announcer voices:
\steam\steamapps\common\dota 2 beta\dota\scripts\voscripts
The announcer voice pointers are contained in the .txt files named game_sounds_vo_announcer.txt and game_sounds_vo_announcer_phonemes.txt. What you need to do now is, assuming you already have available the sound you want to play, to change the directory contained in the .txt files to the place where you have put your custom sound file. So, for example, if I were to place the sound custom.wav into the folder \steam\steamapps\common\dota 2 beta\dota\sound\custom, your text line containing the directory information in the .txt files should look like one of the following:
Note the presence or absence of a special character * or ) before the directory information, which varies across the .txt files. I admit I don't know what its purpose is for, so it's best to keep it there if it's already present in the .txt file. If you don't know what a sound that's listed in the .txt file is for, just open the .vpk file using GCFscape (or another program) and go into the directory as mentioned in the .txt file, then listen to the sound file.
Note that you can also change the hero skill sounds (juggernaut's spin sound, for example, is lacking at best in dota 2 in my opinion). The .txt files can be found in:
\steam\steamapps\common\dota 2 beta\dota\scripts\game_sounds_heroes
You also need to make sure that your custom sound files match the format, bit rate, sampling frequency, and whether it is a mono or stereo sound, of the original sound found in the pak01_dir.vpk. Otherwise, your sound will not load in game and you'll be hearing silence whenever that sound is supposed to play.
The format can be easily checked through the file extension (.wav or .mp3).
To check the bitrate, go into the file properties and under the details tab match the Audio: Bit rate to the original sound file.
To match the sampling frequency, you need a specialised audio program like Audacity (http://audacity.sourceforge.net/
). Audacity will also allow you to convert one file format to another, and also tell you whether your sounds are mono or stereo.
Once you've placed the custom sounds in the folders and edited the .txt script files, you must turn on the console in dota 2 (right click dota 2 in your games library in steam, go into properties, and in set launch options type -console) then use the snd_updateaudiocache command in the console. This needs to be done every time you've changed the script files and/or have placed new sounds.
It is also a good idea to backup a copy of the .txt scripts you've edited, along with the custom sound files, in case you ever need to verify the integrity of your dota 2 data. You also cannot open dota 2 while GCFscape is browsing a .vpk file, as it causes steam to think your data is corrupt. If this is done by accident simply close dota 2 and GCFscape, then relaunch dota 2.
COMMON REASONS WHY YOUR CUSTOM SOUND DOES NOT PLAY IN DOTA 2
Recheck the directory you've placed your custom sound in and check that it matches your .txt script files. Also check the name of your sound files.
A general guideline is that if dota 2 expects a mono sound when you've fed in a stereo sound, the sound will not play, although the reverse will work (feeding in a mono sound when dota 2 expects a stereo sound generally functions OK). If you fed in the wrong audio format (.mp3 instead of .wav, for example), the sound will not play. If your bit rate and/or sampling frequency is higher than the original file in the pak01_dir.vpk, then the sound will not play (having the bit rate and/or sampling frequency lower than the original file generally works OK).
Make sure you've updated the audio cache (snd_updateaudiocache in the console).
Sorry for the long post, and I hope this helps!