关于 MA AGENT(100分)

  • 主题发起人 主题发起人 2000ww
  • 开始时间 开始时间
2

2000ww

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠:
您们好!

请问,我在用MS AGENT做试验时,为什么机器不能把提示框中的英文SPEAK()出来,此句为 Robby.Speak('Can't I speak , you Know? ','');
请问这是何原因?

附整段程序:

procedure TForm1.Button1Click(Sender: TObject);
var
Robby:IAgentCtlcharacter;
Request1:IagentCtlRequest;
begin

Form1.Agent1.AudioOutput;
Request1 := Form1.Agent1.Characters.Load( 'Robby', 'Robby.acs' );
Robby := Form1.Agent1.Characters.Character('Robby');
Robby.MoveTo(100,200,4);
Robby.Show(1);
Robby.Play('Greet');
Robby.Speak('Hi!','1.wav');{此句一切正常}
Robby.Speak('I speak , you know? ','');{此句显示正常,但无法读出显示的英文语句。}
我用的是 DELPHI 5.0 和 MS AGENT 2.0
 
好像要先Stop前一个Play动作。
 
刚才说的不对,把‘1.wav'去掉就行了。
(你是不是说反了,有‘1.wav'的那句才不能读出)
 
cheka:
‘1.wav’是一个语音文件这一名完全正常,但是如果把‘1.WAV’改为时就是显示而不说出声音了。我用的是DELPHI5.0和MS AGENT 2.0。
 
不会吧,我也用的是D5和Agent2, 而且连
Form1.Agent1.AudioOutput这句都没用,
但绝对可以说话。

另外,1.wav这一外部声音文件是被Speak读入的,
也就是说,Speak在显示‘Hi'的同时,播放1.wav,
如果Speak的第二个参数为'',则缺省使用TTS语音引擎。

因此我怀疑是你的语音引擎没有安装好。
在Import ActiveX 里看看有没有
Microsoft Direct Text-to-Speech
没有的话去http://msdn.microsoft.com/msagent/agentdl.asp#tts
下载。
 
cheka:

我刚看了一下,在Import ActiveX 里看有Microsoft Direct Text-to-Speech

不知你能否把你写出的那一段程序贴给我看一下。
 
var
Form1: TForm1;
peedy:iagentctlcharacter;
implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin

form1.agent1.Characters.Load('Peedy','peedy.acs');
peedy:=form1.agent1.characters.Character('peedy')
peedy.Show(0);
peedy.play('greet');
peedy.Speak('Hi!','');
peedy.Speak('Nice to meet you','');
peedy.stop(peedy.play('greet'));
end;


有多大区别吗? 看不出来。

PS: 干脆把TTS控件加入Delphi,此时ActiveX面板上就会有一张嘴吧,
你看能不能让那张嘴Speak
 
我在用TTS控件SPEAK()是一切正常,但是用AGENT还是不行。
我把上面一段代码运行一下还是不能SPEAK()。不知问题出在什么地方?
 
接受答案了.
 
请问2000ww,最后你是怎么解决的?
 
改一下languageID就行了
 
2000ww我的问题和你一样,能把你的源码发一份给我吗?先谢谢了!
qoiwin@hotmail.com
 
2000ww我把languageID改为$409但出错啊,我好想知道啊,你能把你的源码发给我吗?谢谢!!!
 
问题解决了也不肯没把方法说出来,你只会问,而不肯共享知识,太没 DFW 精神了![:(!]
 
后退
顶部