[fpc-pascal] Microsoft SAPI on Freepascal

Michael Van Canneyt michael at freepascal.org
Mon Jun 26 15:54:31 CEST 2023



On Sun, 25 Jun 2023, James Richters via fpc-pascal wrote:

> I gave up on doing it directly, it seems SO convoluted to do with FPC with the COM unit and all this stuff I just don’t understand,
> and it’s SO simple to do with a VBS script in just 3 lines and it just works!  (it would only be 2 lines if I didn’t want Microsoft Zira)

I don't know what people advised you, but what you want to do needs 3 lines
of code only:

I created a lazarus application, dropped a button and in the onclick I call
speak('hello'). It just works.


--
uses comobj;

procedure speak(s : string);

var
   v : olevariant;

begin
   v:=CreateOleObject('SAPI.SpVoice');
   v.Voice:=v.GetVoices().Item(1);
   v.Speak(s);
end;

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
begin
   speak('hello');
end;
--

No need to write a script, call tprocess etc. 
You can do everything right in fpc as simple as this.

Michael.


More information about the fpc-pascal mailing list