I've long been angry with ambient_generic and custom sound problems.It just seems like everything goes right but the sound won't play,showing some error in the dev console.Now finally I solved the problem and just want to share the experience with you guys ~
OK I'm not going to teach you how to link a trigger_once with an ambient_generic here...
First make sure you copy the file into the portal 2/portal 2/sound/ambient/abc.wav (for instance).Then in the ambient_generic,sound name,browse and select the "ambient/abc.wav" (if not showing that wave,click refresh button).Then edit the flags on your own purpose and link it with an input like trigger_once correctly. (PS:The sound can only be a wav)
If you run map and copy it into /maps and play it,the sound is most likely not to play.So now we need a Pakrat,which can pak custom stuff to .bsp. Here's where I got it : http://www.bagthorpe.org/bob/cofrdrbob/pakrat.html
There is also a readme.txt showing how to use pakrat.
Basically it should be,open a bsp in pakrat,click scan,select your gamedir folder first (should be portal 2/portal 2),click scan in that dialog,then comes the custom files showing up with colors.Find the red ones which means the custom file is on disk and not pakked,in this case like abc.wav -- on disk (with red color).Select it,click add selected,the abc.wav should be added and appears blue.Left top File --> Save Bsp.Copy the bsp in /maps and play it and you should hear your sound,even it's a scream from your own throat.
It turns out that it's no the problem of freq,bit depth...Also note that don't make the volume too low.It's lower ingame (once causing me not hearing the sound and thought the pakrat won't work).