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.
Cet exemple montre comment utiliser Amazon Polly pour diffuser du discours à partir d'une application Java. L'exemple utilise le AWS SDK for Java
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 :
-
Kit de développement Java (JDK) 8
Pour tester l'application
-
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
-
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
-
Créez un répertoire appelé
polly-java-demo
. -
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>
-
Créez un répertoire appelé
polly
danssrc/main/java/com/amazonaws/demos
. -
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(); } }
-
Revenez dans le répertoire
polly-java-demo
pour nettoyer, compiler et exécuter la démonstration :mvn clean compile exec:java