Chirp 3: HD-Stimmen

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

Colab-Notebook ausprobieren Notebook auf GitHub ansehen

Stimmoptionen

Es gibt verschiedene Stimmoptionen mit jeweils unterschiedlichen Merkmalen:

Name Geschlecht Demo
Achernar Weiblich
Achird Männlich
Algenib Männlich
Algieba Männlich
Alnilam Männlich
Aoede Weiblich
Autonoe Weiblich
Callirrhoe Weiblich
Charon Männlich
Despina Weiblich
Enceladus Männlich
Erinome Weiblich
Fenrir Männlich
Gacrux Weiblich
Iapetus Männlich
Kore Weiblich
Laomedeia Weiblich
Leda Weiblich
Orus Männlich
Pulcherrima Weiblich
Puck Männlich
Rasalgethi Männlich
Sadachbia Männlich
Sadaltager Männlich
Schedar Männlich
Sulafat Weiblich
Umbriel Männlich
Vindemiatrix Weiblich
Zephyr Weiblich
Zubenelgenubi Männlich

Verfügbare Sprachen

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

Sprache BCP-47-Code
Arabisch (Standard) ar-XA
Bengalisch (Indien) bn-IN
Dänisch (Dänemark) da-DK
Niederländisch (Belgien) nl-BE
Niederländisch (Niederlande) nl-NL
Englisch (Australien) en-AU
Englisch (Indien) en-IN
Englisch (Vereinigtes Königreich) de-DE
Englisch (USA) en-US
Finnisch (Finnland) fi-FI
Französisch (Kanada) fr-CA
Französisch (Frankreich) fr-FR
Deutsch (Deutschland) de-DE
Gujarati (Indien) gu-IN
Hindi (Indien) hi-IN
Indonesisch (Indonesien) id-ID
Italienisch (Italien) it-IT
Japanisch (Japan) ja-JP
Kannada (Indien) kn-IN
Koreanisch (Südkorea) ko-KR
Malayalam (Indien) ml-IN
Mandarin (China) cmn-CN
Marathi (Indien) mr-IN
Norwegisch (Norwegen) nb-NO
Polnisch (Polen) pl-PL
Portugiesisch (Brasilien) pt-BR
Russisch (Russland) ru-RU
Spanisch (Spanien) es-ES
Spanisch (USA) es-US
Swahili (Kenia) sw-KE
Schwedisch (Schweden) sv-SE
Tamil (Indien) ta-IN
Telugu (Indien) te-IN
Thailändisch (Thailand) th-TH
Türkisch (Türkei) tr-TR
Ukrainisch (Ukraine) uk-UA
Urdu (Indien) ur-IN
Vietnamesisch (Vietnam) vi-VN

Regionale Verfügbarkeit

Chirp 3: HD-Stimmen sind jeweils 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, aber es werden folgende weitere Formate 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

Erfahren Sie, wie Sie mit Chirp 3: HD-Stimmen Sprache synthetisieren können.

Streaming-Sprachsyntheseanfrage ausführen

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 ADC 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-Sprachsyntheseanfrage ausführen

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 ADC 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 für die Skripterstellung und das Verfassen von Prompts

Um ansprechende und natürlich klingende Audioinhalte aus Text zu erstellen, müssen die Nuancen der gesprochenen Sprache verstanden und in Skriptform übersetzt werden. Die folgenden Tipps helfen Ihnen, authentisch klingende Skripte zu erstellen, die den gewählten Ton treffen.

Ziel verstehen: Natürliche Sprache

Das Hauptziel ist, dass die synthetische Stimme in ihrem Klang einem natürlichen menschlichen Sprecher so nah wie möglich kommt. Das umfasst:

  • Natürliches Tempo nachahmen: wie schnell oder langsam jemand spricht
  • Gleichmäßigen Fluss schaffen: nahtlose Übergänge zwischen Sätzen und Phrasen erzeugen
  • Realistische Pausen hinzufügen: Pausen zur Betonung und Verständlichkeit einfügen
  • Umgangston erfassen: Audioinhalte wie ein echtes Gespräch klingen lassen

Wichtige Techniken für natürliche Sprache

  • Zeichensetzung für Rhythmus und Fluss

    • Punkte (.): vollwertige Unterbrechung und eine längere Pause angeben. Verwenden Sie sie, um vollständige Gedanken zu trennen und klare Satzgrenzen zu schaffen.
    • Kommas (,): kürzere Pausen innerhalb von Sätzen signalisieren. Sie können damit Satzteile oder Listenelemente trennen oder kurze Pausen einlegen, um Luft zu holen.
    • Auslassungspunkte (...): stehen für eine längere, bewusstere Pause. Auslassungspunkte können auf nachfolgende Gedanken, Zögern oder eine dramatische Pause hinweisen.
      • Beispiel: „Und dann... ist es passiert.“
    • Bindestriche (-): können verwendet werden, um eine kurze Pause oder einen plötzlichen Gedankenbruch anzuzeigen.
      • Beispiel: „Ich wollte etwas sagen - aber ich konnte es nicht.“
  • Pausen und Unflüssigkeiten einbauen

    • Strategische Pausen: Sie können Auslassungspunkte, Kommas oder Bindestriche verwenden, um Pausen an Stellen einzufügen, an denen ein menschlicher Sprecher natürlicherweise eine Atempause oder eine Pause zur Betonung einlegen würde.
    • Unflüssigkeiten (Ähms und Ähs): Einige Text-to-Speech-Modelle verarbeiten Unflüssigkeiten zwar automatisch. Es ist jedoch wichtig, ihre Rolle zu verstehen. Sie verleihen der Sprache Authentizität und lassen sie weniger roboterhaft klingen. Selbst wenn das Modell sie hinzufügt, hilft es Ihnen, den gesamten Fluss Ihres Skripts zu verstehen, wenn Sie sich bewusst sind, wo sie in der menschlichen Sprache natürlich vorkommen.
  • Experimente und Iteration

    • Erneute Synthese: Scheuen Sie sich nicht, dieselbe Nachricht mit derselben Stimme mehrmals neu zu synthetisieren. Geringfügige Änderungen an der Interpunktion, den Abständen oder der Wortwahl können sich erheblich auf die endgültige Audioausgabe auswirken.
    • Kritisches Zuhören: Achten Sie genau auf das Tempo, den Fluss und den allgemeinen Ton der synthetisierten Audioausgabe. Identifizieren Sie Bereiche, die sich unnatürlich anhören, und passen Sie das Skript entsprechend an.
    • Stimmvariation: Wenn das System es zulässt, können Sie verschiedene Stimmen ausprobieren, um herauszufinden, welche am besten zu Ihrem Skript und dem gewählten Ton passt.
  • Praktische Tipps zur Skripterstellung

    • Laut vorlesen: Lesen Sie Ihr Skript vor der Synthese laut vor. So können Sie holprige Formulierungen, unnatürliche Pausen und Bereiche erkennen, die angepasst werden müssen.
    • In einem lockeren Umgangston formulieren: Verwenden Sie Kontraktionen (z. B. „gibt’s“, „ich bin’s“) und informelle Formulierungen, damit das Skript natürlicher klingt.
    • Kontext berücksichtigen: Der Ton und das Tempo Ihres Skripts sollten dem Kontext des Audioinhalts entsprechen. Für eine formelle Präsentation ist ein anderer Ansatz erforderlich als für ein zwangloses Gespräch.
    • Komplexe Sätze aufschlüsseln: Lange, verschachtelte Sätze können für TTS-Engines schwierig zu verarbeiten sein. Teilen Sie sie in kürzere, übersichtlichere Sätze auf.
  • Verbesserungen an Beispielskripts

    • Originalskript (Roboter): „Das Produkt ist jetzt verfügbar. Wir haben neue Funktionen. Es ist sehr spannend.“

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

    • Originalskript (Roboter): „Dies ist eine automatische Bestätigungsnachricht. Ihre Reservierung wurde registriert. 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. Das Abreisedatum ist der 16. März. Der Zimmertyp ist „Deluxe Suite“. Die Anzahl der Gäste beträgt 1. Check-in-Zeit ist 15:00 Uhr. Die Check-out-Zeit ist 11:00 Uhr. Bitte beachten Sie, dass die Stornierungsrichtlinie eine Benachrichtigung 48 Stunden vor der Ankunft erfordert. Wenn nicht innerhalb dieses Zeitraums eine Benachrichtigung erfolgt, wird eine Übernachtung in Rechnung gestellt. Zusätzliche Annehmlichkeiten, die in Ihrer Reservierung enthalten sind: kostenloses WLAN, Zugang zum Fitnesscenter und kostenloses Frühstück. Wenden Sie sich bei Fragen bitte direkt an das Hotel unter 855-555-6689. Vielen Dank, dass Sie sich für unser Hotel entschieden haben.“

    • Verbessertes Skript (natürlich): „Hallo Anthony Vasquez! Wir freuen uns sehr, Ihre Reservierung bei uns bestätigen zu können! Sie sind startklar für Ihren Aufenthalt vom 14. bis 16. März in unserer wunderschönen Deluxe Suite. Die Buchung gilt für einen Gast. Ihre Bestätigungsnummer lautet 12345 – es kann sein, dass Sie sie brauchen.

      Als kleine Erinnerung: Der Check-in ist um 15:00 Uhr, der Check-out um 11:00 Uhr.

      Noch kurz ein Hinweis zu unseren Stornierungsbedingungen... falls Sie stornieren müssen, geben Sie uns bitte mindestens 48 Stunden vor Ihrer Ankunft Bescheid, ja? Andernfalls wird der Preis für eine Nacht berechnet.

      Um Ihren Aufenthalt noch angenehmer zu gestalten, bieten wir Ihnen kostenloses WLAN und Zugang zu unserem Fitnesscenter und jeden Morgen gibt’s ein leckeres kostenloses Frühstück!

      Wenn Sie irgendwelche Fragen haben, können Sie uns gerne unter 855-555-6689 anrufen. Wir freuen uns auf Ihren Besuch!“

    • Erläuterung der Änderungen:

      • Die Auslassungspunkte (...) erzeugen eine Pause zur Hervorhebung.
      • „gibt’s“ ist eine Kontraktion, die für einen ungezwungenen Ton sorgt.
      • „Es ist, nun, es ist sehr spannend“ bringt ein wenig Unflüssigkeit und Betonung herein.
      • Das „ja?“ am Ende des Hinweises mildert den Ton ab.

    Wenn Sie diese Richtlinien beachten, können Sie Text-zu-Audio-Skripts erstellen, die natürlich, ansprechend und menschenähnlich klingen. Denken Sie daran, dass Üben und Ausprobieren der Schlüssel zum Erfolg sind.

Chirp 3: HD-Stimmsteuerung

Die Stimmsteuerungsfunktionen sind speziell für die HD-Sprachsynthese vorgesehen. Beachten Sie, dass Chirp 3: HD-Stimmen kein SSML unterstützen. Sie können aber trotzdem die Temposteuerung, Pausensteuerung und benutzerdefinierte Aussprache über die Chirp 3: HD-Stimmsteuerungsoptionen verwalten.

Temposteuerung

Sie können die Geschwindigkeit der generierten Audioausgabe mit dem Tempoparameter anpassen. Mit dem Tempoparameter können Sie die Sprechgeschwindigkeit verlangsamen oder beschleunigen. Die Werte reichen von 0,25‑fach (sehr langsam) bis 2‑fach (sehr schnell). Verwenden Sie in Ihrer Anfrage den Parameter speaking_rate, um das Tempo festzulegen. Geben Sie einen Wert zwischen 0,25 und 2,0 ein. Werte unter 1,0 verlangsamen die Sprache, Werte über 1,0 beschleunigen sie. Bei einem Wert von 1,0 ist das Tempo unverändert.

Beispiel für SynthesizeSpeechRequest 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 StreamingSynthesizeConfig mit Temposteuerung:

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

Audiobeispiele für die Temposteuerung:

Sprechgeschwindigkeit Ausgabe
0,5
1,0
2,0

Pausensteuerung

Sie können Pausen in KI-generierte Sprache einfügen, indem Sie spezielle Tags direkt in Ihren Text einbetten. Verwenden Sie dazu das Eingabefeld markup. Pausen-Tags funktionieren nur im Feld markup, nicht im Feld text.

Diese Tags signalisieren der KI, dass Ruhepausen eingefügt werden sollen. Die genaue Länge dieser Pausen ist jedoch nicht festgelegt. Die KI passt die Dauer je nach Kontext an, ähnlich wie sich die natürliche menschliche Sprache je nach Sprecher, Ort und Satzbau ändert. Die verfügbaren Pausen-Tags sind [pause short], [pause long] und [pause]. Alternative Methoden zum Erstellen von Pausen ohne Verwendung von Markup-Tags finden Sie in unseren Richtlinien für Prompts und Erstellung.

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

Beispiel für SynthesizeSpeechRequest mit Pausensteuerung:

{
  "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 Pausensteuerung:

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

Audiobeispiele für die Pausensteuerung:

Markup-Eingabe Ausgabe
„Let me take a look, yes, I see it.“
„Let me take a look, [lange Pause] yes, I see it.“

Benutzerdefinierte Aussprache

Sie können benutzerdefinierte Aussprachen mithilfe von IPA- oder X-SAMPA-phonetischen Darstellungen für Wörter im Eingabetext angeben. Verwenden Sie sprachgerechte Phoneme, um eine genaue Darstellung zu gewährleisten. Weitere Informationen zum Überschreiben von Phonemen finden Sie in unserer Dokumentation zu Phonemen.

Beispiel für SynthesizeSpeechRequest mit benutzerdefinierter Aussprache:

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

Beispiel für StreamingSynthesizeConfig mit benutzerdefinierter Aussprache:

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

Audiobeispiele für benutzerdefinierte Aussprache:

Angewendete benutzerdefinierte Aussprache Ausgabe
Keine
„dog“ ausgesprochen als „"k{t“

Die überschriebenen Phrasen können beliebig formatiert werden, auch mit Symbolen. Beispielsweise kann im Falle potenzieller kontextbedingter Mehrdeutigkeit beim Abgleich von Phrasen (was in Sprachen wie Chinesisch und Japanisch häufig vorkommt) oder bei Sätzen, in denen ein Wort auf unterschiedliche Weise ausgesprochen werden kann, die Phrase so formatiert werden, dass Mehrdeutigkeiten vermieden werden. Um beispielsweise zu vermeiden, dass andere Instanzen des Worts read in der Eingabe versehentlich überschrieben werden, kann die Phrase "read" sowohl für den Eingabetext als auch für die überschriebene Phrase als "read1", "[read]" oder "(read)" formatiert werden.

Hier sehen Sie ein Beispiel für die Anwendung benutzerdefinierter Aussprache auf einen Satz, in dem das Wort read auf zwei verschiedene Arten ausgesprochen wird:

{
  "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",
  }
}
Angewendete benutzerdefinierte Aussprache Ausgabe
„read“ wird auf zwei Arten überschrieben

Außerdem können benutzerdefinierte Aussprachen mit Markup-Eingabe verwendet werden, was auch die Verwendung von Pausen-Tags ermöglicht:

{
  "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",
  }
}
Verwendete benutzerdefinierte Aussprache Ausgabe
Aussprache mit dem Pausen-Tag überschreiben

Verfügbare Sprachen für die Stimmsteuerung

  • Die Temposteuerung ist in allen Sprachen verfügbar.

  • Die Pausensteuerung ist in allen Sprachen verfügbar.

  • Benutzerdefinierte Aussprachen sind in allen Sprachen verfügbar, außer in: bn-in, gu-in, nl-be, sw-ke, th-th, uk-ua, ur-in und vi-vn.

FAQs

Häufig gestellte Fragen und die entsprechenden Antworten:

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

Sie können unsere Tipps für die Skripterstellung und das Verfassen von Prompts nutzen und Ihren Text-Prompt verbessern und dadurch die Sprachausgabe zu optimieren.

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

Stimmnamen folgen einem bestimmten Format, sodass sie in allen unterstützten Sprachen verwendet werden können, indem die Stimme eindeutig angegeben wird. Das Format ist \<locale\>-\<model\>-\<voice\>. Wenn Sie beispielsweise die Stimme „Kore“ für Englisch (USA) mit dem Modell „Chirp 3: HD-Stimmen“ verwenden möchten, geben Sie sie als en-US-Chirp3-HD-Kore an.

Unterstützt „Chirp 3: HD-Stimmen“ SSML?

Chirp 3: HD-Stimmen funktionieren zwar nicht mit SSML, Sie können aber trotzdem die Temposteuerung, Pausensteuerung und benutzerdefinierte Aussprache über die Chirp 3: HD-Stimmsteuerungsoptionen verwalten.