You could use 
vizact.onupdate to register a function that's called every frame. In that function, get the viewpoint orientation and based on that value play and fade audio files. Here's an example:
	Code:
	#0-10 degrees: play file 1
#10-20: fade out file 1, fade in file 2
#30-40: fade out file 2, fade in file 3	
#50-60: fade out file 3, fade in file 4...	
import viz
import vizact
viz.go()
viz.addChild('piazza.osgb')
intervals = [0,10,30,50]
audioFiles = ['bells.wav','fountain.wav','conversation.wav','birds.wav']
#create a list of audio objects, set to loop mode
audioList = []
for file in audioFiles:
	audio = viz.addAudio(file)
	audio.loop()
	audioList.append(audio)
def fadeAudio():
	
	yaw = viz.MainView.getEuler()[0]
	print yaw
		
	for index,interval in enumerate(intervals):
		
		if interval < yaw <= interval + 10:
			
			# if first iteration only play first audio file
			if index == 0:
				if 	audioList[0].getState() in [viz.MEDIA_STOPPED,viz.MEDIA_PAUSED]:
					audioList[0].play()
			
			# for all others play next file and apply fades
			else:
				if audioList[index].getState() in [viz.MEDIA_STOPPED,viz.MEDIA_PAUSED]:
					audioList[index].play()
					audioList[index].volume(0)
		
				fadeInValue = (yaw-interval)/10
				fadeOutValue = 1.0-fadeInValue
				audioList[index].volume(fadeInValue)
				audioList[index-1].volume(fadeOutValue)
				
				# pause audio if volume is close to 0
				if fadeOutValue < 0.01 and audioList[index-1].getState() == viz.MEDIA_RUNNING:
					audioList[index-1].pause()
				
vizact.onupdate(0,fadeAudio)
#Spin the view to 60 degrees at 2 degrees/s.
spinAction = vizact.spinto(0,1,0,60,2)
viz.MainView.runAction(spinAction)