Поделиться через


IAgentCharacter::Speak

[Microsoft Agent является нерекомендуемым начиная с Windows 7 и может быть недоступен в последующих версиях Windows.]

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

Произносит текст или звуковой файл.

  • Возвращает S_OK, указывающее, что операция была успешной.

bszText

Текст, который будет произносить символ.

bszURL

URL-адрес (или спецификация файла) звукового файла, используемого для вывода речи. Это может быть стандартный звуковой файл (. WAV) или лингвистически улучшенный звуковой файл (. LWV).

pdwReqID

Адрес переменной, которая получает идентификатор запроса Speak .

Использование этого метода с символом, настроенным для речи с помощью обработчика преобразования текста в речь (TTS); Просто укажите параметр bszText . Вы можете включить символы вертикальной линейчатой черты (|) в параметр bszText для обозначения альтернативных строк, чтобы каждый раз, когда сервер обрабатывает метод, он случайным образом выбирает другую строку. Поддержка выходных данных TTS определяется при компиляции символа с помощью редактора символов агента Майкрософт.

Если вы хотите использовать выходные данные звукового файла для символа, укажите расположение файла в параметре bszURL . При использовании протокола HTTP для скачивания звукового файла используйте метод Prepare , чтобы убедиться в доступности файла перед использованием этого метода. С помощью параметра bszText можно указать слова, которые отображаются на выноске символа. Если указать лингвистически улучшенный звуковой файл (. LWV) для параметра bszURL и не указывайте текст, параметр bszText использует текст, хранящийся в файле.

Метод Speak использует последнюю воспроизводимую анимацию, чтобы определить, какую анимацию говорить воспроизводить. Например, если перед командой Speak добавить IAgentCharacter::P lay "GestureRight", сервер будет воспроизводить жестовую анимацию , а затем анимацию speaking GestureRight . Если последняя воспроизводимая анимация не содержит говорения, microsoft Agent воспроизводит анимацию, назначенную состоянию говоря.

Если вы вызываете функцию Speak и аудиоканал занят, аудиоданные символа не будут услышаны, но текст будет отображаться на выноске слова. Для отображения текста свойство выноски также должно иметь значение True .

Автоматическое разбиение слов в microsoft Agent на выноске, разбивает слова с помощью пробелов (например, пробела и табуляции). Тем не менее, он может разорвать слово, чтобы соответствовать воздушный шар, а также. В таких языках, как японский, китайский и тайский, где пробелы не используются для разбиения слов, вставьте символ нулевой ширины Юникода (0x200B) между символами, чтобы определить логические разрывы слов.

Примечание

Задайте идентификатор языка символа (с помощью IAgentCharacterEx::SetLanguageID перед использованием метода Speak , чтобы обеспечить соответствующее отображение текста в выноске слова).

 

См. также:

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