Compartir a través de


Preguntas más frecuentes sobre scripting de programación

[Microsoft Agent está en desuso a partir de Windows 7 y puede no estar disponible en versiones posteriores de Windows].

Cuando uso Microsoft Visual Basic (u otras herramientas de desarrollo) para crear scripts de Microsoft Agent, no veo todas las propiedades y eventos usados en los ejemplos. Cómo acceder a ellos?

La mayoría de los eventos, métodos y propiedades admitidos por el control Microsoft Agent solo se exponen en tiempo de ejecución. Consulte Programación del control de Microsoft Agent para obtener más información.

La etiqueta Map (o alguna otra etiqueta) no parece funcionar.

Algunas etiquetas incluyen cadenas entre comillas. Para algunos lenguajes de programación, como Microsoft Visual Basic y Visual Basic Scripting Edition, es posible que tenga que usar dos comillas para designar el parámetro de la etiqueta o concatenar un carácter de comilla doble como parte de la cadena. Este último se muestra en este ejemplo de Visual Basic:

Agent1.Characters("Genie"). Diga "This is \map=" + chr(34) + "Spoken text" _ + chr(34) + "=" + chr(34) + "Balloon text" + chr(34) + "\".

Para la programación de C, C++y Java, precede a las barras diagonales inversas y las comillas dobles con una barra diagonal inversa. Por ejemplo:

BSTR bszSpeak = SysAllocString(L"This is \\map=\"Spoken text\"=\"Balloon text\"\\");

pCharacter-Speak>(bszSpeak, ......);

Nota

Microsoft Agent no admite todas las etiquetas especificadas en Microsoft Speech API. Además, la compatibilidad con algunos parámetros puede depender del motor de texto a voz instalado. Para obtener más información, consulte Etiquetas de salida de voz de Microsoft Agent.

 

Parece que no obtengo eventos RequestStart y RequestComplete en mi script (o programa).

Esto puede deberse a uno de los siguientes problemas:

  • El lenguaje de programación no admite totalmente los controles ActiveX. Compruebe la documentación para asegurarse de que admite la interfaz ActiveX y los eventos de los objetos ActiveX.
  • En una página web con scripts, otro control no se pudo instalar o cargar. Compruebe que todos los demás controles están instalados y se cargan correctamente sin Microsoft Agent.
  • En una página web con scripts con marcos, tiene la <OBJECT> etiqueta para el control Microsoft Agent en una página y los eventos scripted en otra página. Los eventos solo se envían a la página que hospeda el control.

Estoy usando el control de Microsoft Agent con otros controles ActiveX en mi página web y no parecen obtener ningún evento.

Compruebe si los demás controles están instalados correctamente. Si otro control ActiveX no se puede registrar correctamente, el control de Microsoft Agent puede recibir sus eventos.

¿Qué lenguajes de programación puedo usar para programar el control de Microsoft Agent?

Microsoft Agent debe ser compatible con cualquier idioma que admita la interfaz ActiveX. Incluye ejemplos de código para Visual Basic, VBScript, JScript, C/C++y Java.

¿Puedo acceder a los parámetros devueltos desde Microsoft Agent mediante JScript?

Sí, pero actualmente la única manera de hacerlo es usar la <SCRIPT LANGUAGE="JScript" FOR="*object*" EVENT="event()"> sintaxis . Aunque esta sintaxis es compatible con Microsoft Internet Explorer, otros exploradores no lo admiten, por lo que es posible que quiera evitar el uso de JScript para esta parte del script de la página.

¿Se puede usar Microsoft Agent con motores de reconocimiento de voz o síntesis de voz (texto a voz o TTS) distintos de los proporcionados por Microsoft?

Sí, siempre que el motor admita las interfaces de Microsoft Speech API (SAPI) 4.0 requeridas por Microsoft Agent. Consulte con el proveedor del motor. Para obtener información completa sobre las interfaces de SAPI requeridas por Microsoft Agent, consulte Requisitos de compatibilidad del motor de voz.

Mi página incluye etiquetas de objeto HTML para Microsoft Agent, lernout & motor TTS de Hauspie TruVoice y el motor de reconocimiento de voz de comando y control de Microsoft, pero no todos los componentes se instalan.

Normalmente, el problema se puede corregir actualizando la página. Como práctica general, es mejor especificar primero la etiqueta Control de <OBJECT> Microsoft Agent, luego el motor Lernout & Hauspie TruVoice y, a continuación, el motor de reconocimiento de voz comando y control.

Después de llamar al método MoveTo, mi carácter parece inmovilizarse aunque tengo animaciones Devueltas asignadas a animaciones de estado en movimiento.

Al reproducir una animación, los servicios de animación continúan mostrando su último fotograma hasta que se llama a otra animación. Por lo tanto, debes reproducir otra animación después de llamar a MoveTo. Si ha definido una animación De retorno para la animación de estado en movimiento, el servidor lo reproducirá primero.

Cuando se consulta la propiedad Pitch del carácter, devuelve un valor de -1.

Esto ocurre si el carácter se ha compilado mediante la propiedad pitch predeterminada del motor de voz; es decir, el tono no se cambió cuando se creó el carácter.

Cuando mi código intenta establecer el identificador de modo TTS para un motor de texto a voz, obtengo el siguiente error: No se puede realizar una llamada saliente, ya que la aplicación envía una llamada sincrónica de entrada.

Para establecer la propiedad TTSModeID, debe tener Speech.dll instalado. Normalmente, esto forma parte del código de instalación del motor de voz. También puede instalarlo instalando el panel de control de objetos de voz , disponible en la página Descargas del Agente de Microsoft.

Al volver a intentar cargar un carácter que no se pudo cargar, se produce un error en la llamada con un error "Carácter ya cargado".

El control Microsoft Agent no descarga un objeto de carácter (libera la referencia) cuando su archivo de caracteres asociado no se puede cargar. Si desea volver a intentar cargar el carácter, debe llamar explícitamente a Unload antes de llamar a Load la segunda vez. Si intenta hacerlo desde un script de página web, también debe preceder a la llamada Unload con una instrucción On Error Resume Next o también se producirá un error en la llamada a Unload . (Tenga en cuenta que JScript no tiene ninguna instrucción On Error Resume Next).

Sin embargo, es posible que no tenga que incluir código para reintentar inmediatamente la carga de un carácter cuando el archivo no se puede cargar. Microsoft Internet Explorer y el componente de servidor de Microsoft Agent intentan reintentar automáticamente varias veces, por lo que las posibilidades de que el reintento genere una carga correcta son remotas. Una mejor estrategia es esperar (establecer un temporizador) unos segundos antes de reintentar.

¿Cómo puedo instalar Microsoft Agent como parte de mi aplicación o desde mi servidor web?

Puede instalar el Agente desde el sitio web de Microsoft incluyendo su CLSID en una etiqueta de objeto HTML. Sin embargo, si desea incluir e instalar el Agente desde su propio programa de instalación de aplicaciones o desde su propio servidor, debe descargar el archivo de gabinete de instalación automática del Agente de Microsoft, descárguelo desde la página Descargas. Al descargar, elija la opción Guardar del explorador en lugar de Ejecutar. Cada vez que se ejecute este archivo, instalará automáticamente Microsoft Agent en el equipo de destino. Por lo tanto, puede especificar el archivo en el script de instalación.

No intente instalar Microsoft Agent copiando sus diferentes . Archivos DLL e intentos de registrarlo usted mismo. No se admite el intento de instalar el Agente por cualquier otro medio y, a continuación, no se admite la ejecución de su archivo de gabinete de instalación automática.

El sistema de destino también debe incluir versiones recientes de MSVCRT.DLL (tiempo de ejecución de VC++), REGSVR32.EXE (herramienta de registro incluida con Microsoft VC++) y COM. La mejor manera de asegurarse de que se instalan las versiones correctas es requerir que microsoft Internet Explorer 3.02 o posterior esté instalado. Sin embargo, también puede conceder licencias a estos requisitos en tiempo de ejecución. (Para la versión más reciente de COM, acceda a la actualización DCOM desde el sitio web de Microsoft).

Microsoft Agent 2.0 no se instalará en Microsoft Windows 2000, ya que esta versión del sistema operativo ya incluye el Agente.

¿Puedo usar el Asistente para instalación de Visual Basic para instalar Microsoft Agent?

Aunque puede crear su propio programa de instalación con código de Visual Basic (VB), no puede usar el Asistente para la instalación de Visual Basic para hacerlo. Para instalar el Agente desde VB, puede usar el comando Shell, especificando el archivo de archivador autoinstalado de Microsoft Agent.

Cómo instalar Microsoft Agent en Windows 2000?

Microsoft Agent 2.0 no se instala en Windows 2000 porque ya está incluido como parte del sistema operativo.

AgentSvr se bloquea cuando se llama a Speak con un archivo WAV.

Esto puede dar lugar cuando el carácter ha estado usando TTS para la salida hablada y, a continuación, cambia para usar un archivo WAV. El texto no se proporcionó en el primer parámetro del método Speak.

Para evitar el bloqueo, incluya un carácter de espacio en el primer parámetro del método Speak, incluso si no tiene ninguna salida de texto.

Aunque ya he instalado el componente de idioma del Agente (DLL) para un idioma determinado, todavía tengo un error que indica que falta el componente al establecer el idioma del carácter en ese idioma.

Esto suele ocurrir cuando tiene aplicaciones del Agente como Microsoft Office 2000 abiertas al instalar el componente de lenguaje del Agente. Cierre todas las aplicaciones e inténtelo de nuevo. Si el problema persiste, reinicie el equipo y debería poder establecer el identificador de idioma ahora.

Cuando utilizo el símbolo "&", se trunca el texto alrededor del símbolo en los globos de palabras del carácter.

Este es un problema conocido. Puede solucionarlo mediante la etiqueta de mapa. Por ejemplo, para mostrar "A & B" en el globo de palabras del carácter, use "A \map="and"="&&\B" en la instrucción Speak.

Mi aplicación permite a los usuarios cambiar el carácter predeterminado y, cuando lo hacen, el programa se bloquea.

Hay dos causas posibles:

Si cambia el identificador de modo TTS del carácter predeterminado y, a continuación, permite al usuario cambiar el carácter predeterminado a través de ShowDefaultCharacterProperties, AgentSvr se bloqueará.

Este problema se ha corregido en los sistemas operativos Windows 2000 y Windows XP. Para evitar el bloqueo en otras plataformas, no debe permitir que el usuario cambie el carácter predeterminado después de cambiar el identificador de modo TTS del carácter predeterminado o no use el carácter predeterminado en la aplicación o página web.

Si la aplicación no usa caracteres del Agente proporcionados por Microsoft, asegúrese de que el carácter personalizado usa una paleta con una paleta completa de 256 colores. Para obtener más información, consulte el documento Designing Characters for Microsoft Agent (Diseño de caracteres para Microsoft Agent).

Mi página carga el carácter agente de varios fotogramas. Con IE 5, obtengo el error de carga del Agente de Microsoft.

Se trata de un problema conocido con IE 5. Se ha producido un cambio en el modo en que el explorador controla un determinado evento, lo que hace que el script HTML empiece a ejecutarse antes de que se inicie AgentSvr. Para que la página funcione con todas las versiones del explorador, debe agregar esta línea al script:

AgentControl.Connected = True

que crea explícitamente una conexión con AgentSvr. Tenga en cuenta que solo tiene que hacerlo si la página carga el Agente desde varios fotogramas.

Cuando mi aplicación intenta instalar Microsoft Agent en Windows 2000 (o Windows XP), obtengo el error que el Agente no es compatible con Windows 2000 (o Windows XP).

Una versión anterior del archivo de contenedor del componente principal del agente MSAGENT.exe, cuando se ejecuta en Windows 2000 (y Windows XP), bloqueará la instalación y mostrará un mensaje de error inexacto que el Agente no es compatible con la versión del sistema operativo que está ejecutando. De hecho, los componentes principales de Microsoft Agent 2.0 se incluyen como parte de Windows 2000 (y Windows XP) y ya están instalados de forma predeterminada a través de la configuración de Windows.

En esta versión, se quita la comprobación y el archivo de instalación no mostrará el mensaje de error mencionado anteriormente en Windows 2000 (o Windows XP). Tenga en cuenta que este es el único cambio en el archivo de instalación y no hay cambios de código en los propios componentes principales del agente. Por lo tanto, esta actualización no se ve afectada si ya tiene instalado el Agente 2.0 o si el sitio web usa una etiqueta de objeto para desencadenar descargas automáticas de los componentes principales del Agente desde Microsoft Object Store.

Si incluye el archivo de instalación del componente principal del agente con la aplicación, o si publica el archivo de instalación en el servidor, puede descargar esta actualización. Para ello, haga clic aquí y seleccione la opción "Guardar este programa en disco". Debe tener una licencia de distribución del Agente válida y actual para estas circunstancias.

Como alternativa, también puede solucionar este problema mediante la opción silenciosa al instalar la versión anterior del archivo de instalación de MSAGENT.exe. El comando shell es:

MSAGENT.exe /q:a

Lo mismo se aplica a los componentes del lenguaje Agent que se publicaron originalmente en octubre de 1998. Hubo una comprobación que impediría que los componentes árabe, francés, alemán, hebreo, italiano, japonés, coreano, chino simplificado, español y chino tradicional se instalaran en Windows 2000 (y Windows XP). Las versiones más recientes de estos archivos de instalación, junto con los 19 idiomas adicionales agregados en marzo de 2000, no contienen esta comprobación y se instalarán correctamente en Windows 2000 (y Windows XP).

Mi personaje personalizado muestra un comportamiento inesperado con su color de transparencia en Windows 2000 (y Windows XP).

Se trata de un problema conocido para los caracteres creados con una paleta de menos de 256 colores. Los problemas con estos caracteres incluyen el color de transparencia que se muestra en el fondo, el texto del globo transparente, el borde del globo transparente o el fondo del globo transparente. Tenga en cuenta que estos caracteres pueden hacer que las aplicaciones se bloquee cuando se carguen en el cuadro de diálogo selector de caracteres del Agente o en la galería del Asistente de Microsoft Office. Los caracteres personalizados deben usar una paleta completa con 256 colores. Puede usar la paleta de ejemplo proporcionada para los caracteres del Asistente para Office como punto de partida con una paleta de colores completa de 256.

El carácter no usa el motor TTS inglés británico aunque he establecido su identificador de idioma en inglés británico &h0809.

En primer lugar, asegúrese de que tiene instalados todos los componentes necesarios: componentes principales del agente, los archivos binarios de tiempo de ejecución de SAPI y un motor de TTS inglés británico compatible con SAPI4, como el motor inglés británico TTS3000, disponible para su descarga en la página Descargas del agente. Si tu personaje sigue sin usar el motor TTS inglés británico, es probable que también tengas instalado un motor TTS inglés americano. Dado que tanto inglés británico como americano comparten el mismo idioma principal (inglés) y inglés americano es el valor predeterminado, el agente elegirá el primer motor de TTS inglés americano disponible tal como lo devuelve SAPI. Para usar un motor TTS inglés británico, utilice la propiedad TTSModeID del carácter en su lugar. Por ejemplo, el TTSModeID para la voz masculina inglesa TTS3000 es {227A0E41-A92A-11d1-B17B-0020AFED142E}. En Microsoft Visual Basic, puede usar este motor estableciendo TTSModeID de Merlin de la siguiente manera:

AgentControl.Characters("Merlin"). TTSModeID = {227A0E41-A92A-11d1-B17B-0020AFED142E}

Cuando el volumen del carácter se establece en cero mediante la etiqueta de voz \Vol=0\, no tiene efectos ni bloquea AgentSvr.

Se trata de un problema conocido. En los sistemas operativos Windows 95, Windows 98 y Windows Me, el volumen del carácter no cambia, pero permanecerá en el nivel establecido anteriormente. En las plataformas Windows NT 4.0, Windows 2000 y Windows XP, esto hará que AgentSvr se bloquee, incluso cuando no esté instalado un motor de TTS. Dado que el intervalo del volumen del carácter, de 0 (silencio) a 65535 (volumen máximo), es grande y la diferencia entre los niveles sucesivos es difícil de distinguir, la solución fácil consiste en establecer el volumen en 1 en lugar de 0 cuando se quiere que la voz del carácter sea inaudible.

La animación Return de mi personaje personalizado no se reproduce correctamente después de las animaciones MoveDown, MoveLeft, MoveRight o MoveUp.

Asegúrese de que se asigna una animación de habla simple al estado de habla. Por ejemplo, puede usar un único fotograma que consta de la posición neutra del carácter con superposiciones de boca.