#begin routine
words = sentence.split()
i = 0
frameCounter = 0 #it all happens within the same routine so make our own counter
#each frame
if i <= len(words)-1: #-1 to account for the list index starting at 0
text.setText(words[i]) #set the word
frameCount = 30 + (len(words[i].split()) * int(0.17*60)) #int because there is a leftover so the == below doesn't work. Change frameCounter set and reset to 0.2 instead of 0 if this is an issue.
frameCounter+=1 #our own frame counter
if frameCounter == frameCount:
i+=1
frameCounter = 0
else:
continueRoutine = False
This should do it