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.


_______________________________________________
fpc-pascal maillist  -  [email protected]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to