Usando "SAPI.SpVoice" para falar e como interromper?
Enviado: 10 Jul 2025 15:10
A função abaixo fala uma frase passada a ela até acabar ou com um tempo estipulado.
Pergunto, como fazer para parar de falar quando o operador pressionar qualquer tecla?
Desde já agradeço a atenção.
Pergunto, como fazer para parar de falar quando o operador pressionar qualquer tecla?
Código: Selecionar todos
Function FalaTexto( cTexto, nTipo )
Local oVoice, oVoices, i, cDesc
oVoice := TOleAuto():New("SAPI.SpVoice")
oVoices := oVoice:GetVoices()
For i := 0 To oVoices:Count - 1
cDesc := oVoices:Item(i):GetDescription()
IF "Daniel" $ Upper(cDesc) .OR. "Maria" $ Upper(cDesc) .OR. "PORTUGUES" $ Upper(cDesc)
oVoice:Voice := oVoices:Item(i)
Exit
Endif
Next
oVoice:Rate := 3
oVoice:Volume := 100
If !Empty(oVoice)
If nTipo <> Nil
oVoice:Speak(cTexto, nTipo)
oVoice:WaitUntilDone(8000) // Espera até 8 segundos para terminar
Else
oVoice:Speak(cTexto)
Endif
Else
//? "Erro ao inicializar a SAPI"
Endif
oVoice := NIL
Return Nil