![]() |
ActiveX Microsoft Agent en Delphi
Quisiera saber como puedo utilizar los "ActiveX Microsoft Agent" en mis programas de delphi. yo utilizo la versión 5.
En la sección de columnas aparece un escrito al respecto, pero no he podido encontrar los archivos necesarios. muchas gracias seara2005 |
ActiveX Microsoft
No he recibido ninguna respuesta, el enlace que aparece en el artículo está desactualizado y no sé cual fichero buscar en la página completa.
Si alguien lo ha logrado Por favor que me ayude Muchas gracias |
www.msagentring.org
En la seccion de descargas tienes que bajar todo lo que hay e instalarlo paso a paso, y por el orden que dice. (da mas de un dolor de cabeza si no se instala en ese orden). Despues en Delphi, Importas el ActiveX Microsoft Agent 2.0 y listo. la documentación sobre los bichitos esos es algo dura, por no decir que no hay nada jejeje, solo un par de ejemplos con código fuente. Saludos |
Activex Microsoft
:)
Muchas Gracias Lepe, cuando lo pruebe daré mi opinión para que le sirva a los demás que pudieran estar interesados, gracias de nuevo |
Esperemos que seara2005 escriba pronto para decir como le fué... :rolleyes:
En fín, en referencia a la columna publicada sobre Microsoft Agent, añadir que para hacer funcionar y hablar en español a cualquier personaje en una de nuestras aplicaciones, el usuario final de esa aplicación deberá tener una serie de librerias instaladas en Windows (todos los enlaces son del servidor de descargas de Microsoft): - Microsoft Agent v2.0 (en XP no es necesario, pues viene incluido): http://activex.microsoft.com/activex...t2/MSagent.exe - Componentes para que Microsoft Agent use el idioma español : http://activex.microsoft.com/activex...2/AgtX0C0A.exe - Motor Text To Spech (Texto a voz) en español: http://activex.microsoft.com/activex...2/lhttsspe.exe - Controles de voz binarios SAPI 4.0a: http://activex.microsoft.com/activex...pi/spchapi.exe Y, evidentemente, deberá tener al menos un personaje instalado (XP incluye el "Mago"). - Galeria de personajes: http://www.msagentring.org/chars.htm - Página oficial de Ms.Agent: http://www.microsoft.com/msagent/default.asp Salu2. |
Perdonen a todos los interesados en este tema, es que me he tomado unas vacaciones en el mes de agosto y no he tocado mi PC por varios días.
A partir de hoy les prometo que retomaré el asunto y los mantengo al tanto. Nota: Les aconsejo que no esperen mucho de mí, ya que soy un aprediz del delphi y de este asunto en particular ni hablar. chao |
Hecho todo lo anterior, solo queda saber como cargar el personaje, ponerlo en pantalla y hacerlo hablar.
Y ya solo queda hacer con él lo que nos apetezca. El tema de averiguar los motores de voz que puede usar y el tipo de voz es algo más complejo. Para un proyecto basico, sobra con esto. Si tienes alguna duda, pinchame un poco ;) Se me olvidaba, hay otras formas de hacerlo hablar, sin usar un objeto "Merlin:IAgentCtlCharacter" pero he observado que despues no lo puedes hacer callar (te da un error en ejecución), por eso trabajo con el objeto IAgetCtlCharacterSuMadreTambien ;) Saludos. |
Muchas Gracias a todos los que me han ayudado, especialmente a LEPE y a GERMAN.
He confeccionado un programita sencillo y me ha funcionado correctamente. El ayudante aparece, desaparece, habla, etc. esto me sirve como base para utilizarlo en cosas mas complejas. A continuación les describo: - Realicé las Instalaciones en el orden que Germán explica, busqué los archivos necesarios utilizándo sus enlaces. - Despues en Delphi, Importé el ActiveX Microsoft Agent 2.0 mediante el menú component\Import Active X Control...\y lo seleccioné de la lista y click en install. - El la Paleta de componentes en la pestaña de Active X del delphi aparece un Componente llamado Agent. - Confeccioné el programa guiándome por el que aparece elaborado por Lepe anteriormente y algunas cosas tomadas del artículo de la sección de columnas de este club delphi elaborado por Jorge. A continuación les describo el Programa: En el Formulario Inserté un agent y 5 botones (ShowMessage/Opciones/Mostrar/Hablar/Ocultar/Cerrar) A continuación el código completo: ------------------------------------------------------- unit Main; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Buttons, OleCtrls, AgentObjects_TLB, uAgentMessage, StdCtrls, contnrs; type TfrmMain = class(TForm) btnShowMessage: TSpeedButton; Agent: TAgent; ButtonOpciones: TButton; ButtonMostrar: TButton; ButtonHablar: TButton; ButtonOcultar: TButton; ButtonCerrar: TButton; procedure FormShow(Sender: TObject); procedure btnShowMessageClick(Sender: TObject); procedure ButtonOpcionesClick(Sender: TObject); procedure ButtonMostrarClick(Sender: TObject); procedure ButtonHablarClick(Sender: TObject); procedure ButtonOcultarClick(Sender: TObject); procedure ButtonCerrarClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var frmMain: TfrmMain; Agente:String; implementation {$R *.DFM} procedure TfrmMain.FormShow(Sender: TObject); begin Agente:='Genie'; Agent.Characters.Load(Agente, Agente+'.acs'); end; procedure TfrmMain.btnShowMessageClick(Sender: TObject); begin ShowAgentMessage(Agent, 'Hola, Esta es una prueba del Microsoft Office Agent, en Delphi', btnShowMessage, True); end; procedure TfrmMain.ButtonOpcionesClick(Sender: TObject); begin Agent.ShowDefaultCharacterProperties(10,10); end; procedure TfrmMain.ButtonMostrarClick(Sender: TObject); begin with agent do If not visible then Characters.Item[Agente].Show(0); end; procedure TfrmMain.ButtonHablarClick(Sender: TObject); begin Agent.Characters.ITem[Agente].Speak ('Hola',''); end; procedure TfrmMain.ButtonOcultarClick(Sender: TObject); begin with agent do if not visible then Characters.Item[Agente].Hide(0); end; procedure TfrmMain.ButtonCerrarClick(Sender: TObject); begin Close; end; end. ----------------------------------------------------------- He estado probándo algunas cosas, pero como dice Lepe, la documentación sobre esto es escasa, por ejemplo sería interesante darle vida y mostrar las distintas secuencias de animaciones, pero ni modo no he podido. solo mostrarlo, moverlo, ocultarlo, hablar, en fin cosas básicas. Estoy seguro que algo aparecerá mas adelante. Gracias de nuevo, especialmente a Lepe y a Germán |
Para saber las animaciones, fíjate que en la página que te puse para descargar personajes (http://www.msagentring.org/chars.htm), que hay un enlace "Character Details..." que muestra todas las posibles de cada personaje.
También he encontrado este código para obtener la lista de animaciones de un caracter, aunque no lo he probado: Código:
procedure tForm1.GetAnimationList(IAChar:IAgentCtlCharacterEx;Ts:TStrings); |
Gracias de Nuevo a Germán
Ya he buscado las animaciones de los personajes en "Character Details..." y está todo muy claro, por ejemplo para (Genie) están: Acknowledge Alert Announce Blink Confused Congratulate Congratulate_2 Decline DoMagic1 DoMagic2 DontRecognize Explain GestureDown GestureLeft GestureRight GestureUp GetAttention GetAttentionContinued GetAttentionReturn Greet Hide Idle1_1 Idle1_2 Idle1_3 Idle1_4 Idle1_5 Idle1_6 Idle2_1 Idle2_2 Idle2_3 Idle3_1 LookDown LookDownBlink LookDownReturn LookLeft LookLeftBlink LookLeftReturn LookRight LookRightBlink LookRightReturn LookUp LookUpBlink LookUpReturn MoveDown MoveLeft MoveRight MoveUp Pleased Process Read ReadContinued ReadReturn RestPose Sad Search Show StartListening StopListening Suggest Surprised Think Uncertain Wave Write WriteContinued WriteReturn -------------------------------------- Hearing_1 Hearing_2 Hearing_3 Hearing_4 Idle3_2 Processing Reading Searching Thinking Le he agregado a mi programa otro botón con el siguente código asociado: procedure TfrmMain.ButtonAnimacionClick(Sender: TObject); begin Agent.Characters.ITem[Agente].Play('Read'); end; Y ha funcionado estupendamente. Solo me queda probar si cuando se distribuye el instalador, el ayudante se agrega en el ejecutable. |
Al final vamos a hacer que baile y todo ;)
He encontrado alguna cosita más sobre el bichito, así, que aquí estoy de nuevo :). Merlin, debe estar declarado como IAgentCtlCharacter o tambien usa la opción de Buscar y Reemplazar de Delphi: Busca: Merlin Sustituye por : Agent1.Characters['Merlin'] Se trata de usar "etiquetas" dentro del texto que ha de hablar. No modifica la configuración predefinida, sólo el texto que se esté enviando en el comando Speak. Con estas etiquetas puedes: - Modificar el volumen con el que habla. - Cambiar la forma de hablar: entre susurro, modo normal y monótono. - Cambiar el número de palabras por minuto que ha de hablar. - Mostrar y Ocultar el personaje sin animación. - Poder realizar un Diccionario personalizado, así cuando le envies el texto "Mb" pronuncie "Megabait" - Realizar una Pausa mientras está hablando. Pega este codigo dentro de un botón y verás el resultado. Lo he puesto en varias líneas, para que puedas ejecutarlas independientemente. (He cortado las lineas de texto porque son muy grandes)
A disfrutar con el agonía este jejejejeje. Saludos |
Bailar... no se... pero hacerle cantar "cumpleaños feliz" ¡¡¡seguro!!!:
Merlin.Speak('\chr="monotone"\\spd=130\\pit=65\Cuuum\pit=65\plee\pit=83\aaaaaaa\pit=65\ñoooos...\spd =55\\pit=87\feeeee\pit=82\liiiiiiz.') :D :p :D :p :D :p :D :p :D Salu2. |
Por petición de un compañero del foro, he creado un proyecto al completo donde reuno todo lo hablado hasta ahora (excepto las animaciones)
Lo único imprescindible, es tener el control ActiveX disponible en la paleta de delphi. Saludos |
Muchísimas gracias, Lepe, yo estaba muy interesado en el proyecto. Cuando necesites algo, ya sabes, aquí estoy.
|
Nuevas noticias
http://www.delphiforfun.org/Programs/TextToSpeech.htm No perdais de vista esta web con fuentes en delphi para poder elegir el tipo de voz e idioma de nuestros Personajes, permite adulto espanol masculino y femenino y muchos otros en ingles. Gracias a Neftali por dar este Link. En realidad lo dio para un hilo donde se hablaba de algoritmos de cortes (carpinteria). Pero ha sido muy grato encontrar tambien este tema. Saludos de nuevo. |
Que el Agente hable en español y no con acento Ingles
saludos compñeros;
Soy nuevo en el foro, pero viejo programando en Delphi. recien he estado trabajando sobre este Tema de MSAgent para usarlo en nuestras aplicaciones. En fin busque y busque, y las busquedas resultaban infructuosas hasta que llegue a la documentación de Microsoft sobre MSAgent y alli encontre como, bueno tuve que leer y traducir y probar, hacer que nuestros personajes hablen en español y no con acento ingles. Aqui les dejo el codigo, yo lo coloque en el FormCreate, deseo que les sirva de provecho como fue para mi. Se parte del supuesto que tienen instalado todo lo necesario para trabajar con MSAgent ... Agent1.Connected := True; Agent1.Characters.Load('Lorito', 'Peedy.acs'); //ESTO COLOCA EL IDIOMA EN ESPAÑOL //Para establecer el Idioma; Agent1.Characters.Character('Lorito').Set_LanguageID($0C0A); //Para establecer el ID del TTS en español, es la Voz de Julio Agent1.Characters.Character('Lorito').TTSModeID := '{2CE326E1-A935-11d1-B17B-0020AFED142E}'; // Associar o agente à variável Agente Agente := Agent1.Characters['Lorito']; .... "El Hombre Inteligente no es aquel que lo sabe todo sino aquel que sabe aplicar lo poco que sabe" Silver Stone |
La franja horaria es GMT +2. Ahora son las 21:35:39. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi