我是新手,所以请高手把步骤写的详细一些,在此谢谢了。

解决方案 »

  1.   

    金山词霸发声使用的是微软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决定的,而是因为
    缺少一个语音库。
      

  2.   

    http://download.microsoft.com/download/speechSDK/SDK/5.1/WXP/EN-S/SpeechSDK51LangPack.exe去这里下载。
      

  3.   

    http://download.microsoft.com/download/speechSDK/SDK/5.1/WXP/EN-US/SpeechSDK51LangPack.exe
      

  4.   

    你装了金山词霸就可以了,然后导进去那个ocx
      

  5.   

    中文语音包,简单例子这里有
    http://www.smartysoft.cn/