다음을 통해 공유


Speak 메서드

[Microsoft 에이전트는 Windows 7을 기준으로 더 이상 사용되지 않으며 이후 버전의 Windows에서는 사용할 수 없습니다.]

Description

지정된 문자에 대해 지정된 텍스트 또는 소리 파일을 말합니다.

Syntax

agent**. 문자("CharacterID"). Speak** [Text], [Url]

부분 설명
Text 선택 사항입니다. 문자가 말하는 내용을 지정하는 문자열입니다.
Url 선택 사항입니다. 오디오 파일의 위치를 지정하는 문자열 식(. WAV 또는 입니다. LWV 형식). 위치는 파일(UNC 경로 사양 포함) 또는 URL(HTTP 프로토콜을 통해 문자 애니메이션 데이터도 검색되는 경우)으로 지정할 수 있습니다.

 

설명

TextUrl 매개 변수는 선택 사항이지만 그 중 하나를 제공해야 합니다. 단어 풍선 또는 TTS(텍스트 음성 변환) 엔진을 사용하여 말하도록 구성된 문자와 함께 이 메서드를 사용하려면 Text 매개 변수를 제공하면 됩니다. 일반적으로 공백을 포함하지 않는 언어의 경우에도 단어 사이에 공백을 포함하여 단어 풍선에 적절한 단어 나누기를 정의합니다.

Text 매개 변수에 세로 막대 문자(|)를 포함하여 대체 문자열을 지정할 수도 있으므로 서버가 메서드를 처리할 때마다 다른 문자열을 임의로 선택할 수 있습니다.

TTS 출력의 문자 지원은 Microsoft 에이전트 문자 편집기를 사용하여 문자를 컴파일할 때 정의됩니다. TTS 출력을 생성하려면 이 메서드를 호출하기 전에 호환되는 TTS 엔진을 이미 설치해야 합니다. 자세한 내용은 Speech Services 액세스를 참조하세요.

녹음된 사운드 파일을 사용하는 경우(. WAV 또는 입니다. LWV 형식만 해당) 문자에 대한 출력을 Url 매개 변수에 파일의 위치를 지정합니다. 이 파일 사양에는 로컬(절대 또는 상대) 또는 UNC(범용 명명 규칙) 경로가 포함될 수 있습니다. 파일 이름은 미국 코드 페이지 1252에 포함되지 않은 문자를 포함할 수 없습니다. 그러나 HTTP 프로토콜을 사용하여 문자 애니메이션 데이터에 액세스하는 경우 Get 메서드를 사용하여 Speak 메서드를 호출하기 전에 애니메이션을 로드합니다. 크리에이티브에 대한 자세한 내용은 Microsoft 언어 정보 사운드 편집 도구 사용을 참조하세요. LWV 파일.

녹음된 사운드 파일 출력을 사용하는 경우에도 Text 매개 변수를 사용하여 문자의 단어 풍선에 나타나는 단어를 지정할 수 있습니다. 그러나 언어적으로 향상된 사운드 파일()을 지정하는 경우 LWV) Url 매개 변수에 대해 및 단어 풍선에 대한 텍스트를 지정하지 않습니다. Text 매개 변수는 파일에 저장된 텍스트를 사용합니다.

Text 매개 변수에 포함하는 특수 태그를 사용하여 음성 출력의 매개 변수를 변경할 수도 있습니다. 자세한 내용은 Microsoft 에이전트 음성 출력 태그를 참조하세요.

개체 참조를 선언하고 이 메서드로 설정하면 Request 개체가 반환됩니다. 다음 예제와 같이 이를 사용하여 코드의 다른 부분을 문자의 음성 출력과 동기화할 수 있습니다.

   Dim SpeakRequest as Object
...
   Set SpeakRequest = Genie.Speak ("And here it is.")
...
   Sub Agent1_RequestComplete (ByVal Request as Object)
   ' Make certain the request exists
   If SpeakRequest Not Nothing Then
      ' See if it was this request
      If Request = SpeakRequest Then
         ' Display the message box 
         Msgbox "Ta da!"
      End If
   End If
   End Sub

Request 개체를 사용하여 특정 오류 조건에 대한 검사 수도 있습니다. 예를 들어 Speak 메서드를 사용하여 말하고 호환되는 TTS 엔진이 설치되어 있지 않은 경우 서버는 Request 개체의 Status 속성을 Description 속성이 "등록되지 않은 클래스" 또는 "알 수 없음 또는 개체 반환 오류"로 "실패"로 설정합니다. TTS 엔진이 설치되어 있는지 확인하려면 TTSModeID 속성을 사용합니다.

마찬가지로 문자가 사운드 파일을 말하려고 시도하고 파일이 로드되지 않았거나 오디오 장치에 문제가 있는 경우 서버는 Request 개체의 Status 속성을 적절한 오류 코드 번호로 "실패"로 설정합니다.

음성 텍스트에 책갈피 음성 태그를 포함하여 코드를 동기화할 수도 있습니다.

   Dim SpeakRequest as Object
...
   Set SpeakRequest = Genie.Speak ("And here \mrk=100\it is.")
...
   Sub Agent1_Bookmark (ByVal BookmarkID As Long)
   If BookmarkID = 100 Then
      ' Display the message box 
         Msgbox "Tada!"
      End If
   End Sub

책갈피 음성 태그에 대한 자세한 내용은 Speech Output 태그를 참조하세요.

Speak 메서드는 재생된 마지막 작업을 사용하여 재생할 말하기 애니메이션을 결정합니다. 예를 들어 Play "GestureRight"를 사용하여 Speak 명령을 실행한 경우 서버는 GestureRight를 재생한 다음, GestureRight 말하기 애니메이션을 재생합니다. 재생된 마지막 애니메이션에 말하기 애니메이션이 없는 경우 에이전트는 캐릭터의 말하기 상태에 할당된 애니메이션을 재생합니다.

Speak를 호출하고 오디오 채널이 사용 중인 경우 문자의 오디오 출력이 들리지 않지만 텍스트가 풍선 단어에 표시됩니다.

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

참고

텍스트가 표시되려면 풍선의 Enabled 속성도 True 여야 합니다.

 

참고

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

 

참고 항목

책갈피 이벤트, RequestStart 이벤트, RequestComplete 이벤트