Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

MSAgente desde Builder

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: MSAgente desde Builder Responder citando

Hola:
Alguind puede facilitarme un ejemplo de como usar MSAgente desde Builder para crear agentes animados

salu2
reinaldo
email: rigonzalez@iname.com

Volver arriba
Mensaje    Asunto: MSAgente desde Builder Responder citando

Hola Reinaldo:

Teniendo en cuenta que MSAgent esta correctamente instalado en la maquina, incluido el idioma necesario y como mínimo el personaje "Merlin". Aquí va la unit de ejemplo de como se puede manejar. Creamos un nuevo Form y le añadimos un botón:

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
// Hay que añadir #include <Comobj.hpp> para BCB3,4y5
// o bien #include <oleauto.hpp> para BCB1
#include <Comobj.hpp>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
Variant oAgent, oCharacters, oMerlin;
bool AgentPresent = false;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
    // Inicializamos
    oAgent = CreateOleObject("Agent.Control.1");
    AgentPresent = !oAgent.IsEmpty();
    if (AgentPresent)
    {
        oAgent.Exec(PropertySet("connected") << true);
        // Cargamos un caracter/muñequito
        oCharacters = oAgent.Exec(PropertyGet("Characters"));
        oCharacters.Exec(Procedure("Load") << "Merlin");
        oMerlin = oAgent.Exec(PropertyGet("Characters") << "Merlin");

        // Habilitamos los efectos de sonido [opcional]
        oMerlin.Exec(PropertySet("SoundEffectsOn") << true);
        // Lo movemos
        oMerlin.Exec(Procedure("MoveTo") << 800 << 600);
        // Mostramos el muñequito
        oMerlin.Exec(Procedure("Show"));
        // Lo movemos visible, se ve como vuela Wink
        oMerlin.Exec(Procedure("MoveTo") << 0 << 0);
    }
}
//---------------------------------------------------------------------------
__fastcall TForm1::~TForm1()
{
    oCharacters = Unassigned;
    oMerlin = Unassigned;
    oAgent = Unassigned;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    if (AgentPresent)
    {
        // Ejecutamos una animación (hay muchisimas diferentes)
        // (read, alert, announce, confused, explain, reading, write, etc...)
        oMerlin.Exec(Procedure("Play") << "read");
        // Hacemos que hable
        oMerlin.Exec(Procedure("Speak") << "Esto es una prueba.");
    }
}
//---------------------------------------------------------------------------

Espero que al menos te sirva como pista para empezar. También puedes instalar el ActiveX que incluye el paquete MSAgent, pero esto ya se sale del ejemplo sencillo que trato de mostrar.

Saludos.
_Leo

Volver arriba
Mensaje    Asunto: MSAgente desde Builder Responder citando

Mil gracias, todo se resumio a corta y pega del codigo que me enviaste

salu2
reinaldo

Volver arriba
Mensaje    Asunto: Responder citando

_Leo, una pregunta por si llegas a leer este post, estoy viendo que en versiones posteriores de Office, no existe ya el asistente de Merlin, pero si la opcion de poder usar la voz, dentro de programas, usando SAPI5

Pero al buscar informacion dentro de la Red, me salta el error de compilacion, de un archivo que se requiere que es SAPI.LIB,

genero la cabecera correspondiente

Código:
#include <vcl>
#pragma hdrstop

#include "Unit3.h"
#include <sapi>
#include <ComObj>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm3 *Form3;
//---------------------------------------------------------------------------


y dentro de un boton establesco el siguiente código.

Código:
//---------------------------------------------------------------------------
void __fastcall TForm3::Button1Click(TObject *Sender)
{
   ISpVoice * pvoice = NULL;
   if   (FAILED(::CoInitialize(NULL)))
        return ;

   HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pvoice);
   if( SUCCEEDED( hr ) )
   {
      hr = pvoice->Speak(L"Prueba de Voz", 0, NULL);
      pvoice->Release();
      pvoice = NULL;
   }
::CoUninitialize();

//}

y al compilar, me marca que no existe el archivo SAPI.LIB

Bien, tambien he realizado las siguientes operaciones

he ido a: http://www.microsoft.com/msagent/downloads/user.asp

y descargado

1. MS Agent Core Component
2. Text-to-speech engine
3. SAPI 4 Runtime binaries

he instalado los paquetes y Dentro del Builder, (BDS2006) he realizado lo siguiente

Cita:
Menu-Componentes, Import Component - Activex Control


Busco el Nombre de la Class en el area como
TTextToSpeach (Que viene dentro de Microsoft Voice Text)

Genero la información, y segun la version de builder, indico la paleta donde deseo que aparezca el componete, el cual no se presenta, algún paso, se me ha de haber pasado algo.

ahora bien, mi pregunta concreta es: ¿Existe alguna otra manera de reproducir Voz usando la parte del MicroSoft Speech SDK 5.1?

esto es que no me gustaria usar componentes de terceros para ello, por aquello de la portabilidad en sistemas anteriores

el Sistema que uso es
Windows XP,
Compilador:
BDS2006
y el paquete:
MicroSoft Speech SDK 5.1
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Bien he podido compilar, el programa sin ningun problema al copiar la sapi.lib que viene dentro del directorio despues de haber instalado los paquetes posteriormente arriba mencionados, al directorio donde esta la generacion de mi aplicacion, para que el proceso de "Linker" lo tome.

Código:
C:\Archivos de programa\Microsoft Speech SDK 5.1\Lib\i386


el cual he bajado de

http://www.microsoft.com/downloads/details.aspx?FamilyId=5E86EC97-40A7-453F-B0EE-6583171B4530&displaylang=en

el error generado al recompilar es fue el siguiente

Código:
[Linker Error] Error: 'D:\H2W\ARCHIVOS DE PROGRAMACION\ARCHIVOS DE BORLAND C++ BUILDER\SAPI\DEBUG_BUILD\SAPI.LIB' contains invalid OMF record, type 0x21 (possibly COFF)


para corregir este error, he realizado lo siguiente usando el comando
Coff2omf.exe que trae el builder de la siguiente manera

Código:
coff2omf sapi.lib sapifix.lib


borrando sapi.lib y renombrando sapifix.lib a sapi.lib, se corrige,

pero soy sincero, NO ME GUSTA como habla el dicho MS SAM, existe alguna manera de corregir, y que se escuche en un BUEN Español-Castellano?

por la atencion Gracias...
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Habían creo que en la web de Microsoft (no recuerdo exactamente donde) un par de voces en español, creo que se llaman Carmen y Julio. Aunque no tienen mucha calidad, pero suenan mejor que la voz por defecto que creo que es solo para ingles.

Luego hay un montón de voces de pago para el SAPI de Microsoft, las mejores que he oído son las de AT&T. Tienen dos voces en español bastante realistas, los nombres son Rosa y Alberto:

Aquí se pueden escuchar como suenan:

http://www.naturalvoices.att.com/
http://www.naturalvoices.att.com/products/tts_data.html
http://www.wizzardsoftware.com/att_demo.php
http://www.research.att.com/~ttsweb/tts/demo.php

Luego hay varios proyectos gratuitos con voces bastante buenas con sus propios APIs, pero todo esto lo probé hace mucho tiempo y ahora mismo no recuerdo exactamente los nombres.. aparte de que estoy un poco liado en otros temas..
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias por la información _Leo, he instalado las voces de Carmen Y julio, a si mismo he cambiado algunas opciones, en el programa, que ya se me ha metido como una bala en la cabeza tengo un pequeño detalle con que no puedo jalar las voces de Carmen y julio, pero eso es ya un poco de trabajo de mi parte.

Gracias, por todo.

Saludos y es bueno saber que los Administradores siempre están pendientes del Foro.
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Ayuda text to speech Responder citando

Hola gente..
hablando de este tema, hace un tiempo use el active X de text to speech y me funciono perfecto, el problema fue q cuando lo abria en una maquina que no tenia el OCX nisiquiera abria el proyecto...
EL problema es que incluyo el objeto desde el inicio...
como haria para verificar si tiene el OCX antes de tratar de inicializar el objeto?? para que si no la encuentra el programa corra igualmente?

Salu2!!!
_________________
Read what I mean, not what I write!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Pues no es gran ciencia lo que indicas, pues lo unico que hay que hacer
es deshabilitar el RTL de link y crear el programa desmarcando los packages, en muchas opciones del foro se ha mencionado de como INTEGRAR los componenetes que se incrementan dentro de un EXE.

Recordar tambien, que debe ir el OCX creado por ti, yo tuve la necesidad de hacerlo componente un poco RUDO pero funcional, instalar el SAPI5 en la maquina esto es por demas decirlo e Instalar las voces de Carmen que es Castellano-España y la de Esperanza que es Castellano-Latinoamerica.

no he tenido problemas en reproducir texto. aun que claro siempre aparece el famoso SAM que cada vez que lo escucho, siento que mi máquina se le mete un demonio y esta poseida por el SAM, jejej por ello prefiero mejor usar a Carmen o a Esperanza, estas ultimas como me ha mencionado _Leo, son de AT&T y funcionan muy bien aun que sean de prueba.
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Sip... claro que en todos mis proyecto desahabilito el RTL para que corra en las demas PC q no tienen builder instalado, de igual forma los packetes, pero aun asi no se me integra el OCX...
Sip por ahi estuve viendo las voces de prueba de At&t y parecen muy reales.

Si hay alguna idea de como puedo solucinar eso...
a decir verdad no es algo q este haciendo ahora, fue algo que hice hace mucho tiempo que cuando, y recuerdo que cuando lo copie a otro pc no corrio, entonces recuerdo que me toco hacer 2 versiones de programa uno con TTS y otro sin, por que hasta ahora no se como hacer.

Salu2!
_________________
Read what I mean, not what I write!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Pues lo unico que hice, fue crear un Componente como dice la ayuda de Microsoft y posteriormente este componentes instalarlo.

cuando compilo el componente tambien se incorpora al programa, puede que lo hayas echo sin crear el componente y ese sea el problema.
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Bien gracias!!!
voy a ver si un dia de estos intento algo y comento como me fue!!
_________________
Read what I mean, not what I write!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.