Share via


IAgentCharacter::Speak

[Microsoft 에이전트는 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 요청 ID를 수신하는 변수의 주소입니다.

TTS(텍스트 음성 변환) 엔진을 사용하여 말하도록 구성된 문자와 함께 이 메서드를 사용하려면 bszText 매개 변수를 제공하기만 하면 됩니다. bszText 매개 변수에 세로 막대 문자(|)를 포함하여 대체 문자열을 지정할 수 있으므로 서버가 메서드를 처리할 때마다 다른 문자열을 임의로 선택할 수 있습니다. TTS 출력 지원은 Microsoft 에이전트 문자 편집기를 사용하여 문자를 컴파일할 때 정의됩니다.

문자에 사운드 파일 출력을 사용하려면 bszURL 매개 변수에서 파일의 위치를 지정합니다. HTTP 프로토콜을 사용하여 사운드 파일을 다운로드하는 경우 Prepare 메서드를 사용하여 이 메서드를 사용하기 전에 파일의 가용성을 확인합니다. bszText 매개 변수를 사용하여 문자의 단어 풍선에 나타나는 단어를 지정할 수 있습니다. 언어적으로 향상된 사운드 파일을 지정하는 경우(. LWV) bszURL 매개 변수에 대해 텍스트를 지정하지 않습니다. bszText 매개 변수는 파일에 저장된 텍스트를 사용합니다.

Speak 메서드는 재생된 마지막 애니메이션을 사용하여 재생할 말하기 애니메이션을 결정합니다. 예를 들어 IAgentCharacter::P lay "GestureRight"를 사용하여 Speak 명령 앞에 오는 경우 서버는 GestureRight를 재생한 다음, GestureRight 말하기 애니메이션을 재생합니다. 재생된 마지막 애니메이션에 말하기 애니메이션이 없는 경우 Microsoft 에이전트는 문자의 말하기 상태에 할당된 애니메이션을 재생합니다.

Speak를 호출하고 오디오 채널이 사용 중인 경우 문자의 오디오 출력이 들리지 않지만 텍스트가 풍선 단어에 표시됩니다. 텍스트가 표시되려면 풍선의 Enabled 속성도 True 여야 합니다.

단어 풍선에서 Microsoft 에이전트의 자동 단어 분리는 공백 문자(예: 공백 및 탭)를 사용하여 단어를 중단합니다. 그러나 풍선에 맞게 단어를 깰 수도 있습니다. 단어를 중단하는 데 공백이 사용되지 않는 일본어, 중국어 및 태국어와 같은 언어에서는 문자 사이에 유니코드 너비가 0인 공백 문자(0x200B)를 삽입하여 논리적 단어 나누기를 정의합니다.

참고

문자의 언어 ID를 설정합니다(Speak 메서드를 사용하기 전에 IAgentCharacterEx::SetLanguageID를 사용하여 단어 풍선 내에 적절한 텍스트가 표시되도록 합니다.

 

참고 항목

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