[fpc-pascal] Can not set voice property of SpVoice
Toru Takubo
takubo at e-parcel.co.jp
Tue Aug 23 06:14:40 CEST 2016
Hello,
I am testing a text to speech program working on Windows SAPI, and I
encountered a problem that I can not set the Voice property because
"member not found".
Below is the code which describe the problem. It is originally from
the freepascal wiki (http://wiki.freepascal.org/SAPI) and slightly
modified. Setting the voice property in this code is meaningless,
I know. It is just to reproduce the problem.
The SpVoice.Speak method itself works fine. I am working with fpc
3.0.0 on Windows 7 64bit. Any advice would be appreciated.
Regards,
Toru
_______________________________________________
program TestSAPI;
uses
SysUtils, comobj;
var
SavedCW: Word;
SpVoice: Variant;
Token: Variant;
begin
SpVoice := CreateOleObject('SAPI.SpVoice');
// Change FPU interrupt mask to avoid SIGFPE exceptions
SavedCW := Get8087CW;
try
Set8087CW(SavedCW or $4);
Token := SpVoice.Voice; //I can get a voice token.
Writeln(Token.GetDescription); //The token actually works.
try
SpVoice.Voice := Token; //"member not found" exception here. I can't set it.
except
on E:Exception do begin
Writeln(E.Message);
end;
end;
SpVoice.Speak('hi', 0);
finally
// Restore FPU mask
Set8087CW(SavedCW);
end;
Readln;
end.
More information about the fpc-pascal
mailing list