yuelinniao
32520
|
2008/1/2 23:33:07 |
不知道是不是因为国内言论自由度的问题。国内技术员不共享解决方法,搜帖不发帖。我很早就对这个问题反思过。 |
kongxiangji
30131
|
2007/6/22 11:33:04 |
最后我在yahoo上搜到一个国外的网站上找到了那个文件。 |
kongxiangji
30130
|
2007/6/22 11:24:30 |
原来那么多人遇到这个问题啊,我原来也是在论坛上发帖子,没人解决。 能为大家解决问题是件幸福的事。 |
qvbfndcwy
29863
|
2007/6/8 10:18:08 |
最近下载了lps的文件,发现Peedy.LanguageID := $0409;这句一定要加上,agent才可以说话。 |
register
29851
|
2007/6/7 22:09:05 |
TForm1 = class(TForm) btnCreateAgent: TButton; btnAgentSpeak: TButton; private MyAgent: TAgent; Peedy: IAgentCtlCharacterEx; Request1: IagentCtlRequest; end;
procedure TForm1.btnCreateAgentClick(Sender: TObject); begin MyAgent := TAgent.Create(self); if OpenDialog1.Execute then begin Request1 := MyAgent.Characters.Load('Peedy', OpenDialog1.FileName); Peedy := MyAgent.Characters.Character('Peedy'); Peedy.Show(0); end; end;
procedure TForm1.btnAgentSpeakClick(Sender: TObject); begin Peedy.LanguageID := $0409;
Peedy.Speak('TTS测试正常,可为什么我还是个哑巴?', ''); end; |
register
29850
|
2007/6/7 21:27:33 |
出错位置: procedure TAgent.CreateControl;
procedure DoCreate; begin FIntf := IUnknown(OleObject) as IAgentCtlEx; end;
begin if FIntf = nil then DoCreate; end;
出错提示: Access violation at address 0045CDC2 in modeult 'TestMsAgent.exe'.Read of address 00000338. |
lps
29848
|
2007/6/7 17:54:44 |
有人说还是不能发音,贴一段我的测试程序,绝对可以发音。如果仍然不行,请检查ms agent和TTS的安装和设置
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, AgentObjects_TLB;
type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; myagent: TAgent; procedure Button1Click(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation Var merlin: IagentCtlCharacterEx; Request1: IagentCtlRequest;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin merlin.Show(0); merlin.Play('LookDown'); merlin.LanguageID:=$0409; merlin.Speak(edit1.Text,''); end;
procedure TForm1.FormDestroy(Sender: TObject); begin MyAgent.Characters.Unload('merlin'); end;
procedure TForm1.FormCreate(Sender: TObject); begin Request1 := MyAgent.Characters.Load( 'merlin', 'MERLIN.ACS' ); merlin:= MyAgent.Characters.Character( 'merlin' ); merlin.Commands.Add('Delphi','RunDelphi中文','Delphi',True,True); merlin.Commands.Add('Visual Basic',' Run VB中文','VB',True,True); end;
end. |
lps
29832
|
2007/6/7 1:07:41 |
最近又研究了一下,发现以前走入了误区,都是被资料误导了,其实可以直接调用TTS发音,不是一定通过ms agent啊! 另外,用TTS还以读中文,甚至中英文混合读。 汗一个 |
register
29831
|
2007/6/6 23:55:05 |
严重同意楼上! 这个问题从 2004 一直找到现在,终于可以解决了。 |
qvbfndcwy
29796
|
2007/6/5 11:41:56 |
谢谢你提供的资料,有空我去试验一下,如果可以的话,我将非常感谢你的帮助。不过我对于之前的那个发出如下答案的人,有点鄙视: { ……直到有一个叫MIKY的谈到读取Character动作列表时修改AgentObjects_TLB.pas后成功。 从而受到了启发在google中搜索AgentObjects_TLB.pas结果在cvs.sourceforge.net 中下载了一个AgentObjects_TLB.pas。覆盖到X:\Program Files\Borland\Delphi7Imports\AgentObjects_TLB.pas. 然后再运行上面的代码。 成功了!! 我的Agent终于可以说话了。 哈哈!!!! 有人需要我可以把AgentObjects_TLB.pas发给他 } 以前查找了好多天的baidu和google都是这样的文章!那可真叫郁闷啊。 |