Compartilhar via


Perguntas frequentes sobre scripts de programação

[O Microsoft Agent foi preterido a partir do Windows 7 e pode estar indisponível nas versões subsequentes do Windows.]

Quando uso o Microsoft Visual Basic (ou outras ferramentas de desenvolvimento) para scripts do Microsoft Agent, não vejo todas as propriedades e eventos usados em seus exemplos. Como fazer acessá-los?

A maioria dos eventos, métodos e propriedades compatíveis com o controle do Microsoft Agent são expostos somente em tempo de execução. Consulte Programação do Controle de Agente da Microsoft para obter mais informações.

A marca Mapa (ou alguma outra marca) não parece funcionar.

Algumas marcas incluem cadeias de caracteres entre aspas. Para algumas linguagens de programação, como Microsoft Visual Basic e Visual Basic Scripting Edition, talvez seja necessário usar duas aspas para designar o parâmetro da marca ou concatenar um caractere de aspas duplas como parte da cadeia de caracteres. Este último é mostrado neste exemplo do Visual Basic:

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

Para programação C, C++e Java, preceda barras invertidas e aspas duplas com uma barra invertida. Por exemplo:

BSTR bszSpeak = SysAllocString(L"Isto é \\map=\"Texto falado\"=\"Texto do balão\"\\");

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

Observação

O Microsoft Agent não dá suporte a todas as marcas especificadas na API de Fala da Microsoft. Além disso, o suporte para alguns parâmetros pode depender do mecanismo de conversão de texto em fala instalado. Para obter mais informações, consulte Marcas de Saída de Fala do Microsoft Agent.

 

Não consigo obter eventos RequestStart e RequestComplete no meu script (ou programa).

Isso pode ser causado por um dos seguintes problemas:

  • Sua linguagem de programação não dá suporte total a controles ActiveX. Verifique sua documentação para garantir que ela dê suporte à interface ActiveX e eventos para objetos ActiveX.
  • Em uma página da Web com script, outro controle falhou ao instalar ou carregar. Verifique se todos os outros controles estão instalados e carregados corretamente sem o Microsoft Agent.
  • Em uma página da Web com script com quadros, você tem a <OBJECT> marca para o controle do Microsoft Agent em uma página e os eventos com script em outra página. Os eventos são enviados somente para a página que hospeda o controle .

Estou usando o controle do Microsoft Agent com outros controles ActiveX na minha página da Web e não consigo nenhum evento.

Verifique se os outros controles estão instalados corretamente. Se outro controle ActiveX não se registrar corretamente, o controle do Microsoft Agent poderá receber seus eventos.

Quais linguagens de programação posso usar para programar o controle do Microsoft Agent?

O Microsoft Agent deve ser compatível com qualquer linguagem que dê suporte à interface ActiveX. Ele inclui exemplos de código para Visual Basic, VBScript, JScript, C/C++e Java.

Posso acessar os parâmetros retornados do Microsoft Agent usando JScript?

Sim, mas atualmente a única maneira de fazer isso é usando a <SCRIPT LANGUAGE="JScript" FOR="*object*" EVENT="event()"> sintaxe . Embora essa sintaxe seja compatível com o Microsoft Internet Explorer, outros navegadores não dão suporte a ela, portanto, convém evitar o uso do JScript para esta parte do script da sua página.

O Microsoft Agent pode ser usado com mecanismos de reconhecimento de fala ou síntese de fala (conversão de texto em fala ou TTS) diferentes daqueles fornecidos pela Microsoft?

Sim, desde que o mecanismo dê suporte às interfaces da API de Fala da Microsoft (SAPI) 4.0 exigidas pelo Microsoft Agent. Verifique com o fornecedor do motor. Para obter detalhes completos sobre as interfaces SAPI exigidas pelo Microsoft Agent, consulte Requisitos de suporte do Mecanismo de Fala.

Minha página inclui marcas de objeto HTML para o Microsoft Agent, o lernout & mecanismo TTS do Hauspie TruVoice e o mecanismo de reconhecimento de fala comando e controle da Microsoft, mas nem todos os componentes são instalados.

Normalmente, o problema pode ser corrigido atualizando a página. Como prática geral, é melhor especificar a marca de Controle <OBJECT> de Agente da Microsoft primeiro, depois o mecanismo Lernout & Hauspie TruVoice e, em seguida, o mecanismo de reconhecimento de fala Comando e Controle.

Depois de chamar o método MoveTo, meu caractere parece congelar mesmo que eu tenha animações return atribuídas a animações de estado movendo.

Quando você reproduz uma animação, os serviços de animação continuam exibindo seu último quadro até que outra animação seja chamada. Portanto, você deve reproduzir outra animação depois de chamar MoveTo. Se você definiu uma animação Return para a animação de estado Movendo , o servidor a reproduzirá primeiro.

Quando consulto a propriedade Pitch do caractere, ela retorna um valor de -1.

Isso ocorrerá se o caractere tiver sido compilado usando a propriedade de tom padrão de um mecanismo de fala; ou seja, o tom não foi alterado quando o caractere foi criado.

Quando meu código tenta definir a ID do modo TTS para um mecanismo de conversão de texto em fala, recebo o seguinte erro: Não é possível fazer uma chamada de saída, pois o aplicativo está expedindo uma chamada síncrona de entrada.

Para definir a propriedade TTSModeID, você deve ter Speech.dll instalado. Normalmente, isso faz parte do código de instalação do mecanismo de fala. Você também pode instalar isso instalando o painel de controle de objeto de Fala , disponível na página Downloads do Microsoft Agent.

Quando eu tentar carregar novamente um caractere que não foi carregado, a chamada falhará com um erro "Caractere já carregado".

O controle do Microsoft Agent não descarrega um objeto de caractere (libera a referência) quando o arquivo de caracteres associado falha ao carregar. Se você quiser tentar carregar novamente o caractere, deverá chamar explicitamente Unload antes de chamar Carregar pela segunda vez. Se você tentar isso de um script de página da Web, também precisará preceder a chamada Unload com uma instrução On Error Resume Next ou a chamada Unload também falhará. (Observe que o JScript não tem nenhuma instrução On Error Resume Next.)

No entanto, talvez você não precise incluir o código para tentar novamente carregar imediatamente um caractere quando o arquivo não for carregado. O Microsoft Internet Explorer e o componente de servidor do Microsoft Agent tentam repetir automaticamente várias vezes, portanto, as chances de que sua nova tentativa resulte em uma carga bem-sucedida são remotas. Uma estratégia melhor é aguardar (definir um temporizador) alguns segundos antes de tentar novamente.

Como instalar o Microsoft Agent como parte do meu aplicativo ou do meu servidor Web?

Você pode instalar o Agent do site da Microsoft incluindo seu CLSID em uma marca de objeto HTML. No entanto, se você quiser incluir e instalar o Agent do seu próprio programa de instalação de aplicativos ou de seu próprio servidor, baixe o arquivo de gabinete de autoinstalação do Microsoft Agent baixando-o na página Downloads. Ao baixar, escolha a opção Salvar em vez de Executar do navegador. Sempre que esse arquivo for executado, ele instalará automaticamente o Microsoft Agent no computador de destino. Portanto, você pode especificar o arquivo em seu script de instalação.

Não tente instalar o Microsoft Agent copiando seus vários . DLLs e tentando registrá-lo por conta própria. Não há suporte para a tentativa de instalar o Agent por qualquer outro meio e, em seguida, não há suporte para a execução de seu arquivo de gabinete de auto-instalação.

O sistema de destino também deve incluir versões recentes do MSVCRT.DLL (runtime vc++), REGSVR32.EXE (ferramenta de registro incluída no Microsoft VC++) e COM. A melhor maneira de garantir que as versões corretas sejam instaladas é exigir que o Microsoft Internet Explorer 3.02 ou posterior esteja instalado. No entanto, você também pode licenciar esses requisitos de runtime. (Para a versão mais recente do COM, acesse a atualização do DCOM no site da Microsoft.)

O Microsoft Agent 2.0 não será instalado no Microsoft Windows 2000, pois essa versão do sistema operacional já inclui o Agent.

Posso usar o Assistente de Instalação do Visual Basic para instalar o Microsoft Agent?

Embora você possa criar seu próprio programa de instalação usando o código do Visual Basic (VB), não é possível usar o Assistente de Instalação do Visual Basic para fazer isso. Para instalar o Agent do VB, você pode usar o comando Shell, especificando o arquivo de gabinete de auto-instalação do Microsoft Agent.

Como fazer instalar o Microsoft Agent no Windows 2000?

O Microsoft Agent 2.0 não é instalado no Windows 2000 porque ele já está incluído como parte do sistema operacional.

AgentSvr falha quando Speak é chamado com um arquivo WAV.

Isso pode resultar quando o caractere estiver usando TTS para saída falada e, em seguida, mudar para usar um arquivo WAV. O texto não foi fornecido no primeiro parâmetro do método Speak.

Para evitar a falha, inclua um caractere de espaço no primeiro parâmetro do método Speak, mesmo que você não tenha saída de texto.

Embora eu já tenha instalado o componente de linguagem (DLL) do Agent para um idioma específico, ainda tenho um erro de que o componente está ausente quando defina o idioma do caractere para esse idioma.

Isso geralmente acontece quando você tem aplicativos do Agent, como o Microsoft Office 2000, abertos quando você instala o componente de idioma do Agent. Feche todos os aplicativos e tente novamente. Se o problema persistir, reinicie o computador e você poderá definir a ID do idioma agora.

Quando uso o símbolo "&", o texto ao redor do símbolo nos balões de palavra do caractere é truncado.

Este é um problema conhecido. Você pode contornar isso usando a marca de mapa. Por exemplo, para exibir "A & B" no balão de palavras do caractere, use "A \map="and"="&&\B" na instrução Speak.

Meu aplicativo permite que os usuários alterem o caractere padrão e, quando o fizerem, o programa falhará.

Há duas causas possíveis:

Se você alterar a ID do modo TTS do caractere padrão e permitir que o usuário altere o caractere padrão por meio de ShowDefaultCharacterProperties, o AgentSvr falhará.

Esse problema foi corrigido nos sistemas operacionais Windows 2000 e Windows XP. Para evitar a falha em outras plataformas, você não deve permitir que o usuário altere o caractere padrão depois de alterar a ID do modo TTS do caractere padrão ou não usar o caractere padrão em seu aplicativo ou página da Web.

Se o aplicativo não usar caracteres do Agente fornecidos pela Microsoft, verifique se o caractere personalizado usa uma paleta com uma paleta completa de 256 cores. Para obter mais informações, consulte o documento Criando caracteres para o Microsoft Agent.

Minha página carrega o caractere Agent de vários quadros. Com o IE 5, recebo que o Microsoft Agent falhou ao carregar o erro.

Esse é um problema conhecido com o IE 5. Houve uma alteração na forma como o navegador manipula um determinado evento, o que faz com que o script HTML comece a ser executado antes do AgentSvr ser iniciado. Para que sua página funcione com todas as versões do navegador, você precisa adicionar essa linha ao script:

AgentControl.Connected = True

que cria explicitamente uma conexão com o AgentSvr. Observe que você só precisará fazer isso se sua página carregar o Agent de vários quadros.

Quando meu aplicativo tenta instalar o Microsoft Agent no Windows 2000 (ou Windows XP), recebo o erro de que o Agent não é compatível com o Windows 2000 (ou Windows XP).

Uma versão anterior do arquivo de gabinete do componente principal do Agent MSAGENT.exe, quando executada no Windows 2000 (e no Windows XP), bloqueará a instalação e exibirá uma mensagem de erro imprecisa informando que o Agent não é compatível com a versão do sistema operacional que você está executando. Na verdade, os componentes principais do Microsoft Agent 2.0 estão incluídos como parte do Windows 2000 (e do Windows XP) e já estão instalados por padrão por meio da instalação do Windows.

Nesta versão, o marcar é removido e o arquivo de instalação não exibirá a mensagem de erro mencionada anteriormente no Windows 2000 (ou Windows XP). Observe que essa é a única alteração no arquivo de instalação e não há alterações de código nos próprios componentes principais do Agent. Portanto, você não será afetado por essa atualização se já tiver o Agent 2.0 instalado ou se seu site usar uma marca de objeto para disparar downloads automáticos dos componentes principais do Agent do Microsoft Object Store.

Se você incluir o arquivo de instalação do componente principal do Agent com seu aplicativo ou se postar o arquivo de instalação no servidor, convém baixar essa atualização. Para fazer isso, clique aqui e selecione a opção "Salvar este programa em disco". Você deve ter uma licença de distribuição válida e atual do Agent para essas circunstâncias.

Como alternativa, você também pode contornar esse problema usando a opção silenciosa ao instalar a versão anterior do arquivo de instalação do MSAGENT.exe. O comando do shell é:

MSAGENT.exe /q:a

O mesmo se aplica aos componentes de linguagem do Agent que foram lançados originalmente em outubro de 1998. Havia uma marcar que impediria a instalação dos componentes árabe, francês, alemão, hebraico, italiano, japonês, coreano, chinês simplificado, espanhol e chinês tradicional no Windows 2000 (e windows XP). As versões mais recentes desses arquivos de instalação, juntamente com os 19 idiomas adicionais adicionados em março de 2000, não contêm essa marcar e serão instaladas com êxito no Windows 2000 (e no Windows XP).

Meu caractere personalizado exibe algum comportamento inesperado com sua cor de transparência no Windows 2000 (e no Windows XP).

Esse é um problema conhecido para caracteres criados com uma paleta de menos de 256 cores. Os problemas com esses caracteres incluem a cor de transparência exibida na tela de fundo, o texto transparente do balão, a borda transparente do balão ou a tela de fundo transparente do balão. Observe que esses caracteres podem fazer com que seus aplicativos falhem quando carregados na caixa de diálogo seletor de caracteres do Agent ou na galeria do Assistente do Microsoft Office. Os caracteres personalizados devem usar uma paleta completa com 256 cores. Você pode usar a paleta de exemplos fornecida para caracteres do Assistente do Office como ponto de partida com uma paleta de cores completa de 256.

O caractere não usa o mecanismo TTS inglês britânico, embora eu tenha definido sua ID de idioma para inglês britânico &h0809.

Primeiro, verifique se você tem todos os componentes necessários instalados: componentes principais do agent, os binários de runtime do SAPI e um mecanismo TTS inglês britânico compatível com SAPI4, como o mecanismo inglês TTS3000 britânico, disponível para download na página Downloads do Agente. Se o seu caractere ainda não estiver usando o mecanismo TTS inglês britânico, é provável que você também tenha um mecanismo TTS inglês americano instalado. Como o inglês britânico e americano compartilham o mesmo idioma primário (inglês) e o inglês americano é o padrão, o Agent escolherá o primeiro mecanismo TTS em inglês americano disponível, conforme retornado pelo SAPI. Para usar um mecanismo TTS inglês britânico, use a propriedade TTSModeID do caractere. Por exemplo, o TTSModeID para a voz masculina britânica TTS3000 é {227A0E41-A92A-11d1-B17B-0020AFED142E}. No Microsoft Visual Basic, você pode usar esse mecanismo definindo TTSModeID de Merlin da seguinte maneira:

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

Quando o volume do caractere é definido como zero usando a marca de fala \Vol=0\, ele não tem efeitos ou falha no AgentSvr.

Esse é um problema conhecido. Nos sistemas operacionais Windows 95, Windows 98 e Windows Me, o volume do caractere não é alterado, mas permanecerá no nível definido anteriormente. No Windows NT 4.0, nas plataformas Windows 2000 e Windows XP, isso fará com que o AgentSvr falhe, mesmo quando um mecanismo TTS não estiver instalado. Como o intervalo do volume do caractere, de 0 (silêncio) a 65535 (volume máximo), é grande e a diferença entre níveis sucessivos dificilmente é perceptível, a solução alternativa fácil é definir o volume como 1 em vez de 0 quando você quiser que a voz do caractere seja inaudível.

A animação Return do meu caractere personalizado não é reproduzida corretamente após as animações MoveDown, MoveLeft, MoveRight e/ou MoveUp.

Verifique se uma animação de fala simples está atribuída ao Estado de Fala. Por exemplo, você pode usar um único quadro que consiste na posição neutra do caractere com sobreposições de boca.