Chirp 3: Benutzerdefinierte Stimme für sofortige Nutzung

Mit der Funktion „Instant Custom Voice“ in der Sprachausgabe können Nutzer personalisierte Sprachmodelle erstellen, indem sie ein Modell mit ihren eigenen hochwertigen Audioaufnahmen trainieren. Sie ermöglicht die schnelle Generierung individueller Stimmen, die dann mit der Cloud TTS API verwendet werden können, um Audio zu synthetisieren. Dabei werden sowohl Streaming als auch Text im Langformat unterstützt.

Aus Sicherheitsgründen ist der Zugriff auf diese Funktion zum Klonen von Stimmen auf Nutzer mit Zulassungsliste beschränkt. Wenn Sie auf diese Funktion zugreifen möchten, wenden Sie sich an ein Mitglied des Vertriebsteams, damit Sie auf die Zulassungsliste gesetzt werden.

Colab-Notebook testen Notebook auf GitHub ansehen

Verfügbare Sprachen

Die Erstellung und Synthese von Instant Custom Voice wird in den folgenden Sprachen unterstützt:

Sprache BCP-47-Code Einwilligungserklärung
Arabisch (XA) ar-XA .أنا مالك هذا الصوت وأوافق على أن تستخدم Google هذا الصوت لإنشاء نموذج صوتي اصطناعي
Bengalisch (Indien) bn-IN আমি এই ভয়েসের মালিক এবং আমি একটি সিন্থেটিক ভয়েস মডেল তৈরি করতে এই ভয়েস ব্যবহার করে Google-এর সাথে সম্মতি দিচ্ছি।
Chinesisch (China) cmn-CN 我是此声音的拥有者并授权谷歌使用此声音创建语音合成模型
Deutsch (Deutschland) de-DE Ich bin der Eigentümer dieser Stimme und bin damit einverstanden, dass Google diese Stimme zur Erstellung eines synthetischen Stimmmodells verwendet.
Englisch (Australien) en-AU Ich bin der Eigentümer dieser Stimme und erkläre mich damit einverstanden, dass Google ein Sprachsynthesemodell mit dieser Stimme erstellt.
Englisch (Vereinigtes Königreich) en-GB Ich bin der Eigentümer dieser Stimme und erkläre mich damit einverstanden, dass Google ein Sprachsynthesemodell mit dieser Stimme erstellt.
Englisch (Indien) en-IN Ich bin der Eigentümer dieser Stimme und erkläre mich damit einverstanden, dass Google ein Sprachsynthesemodell mit dieser Stimme erstellt.
Englisch (USA) en-US Ich bin der Eigentümer dieser Stimme und erkläre mich damit einverstanden, dass Google ein Sprachsynthesemodell mit dieser Stimme erstellt.
Spanisch (Spanien) es-ES Soy el propietario de esta voz y doy mi consentimiento para que Google la utilice para crear un modelo de voz sintética.
Spanisch (USA) es-US Soy el propietario de esta voz y doy mi consentimiento para que Google la utilice para crear un modelo de voz sintética.
Französisch (Kanada) fr-CA Je suis le propriétaire de cette voix et j'autorise Google à utiliser cette voix pour créer un modèle de voix synthétique.
Französisch (Frankreich) fr-FR Je suis le propriétaire de cette voix et j'autorise Google à utiliser cette voix pour créer un modèle de voix synthétique.
Gujarati (Indien) gu-IN હું આ વોઈસનો માલિક છું અને સિન્થેટિક વોઈસ મોડલ બનાવવા માટે આ વોઈસનો ઉપયોગ કરીને google ને હું સંમતિ આપું છું
Hindi (Indien) hi-IN मैं इस आवाज का मालिक हूं और मैं सिंथेटिक आवाज मॉडल बनाने के लिए Google को इस आवाज का उपयोग करने की सहमति देता हूं
Indonesisch (Indonesien) id-ID Saya pemilik suara ini dan saya menyetujui Google menggunakan suara ini untuk membuat model suara sintetis.
Italienisch (Italien) it-IT Sono il proprietario di questa voce e acconsento che Google la utilizzi per creare un modello di voce sintetica.
Kannada (Indien) kn-IN ನಾನು ಈ ಧ್ವನಿಯ ಮಾಲಿಕ ಮತ್ತು ಸಂಶ್ಲೇಷಿತ ಧ್ವನಿ ಮಾದರಿಯನ್ನು ರಚಿಸಲು ಈ ಧ್ವನಿಯನ್ನು ಬಳಸಿಕೊಂಡುಗೂಗಲ್ ಗೆ ನಾನು ಸಮ್ಮತಿಸುತ್ತೇನೆ.
Koreanisch (Südkorea) ko-KR 나는 이 음성의 소유자이며 구글이 이 음성을 사용하여 음성 합성 모델을 생성할 것을 허용합니다.
Malayalam (Indien) ml-IN ഈ ശബ്ദത്തിന്റെ ഉടമ ഞാനാണ്, ഒരു സിന്തറ്റിക് വോയ്‌സ് മോഡൽ സൃഷ്ടിക്കാൻ ഈ ശബ്‌ദം ഉപയോഗിക്കുന്നതിന് ഞാൻ Google-ന് സമ്മതം നൽകുന്നു."
Marathi (Indien) mr-IN मी या आवाजाचा मालक आहे आणि सिंथेटिक व्हॉइस मॉडेल तयार करण्यासाठी हा आवाज वापरण्यासाठी मी Google ला संमती देतो
Niederländisch (Niederlande) nl-NL Ik ben de eigenaar van deze stem en ik geef Google toestemming om deze stem te gebruiken om een synthetisch stemmodel te maken.
Polnisch (Polen) pl-PL Jestem właścicielem tego głosu i wyrażam zgodę na wykorzystanie go przez Google w celu utworzenia syntetycznego modelu głosu.
Portugiesisch (Brasilien) pt-BR Eu sou o proprietário desta voz e autorizo o Google a usá-la para criar um modelo de voz sintética.
Russisch (Russland) ru-RU Я являюсь владельцем этого голоса и даю согласие Google на использование этого голоса для создания модели синтетического голоса.
Tamil (Indien) ta-IN நான் இந்த குரலின் உரிமையாளர் மற்றும் செயற்கை குரல் மாதிரியை உருவாக்க இந்த குரலை பயன்படுத்த குகல்க்கு நான் ஒப்புக்கொள்கிறேன்.
Telugu (Indien) te-IN నేను ఈ వాయిస్ యజమానిని మరియు సింతటిక్ వాయిస్ మోడల్ ని రూపొందించడానికి ఈ వాయిస్ ని ఉపయోగించడానికి googleకి నేను సమ్మతిస్తున్నాను.
Thailändisch (Thailand) th-TH ฉันเป็นเจ้าของเสียงนี้ และฉันยินยอมให้ Google ใช้เสียงนี้เพื่อสร้างแบบจำลองเสียงสังเคราะห์
Türkisch (Türkei) tr-TR Bu sesin sahibi benim ve Google'ın bu sesi kullanarak sentetik bir ses modeli oluşturmasına izin veriyorum.
Vietnamesisch (Vietnam) vi-VN Tôi là chủ sở hữu giọng nói này và tôi đồng ý cho Google sử dụng giọng nói này để tạo mô hình giọng nói tổng hợp.

Regionale Verfügbarkeit

Die Erstellung und Synthese von Instant-Custom Voices ist in den folgenden Google Cloud Regionen verfügbar:

Google Cloud Zone Unterstützte Methode Einführungsreife
global Erstellung, Synthese Private Vorschau
us Synthese Private Vorschau
eu Synthese Private Vorschau
asia-southeast1 Synthese Private Vorschau

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

Funktionsunterstützung und Einschränkungen

Funktion Support Beschreibung
SSML Nein SSML-Tags zum Personalisieren synthetischen Audios
Textbasierte Prompts Experimentell Verwenden Sie Satzzeichen, Pausen und unflüssige Aussprache, um der Sprachausgabe einen natürlichen Fluss und ein natürliches Tempo zu verleihen.
Zeitstempel Nein Zeitstempel auf Wortebene
Tags pausieren Nein Auf Wunsch Pausen in synthetisierte Audioinhalte einfügen
Temporegelung Nein Sie können die Geschwindigkeit der synthetisierten Audioinhalte von 0, 25-facher bis 2-facher Geschwindigkeit anpassen.
Aussprachekontrolle Nein Benutzerdefinierte Aussprache von Wörtern oder Wortgruppen mit IPA- oder X-SAMPA-Phonetikcodierung

Chirp 3: Instant-Custom Voice verwenden

Chirp 3: Funktionen für sofortige benutzerdefinierte Stimmen in der Text-to-Speech API

  1. Einwilligungserklärung aufzeichnen: Um die rechtlichen und ethischen Richtlinien für Instant Custom Voice einzuhalten, müssen Sie die erforderliche Einwilligungserklärung als Mono-WAV-Datei mit LINEAR16-Codierung und einer Abtastrate von 24 kHz in der entsprechenden Sprache aufzeichnen. (Ich bin der Eigentümer dieser Stimme und erkläre mich damit einverstanden, dass Google ein Sprachsynthesemodell mit dieser Stimme erstellt.)
  2. Referenzaudio aufnehmen: Verwenden Sie das Mikrofon Ihres Computers, um bis zu 10 Sekunden Audio als LINEAR16-codierte Mono-WAV-Datei mit einer Abtastrate von 24 kHz aufzunehmen. Achten Sie darauf, dass während der Aufnahme keine Hintergrundgeräusche zu hören sind. Sowohl die Einwilligung als auch die Referenzaudioaufnahme müssen in derselben Umgebung aufgenommen werden.
  3. Audiodateien speichern: Sie können die aufgezeichneten Audiodateien an einem bestimmten Cloud Storage-Speicherort speichern.

Benutzerdefinierte Stimme erstellen

import requests, os, json

def create_instant_custom_voice_key(
    access_token, project_id, reference_audio_bytes, consent_audio_bytes
):
    url = "https://texttospeech.googleapis.com/v1beta1/voices:generateVoiceCloningKey"

    request_body = {
        "reference_audio": {
            "audio_config": {"audio_encoding": "LINEAR16", "sample_rate_hertz": 24000},
            "content": reference_audio_bytes,
        },
        "voice_talent_consent": {
            "audio_config": {"audio_encoding": "LINEAR16", "sample_rate_hertz": 24000},
            "content": consent_audio_bytes,
        },
        "consent_script": "I am the owner of this voice and I consent to Google using this voice to create a synthetic voice model.",
        "language_code": "en-US",
    }

    try:
        headers = {
            "Authorization": f"Bearer {access_token}",
            "x-goog-user-project": project_id,
            "Content-Type": "application/json; charset=utf-8",
        }

        response = requests.post(url, headers=headers, json=request_body)
        response.raise_for_status()

        response_json = response.json()
        return response_json.get("voiceCloningKey")

    except requests.exceptions.RequestException as e:
        print(f"Error making API request: {e}")
    except json.JSONDecodeError as e:
        print(f"Error decoding JSON response: {e}")
    except Exception as e:
        print(f"An unexpected error occurred: {e}")

Mit Instant-Custom Voice synthetisieren

import requests, os, json, base64
from IPython.display import Audio, display

def synthesize_text_with_cloned_voice(access_token, project_id, voice_key, text):
    url = "https://texttospeech.googleapis.com/v1beta1/text:synthesize"

    request_body = {
        "input": {
            "text": text
        },
        "voice": {
            "language_code": "en-US",
            "voice_clone": {
                "voice_cloning_key": voice_key,
            }
        },
        "audioConfig": {
            "audioEncoding": "LINEAR16",
            "sample_rate_hertz": 24000
        }
    }

    try:
        headers = {
            "Authorization": f"Bearer {access_token}",
            "x-goog-user-project": project_id,
            "Content-Type": "application/json; charset=utf-8"
        }

        response = requests.post(url, headers=headers, json=request_body)
        response.raise_for_status()

        response_json = response.json()
        audio_content = response_json.get("audioContent")

        if audio_content:
            display(Audio(base64.b64decode(audio_content), rate=24000))
        else:
            print("Error: Audio content not found in the response.")
            print(response_json)

    except requests.exceptions.RequestException as e:
        print(f"Error making API request: {e}")
    except json.JSONDecodeError as e:
        print(f"Error decoding JSON response: {e}")
    except Exception as e:
        print(f"An unexpected error occurred: {e}")