Exemple Java - Amazon Polly

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemple Java

Cet exemple montre comment utiliser Amazon Polly pour diffuser du discours à partir d'une application Java. L'exemple utilise le AWS SDK for Javapour lire le texte spécifié à l'aide d'une voix sélectionnée dans une liste.

Le code illustré couvre les tâches principales, mais n'effectue qu'une vérification minimale des erreurs. Si Amazon Polly rencontre une erreur, l'application se ferme.

Pour exécuter cet exemple d'application, vous avez besoin des éléments suivants :

Pour tester l'application
  1. Assurez-vous que la variable d'environnement JAVA_HOME est définie pour le JDK.

    Par exemple, si vous avez installé JDK 1.8.0_121 sous Windows dans C:\Program Files\Java\jdk1.8.0_121, vous devez taper ce qui suit à l'invite de commande :

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

    Si vous avez installé JDK 1.8.0_121 sous Linux dans /usr/lib/jvm/java8-openjdk-amd64, vous devez taper ce qui suit à l'invite de commande :

    export JAVA_HOME=/usr/lib/jvm/java8-openjdk-amd64
  2. Définissez la variable d'environnement Maven pour exécuter Maven à partir de la ligne de commande.

    Par exemple, si vous avez installé Maven 3.3.9 sous Windows dans C:\Program Files\apache-maven-3.3.9, vous devez taper ce qui suit à l'invite de commande :

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

    Si vous avez installé Maven 3.3.9 sous Linux dans /home/ec2-user/opt/apache-maven-3.3.9, vous devez taper ce qui suit à l'invite de commande :

    export M2_HOME=/home/ec2-user/opt/apache-maven-3.3.9 export M2=$M2_HOME/bin export PATH=$M2:$PATH
  3. Créez un répertoire appelé polly-java-demo.

  4. Dans le répertoire polly-java-demo, créez un nouveau fichier appelé pom.xml et collez le code suivant dans celui-ci :

    <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. Créez un répertoire appelé polly dans src/main/java/com/amazonaws/demos.

  6. Dans le répertoire polly, créez un nouveau fichier source Java appelé PollyDemo.java et collez le code suivant dans celui-ci :

    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).withEngine("neural"); 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. Revenez dans le répertoire polly-java-demo pour nettoyer, compiler et exécuter la démonstration :

    mvn clean compile exec:java