Delphi如何调用TTS?(300分)

  • 主题发起人 主题发起人 夏敏
  • 开始时间 开始时间

夏敏

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi如何调用TTS朗读英文?如果不装金山词霸的话,则需要下载那些文件来支持?
如果项朗读中文的话,如何实现?TTS可以吗?
 
www.microsoft.com/msdn 下载SDK
在delphibbs搜索,已经有人做出来了的1
 
我的问题没回答,TTS可以朗读中文吗?
 
yes!!CIBA不就可以么!不过听说中文的效果没英文好!
 
CIBA是什么?
 
金山词霸
 
在delphibb没搜索到具体如何去做,谁能help me?
 
搜索 : TTS

一大堆!不知道你怎么找的!:<
 
见http://www.delphibbs.com/delphibbs/dispq.asp?lid=1385182.
 
侃侃而谈
我查查
 
可以读中文的,不过要加个汉语语言包,
 
http://www.microsoft.com/SAPI
 
我做过英文的,中文的没时间做,如果哪位做了,发个demo出来学习啊。
 
华军软件有下载CTTS,可以中文朗读
 
从前做过的一个实验的*.pas文件,希望对你有用。

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleServer, SpeechLib_TLB, SIMPLEAUDIOLib_TLB, ComCtrls,
OleCtrls, VoiceAngelLib_TLB;

type
TForm1 = class(TForm)
SpVoice1: TSpVoice;
Memo1: TMemo;
Button1: TButton;
ComboBox1: TComboBox;
Edit1: TEdit;
ComboBox2: TComboBox;
TrackBar1: TTrackBar;
TrackBar2: TTrackBar;
Button2: TButton;
Edit2: TEdit;
Edit3: TEdit;
ComboBox3: TComboBox;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
private
// i:integer;
z,j:integer;
{ Private declarations }
public
{ Public declarations }
end;


var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

SpVoice1.speak(memo1.Lines.Text,1);
end;


procedure TForm1.FormCreate(Sender: TObject);
var
x,i:integer;
begin


//----------------------------------------------------
//----------------------------------------------------
spvoice1.Volume:=TrackBar2.Position;
for i:=0 to spvoice1.getvoices('','').count-1do

begin

ComboBox1.Items.Add(string(spvoice1.GetVoices('','').Item(i).GetDescription(i)));
combobox1.ItemIndex:=i;
j:=i;
end;

for x:=0 to spvoice1.GetAudioOutputs('','').Count-1do

begin

ComboBox2.Items.Add(string(spvoice1.GetAudioOutputs('','').Item(x).GetDescription(x)));
combobox2.ItemIndex:=x;
z:=x;
end;

end;


procedure TForm1.ComboBox1Change(Sender: TObject);
begin

spvoice1.Voice :=spvoice1.GetVoices('','').Item(combobox1.itemindex);
end;


procedure TForm1.ComboBox2Change(Sender: TObject);
begin

spvoice1.AudioOutput :=spvoice1.GetAudioOutputs('','').Item(combobox2.itemindex);

end;


procedure TForm1.Button2Click(Sender: TObject);
var
aa:string;
//
bb:ispeechwaveformatex;
begin

bb:=spvoice1.AudioOutputStream.Format.GetWaveFormatEx;

edit3.text:=string(bb);
end;


procedure TForm1.TrackBar1Change(Sender: TObject);
begin

spvoice1.Rate:=TrackBar1.Position;
end;


procedure TForm1.TrackBar2Change(Sender: TObject);
begin

spvoice1.Volume:=TrackBar2.Position;
end;


end.

 
你们好,我想问一下能做TTS库吗?也就是说用少数民族的语言做一个TTS库,然后在读出来,这个可以吗?请给我回答,谢谢。
 
有源程序:http://bbs.2ccc.com/topic.asp?topicid=21432
 
这个软件无法做TTS库牙,你还知道那个地方有,可以制作库。
 
先装发声引擎(MSagent.exe,SpchCpl.exe,tv_enua.exe)
然后 improt activex control...将一个叫 microsoft direct text-to-speech 安装
你会在Activex面板上发现一个像人嘴的控件,用这个控件就可以了.
 
后退
顶部