Cette page a été traduite par l'API Cloud Translation.
Switch to English

Répertorier toutes les voix compatibles

Pour obtenir la liste complète des voix compatibles, appelez le point de terminaison voices:list de l'API. Cette liste est également disponible sur la page Voix disponibles.

Les extraits de code suivants montrent comment répertorier les voix disponibles dans l'API Text-to-Speech pour la synthèse vocale.

Pour suivre ces exemples, vous devez au préalable configurer gcloud, ainsi que créer et activer un compte de service. Pour en savoir plus sur la configuration de gcloud, ainsi que sur la création et l'activation d'un compte de service, consultez la page Démarrage rapide avec Text-to-Speech.

Protocole

Reportez-vous au point de terminaison voices:list de l'API pour obtenir des informations complètes à ce sujet.

Pour obtenir la liste des voix disponibles pour la synthèse vocale, envoyez une requête GET au point de terminaison voices:list de l'API.

curl -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    -H "Content-Type: application/json; charset=utf-8" \
    "https://texttospeech.googleapis.com/v1/voices"

L'API Text-to-Speech renvoie un résultat au format JSON semblable à celui-ci :

{
  "voices": [
    {
      "languageCodes": [
        "es-ES"
      ],
      "name": "es-ES-Standard-A",
      "ssmlGender": "FEMALE",
      "naturalSampleRateHertz": 24000
    },
    {
      "languageCodes": [
        "ja-JP"
      ],
      "name": "ja-JP-Standard-A",
      "ssmlGender": "FEMALE",
      "naturalSampleRateHertz": 22050
    },
    {
      "languageCodes": [
        "pt-BR"
      ],
      "name": "pt-BR-Standard-A",
      "ssmlGender": "FEMALE",
      "naturalSampleRateHertz": 24000
    },
        ...
  ]
}

C#

/// <summary>
/// Lists all the voices available for speech synthesis.
/// </summary>
/// <param name="desiredLanguageCode">Language code to filter on</param>
public static int ListVoices(string desiredLanguageCode = "")
{
    TextToSpeechClient client = TextToSpeechClient.Create();

    // Performs the list voices request
    var response = client.ListVoices(new ListVoicesRequest
    {
        LanguageCode = desiredLanguageCode
    });

    foreach (Voice voice in response.Voices)
    {
        // Display the voices's name.
        Console.WriteLine($"Name: {voice.Name}");

        // Display the supported language codes for this voice.
        foreach (var languageCode in voice.LanguageCodes)
        {
            Console.WriteLine($"Supported language(s): {languageCode}");
        }

        // Display the SSML Voice Gender
        Console.WriteLine("SSML Voice Gender: " +
            (SsmlVoiceGender)voice.SsmlGender);

        // Display the natural sample rate hertz for this voice.
        Console.WriteLine("Natural Sample Rate Hertz: " +
            voice.NaturalSampleRateHertz);
    }
    return 0;
}

Go


// ListVoices lists the available text to speech voices.
func ListVoices(w io.Writer) error {
	ctx := context.Background()

	client, err := texttospeech.NewClient(ctx)
	if err != nil {
		return err
	}

	// Performs the list voices request.
	resp, err := client.ListVoices(ctx, &texttospeechpb.ListVoicesRequest{})
	if err != nil {
		return err
	}

	for _, voice := range resp.Voices {
		// Display the voice's name. Example: tpc-vocoded
		fmt.Fprintf(w, "Name: %v\n", voice.Name)

		// Display the supported language codes for this voice. Example: "en-US"
		for _, languageCode := range voice.LanguageCodes {
			fmt.Fprintf(w, "  Supported language: %v\n", languageCode)
		}

		// Display the SSML Voice Gender.
		fmt.Fprintf(w, "  SSML Voice Gender: %v\n", voice.SsmlGender.String())

		// Display the natural sample rate hertz for this voice. Example: 24000
		fmt.Fprintf(w, "  Natural Sample Rate Hertz: %v\n",
			voice.NaturalSampleRateHertz)
	}

	return nil
}

Java

/**
 * Demonstrates using the Text to Speech client to list the client's supported voices.
 *
 * @throws Exception on TextToSpeechClient Errors.
 */
public static List<Voice> listAllSupportedVoices() throws Exception {
  // Instantiates a client
  try (TextToSpeechClient textToSpeechClient = TextToSpeechClient.create()) {
    // Builds the text to speech list voices request
    ListVoicesRequest request = ListVoicesRequest.getDefaultInstance();

    // Performs the list voices request
    ListVoicesResponse response = textToSpeechClient.listVoices(request);
    List<Voice> voices = response.getVoicesList();

    for (Voice voice : voices) {
      // Display the voice's name. Example: tpc-vocoded
      System.out.format("Name: %s\n", voice.getName());

      // Display the supported language codes for this voice. Example: "en-us"
      List<ByteString> languageCodes = voice.getLanguageCodesList().asByteStringList();
      for (ByteString languageCode : languageCodes) {
        System.out.format("Supported Language: %s\n", languageCode.toStringUtf8());
      }

      // Display the SSML Voice Gender
      System.out.format("SSML Voice Gender: %s\n", voice.getSsmlGender());

      // Display the natural sample rate hertz for this voice. Example: 24000
      System.out.format("Natural Sample Rate Hertz: %s\n\n", voice.getNaturalSampleRateHertz());
    }
    return voices;
  }
}

Node.js

const textToSpeech = require('@google-cloud/text-to-speech');

const client = new textToSpeech.TextToSpeechClient();

const [result] = await client.listVoices({});
const voices = result.voices;

console.log('Voices:');
voices.forEach(voice => {
  console.log(`Name: ${voice.name}`);
  console.log(`  SSML Voice Gender: ${voice.ssmlGender}`);
  console.log(`  Natural Sample Rate Hertz: ${voice.naturalSampleRateHertz}`);
  console.log('  Supported languages:');
  voice.languageCodes.forEach(languageCode => {
    console.log(`    ${languageCode}`);
  });
});

PHP

use Google\Cloud\TextToSpeech\V1\TextToSpeechClient;

// create client object
$client = new TextToSpeechClient();

// perform list voices request
$response = $client->listVoices();
$voices = $response->getVoices();

foreach ($voices as $voice) {
    // display the voice's name. example: tpc-vocoded
    printf('Name: %s' . PHP_EOL, $voice->getName());

    // display the supported language codes for this voice. example: 'en-US'
    foreach ($voice->getLanguageCodes() as $languageCode) {
        printf('Supported language: %s' . PHP_EOL, $languageCode);
    }

    // SSML voice gender values from TextToSpeech\V1\SsmlVoiceGender
    $ssmlVoiceGender = ['SSML_VOICE_GENDER_UNSPECIFIED', 'MALE', 'FEMALE',
    'NEUTRAL'];

    // display the SSML voice gender
    $gender = $voice->getSsmlGender();
    printf('SSML voice gender: %s' . PHP_EOL, $ssmlVoiceGender[$gender]);

    // display the natural hertz rate for this voice
    printf('Natural Sample Rate Hertz: %d' . PHP_EOL,
        $voice->getNaturalSampleRateHertz());
}

$client->close();

Python

def list_voices():
    """Lists the available voices."""
    from google.cloud import texttospeech

    client = texttospeech.TextToSpeechClient()

    # Performs the list voices request
    voices = client.list_voices()

    for voice in voices.voices:
        # Display the voice's name. Example: tpc-vocoded
        print(f"Name: {voice.name}")

        # Display the supported language codes for this voice. Example: "en-US"
        for language_code in voice.language_codes:
            print(f"Supported language: {language_code}")

        ssml_gender = texttospeech.SsmlVoiceGender(voice.ssml_gender)

        # Display the SSML Voice Gender
        print(f"SSML Voice Gender: {ssml_gender.name}")

        # Display the natural sample rate hertz for this voice. Example: 24000
        print(f"Natural Sample Rate Hertz: {voice.natural_sample_rate_hertz}\n")

Ruby

# Lists the available voices.
require "google/cloud/text_to_speech"

client = Google::Cloud::TextToSpeech.text_to_speech

# Performs the list voices request
voices = client.list_voices({}).voices

voices.each do |voice|
  # Display the voice's name. Example: tpc-vocoded
  puts "Name: #{voice.name}"

  # Display the supported language codes for this voice. Example: "en-US"
  voice.language_codes.each do |language_code|
    puts "Supported language: #{language_code}"
  end

  # Display the SSML Voice Gender
  puts "SSML Voice Gender: #{voice.ssml_gender}"

  # Display the natural sample rate hertz for this voice. Example: 24000
  puts "Natural Sample Rate Hertz: #{voice.natural_sample_rate_hertz}\n"
end