我是新手,所以请高手把步骤写的详细一些,在此谢谢了。
解决方案 »
- 判断一个集合是否在另一集合中,有个算法叫什么来着?
- 关于delphi7中窗体继承的问题
- 求3DES加密解密源代码
- 怎么在Installshield Express中设置BDE Alias???
- 这句SQL怎么写?
- 密码是怎么被察看的
- 请问在Delphi6中网络数据库与本地数据库之间如何转换
- delphi用tchart画饼图,数据过多时怎么显示?
- 请问一下,D6做查询显示什么控件最方便?
- 有一个WebBrowser空间在Pagecontrol控件上,当Pagecontrol控件增加一页时自动生成一个WebBrowser控件,并且显示当前最新链接,而且前一页仍显示原来的链接,这如何实现啊
- 关于TTS发音的问题---请教
- TTS相关,算是发布的问题吧。
当金山词霸安好后会在windows下产生speech目录, 里面存放的就是TTS文件.
从delphi中选择工程菜单中的导入类型库菜单,选择windows\
speech目录下的vtxtauto.tlb文件,单击确定后delphi会自动生成vtxauto_TLB.pas文件,它包含了TTS的com接口。
应用如下:
uses vtxauto_TLB;var TTS: ivtxtauto;用前:
TTS:=covtxtauto_.Create ;
TTS.Register('project1','project1');
用后:
TTS:=nil;TTs.speak('要读的字符串',vtxtst_reading);
TTs.stopspeaking; // 停止
TTs.set_speed(1); // 速度我试过同金山词霸的发音一样的。 unit word1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
VTxtAuto_TLB, StdCtrls, ComCtrls, Mask, FileCtrl;type
TForm1 = class(TForm)
speedtext: TStaticText;
speed: TTrackBar;
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
gettext: TLabel;
procedure FormCreate(Sender: TObject);
procedure stopbtnClick(Sender: TObject);
procedure speedChange(Sender: TObject);
procedure prebtnClick(Sender: TObject);
procedure nextbtnClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char); private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
TTS:IVTxtAuto;
implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
begin
TTS:=CoVtxtAuto_.Create;
TTS.Register('superwords','superwords');
speed.Position:=TTS.Get_Speed;
speedtext.caption:='速度:'+inttostr(speed.position);
speed.SelEnd:=speed.Position;
//filelistbox1.Mask:= '所有文件(*.*)|*.*| 文本文件(*.txt)|*.txt';
end;procedure TForm1.stopbtnClick(Sender: TObject);
begin
TTS.StopSpeaking;
end;
procedure TForm1.speedChange(Sender: TObject);
begin
TTS.Set_Speed(speed.position);
speedtext.caption:='速度:'+inttostr(speed.position);
speed.SelEnd:=speed.Position;
end;procedure TForm1.prebtnClick(Sender: TObject);
begin
TTS.AudioRewind;
end;procedure TForm1.nextbtnClick(Sender: TObject);
begin
TTS.AudioFastForward;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
TTS:=nil;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
TTS.Speak(Edit1.text,vtxtst_READING);
end;procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (length(trim(edit1.text))>0) and (key=chr(32))
then begin if trim(edit1.text)=gettext.Caption
then begin
TTS.Speak(edit1.Text,vtxtst_COMMAND);
edit1.Clear;
end
else TTS.Speak('YOU ARE WRONG',vtxtst_STATEMENT);
end;
end;
end.
uses
VTxtAuto_TLB;var
FISpeech: IVTxtAuto;procedure TForm1.FormCreate(Sender: TObject);
begin
FISpeech := CoVTxtAuto_.Create;
FISpeech.Register('DreamCapital', 'MailAlert');
end;使用:
SpeechString := 'Now test the function of speech!';
FISpeech.Speak(SpeechString, vtxtst_READING);但是中文是没法发音的。这不是由SPeech SDK5决定的,而是因为
缺少一个语音库。
http://www.smartysoft.cn/