fpc : 调用 MS TTS 读中英文

这个例子是 free pascal 在Windows XP 调用 MS TTS 读中英文

tts2.pas

Program tts2;
{$mode objfpc}{$H+}

uses
  Classes,SysUtils,Process,Variants,ComObj,RegExpr,ShellApi;

var 
  Sp: Variant;
  re: TRegExpr;
  i : Integer;
begin
  if Assigned(InitProc) then
    TProcedure(InitProc);
  try
    Sp := CreateOleObject('SAPI.SpVoice') ;
    re := TRegExpr.Create;
    re.Expression := '^[A-Za-z]+$';
    for i:=1 to ParamCount do
    begin
	  if re.Exec(ParamStr(i)) then
	    Sp.Speak(ParamStr(i)) // english
	  else // speak.vbs 读中文
	    ShellExecute(0,nil, PChar('".\speak.vbs"'), PChar(ParamStr(i)), nil,0);
	  Sleep(1);
    end
  except
    writeln(' OLE Error ');	  
  end;
  re.free;
end.


speak.vbs  见 blog.csdn.net/belldeep/article/details/7064800

你可能感兴趣的:(fpc,free,pascal,RegExpr,TTS)