 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
reinaldo Invitado
|
Publicado: Mie 31 Ene, 2001 6:55 pm Asunto: MSAgente desde Builder |
|
|
Hola: Alguind puede facilitarme un ejemplo de como usar MSAgente desde Builder para crear agentes animadossalu2 reinaldo email: rigonzalez@iname.com |
|
| Volver arriba |
|
 |
_Leo Invitado
|
Publicado: Vie 02 Feb, 2001 12:05 pm Asunto: MSAgente desde Builder |
|
|
| 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  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 |
|
 |
reinaldo Invitado
|
Publicado: Sab 03 Feb, 2001 10:44 pm Asunto: MSAgente desde Builder |
|
|
| Mil gracias, todo se resumio a corta y pega del codigo que me enviaste salu2 reinaldo |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mar 22 May, 2007 8:10 am Asunto: |
|
|
_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 _________________
 |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mar 22 May, 2007 9:54 am Asunto: |
|
|
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... _________________
 |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mie 23 May, 2007 2:23 am Asunto: |
|
|
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 |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mie 23 May, 2007 11:37 am Asunto: |
|
|
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. _________________
 |
|
| Volver arriba |
|
 |
Cri_sys Master


Registrado: 13 Feb 2004Mensajes: 198Ubicación: Maringá, Brazil
|
Publicado: Vie 09 Nov, 2007 2:33 pm Asunto: Ayuda text to speech |
|
|
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 |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Vie 09 Nov, 2007 11:18 pm Asunto: |
|
|
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. _________________
 |
|
| Volver arriba |
|
 |
Cri_sys Master


Registrado: 13 Feb 2004Mensajes: 198Ubicación: Maringá, Brazil
|
Publicado: Lun 12 Nov, 2007 9:11 pm Asunto: |
|
|
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 |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Lun 12 Nov, 2007 10:41 pm Asunto: |
|
|
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. _________________
 |
|
| Volver arriba |
|
 |
Cri_sys Master


Registrado: 13 Feb 2004Mensajes: 198Ubicación: Maringá, Brazil
|
Publicado: Mie 14 Nov, 2007 11:51 am Asunto: |
|
|
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 |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|