The most common way currently is to overwrite an existing sound set by importing your sounds into your map and placing them in a path that overwrites sounds used by an existing sound set.
I also theorised that by modifying a data file and overwriting it (again, import and set to same path) you could create unique custom sound sets. I have yet to get any proof of this actually working though.
To help find the paths, get a .mpq browser and explore the various WC3 data .mpq files in the install directory. In side them you will eventually find the sound files used by the unit sound sets. These are the files you will want to overwrite. Again, to overwrite a file you simply import the replacement into your map and set its path to match the file you want to overwrite. Under no sircumstances are you to modify the actual data .mpq files that WC3 uses as doing so can cause instability and potentially get you banned from online play.
When a map loads, WC3 first checks the files in the map archive, then the patch data archive, then the expansion data archive and finally the orignal archive. This is how you can replace files by just importing them at the same path in your map.