Well, there's no available answer yet, so let me report my own workaround.
Generate a tone at the given frequency by a tone generator, then get the .wav file. Put the .wav file at an accessible path.
Use the Panda3D's built-in sound function:
base = ShowBase() mySound = base.loader.loadSfx("path/to/the_tone.wav")
make it keep playing:
mySound.setLoop(True) mySound.play()
To adjust the volume, just call:
mySound.setVolume(0.5) # 0.0~1.0
This solution works perfectly. Thanks to Panda3D.