这个例子是 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.youkuaiyun.com/belldeep/article/details/7064800
本文介绍了一个使用Freepascal编写的程序,在Windows XP环境下通过调用Microsoft Speech API (MSTTS)来实现文本转语音(TTS)功能的例子。该程序能够识别并朗读英文文本,并通过外部脚本处理中文文本。
663

被折叠的 条评论
为什么被折叠?



