Exemple Android - 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 Android

L'exemple suivant utilise le kit SDK Android pour Amazon Polly pour lire le texte spécifié à l'aide d'une voix sélectionnée dans une liste de voix.

Le code, affiché ici, couvre les tâches principales, mais ne gère pas les d'erreurs. Pour obtenir le code complet, consultez leAWS Mobile SDK for AndroidDémo Amazon Polly.

Initialiser

// Cognito pool ID. Pool needs to be unauthenticated pool with // Amazon Polly permissions. String COGNITO_POOL_ID = "YourCognitoIdentityPoolId"; // Region of Amazon Polly. Regions MY_REGION = Regions.US_EAST_1;   // Initialize the Amazon Cognito credentials provider. CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(         getApplicationContext(),         COGNITO_POOL_ID,         MY_REGION ); // Create a client that supports generation of presigned URLs. AmazonPollyPresigningClient client = new AmazonPollyPresigningClient(credentialsProvider);
Obtenir la liste des voix disponibles

// Create describe voices request. DescribeVoicesRequest describeVoicesRequest = new DescribeVoicesRequest(); // Synchronously ask Amazon Polly to describe available TTS voices. DescribeVoicesResult describeVoicesResult = client.describeVoices(describeVoicesRequest); List<Voice> voices = describeVoicesResult.getVoices();
Obtenir l'URL du flux audio

// Create speech synthesis request. SynthesizeSpeechPresignRequest synthesizeSpeechPresignRequest =         new SynthesizeSpeechPresignRequest()         // Set the text to synthesize.         .withText("Hello world!")         // Select voice for synthesis.         .withVoiceId(voices.get(0).getId()) // "Joanna"         // Set format to MP3.         .withOutputFormat(OutputFormat.Mp3); // Get the presigned URL for synthesized speech audio stream. URL presignedSynthesizeSpeechUrl =         client.getPresignedSynthesizeSpeechUrl(synthesizeSpeechPresignRequest);
Lire la synthèse vocale

// Use MediaPlayer: https://developer.android.com/guide/topics/media/mediaplayer.html // Create a media player to play the synthesized audio stream. MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); try {     // Set media player's data source to previously obtained URL.     mediaPlayer.setDataSource(presignedSynthesizeSpeechUrl.toString()); } catch (IOException e) {     Log.e(TAG, "Unable to set data source for the media player! " + e.getMessage()); } // Prepare the MediaPlayer asynchronously (since the data source is a network stream). mediaPlayer.prepareAsync(); // Set the callback to start the MediaPlayer when it's prepared. mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {     @Override     public void onPrepared(MediaPlayer mp) {         mp.start();     } }); // Set the callback to release the MediaPlayer after playback is completed. mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { mp.release(); } });