Chirp 3: voix HD

Les voix Chirp 3 HD de Text-to-Speech représentent la dernière génération de technologie Text-to-Speech. Grâce à nos LLM de pointe, ces voix offrent un niveau de réalisme et de résonance émotionnelle inégalé.

 Essayer un notebook Colab  Afficher le notebook sur GitHub

Options vocales

Plusieurs options vocales sont disponibles, chacune avec des caractéristiques distinctes :

Nom Sexe Démonstration
Aoede Femme
Puck Homme
Charon Homme
Kore Femme
Fenrir Homme
Leda Femme
Orus Homme
Zephyr Femme
Achird Homme
Algenib Homme
Algieba Homme
Alnilam Homme
Autonoé Femme
Callirrhoe Femme
Despina Femme
Encelade Homme
Erinome Femme
Gacrux Femme
Japet Homme
Laomedeia Femme
Pulcherrima Femme
Rasalgethi Homme
Sadachbia Homme
Sadaltager Homme
Schedar Homme
Sulafat Femme
Umbriel Homme
Vindemiatrix Femme
Zubenelgenubi Homme
Achernar Femme

Langues disponibles

Les voix HD de Chirp 3 sont disponibles dans les langues suivantes :

Langue Code BCP-47
Anglais (États-Unis) en-US
Anglais (Australie) en-AU
Anglais (Royaume-Uni) en-GB
Anglais (Inde) en-IN
Espagnol (États-Unis) es-US
Allemand (Allemagne) de-DE
Français (France) fr-FR
Hindi (Inde) hi-IN
Portugais (Brésil) pt-BR
Arabe (générique) ar-XA
Espagnol (Espagne) es-ES
Français (Canada) fr-CA
Indonésien (Indonésie) id-ID
Italien (Italie) it-IT
Japonais (Japon) ja-JP
Turc (Turquie) tr-TR
Vietnamien (Viêt Nam) vi-VN
Bengali (Inde) bn-IN
Gujarati (Inde) gu-IN
Kannada (Inde) kn-IN
Malayalam (Inde) ml-IN
Marathi (Inde) mr-IN
Tamoul (Inde) ta-IN
Télougou (Inde) te-IN
Néerlandais (Belgique) nl-BE
Néerlandais (Pays-Bas) nl-NL
Coréen (Corée du Sud) ko-KR
Chinois mandarin (Chine) cmn-CN
Polonais (Pologne) pl-PL
Russe (Russie) ru-RU
Swahili (Kenya) sw-KE
Thaï (Thaïlande) th-TH
Ourdou (Inde) ur-IN
Ukrainien (Ukraine) uk-UA

Disponibilité en fonction des régions

Les voix HD de Chirp 3 sont disponibles dans les Google Cloud régions suivantes :

Google Cloud  Zone Disponibilité pour le lancement
global DG
us DG
eu DG
asia-southeast1 DG

Formats de sortie acceptés

Le format de réponse par défaut est LINEAR16, mais d'autres formats sont acceptés, y compris :

Méthode API Format
streaming ALAW, MULAW, OGG_OPUS et PCM
batch ALAW, MULAW, MP3, OGG_OPUS et PCM

Utiliser Chirp 3 : voix HD

Découvrez comment utiliser Chirp 3 : voix HD pour synthétiser la parole.

Envoyer une requête de synthèse vocale en streaming

Python

Pour savoir comment installer et utiliser la bibliothèque cliente pour Text-to-Speech, consultez la page Bibliothèques clientes Text-to-Speech. Pour en savoir plus, consultez la documentation de référence de l'API Text-to-Speech en langage Python.

Pour vous authentifier auprès de Text-to-Speech, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

"""Synthesizes speech from a stream of input text."""
from google.cloud import texttospeech

client = texttospeech.TextToSpeechClient()

# See https://cloud.google.com/text-to-speech/docs/voices for all voices.
streaming_config = texttospeech.StreamingSynthesizeConfig(
    voice=texttospeech.VoiceSelectionParams(
        name="en-US-Chirp3-HD-Charon",
        language_code="en-US",
    )
)

# Set the config for your stream. The first request must contain your config, and then each subsequent request must contain text.
config_request = texttospeech.StreamingSynthesizeRequest(
    streaming_config=streaming_config
)

text_iterator = [
    "Hello there. ",
    "How are you ",
    "today? It's ",
    "such nice weather outside.",
]

# Request generator. Consider using Gemini or another LLM with output streaming as a generator.
def request_generator():
    yield config_request
    for text in text_iterator:
        yield texttospeech.StreamingSynthesizeRequest(
            input=texttospeech.StreamingSynthesisInput(text=text)
        )

streaming_responses = client.streaming_synthesize(request_generator())

for response in streaming_responses:
    print(f"Audio content size in bytes is: {len(response.audio_content)}")

Envoyer une requête de synthèse vocale en ligne

Python

Pour savoir comment installer et utiliser la bibliothèque cliente pour Text-to-Speech, consultez la page Bibliothèques clientes Text-to-Speech. Pour en savoir plus, consultez la documentation de référence de l'API Text-to-Speech en langage Python.

Pour vous authentifier auprès de Text-to-Speech, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

def synthesize_text():
    """Synthesizes speech from the input string of text."""
    from google.cloud import texttospeech

    text = "Hello there."
    client = texttospeech.TextToSpeechClient()

    input_text = texttospeech.SynthesisInput(text=text)

    # Note: the voice can also be specified by name.
    # Names of voices can be retrieved with client.list_voices().
    voice = texttospeech.VoiceSelectionParams(
        language_code="en-US",
        name="en-US-Chirp3-HD-Charon",
    )

    audio_config = texttospeech.AudioConfig(
        audio_encoding=texttospeech.AudioEncoding.MP3
    )

    response = client.synthesize_speech(
        input=input_text,
        voice=voice,
        audio_config=audio_config,
    )

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

Conseils pour les scripts et les requêtes

Pour créer des contenus audio attrayants et naturels à partir de texte, il faut comprendre les nuances du langage parlé et les traduire sous forme de script. Les conseils suivants vous aideront à créer des scripts qui sonnent authentiques et qui reflètent le ton choisi.

Comprendre l'objectif : la parole naturelle

L'objectif principal est de faire en sorte que la voix synthétisée ressemble le plus possible à une voix humaine naturelle. Cela implique :

  • Imitation du rythme naturel : vitesse d'élocution d'une personne.
  • Créer un flux fluide : veiller à ce que les phrases et les expressions s'enchaînent de manière fluide.
  • Ajouter des pauses réalistes : insérer des pauses pour insister sur un mot ou pour marquer un changement de scène.
  • Capturer le ton conversationnel : faire en sorte que l'audio ressemble à une vraie conversation.

Techniques clés pour un discours naturel

  • Ponctuation pour le rythme et la fluidité

    • Points (.) : indiquent un arrêt complet et une pause plus longue. Utilisez-les pour séparer des idées complètes et créer des limites claires entre les phrases.
    • Virgules (,) : indiquent des pauses plus courtes dans les phrases. Utilisez-les pour séparer des clauses, des éléments de liste ou pour faire de brèves pauses.
    • Points de suspension (…) : représentent une pause plus longue et plus délibérée. Elles peuvent indiquer des pensées qui s'évanouissent, une hésitation ou une pause dramatique.
      • Exemple : "Et puis… c'est arrivé."
    • Traits d'union (-) : peuvent être utilisés pour indiquer une brève pause ou une rupture soudaine dans la pensée.
      • Exemple : "Je voulais dire quelque chose, mais je n'y suis pas parvenu."
  • Intégrer des pauses et des hésitations

    • Pauses stratégiques : utilisez des points de suspension, des virgules ou des tirets pour créer des pauses là où un locuteur humain ferait naturellement une pause pour reprendre son souffle ou mettre l'accent sur un mot.
    • Les disfluences (euh, hum) : bien que certains modèles de Text-to-Speech gèrent automatiquement les disfluences, il est essentiel de comprendre leur rôle. Elles ajoutent de l'authenticité et rendent la voix moins robotique. Même si le modèle les ajoute, le fait de savoir où ils se produiraient naturellement dans le langage humain vous aide à comprendre le flux global de votre script.
  • Tests et itérations

    • Resynthétiser : n'hésitez pas à resynthétiser le même message avec la même voix plusieurs fois. De petits ajustements de ponctuation, d'espacement ou de choix des mots peuvent avoir un impact significatif sur l'audio final.
    • Écoute critique : soyez très attentif au rythme, au flux et au ton général du contenu audio synthétisé. Identifiez les passages qui ne sonnent pas naturels et ajustez votre script en conséquence.
    • Variation de la voix : si le système le permet, essayez d'utiliser différentes voix pour voir celle qui convient le mieux à votre script et au ton choisi.
  • Conseils pratiques pour les scripts

    • Lecture à voix haute : avant de synthétiser votre script, lisez-le à voix haute. Cela vous aidera à identifier les formulations maladroites, les pauses non naturelles et les domaines à ajuster.
    • Écrivez de manière conversationnelle : utilisez des contractions (par exemple, "c'est", "nous sommes") et un langage informel pour rendre le script plus naturel.
    • Tenez compte du contexte : le ton et le rythme de votre script doivent correspondre au contexte de l'audio. Une présentation formelle nécessitera une approche différente d'une conversation informelle.
    • Décomposez les phrases complexes : les phrases longues et complexes peuvent être difficiles à gérer pour les moteurs de synthèse vocale. Divisez-les en phrases plus courtes et plus faciles à gérer.
  • Améliorations apportées aux exemples de scripts

    • Script d'origine (robotique) : "Le produit est désormais disponible. Nous avons de nouvelles fonctionnalités. C'est très excitant."

    • Script amélioré (naturel) : "Le produit est désormais disponible… et nous avons ajouté de nouvelles fonctionnalités intéressantes. C'est, eh bien, c'est très excitant."

    • Script original (robotique) : "Ceci est un message de confirmation automatique. Votre réservation a été traitée. Vous trouverez ci-dessous des informations concernant votre prochain séjour. Le numéro de réservation est le 12345. Le nom du client enregistré est Anthony Vasquez. La date d'arrivée est le 14 mars. La date de départ est le 16 mars. Le type de chambre est "Suite Deluxe". Le nombre de personnes est de 1. L'enregistrement commence à 15h. L'heure de départ est fixée à 11h. Veuillez noter que, conformément aux conditions d'annulation, vous devez nous prévenir 48 heures avant votre arrivée. Si vous ne nous prévenez pas dans ce délai, nous vous facturerons une nuit. Votre réservation inclut les services suivants : Wi-Fi gratuit, accès au centre de remise en forme et petit-déjeuner gratuit. Pour toute question, veuillez contacter directement l'hôtel au 855-555-6689. Merci d'avoir choisi notre hôtel."

    • Script amélioré (naturel) : "Bonjour Anthony Vasquez ! Nous sommes ravis de confirmer votre réservation ! Votre séjour du 14 au 16 mars dans notre magnifique suite Deluxe est réservé. C'est pour une personne. Votre numéro de confirmation est le 12345, au cas où vous en auriez besoin.

      Pour rappel, l'enregistrement se fait à 15h et le départ à 11h.

      Maintenant, un petit rappel concernant nos conditions d'annulation : si vous devez annuler, veuillez nous en informer au moins 48 heures avant votre arrivée. Sinon, une nuit vous sera facturée.

      Pour rendre votre séjour encore plus agréable, vous bénéficierez du Wi-Fi gratuit, d'un accès à notre centre de remise en forme et d'un délicieux petit-déjeuner gratuit chaque matin.

      Si vous avez la moindre question, n'hésitez pas à nous appeler au 855-555-6689. Nous avons hâte de vous accueillir à l'hôtel !"

    • Explication des modifications :

      • Les points de suspension (…) créent une pause pour insister.
      • "and we've" utilise une contraction pour un ton plus conversationnel.
      • "C'est, euh, c'est très excitant" ajoute une petite dose de disfluence et d'emphase.
      • Le rappel amical "D'accord ?" adoucit le ton.

    En suivant ces consignes, vous pouvez créer des scripts de synthèse vocale qui sonnent de manière naturelle, engageante et humaine. N'oubliez pas que la pratique et l'expérimentation sont essentielles pour maîtriser cette compétence.

Chirp 3 : commandes vocales HD

Les fonctionnalités de commande vocale sont spécifiquement destinées à la synthèse vocale HD. Notez que Chirp 3 : voix HD n'est pas compatible avec SSML, mais vous pouvez toujours gérer le contrôle du rythme, le contrôle de la pause et les prononciations personnalisées grâce aux options de contrôle de Chirp 3 : voix HD.

Contrôle de l'allure

Vous pouvez ajuster la vitesse de l'audio généré à l'aide du paramètre "Rythme". Le paramètre "Rythme" vous permet de ralentir ou d'accélérer la parole, avec des valeurs allant de 0,25x (très lent) à 2x (très rapide). Pour définir le rythme, utilisez le paramètre speaking_rate dans votre requête. Choisissez une valeur comprise entre 0,25 et 2,0. Les valeurs inférieures à 1,0 ralentissent la parole, tandis que celles supérieures à 1,0 l'accélèrent. Une valeur de 1,0 indique un rythme non ajusté.

Exemple de SynthesizeSpeechRequest utilisant le contrôle de l'allure :

{
  "audio_config": {
    "audio_encoding": "LINEAR16",
    "speaking_rate": 2.0,
  },
  "input": {
    "text": "Once upon a time, there was a cute cat. He was so cute that he got lots of treats.",
  },
  "voice": {
    "language_code": "en-US",
    "name": "en-us-Chirp3-HD-Leda",
  }
}

Exemple de StreamingSynthesizeConfig utilisant le contrôle du rythme :

{
  "streaming_audio_config": {
    "audio_encoding": "LINEAR16",
    "speaking_rate": 2.0,
  },
  "voice": {
    "language_code": "en-US",
    "name": "en-us-Chirp3-HD-Leda",
  }
}

Exemples audio de contrôle de l'allure :

Vitesse d'élocution Sortie
0,5
1.0
2.0

Mettre en pause le contrôle

Vous pouvez insérer des pauses dans la synthèse vocale générée par l'IA en intégrant des tags spéciaux directement dans votre texte à l'aide du champ de saisie markup. Notez que les balises de pause ne fonctionnent que dans le champ markup, et non dans le champ text.

Ces balises indiquent à l'IA de créer des silences, mais la durée exacte de ces pauses n'est pas fixe. L'IA ajuste la durée en fonction du contexte, tout comme la durée d'une phrase prononcée par un humain varie en fonction de l'orateur, du lieu et de la structure de la phrase. Les balises de pause disponibles sont [pause short], [pause long] et [pause]. Pour découvrir d'autres méthodes permettant de créer des pauses sans utiliser de balises de mise en forme, consultez nos consignes de création et d'incitation.

Il arrive que le modèle d'IA ignore les balises de pause, surtout si elles sont placées à des endroits non naturels dans le texte. Vous pouvez combiner plusieurs balises de pause pour des silences plus longs, mais une utilisation excessive peut entraîner des problèmes.

Exemple de SynthesizeSpeechRequest utilisant le contrôle de la pause :

{
  "audio_config": {
    "audio_encoding": "LINEAR16",
  },
  "input": {
    "markup": "Let me take a look, [pause long] yes, I see it.",
  },
  "voice": {
    "language_code": "en-US",
    "name": "en-us-Chirp3-HD-Leda",
  }
}

Exemple de StreamingSynthesisInput utilisant le contrôle de la pause :

{
  "markup": "Let me take a look, [pause long] yes, I see it.",
}

Exemples de commandes audio pour mettre en pause :

Saisie du balisage Sortie
"Laissez-moi regarder. Oui, je vois."
"Laisse-moi regarder… [longue pause] Oui, je vois."

Prononciations personnalisées

Vous pouvez spécifier des prononciations personnalisées à l'aide de représentations phonétiques IPA ou X-SAMPA pour les mots du texte d'entrée. Veillez à utiliser des phonèmes adaptés à la langue pour un rendu précis. Pour en savoir plus sur le remplacement des phonèmes, consultez notre documentation sur les phonèmes.

Exemple de SynthesizeSpeechRequest utilisant des prononciations personnalisées :

{
  "audio_config": {
    "audio_encoding": "LINEAR16",
  },
  "input": {
    "text": "There is a dog in the boat",
    "custom_pronunciations": {
      "phrase": "dog",
      "phonetic_encoding": "PHONETIC_ENCODING_X_SAMPA",
      "pronunciation": "\"k{t",
    }
  },
  "voice": {
    "language_code": "en-US",
    "name": "en-us-Chirp3-HD-Leda",
  }
}

Exemple de StreamingSynthesizeConfig utilisant des prononciations personnalisées :

{
  "streaming_audio_config": {
    "audio_encoding": "LINEAR16",
  },
  "voice": {
    "language_code": "en-US",
    "name": "en-us-Chirp3-HD-Leda",
  }
  "custom_pronunciations": {
    "phrase": "dog",
    "phonetic_encoding": "PHONETIC_ENCODING_X_SAMPA",
    "pronunciation": "\"k{t",
  }
}

Exemples audio de prononciations personnalisées :

Prononciations personnalisées appliquées Sortie
Aucun
"dog" prononcé ""k{t"

Les expressions remplacées peuvent être mises en forme de n'importe quelle manière, y compris à l'aide de symboles. Par exemple, en cas d'ambiguïté potentielle basée sur le contexte dans la mise en correspondance des expressions (ce qui est courant dans des langues comme le chinois et le japonais) ou dans les phrases où un mot peut être prononcé de différentes manières, l'expression peut être formatée pour supprimer l'ambiguïté. Par exemple, pour éviter d'écraser accidentellement d'autres occurrences du mot lire dans l'entrée, l'expression "read" peut être mise en forme comme "read1", "[read]" ou "(read)" pour le texte d'entrée et l'expression remplacée.

Voici un exemple d'application de prononciations personnalisées à une phrase dans laquelle le mot read est prononcé de deux manières différentes :

{
  "audio_config": {
    "audio_encoding": "LINEAR16",
  },
  "input": {
    "text": "I read1 a book, and I will now read2 it to you.",
    "custom_pronunciations": {
      "phrase": "read1",
      "phonetic_encoding": "PHONETIC_ENCODING_IPA",
      "pronunciation": "rɛd",
    }
    "custom_pronunciations": {
      "phrase": "read2",
      "phonetic_encoding": "PHONETIC_ENCODING_IPA",
      "pronunciation": "riːd",
    }
  },
  "voice": {
    "language_code": "en-US",
    "name": "en-us-Chirp3-HD-Leda",
  }
}
Prononciations personnalisées appliquées Sortie
La lecture est remplacée de deux manières

De plus, les prononciations personnalisées peuvent être utilisées avec une entrée de balisage, ce qui permet également d'utiliser des balises de pause :

{
  "audio_config": {
    "audio_encoding": "LINEAR16",
  },
  "input": {
    "markup": "Did you [pause long] read this book?",
    "custom_pronunciations": {
      "phrase": "read",
      "phonetic_encoding": "PHONETIC_ENCODING_IPA",
      "pronunciation": "riːd",
    }
  },
  "voice": {
    "language_code": "en-US",
    "name": "en-us-Chirp3-HD-Leda",
  }
}
Prononciations personnalisées utilisées Sortie
Remplacer la prononciation par une balise de pause

Langues disponibles pour les commandes vocales

  • Le contrôle du rythme est disponible dans toutes les langues.

  • Le contrôle de la mise en veille est disponible dans tous les paramètres régionaux.

  • Les prononciations personnalisées sont disponibles dans toutes les langues, sauf : bn-in, gu-in, nl-be, sw-ke, th-th, uk-ua, ur-in et vi-vn.

Questions fréquentes

Questions fréquentes et réponses :

Comment contrôler le rythme et le flux pour améliorer la sortie vocale ?

Vous pouvez utiliser nos consignes pour la création de requêtes et améliorer votre requête textuelle pour améliorer votre sortie vocale.

Comment accéder aux voix dans les langues disponibles ?

Les noms de voix suivent un format spécifique, ce qui permet de les utiliser dans les langues compatibles en spécifiant la voix de manière unique. Le format est le suivant : \<locale\>-\<model\>-\<voice\>. Par exemple, pour utiliser la voix Kore pour l'anglais (États-Unis) avec le modèle Chirp 3 : voix HD, vous devez la spécifier comme suit : en-US-Chirp3-HD-Kore.

Chirp 3 : voix HD est-il compatible avec SSML ?

Bien que Chirp 3 : voix HD ne fonctionne pas avec SSML, vous pouvez toujours gérer le contrôle du rythme et de la pause, ainsi que les prononciations personnalisées grâce aux options de contrôle vocal de Chirp 3 : voix HD.