Dear Mr.Uttama,
Just checked out the speak code in vizact and it looks like if you call vizact.speak with undocumented keyword 'sync' set to True then the audio stops when the action is canceled.
Code:
vizact.speak('jfk.wav', sync=True)
The 'sync' code keeps the mouth flapping and audio syncronized on long speak files. To do this, the code creates an audio object, rather than just calling viz.playsound, the default behevor you were seeing.
Farshizo, perhaps the next release should include viz.playsound(self.filename, viz.STOP) in the end method of VizSpeakAction?