Speak - Amazon Chime SDK

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Speak

텍스트를 입력하여 통화 레그에서 음성을 재생할 수 있습니다. 일반 텍스트 또는 음성 합성 마크업 언어(SSML)를 사용할 수 있습니다. SSML을 사용하면 일시 중지를 추가하거나, 특정 단어를 강조하거나, 말하기 스타일을 변경하여 Amazon Chime SDK가 음성을 생성하는 방식을 보다 세부적으로 제어할 수 있습니다.

Amazon Chime SDK는 Amazon Polly 서비스를 사용하여 텍스트를 음성으로 변환합니다. Amazon Polly를 사용하면 표준 엔진과 신경 엔진 중 하나를 선택하여 음성 품질을 개선할 수 있습니다. Amazon Polly는 20개 이상의 언어와 60개 이상의 음성을 지원하여 애플리케이션의 사용자 환경을 사용자 지정합니다. Amazon Chime SDK는 음성 기능을 무료로 제공하지만 Amazon Polly 사용에는 비용을 지불해야 합니다. 요금 정보는 Amazon Polly 요금 페이지 또는 청구 대시보드를 참조하세요.

중요

Amazon Polly를 사용할 경우 AWS Machine Learning 및 인공 지능 서비스와 관련된 약관을 비롯한 AWS 서비스 약관이 적용됩니다.

Speak 작업 사용

다음은 예제는 Speak 작업의 일반적인 사용을 보여줍니다.

{ "SchemaVersion": "1.0", "Actions":[ { "Type": "Speak", "Parameters": { "Text": "Hello, World!", // required "CallId": "call-id-1", // required "Engine": "neural", // optional. Defaults to standard "LanguageCode": "en-US", // optional "TextType": "text", // optional "VoiceId": "Joanna" // optional. Defaults to Joanna } } ] }
CallId

설명 - Lambda 함수 간접 호출의 CallDetails에 있는 참가자의 CallId입니다.

허용된 값 - 유효한 통화 ID

필수 - 예

기본값 – 없음

Text

설명 - 음성으로 합성할 입력 텍스트를 지정합니다. ssmlTextType으로 지정하는 경우 입력 텍스트의 SSML 형식을 따릅니다.

허용된 값 - 문자열

필수 - 예

기본값 – 없음

Engine

설명 - 음성 합성을 위해 텍스트를 처리할 때 사용할 엔진(표준 또는 신경)을 지정합니다.

허용된 값 - standard | neural

필수 - 아니요

기본값 - standard

LanguageCode

설명 - 언어 코드를 지정합니다. 이중 언어 음성을 사용하는 경우에만 필요합니다. 언어 코드 없이 이중 언어 음성을 사용하는 경우 이중 언어 음성의 기본 언어를 사용합니다.

허용된 값 - Amazon Polly 언어 코드

필수 - 아니요

기본값 – 없음

TextType

설명 - 입력 텍스트, 일반 텍스트 또는 SSML의 유형을 지정합니다. 입력 유형을 지정하지 않은 경우 일반 텍스트를 기본값으로 사용합니다. SSML에 대한 자세한 내용은 Amazon Polly 개발자 안내서SSML 문서에서 음성 생성을 참조하세요.

허용된 값 - ssml | text

필수 - 아니요

기본값 – 없음

VoiceId

설명 - 사용하려는 음성의 ID를 지정합니다.

허용된 값 - Amazon Polly 음성 ID

필수 - 아니요

기본값 - Joanna

ACTION_SUCCESSFUL 이벤트 처리

다음 예제는 Amazon Polly의 Joanna 음성을 사용하여 “Hello Worl”"라는 텍스트를 영어로 된 음성으로 합성하는 작업의 일반적인 ACTION_SUCCESSFUL 이벤트를 보여줍니다.

{ "SchemaVersion": "1.0", "Sequence": 3, "InvocationEventType": "ACTION_SUCCESSFUL", "ActionData": { "Type": "Speak", "Parameters": { "CallId": "call-id-1", "Engine": "neural", "LanguageCode": "en-US", "Text": "Hello World", "TextType": "text", "VoiceId": "Joanna" } }, "CallDetails":{ ... } }

ACTION_FAILED 이벤트 처리

다음 예제는 이전 예제에서 사용한 동일한 이벤트에 대한 일반적인 ACTION_FAILED 이벤트를 보여줍니다.

{ "SchemaVersion": "1.0", "Sequence":2, "InvocationEventType": "ACTION_FAILED", "ActionData":{ "Type": "Speak", "Parameters": { "CallId": "call-id-1", "Engine": "neural", "LanguageCode": "en-US", "Text": "Hello World", "TextType": "text", "VoiceId": "Joanna" }, "ErrorType": "SystemException", "ErrorMessage": "System error while running action" }, "CallDetails":{ ... } }
오류 처리

이 표는 Speak 작업에서 발생한 오류 메시지를 나열하고 설명합니다.

오류 메시지 이유

AccessDenied

The AWSServiceRoleForAmazonChimeVoiceConnector service-linked role is not configured correctly.

Amazon Polly에 요청하는 데 사용된 서비스 연결 역할이 없거나 역할에 권한이 없습니다. 문제를 해결하려면 Amazon Chime SDK Voice Connector 서비스 연결 역할 사용 섹션의 단계를 참조하세요.

InvalidActionParameter

 

작업 파라미터를 검증하는 동안 오류가 발생했습니다. 파라미터에 대한 자세한 내용은 Amazon Polly 개발자 안내서의 SynthizeSpeech API를 참조하세요.

ActionExecutionThrottled Amazon Polly is throttling the request to synthesize speech. Amazon Polly에 대한 요청이 제한 예외를 반환합니다. Amazon Polly 제한 한도에 대한 자세한 내용은 https://docs.aws.amazon.com/polly/latest/dg/limits.html#limits-throttle을 참조하세요.

MissingRequiredActionParameter

Text is a required parameter.

작업 파라미터에는 Text 값이 있어야 합니다.

MissingRequiredActionParameter

Text is limited to 1,000 characters

텍스트가 문자 제한을 초과했습니다.

SystemException

System error while running action.

작업을 실행하는 동안 시스템 오류가 발생했습니다.

프로그램 흐름

다음 다이어그램은 발신자의 Speak 작업을 활성화하는 프로그램 흐름을 보여줍니다. 이 예시에서 발신자는 다음과 같은 텍스트를 듣습니다.

발신자의 Speak 작업을 활성화하는 프로그램 흐름을 보여주는 다이어그램입니다.
다이어그램에서,

발신자는 소프트폰을 사용하여 SIP 미디어 애플리케이션에 등록된 번호를 입력합니다. 애플리케이션은 SIP INVITE 메서드를 사용하여 발신자에게 Trying (100) 응답을 보냅니다. 이는 next-hop 서버가 통화 요청을 받았음을 나타냅니다. 그러면 SIP 애플리케이션이 INVITE를 사용하여 엔드포인트에 연결합니다. 연결이 설정되면 애플리케이션이 발신자에게 Ringing (180) 응답을 보내고 경고가 시작됩니다.

그런 다음 SIP 미디어 애플리케이션은 Lambda 함수로 NEW_INBOUND_CALL 이벤트를 전송하며, Lambda 함수는 발신자 ID와 음성으로 변환하려는 텍스트를 포함하는 Speak 작업으로 응답합니다. 그러면 SIP 애플리케이션이 200 (OK) 응답을 보내 통화에 응답했음을 알립니다. 또한 이 프로토콜은 미디어를 활성화합니다.

Speak 작업이 성공하고 텍스트를 음성으로 변환하면 SIP 미디어 애플리케이션에 ACTION_SUCCESSFUL 이벤트를 반환하며, SIP 미디어 애플리케이션은 다음 작업 세트를 반환합니다. 작업이 실패하면 SIP 미디어 애플리케이션이 Lambda 함수에 ACTION_FAILED 이벤트를 전송하며, Lambda 함수는 Hangup 작업 세트로 응답합니다. 애플리케이션이 발신자의 전화를 끊고 Lambda 함수에 HANGUP 이벤트를 반환하며, 이 함수는 추가 작업을 취하지 않습니다.

다음 다이어그램은 수신자의 Speak 작업을 활성화하는 프로그램 흐름을 보여줍니다.

수신자의 Speak 작업을 활성화하는 프로그램 흐름을 보여주는 다이어그램입니다. 모든 다중 통화에서 이를 수행할 수 있습니다.
다이어그램에서,

발신자가 SIP 미디어 애플리케이션에 등록된 번호를 입력하고 애플리케이션은 이전 다이어그램에 설명된 대로 응답합니다. Lambda 함수가 NEW_INBOUND_CALL 이벤트를 수신한 경우 CallAndBridge 작업을 SIP 애플리케이션에 반환합니다. 그러면 애플리케이션은 SIP INVITE 메서드를 사용하여 수신자에게 Trying (100)Ringing (180) 응답을 보냅니다.

수신자가 응답하면 SIP 미디어 애플리케이션이 200 (OK) 응답을 수신하고 동일한 응답을 발신자에게 보냅니다. 이로 인해 미디어가 설정되고 SIP 애플리케이션은 CallAndBridge 작업에 대한 ACTION_SUCCESSFUL 이벤트를 Lambda 함수에 전송합니다. 그런 다음 함수는 Speak 작업 및 데이터를 SIP 애플리케이션에 반환하며, SIP 애플리케이션은 이를 변환합니다.