Compartilhar via


IAgentCharacter::Speak

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

HRESULT Speak(
   BSTR bszText,    // text to speak
   BSTR bszURL,     // URL of a file to speak
   long * pdwReqID  // address of a request ID
);

Fala o texto ou o arquivo de som.

  • Retorna S_OK para indicar que a operação foi bem-sucedida.

bszText

O texto que o caractere deve falar.

bszURL

A URL (ou especificação de arquivo) de um arquivo de som a ser usado para saída falada. Pode ser um arquivo de som padrão (. WAV) ou arquivo de som aprimorado linguisticamente (. LWV).

pdwReqID

Endereço de uma variável que recebe a ID da solicitação De fala .

Para usar esse método com um caractere configurado para falar usando um mecanismo TTS (conversão de texto em fala) ; basta fornecer o parâmetro bszText . Você pode incluir caracteres de barra vertical (|) no parâmetro bszText para designar cadeias de caracteres alternativas, para que cada vez que o servidor processe o método, ele escolha aleatoriamente uma cadeia de caracteres diferente. O suporte à saída TTS é definido quando o caractere é compilado usando o Editor de Caracteres do Microsoft Agent.

Se você quiser usar a saída de arquivo de som para o caractere, especifique o local do arquivo no parâmetro bszURL . Ao usar o protocolo HTTP para baixar um arquivo de som, use o método Prepare para garantir a disponibilidade do arquivo antes de usar esse método. Você pode usar o parâmetro bszText para especificar as palavras que aparecem no balão de palavras do caractere. Se você especificar um arquivo de som aprimorado linguisticamente (. LWV) para o parâmetro bszURL e não especificar texto, o parâmetro bszText usa o texto armazenado no arquivo.

O método Speak usa a última animação reproduzida para determinar qual animação de fala deve ser reproduzida. Por exemplo, se você preceder o comando Speak com um IAgentCharacter::P lay "GestureRight", o servidor reproduzirá GestureRight e, em seguida, a animação de fala GestureRight . Se a última animação executada não tiver animação de fala, o Microsoft Agent reproduzirá a animação atribuída ao estado De fala do caractere.

Se você chamar Speak e o canal de áudio estiver ocupado, a saída de áudio do caractere não será ouvida, mas o texto será exibido no balão de palavras. A propriedade Enabled do balão de palavra também deve ser True para que o texto seja exibido.

A quebra automática de palavras do Microsoft Agent no balão de palavras quebra palavras usando caracteres de espaço em branco (por exemplo, espaço e tabulação). No entanto, ele pode quebrar uma palavra para caber no balão também. Em idiomas como japonês, chinês e tailandês, em que espaços não são usados para quebrar palavras, insira um caractere de espaço de largura zero Unicode (0x200B) entre caracteres para definir quebras de palavras lógicas.

Observação

Defina a ID do idioma do caractere (usando IAgentCharacterEx::SetLanguageID antes de usar o método Speak para garantir a exibição de texto apropriada dentro do balão de palavras.

 

Consulte Também

IAgentCharacter::P lay, IAgentBalloon::GetEnabled, IAgentCharacter::P repare