Chirp 3: HD-Stimmen

Text-to-Speech Chirp 3: HD-Stimmen sind die neueste Generation der Text-to-Speech-Technologie. Dank unserer innovativen LLMs bieten diese Stimmen ein beispielloses Maß an Realismus und emotionaler Resonanz.

Colab-Notebook testen Notebook auf GitHub ansehen

Sprachoptionen

Es stehen verschiedene Sprachoptionen mit jeweils eigenen Merkmalen zur Verfügung:

Name Geschlecht Demo
Aoede Weiblich
Puck Männlich
Charon Männlich
Kore Weiblich
Fenrir Männlich
Leda Weiblich
Orus Männlich
Zephyr Weiblich

Verfügbare Sprachen

Chirp 3: HD-Stimmen werden in den folgenden Sprachen unterstützt:

Sprache BCP-47-Code
Deutsch (Deutschland) de-DE
Englisch (Australien) en-AU
Englisch (Großbritannien) en-GB
Englisch (Indien) en-IN
Spanisch (USA) es-US
Französisch (Frankreich) fr-FR
Hindi (Indien) hi-IN
Portugiesisch (Brasilien) pt-BR
Arabisch (generisch) ar-XA
Spanisch (Spanien) es-ES
Französisch (Kanada) fr-CA
Indonesisch (Indonesien) id-ID
Italienisch (Italien) it-IT
Japanisch (Japan) ja-JP
Türkisch (Türkei) tr-TR
Vietnamesisch (Vietnam) vi-VN
Bengalisch (Indien) bn-IN
Gujarati (Indien) gu-IN
Kannada (Indien) kn-IN
Malayalam (Indien) ml-IN
Marathi (Indien) mr-IN
Tamil (Indien) ta-IN
Telugu (Indien) te-IN
Niederländisch (Niederlande) nl-NL
Koreanisch (Südkorea) ko-KR
Chinesisch (Mandarin, China) cmn-CN
Polnisch (Polen) pl-PL
Russisch (Russland) ru-RU
Thailändisch (Thailand) th-TH

Regionale Verfügbarkeit

Chirp 3: HD-Stimmen sind in den folgenden Google Cloud Regionen verfügbar:

Google Cloud Zone Einführungsreife
global GA
us GA
eu GA
asia-southeast1 GA

Unterstützte Ausgabeformate

Das Standardantwortformat ist LINEAR16. Folgende Formate werden ebenfalls unterstützt:

API-Methode Format
streaming ALAW, MULAW, OGG_OPUS und PCM
batch ALAW, MULAW, MP3, OGG_OPUS und PCM

Chirp 3: HD-Stimmen verwenden

Hier erfahren Sie, wie Sie mit Chirp 3: HD-Stimmen Sprache synthetisieren.

Streamingsprachsynthese anfordern

Python

Informationen zum Installieren und Verwenden der Clientbibliothek für Text-to-Speech finden Sie unter Text-to-Speech-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Text-to-Speech Python API.

Richten Sie zur Authentifizierung bei Text-to-Speech Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

Online-Sprachsynthese anfordern

Python

Informationen zum Installieren und Verwenden der Clientbibliothek für Text-to-Speech finden Sie unter Text-to-Speech-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Text-to-Speech Python API.

Richten Sie zur Authentifizierung bei Text-to-Speech Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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"')

Tipps zu Scripts und Prompts

Um ansprechende und natürlich klingende Audioinhalte aus Text zu erstellen, müssen Sie die Feinheiten der gesprochenen Sprache verstehen und in ein Skript umwandeln. Die folgenden Tipps helfen Ihnen, Scripts zu erstellen, die authentisch klingen und den gewünschten Ton treffen.

Ziel verstehen: Natürliche Sprache

Das Hauptziel besteht darin, die synthetisierte Stimme so natürlich wie möglich klingen zu lassen. Dazu gehören:

  • Natürliches Sprechtempo nachahmen:Wie schnell oder langsam jemand spricht.
  • Rhythmus schaffen:Sorgen Sie für nahtlose Übergänge zwischen Sätzen und Wortgruppen.
  • Realistische Pausen einfügen:Füge Pausen ein, um bestimmte Aussagen zu betonen und für Klarheit zu sorgen.
  • Ungezwungene Sprache verwenden:Die Audioinhalte sollen wie eine echte Unterhaltung klingen.

Wichtige Techniken für natürliche Sprache

  • Zeichensetzung für Tempo und Fluss

    • Punkte (.): Sie geben einen Schlusspunkt und eine längere Pause an. Verwenden Sie sie, um vollständige Gedanken zu trennen und klare Satzgrenzen zu schaffen.
    • Kommas (,): Signalisieren kürzere Pausen innerhalb von Sätzen. Sie können damit Sätze trennen, Listenelemente auflisten oder kurze Pausen einlegen.
    • Dreipunkt-Strich (…): Stellt eine längere, bewusstere Pause dar. Sie können auf unvollständige Gedanken, Zögern oder eine dramatische Pause hinweisen.
      • Beispiel: „Und dann… passierte es.“
    • Bindestriche (-): Sie können eine kurze Pause oder einen plötzlichen Gedankenabbruch anzeigen.
      • Beispiel: „Ich wollte etwas sagen, aber ich konnte nicht.“
  • Pausen und Stolpersteine einbauen

    • Strategische Pausen: Verwenden Sie Auslassungspunkte, Kommas oder Bindestriche, um Pausen an Stellen einzufügen, an denen ein menschlicher Sprecher natürlich innehalten würde, um Luft zu holen oder etwas zu betonen.
    • Stolpersteine (Hämungen): Einige Modelle für die Sprachausgabe verarbeiten Stolpersteine automatisch. Es ist jedoch wichtig, ihre Rolle zu verstehen. Sie verleihen dem Text Authentizität und lassen die Sprache weniger roboterartig klingen. Auch wenn das Modell sie hinzufügt, hilft es Ihnen, den Gesamtfluss Ihres Scripts zu verstehen, wenn Sie wissen, wo sie in der menschlichen Sprache natürlich vorkommen würden.
  • Tests und Iterationen

    • Noch einmal synthetisieren: Es ist kein Problem, dieselbe Nachricht mehrmals mit derselben Stimme zu synthetisieren. Kleine Änderungen an Satzzeichen, Abständen oder Wortwahl können sich erheblich auf den endgültigen Audiotrack auswirken.
    • Kritisch zuhören: Achten Sie genau auf das Tempo, den Fluss und den Gesamtton der synthetisierten Audioinhalte. Identifizieren Sie Stellen, die unnatürlich klingen, und passen Sie Ihr Script entsprechend an.
    • Stimmvariation: Wenn das System dies zulässt, probieren Sie verschiedene Stimmen aus, um herauszufinden, welche am besten zu Ihrem Skript und dem gewählten Ton passt.
  • Praktische Tipps zum Scripting

    • Laut vorlesen: Lesen Sie Ihr Skript vor der Synthese laut vor. So erkennen Sie holprige Formulierungen, unnatürliche Pausen und Bereiche, die angepasst werden müssen.
    • In einer Unterhaltungsform schreiben: Verwenden Sie Kurzformen (z.B. „es ist“, „wir sind“) und informelle Sprache, damit das Script natürlicher klingt.
    • Kontext berücksichtigen: Der Ton und das Tempo deines Scripts sollten zum Kontext des Audioinhalts passen. Eine formelle Präsentation erfordert einen anderen Ansatz als ein ungezwungenes Gespräch.
    • Komplexe Sätze in mehrere Teile unterteilen: Lange, verschachtelte Sätze können für TTS-Engines schwierig zu verarbeiten sein. Unterteilen Sie sie in kürzere, überschaubarere Sätze.
  • Verbesserungen am Beispielskript

    • Ursprüngliches Script (Roboter): „Das Produkt ist jetzt verfügbar. Es gibt neue Funktionen. Es ist sehr aufregend.“

    • Verbessertes Script (natürlich): „Das Produkt ist jetzt verfügbar und wir haben einige spannende neue Funktionen hinzugefügt. Es ist sehr aufregend.“

    • Original-Script (Roboter): „Dies ist eine automatisierte Bestätigungsnachricht. Ihre Reservierung wurde verarbeitet. Die folgenden Details beziehen sich auf Ihren bevorstehenden Aufenthalt. Die Reservierungsnummer lautet 12345. Der registrierte Name des Gastes ist Anthony Vasquez. Das Ankunftsdatum ist der 14. März. Abreisedatum ist der 16. März. Zimmertyp ist Deluxe-Suite. Die Anzahl der Gäste ist 1. Der Check-in ist ab 15:00 Uhr möglich. Check-out ist um 11:00 Uhr. Gemäß den Stornierungsbedingungen muss die Stornierung 48 Stunden vor Anreise erfolgen. Andernfalls wird Ihnen eine Übernachtung in Rechnung gestellt. Weitere in Ihrer Reservierung enthaltene Annehmlichkeiten sind kostenloses WLAN, Zugang zum Fitnesscenter und ein kostenloses Frühstück. Bei Fragen wenden Sie sich bitte direkt an das Hotel unter +1-855-555-6689. Vielen Dank, dass Sie sich für unser Hotel entschieden haben.“

    • Verbessertes Script (natürlich): „Hallo Anthony Vasquez, Wir freuen uns, Ihnen mitteilen zu können, dass wir Ihre Reservierung bestätigen können. Sie können Ihren Aufenthalt vom 14. bis zum 16. März in unserer schönen Deluxe-Suite genießen. Das gilt für 1 Gast. Ihre Bestätigungsnummer lautet 12345. Bitte notieren Sie sich diese für später.

      Zur Erinnerung: Der Check-in ist um 15:00 Uhr und der Check-out um 11:00 Uhr.

      Hier noch ein Hinweis zu unseren Stornierungsbedingungen: Wenn Sie stornieren möchten, informieren Sie uns bitte mindestens 48 Stunden vor Ihrer Ankunft. Andernfalls wird Ihnen der Preis für eine Nacht berechnet.

      Außerdem können Sie sich auf kostenloses WLAN, Zugang zu unserem Fitnesscenter und ein köstliches kostenloses Frühstück jeden Morgen freuen.

      Bei Fragen kannst du uns unter 855-555-6689 anrufen. Wir freuen uns schon darauf, Sie im Hotel begrüßen zu dürfen.“

    • Erläuterung der Änderungen:

      • Die Auslassungspunkte (...) sorgen für eine Pause zur Betonung.
      • „und wir haben“ ist eine Konjugation, die für einen ungezwungenen Ton sorgt.
      • „Es ist, nun ja, es ist sehr aufregend“ fügt eine kleine Unflüssigkeit und Betonung hinzu.
      • „Okay?“ wirkt freundlicher.

    Wenn Sie diese Richtlinien befolgen, können Sie Scripts für die Text-zu-Sprache-Funktion erstellen, die natürlich, ansprechend und menschlich klingen. Denken Sie daran, dass Übung und Experimentieren der Schlüssel zum Meistern dieser Fähigkeit sind.

Chirp 3: HD-Sprachsteuerung

Die Sprachsteuerungsfunktionen sind speziell für die HD-Sprachsynthese konzipiert. HD-Stimmen unterstützen keine SSML-Eingabe. Außerdem kann die Pausier- und Geschwindigkeitssteuerung zu inkonsistenten Ergebnissen führen.

Verfügbare Sprachen für die Sprachsteuerung

Piepton 3: Die HD-Sprachsteuerung ist derzeit nur auf Englisch (USA) verfügbar.

Temporegelung

Mit dem Parameter „Tempo“ kannst du die Geschwindigkeit des generierten Audios anpassen. Mit diesem Parameter können Sie die Sprache verlangsamen oder beschleunigen. Die Werte reichen von 0, 25-fach (sehr langsam) bis 2-fach (sehr schnell) in Schritten von 0,25-fach. Verwenden Sie den Parameter „speaking_rate“ in Ihrer Anfrage, um das Tempo festzulegen. Wählen Sie dazu einen Gleitkommawert zwischen 0,25 und 2,0 aus. Werte unter 1,0 verlangsamen die Sprache, während Werte über 1,0 sie beschleunigen. Ein Wert von 1,0 entspricht dem ungeregelten Tempo.

Beispiel für eine SynthesizeSpeechRequest-Anfrage mit Temposteuerung:

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

Beispiel für eine StreamingSynthesizeConfig mit Temporegelung:

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

Audio-Samples mit dem Temporegler steuern:

Sprechgeschwindigkeit Ausgabe
0,5
1,0
2.0

Steuerelement zum Pausieren

Sie können Pausen in KI-generierte Sprache einfügen, indem Sie über das Eingabefeld markup spezielle Tags direkt in den Text einbetten. Hinweis: Pausierungs-Tags funktionieren nur im Feld markup, nicht im Feld text.

Diese Tags signalisieren der KI, Pausen zu erstellen, die genaue Länge dieser Pausen ist jedoch nicht festgelegt. Die KI passt die Dauer je nach Kontext an, ähnlich wie natürliche menschliche Sprache je nach Sprecher, Standort und Satzstruktur variiert. Verfügbare Pausen-Tags sind [pause short], [pause long] und [pause]. Alternative Methoden zum Erstellen von Pausen ohne Markup-Tags findest du in unseren Richtlinien für Prompts und Sätze.

Das KI-Modell ignoriert die Pausen-Tags gelegentlich, insbesondere wenn sie an unnatürlichen Stellen im Text platziert sind. Du kannst mehrere Pausen-Tags kombinieren, um längere Pausen zu erzeugen. Eine übermäßige Verwendung kann jedoch zu Problemen führen.

Beispiel für eine SynthesizeSpeechRequest-Anfrage mit Pausiersteuerung:

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

Beispiel für StreamingSynthesisInput mit Pausiersteuerung:

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

Audio-Samples pausieren:

Markup-Eingabe Ausgabe
„Ich schaue mir das an. Ja, ich sehe es.“
„Ich prüfe das kurz. [lange Pause] Ja, ich sehe es.“

FAQ

Häufig gestellte Fragen und ihre Antworten:

Wie kann ich das Tempo und den Fluss steuern, um die Sprachausgabe zu verbessern?

Sie können unsere Richtlinien für Prompts und die Texterstellung verwenden und Ihren Textprompt verbessern, um die Sprachausgabe zu optimieren.

Wie greife ich auf Stimmen in unterstützten Sprachen zu?

Sprachnamen folgen einem bestimmten Format, sodass sie in allen unterstützten Sprachen verwendet werden können. Das Format entspricht \<locale\>-\<model\>-\<voice\>. Wenn Sie beispielsweise die Kore-Stimme für Englisch (Vereinigte Staaten) mit dem Chirp 3: HD-Stimmen-Modell verwenden möchten, geben Sie en-US-Chirp3-HD-Kore an.

Unterstützen Chirp 3: HD-Stimmen SSML?

Die Stimmen von Chirp 3: HD funktionieren zwar nicht mit SSML, aber du kannst das Tempo und die Pausensteuerung über die Optionen für die HD-Sprachsteuerung verwalten.