I assume that you are setting the label from many places in your code, as you don't want to simply call it from there.
My suggestion would be to add a sub to set the label and speak if need be:
Sub SetTTSLabel(Text as string)
If Label4.Text<>Text Then
Label4.Text=Text
If Text<>"" Then
tts1.Speak(Text,True)
End If
End If
End Sub
Then, simply, use
SetTTSLabel(Text)
instead of
Label4.Text=Text
everywhere you change the value of Label4 (except, of course, in SetTTSLabel).