本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
下列的 Java 程式碼範例示範如何使用以 Java 撰寫的應用程式,來合成較短篇的語音,實現接近即時的處理速度。
如需詳細資訊,請參閱 SynthesizeSpeech
API 的參考文章。
package com.amazonaws.polly.samples;
import com.amazonaws.services.polly.AmazonPolly;
import com.amazonaws.services.polly.AmazonPollyClientBuilder;
import com.amazonaws.services.polly.model.OutputFormat;
import com.amazonaws.services.polly.model.SynthesizeSpeechRequest;
import com.amazonaws.services.polly.model.SynthesizeSpeechResult;
import com.amazonaws.services.polly.model.VoiceId;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
public class SynthesizeSpeechSample {
AmazonPolly client = AmazonPollyClientBuilder.defaultClient();
public void synthesizeSpeech() {
String outputFileName = "/tmp/speech.mp3";
SynthesizeSpeechRequest synthesizeSpeechRequest = new SynthesizeSpeechRequest()
.withOutputFormat(OutputFormat.Mp3)
.withVoiceId(VoiceId.Joanna)
.withText("This is a sample text to be synthesized.")
.withEngine("neural");
try (FileOutputStream outputStream = new FileOutputStream(new File(outputFileName))) {
SynthesizeSpeechResult synthesizeSpeechResult = client.synthesizeSpeech(synthesizeSpeechRequest);
byte[] buffer = new byte[2 * 1024];
int readBytes;
try (InputStream in = synthesizeSpeechResult.getAudioStream()){
while ((readBytes = in.read(buffer)) > 0) {
outputStream.write(buffer, 0, readBytes);
}
}
} catch (Exception e) {
System.err.println("Exception caught: " + e);
}
}
}