Chirp 3: voix HD

Synthèse vocale Chirp 3: les voix HD représentent la dernière génération de technologie de synthèse vocale. 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 présentant des caractéristiques distinctes:

Nom Sexe Démonstration
Aoede Femme
Palet Homme
Charon Homme
Kore Femme
Fenrir Homme
Léda Femme
Orus Homme
Zéphyr Femme

Disponibilité des langues

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

Langue Code BCP-47
Allemand (Allemagne) de-DE
Anglais (Australie) en-AU
Anglais (Royaume-Uni) en-GB
Anglais (Inde) en-IN
Espagnol (États-Unis) es-US
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 (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
Thaï (Thaïlande) th-TH

Disponibilité en fonction des régions

Chirp 3: les voix HD sont disponibles dans les régions Google Cloud 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:

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.

Effectuer 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 l'écriture de scripts et les requêtes

Pour créer un contenu audio engageant et naturel à partir de texte, vous devez comprendre les nuances de la langue parlée et les traduire sous forme de script. Les conseils suivants vous aideront à créer des scripts qui sonnent authentiquement et qui capturent 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 à celle d'un locuteur humain. Cela implique:

  • Imitation du débit naturel:vitesse ou lenteur de la parole.
  • Créer un flux fluide:assurez-vous que les transitions entre les phrases et les expressions sont fluides.
  • Ajouter des pauses réalistes:insérer des pauses pour insister sur un point ou pour clarifier une information.
  • Capter le ton conversationnel:donner à l'audio l'impression d'une véritable conversation.

Principales techniques pour une voix naturelle

  • Ponctuation pour le rythme et la fluidité

    • Ponctuation (.): indique un arrêt complet et une pause plus longue. Utilisez-les pour séparer des pensées complètes et créer des limites de phrase claires.
    • Virgules (,): signalent des pauses plus courtes dans les phrases. Utilisez-les pour séparer des clauses, énumérer des éléments ou faire de courtes pauses pour respirer.
    • Points de suspension (...): représentent une pause plus longue et plus délibérée. Elles peuvent indiquer des pensées en suspens, une hésitation ou une pause dramatique.
      • Exemple: "Et puis... c'est arrivé."
    • Trait d'union (-): peut être utilisé pour indiquer une brève pause ou une interruption soudaine de la pensée.
      • Exemple: "Je voulais dire, mais je n'ai pas pu."
  • Intégrer des pauses et des disfluences

    • Pauses stratégiques: utilisez des points de suspension, des virgules ou des traits d'union pour créer des pauses à des endroits où un locuteur humain ferait naturellement une pause pour reprendre son souffle ou mettre l'accent sur un élément.
    • Disfluences (hésitations): bien que certains modèles de synthèse vocale gèrent automatiquement les disfluences, il est essentiel de comprendre leur rôle. Elles ajoutent de l'authenticité et rendent la voix moins robotisée. Même si le modèle les ajoute, savoir où elles se produiraient naturellement dans le langage humain vous aide à comprendre le flux global de votre script.
  • Tests et itérations

    • Résynthétiser: n'hésitez pas à résynthétiser plusieurs fois le même message avec la même voix. De légères modifications de la ponctuation, de l'espacement ou du choix des mots peuvent avoir un impact significatif sur l'audio final.
    • Écoutez de manière critique: soyez particulièrement attentif au rythme, au débit et au ton général de l'audio synthétisé. Identifiez les passages qui sonnent de manière peu naturelle et ajustez votre script en conséquence.
    • Variété de voix: si le système le permet, essayez d'utiliser différentes voix pour déterminer celle qui convient le mieux à votre script et au ton que vous avez choisi.
  • Conseils pratiques pour l'écriture de scripts

    • Lire à voix haute: avant de synthétiser, lisez votre script à voix haute. Cela vous aidera à identifier les formulations maladroites, les pauses inappropriées et les éléments à ajuster.
    • Rédigez 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écessite une approche différente d'une conversation informelle.
    • Divisez les phrases complexes: les moteurs de synthèse vocale peuvent avoir du mal à gérer les phrases longues et complexes. Divisez-les en phrases plus courtes et plus faciles à gérer.
  • Exemples d'améliorations de script

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

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

    • Script d'origine (robotique): "Ce message de confirmation vous a été envoyé automatiquement. Votre réservation a été traitée. Les informations suivantes concernent votre prochain séjour. Le numéro de réservation est 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". Nombre de personnes : 1 L'heure d'arrivée est 15h. L'heure de départ est fixée à 11h. Veuillez noter que, conformément aux conditions d'annulation, vous devez nous en informer 48 heures avant votre arrivée. Si vous ne nous en informez pas dans ce délai, nous vous facturerons une nuit. Votre réservation inclut également 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 vous confirmer votre réservation. Votre séjour du 14 au 16 mars dans notre magnifique suite Deluxe est confirmé. C'est pour une personne. Voici votre numéro de confirmation au cas où vous en auriez besoin : 12345.

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

      Je tiens à vous rappeler nos conditions d'annulation. Si vous devez annuler votre réservation, prévenez-nous 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 d'un accès Wi-Fi gratuit, d'un centre de remise en forme et d'un délicieux petit-déjeuner gratuit chaque matin.

      Si vous avez des questions, 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.
      • "et nous avons" utilise une contraction pour un ton plus conversationnel.
      • "C'est, eh bien, c'est très excitant" ajoute une petite dose d'hésitation et d'accentuation.
      • La formule "OK ?" est un rappel amical qui adoucit le ton.

    En suivant ces consignes, vous pouvez créer des scripts de conversion texte-audio qui sonnent de manière naturelle, attrayante 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 réservées à la synthèse vocale HD. Notez que les voix HD ne sont pas compatibles avec le balisage SSML, et que le contrôle de la mise en pause et du débit peut produire des résultats incohérents.

Langues disponibles pour les commandes vocales

Chirp 3: les commandes vocales HD ne sont actuellement disponibles qu'en anglais américain.

Contrôle de l'allure

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

Exemple de SynthesizeSpeechRequest utilisant la commande de vitesse:

{
  "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 de la vitesse:

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

Échantillons audio de contrôle de la vitesse:

Vitesse d'élocution Sortie
0,5
1.0
2.0

Commande de mise en pause

Vous pouvez insérer des pauses dans la voix générée par IA en insérant des balises spéciales 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 parole humaine naturelle varie en fonction du locuteur, de l'emplacement 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 de création de pauses sans utiliser de tags de balisage, consultez nos consignes concernant les invites et la création.

Le modèle d'IA peut parfois ignorer les tags de pause, en particulier s'ils sont placés à des endroits inhabituels 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 avec commande de 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 la commande de mise en pause:

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

Commande de mise en pause des échantillons audio:

Saisie du balisage Sortie
"Laissez-moi voir. Oui, je le vois."
"Laissez-moi y jeter un œil. [Pause longue] Oui, je vois."

Questions fréquentes

Questions fréquentes et réponses:

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

Vous pouvez utiliser nos consignes de création et d'utilisation des 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 toutes les langues acceptées en spécifiant la voix de manière unique. Le format suit \<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 spécifier en-US-Chirp3-HD-Kore.

Les voix Chirp 3: HD sont-elles compatibles avec SSML ?

Bien que les voix Chirp 3: HD ne fonctionnent pas avec SSML, vous pouvez toujours gérer la vitesse et la pause via les options de commande vocale HD.