PDA

View Full Version : lip-synching + Progress Bar


djdesmangles
02-18-2008, 05:38 AM
Hello Wizards !!

The "viz.ACTION_END_EVENT" is working fine. Now I would like to optimize one of my functions.

1) My Avatar is lip-synched with a .wav file.
2) I got a progress bar displaying to the user the position in the .wav file while the Avatar is speaking.

So, to do that, I've loaded the .wav for the Avatar with the vizact.speak('intro.wav'). But, for the Progress Bar, I must loaded the file again as a VizAudio object to access the getTime() and the getDuration() functions. It's working, but is there a better way to do that ?

viz.FOREVER,
D.

djdesmangles
02-19-2008, 01:30 PM
Hello ?

I guess that you've forgot about me...

D.

farshizzo
02-19-2008, 02:26 PM
Don't worry, we haven't forgot about you. Yesterday was a holiday.

Here is sample code that will update a progress bar while a speech action is running. It works by starting a timer when the speech begins. The timer uses the action instance to determine the current time of the speech.import viz
viz.go()

#Create avatar
avatar = viz.add('female.cfg',pos=(0,0,1),euler=(180,0,0))

#Create speech action
speak = vizact.speak('speech.wav',sync=True)

#Create progress bar
progress = viz.addProgressBar('',pos=(0.5,0.1,0))

#Function that will update progress of speech while it is running
def updateSpeechProgress(progress,instance):
progress.set( instance.elapsed / instance.length )

#Start update timer when speech action begins
def onActionBegin(e):
if e.object is avatar and e.action is speak:
avatar.speechProgress = vizact.ontimer(0,updateSpeechProgress,progress,e.i nstance)
viz.callback(viz.ACTION_BEGIN_EVENT,onActionBegin)

#Stop update timer when speech action ends
def onActionEnd(e):
if e.object is avatar and e.action is speak:
vizact.removeEvent(avatar.speechProgress)
viz.callback(viz.ACTION_END_EVENT,onActionEnd)

#Start speech when spacebar pressed
vizact.onkeydown(' ',avatar.runAction,speak)

djdesmangles
02-21-2008, 12:37 PM
Yeah Man !!! :cool:

I'll try it !!! Thanks !!

viz.FOREVER !!
D.