Chirp 3: HD-Stimmen

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

Colab-Notebook ausprobieren Notebook auf GitHub ansehen

Sprachoptionen

Es gibt verschiedene Sprachoptionen mit jeweils unterschiedlichen Merkmalen:

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

Verfügbare Sprachen

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

Sprache BCP-47-Code
Englisch (USA) en-US
Englisch (Australien) en-AU
Englisch (Großbritannien) en-GB
Englisch (Indien) en-IN
Spanisch (USA) es-US
Deutsch (Deutschland) de-DE
Französisch (Frankreich) fr-FR
Hindi (Indien) hi-IN
Portugiesisch (Brasilien) pt-BR
Arabisch (allgemein) 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 (Belgien) nl-BE
Niederländisch (Niederlande) nl-NL
Koreanisch (Südkorea) ko-KR
Chinesisch (Mandarin) (China) cmn-CN
Polnisch (Polen) pl-PL
Russisch (Russland) ru-RU
Swahili (Kenia) sw-KE
Thailändisch (Thailand) th-TH
Urdu (Indien) ur-IN
Ukrainisch (Ukraine) uk-UA

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 weitere Formate werden 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.

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

Onlineanfrage zur Sprachsynthese stellen

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

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

Ziel: Natürliche Sprache

Das primäre Ziel ist es, die synthetische Stimme so natürlich wie möglich klingen zu lassen. Dazu gehören:

  • Natürliches Tempo: Wie schnell oder langsam jemand spricht.
  • Für einen reibungslosen Ablauf sorgen:Nahtlose Übergänge zwischen Sätzen und Formulierungen schaffen.
  • Realistische Pausen einfügen:Pausen zur Hervorhebung und Verdeutlichung einfügen.
  • Gesprächston erfassen:Das Audio soll wie ein echtes Gespräch klingen.

Wichtige Techniken für natürlich klingende Sprache

  • Zeichensetzung für Rhythmus und Fluss

    • Punkte (.): Geben eine vollständige Unterbrechung und eine längere Pause an. Verwenden Sie sie, um vollständige Gedanken zu trennen und klare Satzgrenzen zu schaffen.
    • Kommas (,): Sie signalisieren kürzere Pausen innerhalb von Sätzen. Verwenden Sie sie, um Satzteile oder Listenelemente zu trennen oder kurze Pausen einzulegen.
    • Auslassungspunkte (…): Stehen für eine längere, bewusste Pause. Sie 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: Verwenden Sie Auslassungspunkte, Kommas oder Bindestriche, um Pausen an Stellen einzufügen, an denen ein menschlicher Sprecher natürlich eine Atempause oder eine Pause zur Betonung einlegen würde.
    • Sprechpausen (Ähs und Ums): Einige Modelle für Text-to-Speech verarbeiten Sprechpausen automatisch. Es ist jedoch wichtig, ihre Rolle zu verstehen. Sie verleihen der Sprache Authentizität und lassen sie weniger roboterhaft klingen. Auch wenn das Modell sie hinzufügt, hilft es Ihnen, den Gesamtfluss Ihres Skripts zu verstehen, wenn Sie wissen, wo sie in der menschlichen Sprache natürlich vorkommen.
  • Tests und Iteration

    • Erneute Synthese: Sie können dieselbe Nachricht mit derselben Stimme mehrmals neu synthetisieren. Geringfügige Änderungen an der Interpunktion, den Abständen oder der Wortwahl können sich erheblich auf das endgültige Audio auswirken.
    • Kritisches Zuhören: Achten Sie genau auf das Tempo, den Fluss und den allgemeinen Ton der synthetisierten Audioinhalte. Identifizieren Sie Bereiche, die sich unnatürlich anhören, und passen Sie das Skript entsprechend an.
    • Stimmvariationen: 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 Scripting-Tipps

    • 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.
    • Formulieren Sie in einem lockeren, unterhaltsamen Stil: Verwenden Sie Abkürzungen (z.B. „it's“, „we're“) und informelle Sprache, damit das Skript natürlicher klingt.
    • Kontext berücksichtigen: Der Ton und das Tempo Ihres Skripts sollten dem Kontext des Audios 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. Zerlegen Sie sie in kürzere, übersichtlichere Sätze.
  • Verbesserungen an Beispielskripten

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

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

    • Originalskript (Roboter): „Dies ist eine automatische Bestätigungsnachricht. Ihre Reservierung wurde bearbeitet. 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 Kündigungsrichtlinie eine Benachrichtigung 48 Stunden vor der Ankunft erfordert. Wenn Sie nicht innerhalb dieses Zeitraums benachrichtigen, wird Ihnen eine Übernachtung in Rechnung gestellt. Zusätzliche Annehmlichkeiten, die in Ihrer Reservierung enthalten sind: kostenloses WLAN, Zugang zum Fitnesscenter und kostenloses Frühstück. Bei Fragen wenden Sie sich bitte direkt an das Hotel unter 855-555-6689. Vielen Dank, dass Sie sich für unser Hotel entschieden haben.“

    • Verbessertes Script (natürlich): „Hallo Anthony Vasquez! Wir freuen uns, 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. Das gilt für einen Gast. Ihre Bestätigungsnummer lautet 12345.

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

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

      Um Ihren Aufenthalt noch angenehmer zu gestalten, bieten wir Ihnen kostenloses WLAN, Zugang zu unserem Fitnesscenter und jeden Morgen ein köstliches kostenloses Frühstück!

      Wenn Sie 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.
      • „and we've“ ist eine Kontraktion, die für einen ungezwungenen Ton sorgt.
      • „Es ist, nun ja, es ist sehr aufregend“ fügt eine kleine Menge an Unflüssigkeit und Betonung hinzu.
      • Die freundliche Erinnerung „Okay?“ mildert den Ton ab.

    Wenn Sie diese Richtlinien befolgen, können Sie Text-zu-Audio-Skripts erstellen, die natürlich, ansprechend und menschenähnlich klingen. Übung und Experimentieren sind der Schlüssel zum Erfolg.

Chirp 3: HD-Sprachsteuerung

Die Sprachsteuerungsfunktionen sind speziell für die HD-Sprachsynthese vorgesehen. Chirp 3: HD-Stimmen unterstützen kein SSML. Sie können jedoch weiterhin die Optionen für die Geschwindigkeitssteuerung, Pausensteuerung und benutzerdefinierte Aussprache über die Chirp 3: HD-Sprachsteuerungsoptionen verwalten.

Tempokontrolle

Sie können die Geschwindigkeit der generierten Audioinhalte mit dem Parameter „pace“ anpassen. Mit dem Parameter „Pace“ können Sie die Sprechgeschwindigkeit verlangsamen oder beschleunigen.Die Werte reichen von 0, 25-fach (sehr langsam) bis 2-fach (sehr schnell). Verwenden Sie den Parameter speaking_rate in Ihrer Anfrage, um das Tempo festzulegen. Wählen Sie einen Wert zwischen 0,25 und 2,0 aus. Werte unter 1,0 verlangsamen die Sprache und Werte über 1,0 beschleunigen sie. Ein Wert von 1,0 gibt ein nicht angepasstes Tempo an.

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 Tempokontrolle:

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

Audio-Samples für die Tempokontrolle:

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. Pausentags funktionieren nur im Feld markup, nicht im Feld text.

Diese Tags signalisieren der KI, dass Pausen 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 Pausentags sind [pause short], [pause long] und [pause]. Alternative Methoden zum Erstellen von Pausen ohne Verwendung von Markup-Tags finden Sie in unseren Richtlinien zum Erstellen von Prompts.

Das KI-Modell ignoriert die Pausen-Tags möglicherweise gelegentlich, insbesondere wenn sie an unnatürlichen Stellen im Text platziert sind. Sie können mehrere Pausentags 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.",
}

Audio-Samples für die Steuerung pausieren:

Markup-Eingabe Ausgabe
„Lass mich nachsehen. Ja, ich sehe es.“
„Lass mich mal nachsehen. [lange Pause] Ja, ich sehe es.“

Benutzerdefinierte Aussprache

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

Beispiel für SynthesizeSpeechRequest mit benutzerdefinierten Aussprachen:

{
  "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 benutzerdefinierten Aussprachen:

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

Benutzerdefinierte Aussprachen angewendet Ausgabe
Keine
„dog“ (Hund) ausgesprochen als „k{t“

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

Hier sehen Sie ein Beispiel für die Anwendung benutzerdefinierter Aussprachen 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",
  }
}
Benutzerdefinierte Aussprachen angewendet Ausgabe
„Lesen“ wird auf zwei Arten überschrieben

Außerdem können benutzerdefinierte Aussprachen mit Markup-Eingabe verwendet werden, was auch die Verwendung von Pausentags 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 Aussprachen Ausgabe
Aussprache mit dem Pausen-Tag überschreiben

Verfügbare Sprachen für die Sprachsteuerung

  • Die Funktion zur Tempokontrolle 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.

FAQ

Häufig gestellte Fragen und Antworten:

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

Sie können unsere Richtlinien für das Verfassen von Prompts nutzen und Ihren Text-Prompt 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, indem die Stimme eindeutig angegeben wird. Das Format folgt \<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 nicht mit SSML, aber Sie können weiterhin die Optionen für die Geschwindigkeitssteuerung, Pausensteuerung und benutzerdefinierte Aussprache über die Chirp 3: HD-Sprachsteuerungsoptionen verwalten.