Can we with Fwh run it ?
on windows 10 we have sapi 5
#include "FiveWin.ch"
static lIsPaused := .F.
function Main()
local oDlg, oGetText, oBtnPlay, oBtnPause, oBtnStop, oBtnInterroga, oSbrVolume, oSbrTTSVelocity
local oBtnVolumeUp, oBtnVolumeDown, oBtnVelocityUp, oBtnVelocityDown
local oSayVolumeLevel, oSayVelocityLevel
local nVolume := 50
local nVelocity := 0
local oVoice := tOleAuto():New( "Sapi.SPVoice" )
local oVoiceInfo := tOleAuto():New( "Sapi.SPVoice" )
// SpeechVoiceFlags
local SVSFlagsAsync := 1
local SVSFPurgeBeforeSpeak := 2
// SpeechVoiceEvents
local SVEPhoneme := 64
local cTextToRead := "La Guía de Programación de FiveWin, ofrece una introducción dirigida a técnicas " + ;
"de desarrollo de aplicaciones de Windows utilizando (x)Harbour y FiveWin. Esta guía " + ;
"explicará los conceptos básicos que usted debe tener para construir correctamente sus " + ;
"aplicaciones de Windows."
oVoice:AlertBoundary := SVEPhoneme
oVoice:Volume := nVolume
oVoice:Rate := nVelocity
DEFINE DIALOG oDlg RESOURCE "sound"
REDEFINE GET oGetText VAR cTextToRead ID 10 OF oDlg MULTILINE UPDATE
REDEFINE BUTTON oBtnPlay ID 2010 OF oDlg ACTION ( oVoice:Speak( cTextToRead, SVSFlagsAsync ) ) UPDATE
REDEFINE BUTTON oBtnPause ID 2020 OF oDlg ACTION ( PauseResume( oVoice, oDlg, oBtnPause ), oDlg:Update() ) UPDATE
REDEFINE BUTTON oBtnStop ID 2030 OF oDlg ACTION oVoice:Speak( " ",SVSFPurgeBeforeSpeak ) UPDATE
REDEFINE BUTTON oBtnInterroga ID 2040 OF oDlg
REDEFINE SAY oSayVolumeLevel ID 160 OF oDlg UPDATE
oSayVolumeLevel:SetText( Str( nVolume ) )
REDEFINE SAY oSayVelocityLevel ID 170 OF oDlg UPDATE
oSayVelocityLevel:SetText( Str( nVelocity ) )
REDEFINE BUTTON oBtnVolumeUp ID 120 OF oDlg;
ACTION ( nVolume := nVolume + 10, iif( nVolume > 100, ( nVolume := 100 , MsgInfo( "Máximum Volume" ) ) ,;
oVoice:Volume := nVolume ), oSayVolumeLevel:SetText( Str( nVolume ) ) ) UPDATE
REDEFINE BUTTON oBtnVolumeDown ID 130 OF oDlg;
ACTION ( nVolume := nVolume - 10, iif( nVolume < 0, ( nVolume := 0 , MsgInfo( "Mínimum Volume" ) ),;
oVoice:Volume := nVolume ), oSayVolumeLevel:SetText( Str( nVolume ) ) ) UPDATE
REDEFINE BUTTON oBtnVelocityUp ID 140 OF oDlg;
ACTION ( nVelocity++, iif( nVelocity > 10, ( nVelocity := 10 , MsgInfo( "Máximum Velocity" ) ),;
oVoice:Rate := nVelocity ), oSayVelocityLevel:SetText( Str( nVelocity ) ) ) UPDATE
REDEFINE BUTTON oBtnVelocityDown ID 150 OF oDlg;
ACTION ( nVelocity--, iif( nVelocity < -10, ( nVelocity := -10 , MsgInfo( "Mínimum Velocity" ) ),;
oVoice:Rate := nVelocity ), oSayVelocityLevel:SetText( Str( nVelocity ) ) ) UPDATE
ACTIVATE DIALOG oDlg CENTERED
return nil
function PauseResume( oVoice, oDlg, oBtnPause )
iif( lIsPaused,;
( oVoice:Resume(), lIsPaused := .F., oBtnPause:SetText( "Pause" ) ),;
( oVoice:Pause(), lIsPaused := .T., oBtnPause:SetText( "Resume" ) ) )
return nil
#define DIALOG_10 10
#define DIALOG_8 8
#define DIALOG_7 7
#define DIALOG_6 6
#define DIALOG_4 4
#define DIALOG_3 3
#define DIALOG_2 2
#define DIALOG_1 1
#define DIALOG_5 5
sound DIALOG 69, 52, 446, 364
STYLE DS_ABSALIGN | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Text To Speech (TTS)"
FONT 8, "MS Sans Serif"
{
PUSHBUTTON "Play", 2010, 75, 341, 63, 14
PUSHBUTTON "Pause", 2020, 139, 341, 55, 14
PUSHBUTTON "Stop", 2030, 195, 341, 63, 14
PUSHBUTTON "?", 2040, 259, 341, 55, 14
LTEXT "Texto a Leer:", -1, 5, 14, 48, 10
EDITTEXT 10, 52, 13, 278, 323, ES_MULTILINE | WS_BORDER | WS_TABSTOP
LTEXT "Volumen:", -1, 364, 72, 40, 10
LTEXT "Velocidad:", -1, 402, 72, 37, 10
PUSHBUTTON "+", 120, 371, 94, 17, 14
PUSHBUTTON "-", 130, 371, 114, 17, 14
PUSHBUTTON "+", 140, 409, 94, 17, 14
PUSHBUTTON "-", 150, 409, 114, 17, 14
LTEXT "Text", 160, 372, 135, 20, 8
LTEXT "Text", 170, 410, 135, 20, 8
LTEXT "Levels:", -1, 335, 135, 35, 10
}
Silvio.Falconi wrote:Now run ok but there are many say not run on rc
How I can make have as resindent on memory and to link it to read each text
sample the use open the office word and the tts speach the menu items..
I need it for a visually impaired student
Return to FiveWin for Harbour/xHarbour
Users browsing this forum: No registered users and 47 guests