Explique comment répertorier les voix disponibles.
Pages de documentation incluant cet exemple de code
Pour afficher l'exemple de code utilisé en contexte, consultez la documentation suivante :
Exemple de code
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