Compartir a través de


IAgentCharacter::Speak

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

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

Habla el texto o el archivo de sonido.

  • Devuelve S_OK para indicar que la operación se realizó correctamente.

bszText

El texto que el carácter va a hablar.

bszURL

Dirección URL (o especificación de archivo) de un archivo de sonido que se va a usar para la salida hablada. Puede ser un archivo de sonido estándar (. WAV) o archivo de sonido mejorado lingüísticamente (. LWV).

pdwReqID

Dirección de una variable que recibe el identificador de solicitud de Speak .

Para usar este método con un carácter configurado para hablar mediante un motor de texto a voz (TTS); simplemente proporcione el parámetro bszText . Puede incluir caracteres de barra vertical (|) en el parámetro bszText para designar cadenas alternativas, de modo que cada vez que el servidor procese el método, elija aleatoriamente una cadena diferente. La compatibilidad con la salida de TTS se define cuando el carácter se compila mediante el Editor de caracteres del Agente de Microsoft.

Si desea usar la salida del archivo de sonido para el carácter, especifique la ubicación del archivo en el parámetro bszURL . Cuando use el protocolo HTTP para descargar un archivo de sonido, use el método Prepare para garantizar la disponibilidad del archivo antes de usar este método. Puede usar el parámetro bszText para especificar las palabras que aparecen en el globo de palabras del carácter. Si especifica un archivo de sonido mejorado lingüísticamente (. LWV) para el parámetro bszURL y no especifica texto, el parámetro bszText usa el texto almacenado en el archivo.

El método Speak usa la última animación reproducida para determinar qué animación de habla reproducir. Por ejemplo, si precede al comando Speak con un IAgentCharacter::P lay "GestureRight", el servidor reproducirá GestureRight y, a continuación, la animación de habla GestureRight . Si la última animación reproducida no tiene animación de habla, Microsoft Agent reproduce la animación asignada al estado de habla del personaje.

Si llamas a Speak y el canal de audio está ocupado, no se escuchará la salida de audio del carácter, pero el texto se mostrará en el globo de palabras. La propiedad Enabled del globo de palabras también debe ser True para que se muestre el texto.

La separación automática de palabras de Microsoft Agent en el globo de palabras, interrumpe las palabras con caracteres de espacio en blanco (por ejemplo, espacio y pestaña). Sin embargo, también puede romper una palabra para ajustarse al globo. En idiomas como japonés, chino y tailandés, donde los espacios no se usan para dividir palabras, inserte un carácter de espacio de ancho cero Unicode (0x200B) entre caracteres para definir saltos lógicos de palabras.

Nota

Establezca el identificador de idioma del carácter (mediante IAgentCharacterEx::SetLanguageID antes de usar el método Speak para asegurarse de que el texto adecuado se muestre dentro del globo de palabras).

 

Consulte también

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