Utiliser votre modèle de voix personnalisée déployé

Avant de commencer

  1. Vous avez fourni à Google un ID de projet Google Cloud afin d'accéder à la fonctionnalité de voix personnalisée. Assurez-vous d'avoir activé la facturation, activé l'API Text-to-Speech et l'API AutoML pour ce projet, et installé et initialisé Google Cloud CLI.

  2. Attribuez le rôle Prédicteur AutoML à votre compte Google sur votre projet. Pour savoir comment procéder, consultez Attribuer un rôle unique.

Utiliser la ligne de commande

Méthode HTTP et URL :

POST https://texttospeech.googleapis.com/v1beta1/text:synthesize

Corps JSON de la requête :

{
  "input":{
    "text":"Android is a mobile operating system developed by Google, based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets."
  },
  "voice":{
    "custom_voice":{
      "reportedUsage":"REALTIME",
      "model":"projects/{project_id}/locations/us-central1/models/{model_id}",
     }
  },
  "audioConfig":{
    "audioEncoding":"LINEAR16"
  }
}

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante, en remplaçant PROJECT_ID par l'ID de votre projet :

curl -X POST \
-H "Authorization: Bearer "$(gcloud auth print-access-token) \
-H "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://texttospeech.googleapis.com/v1beta1/text:synthesize

Utiliser la bibliothèque cliente Python

Téléchargez la bibliothèque cliente, puis exécutez la commande suivante :

pip install texttospeech-custom-voice-beta-v1beta1-py.tar.gz
pip install protobuf --upgrade pip

Exemple de code Python

"""Synthesize custom voice from the input string of text or ssml.
"""
from google.cloud import texttospeech_v1beta1

# Instantiate a client
client = texttospeech_v1beta1.TextToSpeechClient()

# Set the text input to be synthesized
synthesis_input = texttospeech_v1beta1.types.SynthesisInput(text="Hello, World!")

# Build the voice request, select the language code ("en-US") and specify
# custom voice model and speaker_id.
custom_voice = texttospeech_v1beta1.types.CustomVoiceParams(
    reported_usage=texttospeech_v1beta1.enums.CustomVoiceParams.ReportedUsage.REALTIME,
    model='projects/{project_id}/locations/us-central1/models/{model_id}')
voice = texttospeech_v1beta1.types.VoiceSelectionParams(
    language_code='en-US',
    custom_voice=custom_voice)

# Select the type of audio file you want returned
audio_config = texttospeech_v1beta1.types.AudioConfig(
    audio_encoding=texttospeech_v1beta1.enums.AudioEncoding.LINEAR16)

# Perform the text-to-speech request on the text input with the selected
# voice parameters and audio file type
response = client.synthesize_speech(synthesis_input, voice, audio_config)

# The response's audio_content is binary.
with open('output.wav', 'wb') as out:
    # Write the response to the output file.
    out.write(response.audio_content)
    print('Audio content written to file "output.wav"')