

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

# 텍스트 전송 및 오디오 수신
<a name="bidirectional-streaming-lifecycle"></a>

양방향 스트리밍 세션에는 연결을 열고, 텍스트를 보내고, 오디오를 동시에 수신한 다음 입력이 완료되면 스트림을 닫는 작업이 포함됩니다. 다음 섹션에서는 각 단계를 자세히 설명합니다.

## 스트림 열기
<a name="bidirectional-streaming-open"></a>

애플리케이션은 SDK를 통해 [StartSpeechSynthesisStream](https://docs.aws.amazon.com/polly/latest/dg/API_StartSpeechSynthesisStream.html) 작업을 호출하여 합성 파라미터(`Engine`, `VoiceId`, 및 `OutputFormat`선택적으로 `LanguageCode`, `LexiconNames`, )를 지정합니다`SampleRate`. SDK는 HTTP/2 연결을 설정하고 양방향 스트림은 입력 이벤트를 수락할 준비가 되었습니다.

## 텍스트 전송
<a name="bidirectional-streaming-send"></a>

클라이언트는 입력 스트림에서 하나 이상의 [TextEvent](https://docs.aws.amazon.com/polly/latest/dg/API_TextEvent.html) 메시지를 보냅니다. 전체 입력이 준비될 때까지 기다리지 않고 텍스트를 사용할 수 있게 되는 즉시 각 이벤트를 전송할 수 있습니다. 텍스트 이벤트는 문장 또는 구두점 경계에 맞출 필요가 없습니다. Amazon Polly는 텍스트를 내부적으로 재어셈블하고 입력이 이벤트 간에 어떻게 분할되는지에 관계없이 자연 사운드 스피치를 생성합니다.

**참고**  
[SSML](https://docs.aws.amazon.com/polly/latest/dg/ssml.html)을 사용하는 경우 각 SSML 문서는 단일 내에 독립적으로 포함되어야 합니다`TextEvent`. SSML 태그를 여러 이벤트로 분할할 수 없습니다. 그러나 동일한 스트림 내에서 일반 텍스트 이벤트와 SSML 이벤트를 혼합할 수 있습니다.

스트림에는 다음과 같은 시간 제한이 적용됩니다.
+ **최대 스트림 지속 시간**: 10분. Amazon Polly는 활동에 관계없이 10분 후에 스트림을 닫습니다. 콘텐츠에 시간이 더 필요한 경우 나머지 텍스트에 대해 새 스트림을 엽니다.
+ **연속 이벤트 간 유휴 제한 시간**: 5초. 5초 동안 입력 이벤트가 전송되지 않으면 Amazon Polly가 스트림을 닫습니다. 텍스트 소스가 5초 이상 일시 중지된 경우 시간 초과를 방지하기 위해 빈 문자열 또는 공백 문자열과 `TextEvent` 함께 연결 유지를 전송합니다.

### 플러시로 버퍼링된 텍스트 강제 합성
<a name="bidirectional-streaming-flush"></a>

기본적으로 Amazon Polly는 자연어 경계를 기반으로 버퍼링된 텍스트를 합성할 시기를 결정합니다. 이렇게 하면 최상의 오디오 품질이 생성되지만를 전송한 직후에 오디오가 반환되지 않을 수 있습니다`TextEvent`.

플러싱을 사용하면 합성이 수행되는 시기를 제어할 수 있습니다. 플러시할 때 Amazon Polly는 텍스트가 자연 경계로 끝나는지 여부에 관계없이 지금까지 버퍼링된 모든 텍스트를 즉시 합성합니다. 이는 텍스트 소스가 논리적 섹션 사이에서 일시 중지되고 지금까지 전송된 오디오를 전송하려는 경우에 유용합니다.

플러시하려면 [FlushStreamConfiguration](https://docs.aws.amazon.com/polly/latest/dg/API_FlushStreamConfiguration.html) 파라미터를`Force`에서 `true`로 설정합니다`TextEvent`. 새 콘텐츠를 추가하지 않고 합성을 트리거하도록 플러시 플래그`TextEvent`가 설정된 빈를 보낼 수도 있습니다.

플러싱은 절충입니다. `true` 중간 문장`Force`으로 설정하면 신디사이저에 다음 사항에 대한 컨텍스트가 없기 때문에 발음 및 불신에 영향을 미칠 수 있습니다. 최상의 결과를 얻으려면 Amazon Polly가 가능하면 자연 경계로 버퍼링하도록 허용하고 지연 시간 요구 사항에 따라 필요한 경우에만 합성을 강제합니다.

## 오디오 수신
<a name="bidirectional-streaming-receive"></a>

Amazon Polly는 텍스트를 합성할 때 출력 스트림에 [AudioEvent](https://docs.aws.amazon.com/polly/latest/dg/API_AudioEvent.html) 메시지를 반환합니다. 각 이벤트에는 오디오 데이터 청크가 포함됩니다. 애플리케이션이 전체 오디오 출력을 생성하려면 이러한 청크를 누적해야 합니다(예: 파일 또는 오디오 버퍼에 순차적으로 기록). 텍스트 이벤트를 보내는 동안 오디오 이벤트가 도착할 수 있습니다.

## 스트림 닫기
<a name="bidirectional-streaming-close"></a>

모든 입력 텍스트가 전송되면 클라이언트는 [CloseStreamEvent](https://docs.aws.amazon.com/polly/latest/dg/API_CloseStreamEvent.html)를 전송합니다. Amazon Polly는 버퍼링된 나머지 텍스트 처리를 완료하고, 최종 오디오 이벤트를 전송하고, 합성된 총 문자 수가 포함된 [StreamClosedEvent](https://docs.aws.amazon.com/polly/latest/dg/API_StreamClosedEvent.html)를 반환합니다. 스트림을 종료하기 위해 플러시에 의존`CloseStreamEvent`하는 대신 항상를 전송합니다. 닫으면 버퍼링된 모든 텍스트가 합성되고 반환됩니다.

요청 파라미터, 이벤트 유형 및 오류에 대한 자세한 내용은 [StartSpeechSynthesisStream API 참조](https://docs.aws.amazon.com/polly/latest/dg/API_StartSpeechSynthesisStream.html)를 참조하세요.