Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
StartSpeechSynthesisTask
Contoh kode Java berikut menunjukkan cara menggunakan aplikasi berbasis Java untuk mensintesis pidato panjang (hingga 100.000 karakter yang ditagih) dan menyimpannya langsung di bucket Amazon S3.
Untuk informasi lebih lanjut, lihat referensi untuk StartSpeechSynthesisTask
API.
package com.amazonaws.parrot.service.tests.speech.task; import com.amazonaws.parrot.service.tests.AbstractParrotServiceTest; import com.amazonaws.services.polly.AmazonPolly; import com.amazonaws.services.polly.model.*; import org.awaitility.Duration; import java.util.concurrent.TimeUnit; import static org.awaitility.Awaitility.await; public class StartSpeechSynthesisTaskSample { private static final int SYNTHESIS_TASK_TIMEOUT_SECONDS = 300; private static final AmazonPolly AMAZON_POLLY_CLIENT = AmazonPollyClientBuilder.defaultClient(); private static final String PLAIN_TEXT = "This is a sample text to be synthesized."; private static final String OUTPUT_FORMAT_MP3 = OutputFormat.Mp3.toString(); private static final String OUTPUT_BUCKET = "synth-books-buckets"; private static final String SNS_TOPIC_ARN = "arn:aws:sns:eu-west-2:123456789012:synthesize-finish-topic"; private static final Duration SYNTHESIS_TASK_POLL_INTERVAL = Duration.FIVE_SECONDS; private static final Duration SYNTHESIS_TASK_POLL_DELAY = Duration.TEN_SECONDS; public static void main(String... args) { StartSpeechSynthesisTaskRequest request = new StartSpeechSynthesisTaskRequest() .withOutputFormat(OUTPUT_FORMAT_MP3) .withText(PLAIN_TEXT) .withTextType(TextType.Text) .withVoiceId(VoiceId.Amy) .withOutputS3BucketName(OUTPUT_BUCKET) .withSnsTopicArn(SNS_TOPIC_ARN) .withEngine("neural"); StartSpeechSynthesisTaskResult result = AMAZON_POLLY_CLIENT.startSpeechSynthesisTask(request); String taskId = result.getSynthesisTask().getTaskId(); await().with() .pollInterval(SYNTHESIS_TASK_POLL_INTERVAL) .pollDelay(SYNTHESIS_TASK_POLL_DELAY) .atMost(SYNTHESIS_TASK_TIMEOUT_SECONDS, TimeUnit.SECONDS) .until( () -> getSynthesisTaskStatus(taskId).equals(TaskStatus.Completed.toString()) ); } private static SynthesisTask getSynthesisTask(String taskId) { GetSpeechSynthesisTaskRequest getSpeechSynthesisTaskRequest = new GetSpeechSynthesisTaskRequest() .withTaskId(taskId); GetSpeechSynthesisTaskResult result =AMAZON_POLLY_CLIENT.getSpeechSynthesisTask(getSpeechSynthesisTaskRequest); return result.getSynthesisTask(); } private static String getSynthesisTaskStatus(String taskId) { GetSpeechSynthesisTaskRequest getSpeechSynthesisTaskRequest = new GetSpeechSynthesisTaskRequest() .withTaskId(taskId); GetSpeechSynthesisTaskResult result =AMAZON_POLLY_CLIENT.getSpeechSynthesisTask(getSpeechSynthesisTaskRequest); return result.getSynthesisTask().getTaskStatus(); } }