Guida rapida di Voice personalizzato

Prima di iniziare

  1. Hai fornito a Google un ID progetto GCP per accedere alla funzionalità Voce personalizzata. Assicurati di aver attivato la fatturazione, abilitato l'API Text-to-Speech e l'API AutoML e configurato l'autenticazione per questo progetto.

  2. Assegna il ruolo AutoML Predictor all'account di servizio che utilizzerai per sintetizzare una voce personalizzata. Per ulteriori informazioni, consulta la documentazione di Google Cloud per i ruoli IAM e gli account di servizio.

Utilizzo della riga di comando

Metodo HTTP e URL:

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

Corpo JSON richiesta:

{
  "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"
  }
}

Salva il corpo della richiesta in un file denominato request.json ed esegui questo comando:

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

Utilizzo della libreria client Python

Scarica la libreria client ed esegui il seguente comando:

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

Codice Python di esempio

"""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.OFFLINE,
    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"')