Listing all supported voices

You can get a complete list of all the supported voices by calling the voices:list endpoint of the API. You can also find the complete list of voices available on the Supported Voices page.

The following code snippets demonstrate how to list the voices available in the Cloud Text-to-Speech API for text-to-speech synthesis.

These samples require that you have set up gcloud and have created and activated a service account. For information about setting up gcloud, and also creating and activating a service account, see Quickstart:Text-to-Speech.

Protocol

Refer to the voices:list API endpoint for complete details.

To get a list of the available voices for text-to-speech synthesis, make a GET request to the voices:list API endpoint.

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"

The Cloud Text-to-Speech API returns a JSON-formatted result that looks similar to the following:

{
  "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
    from google.cloud.texttospeech import enums
    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('Name: {}'.format(voice.name))

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

        ssml_gender = enums.SsmlVoiceGender(voice.ssml_gender)

        # Display the SSML Voice Gender
        print('SSML Voice Gender: {}'.format(ssml_gender.name))

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

Ruby

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

client = Google::Cloud::TextToSpeech.new

# 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

Oliko tästä sivusta apua? Kerro mielipiteesi

Palautteen aihe:

Tämä sivu
Cloud Text-to-Speech Documentation
Tarvitsetko apua? Siirry tukisivullemme.