Java 예제 - Amazon Polly

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

Java 예제

이 예에서는 Amazon Polly 를 사용하여 Java 기반 애플리케이션에서 음성을 스트리밍하는 방법을 보여 줍니다. 이 예제에서는 을 사용합니다.Java용 AWS SDK목록에서 선택한 음성을 사용하여 지정된 텍스트를 읽을 수 있습니다.

표시된 코드는 주요 작업을 다루지 만 최소한의 오류 검사 만 수행합니다. Amazon Polly 에서 오류가 발생하면 애플리케이션이 종료됩니다.

이 예제 애플리케이션을 실행하려면 다음이 필요합니다.

애플리케이션을 테스트하려면

  1. JAVA_HOME 환경 변수가 JDK에 대해 설정되어 있는지 확인합니다.

    예를 들어, JDK 1.8.0_121을 (를) 설치한 경우C:\Program Files\Java\jdk1.8.0_121의 경우 명령 프롬프트에서 다음을 입력합니다.

    set JAVA_HOME=""C:\Program Files\Java\jdk1.8.0_121""

    Linux에서 JDK 1.8.0_121을 설치한 경우/usr/lib/jvm/java8-openjdk-amd64의 경우 명령 프롬프트에서 다음을 입력합니다.

    export JAVA_HOME=/usr/lib/jvm/java8-openjdk-amd64
  2. 명령 줄에서 Maven을 실행하는 메이븐 환경 변수를 설정합니다.

    예를 들어, 당신은에서 윈도우에 메이븐 3.3.9를 설치 한 경우C:\Program Files\apache-maven-3.3.9의 경우, 다음을 입력합니다.

    set M2_HOME=""C:\Program Files\apache-maven-3.3.9"" set M2=%M2_HOME%\bin set PATH=%M2%;%PATH%

    리눅스에서 메이븐 3.3.9를 설치 한 경우/home/ec2-user/opt/apache-maven-3.3.9의 경우, 다음을 입력합니다.

    export M2_HOME=/home/ec2-user/opt/apache-maven-3.3.9 export M2=$M2_HOME/bin export PATH=$M2:$PATH
  3. 라는 새 디렉터리를 생성합니다.polly-java-demo를 선택합니다.

  4. 에서polly-java-demo디렉터리에서 라는 새 파일을 생성합니다.pom.xml에 다음 코드를 붙여넣습니다.

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.amazonaws.polly</groupId> <artifactId>java-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-polly --> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-polly</artifactId> <version>1.11.77</version> </dependency> <!-- https://mvnrepository.com/artifact/com.googlecode.soundlibs/jlayer --> <dependency> <groupId>com.googlecode.soundlibs</groupId> <artifactId>jlayer</artifactId> <version>1.0.1-1</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> <executions> <execution> <goals> <goal>java</goal> </goals> </execution> </executions> <configuration> <mainClass>com.amazonaws.demos.polly.PollyDemo</mainClass> </configuration> </plugin> </plugins> </build> </project>
  5. 라는 새 디렉터리를 생성합니다.pollyatsrc/main/java/com/amazonaws/demos를 선택합니다.

  6. 에서polly디렉터리에서 라는 새 Java 소스 파일을 생성합니다.PollyDemo.java로 이동한 후 다음 코드를 붙여넣습니다.

    package com.amazonaws.demos.polly; import java.io.IOException; import java.io.InputStream; import com.amazonaws.ClientConfiguration; import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; import com.amazonaws.regions.Region; import com.amazonaws.regions.Regions; import com.amazonaws.services.polly.AmazonPollyClient; import com.amazonaws.services.polly.model.DescribeVoicesRequest; import com.amazonaws.services.polly.model.DescribeVoicesResult; 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.Voice; import javazoom.jl.player.advanced.AdvancedPlayer; import javazoom.jl.player.advanced.PlaybackEvent; import javazoom.jl.player.advanced.PlaybackListener; public class PollyDemo { private final AmazonPollyClient polly; private final Voice voice; private static final String SAMPLE = "Congratulations. You have successfully built this working demo of Amazon Polly in Java. Have fun building voice enabled apps with Amazon Polly (that's me!), and always look at the AWS website for tips and tricks on using Amazon Polly and other great services from AWS"; public PollyDemo(Region region) { // create an Amazon Polly client in a specific region polly = new AmazonPollyClient(new DefaultAWSCredentialsProviderChain(), new ClientConfiguration()); polly.setRegion(region); // Create describe voices request. DescribeVoicesRequest describeVoicesRequest = new DescribeVoicesRequest(); // Synchronously ask Amazon Polly to describe available TTS voices. DescribeVoicesResult describeVoicesResult = polly.describeVoices(describeVoicesRequest); voice = describeVoicesResult.getVoices().get(0); } public InputStream synthesize(String text, OutputFormat format) throws IOException { SynthesizeSpeechRequest synthReq = new SynthesizeSpeechRequest().withText(text).withVoiceId(voice.getId()) .withOutputFormat(format); SynthesizeSpeechResult synthRes = polly.synthesizeSpeech(synthReq); return synthRes.getAudioStream(); } public static void main(String args[]) throws Exception { //create the test class PollyDemo helloWorld = new PollyDemo(Region.getRegion(Regions.US_EAST_1)); //get the audio stream InputStream speechStream = helloWorld.synthesize(SAMPLE, OutputFormat.Mp3); //create an MP3 player AdvancedPlayer player = new AdvancedPlayer(speechStream, javazoom.jl.player.FactoryRegistry.systemRegistry().createAudioDevice()); player.setPlayBackListener(new PlaybackListener() { @Override public void playbackStarted(PlaybackEvent evt) { System.out.println("Playback started"); System.out.println(SAMPLE); } @Override public void playbackFinished(PlaybackEvent evt) { System.out.println("Playback finished"); } }); // play it! player.play(); } }
  7. 로 돌아갑니다.polly-java-demo디렉토리를 사용하여 데모를 정리, 컴파일 및 실행할 수 있습니다.

    mvn clean compile exec:java