Aviso sonoro 3: voz personalizada instantânea

Com a voz personalizada instantânea no Text-to-Speech, os usuários podem criar modelos de voz personalizados treinando um modelo com gravações de áudio de alta qualidade. Ela permite a geração rápida de vozes pessoais, que podem ser usadas para sintetizar áudio usando a API Cloud TTS, com suporte para streaming e texto longo.

Por motivos de segurança, o acesso a esse recurso de clonagem de voz é restrito a usuários autorizados. Para acessar esse recurso, entre em contato com um membro da equipe de vendas para ser adicionado à lista de permissões.

Testar um notebook do Colab Acessar o notebook no GitHub

Disponibilidade de idiomas

A criação e a síntese de vozes personalizadas instantâneas são compatíveis com os seguintes idiomas:

Idioma Código BCP-47 Declaração de consentimento
Árabe (XA) ar-XA .أنا مالك هذا الصوت وأوافق على أن تستخدم Google هذا الصوت لإنشاء نموذج صوتي اصطناعي
Bengali (Índia) bn-IN আমি এই ভয়েসের মালিক এবং আমি একটি সিন্থেটিক ভয়েস মডেল তৈরি করতে এই ভয়েস ব্যবহার করে Google-এর সাথে সম্মতি দিচ্ছি।
Chinês (China) cmn-CN 我是此声音的拥有者并授权谷歌使用此声音创建语音合成模型
Alemão (Alemanha) de-DE Ich bin der Eigentümer dieser Stimme und bin damit einverstanden, dass Google diese Stimme zur Erstellung eines synthetischen Stimmmodells verwendet.
Inglês (Austrália) en-AU Eu sou o proprietário desta voz e concordo que o Google use-a para criar um modelo de voz sintética.
Inglês (Reino Unido) en-GB Eu sou o proprietário desta voz e concordo que o Google use-a para criar um modelo de voz sintética.
Inglês (Índia) en-IN Eu sou o proprietário desta voz e concordo que o Google use-a para criar um modelo de voz sintética.
English (US) en-US Eu sou o proprietário desta voz e concordo que o Google use-a para criar um modelo de voz sintética.
Espanhol (Espanha) 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.
Espanhol (EUA) 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.
Francês (Canadá) 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.
Francês (França) 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 (Índia) gu-IN હું આ વોઈસનો માલિક છું અને સિન્થેટિક વોઈસ મોડલ બનાવવા માટે આ વોઈસનો ઉપયોગ કરીને google ને હું સંમતિ આપું છું
Híndi (Índia) hi-IN मैं इस आवाज का मालिक हूं और मैं सिंथेनिक आवाज मॉडल बनाने के लिए Google को इस आवाज का उपयोग करने की सहमति देता हूं
Indonésio (Indonésia) id-ID Saya pemilik suara ini dan saya menyetujui Google menggunakan suara ini untuk membuat model suara sintetis.
Italiano (Itália) it-IT Sono il proprietario di questa voce e acconsento che Google la utilizzi per creare un modello di voce sintetica.
Canarês (Índia) kn-IN ನಾನು ಈ ಧ್ವನಿಯ ಮಾಲಿಕ ಮತ್ತು ಸಂಶ್ಲೇಷಿತ ಧ್ವನಿ ಮಾದರಿಯನ್ನು ರಚಿಸಲು ಈ ಧ್ವನಿಯನ್ನು ಬಳಸಿಕೊಂಡುಗೂಗಲ್ ಗೆ ನಾನು ಸಮ್ಮತಿಸುತ್ತೇನೆ.
Coreano (Coreia) ko-KR 나는 이 음성의 소유자이며 구글이 이 음성을 사용하여 음성 합성 모델을 생성할 것을 허용합니다.
Malaiala (Índia) ml-IN ഈ ശബ്ദത്തിന്റെ ഉടമ ഞാനാണ്, ഒരു സിന്തറ്റിക് വോയ്‌സ് മോഡൽ സൃഷ്ടിക്കാൻ ഈ ശബ്‌ദം ഉപയോഗിക്കുന്നതിന് ഞാൻ Google-ന് സമ്മതം നൽകുന്നു."
Marati (Índia) mr-IN मी या आवाजाचा मालक आहे आणि सिंथेटिक व्हॉइस मॉडेल तयार करण्यासाठी हा आवाज वापरण्यासाठी मी Google ला संमती देतो
Holandês (Holanda) 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.
Polonês (Polônia) 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.
Português (Brasil) pt-BR Eu sou o proprietário desta voz e autorizo o Google a usá-la para criar um modelo de voz sintética.
Russo (Rússia) ru-RU Я являюсь владельцем этого голоса и даю согласие Google на использование этого голоса для создания модели синтетического голоса.
Tâmil (Índia) ta-IN நான் இந்த குரலின் உரிமையாளர் மற்றும் செயற்கை குரல் மாதிரியை உருவாக்க இந்த குரலை பயன்படுத்த குகல்க்கு நான் ஒப்புக்கொள்கிறேன்.
Telugo (Índia) te-IN నేను ఈ వాయిస్ యజమానిని మరియు సింతటిక్ వాయిస్ మోడల్ ని రూపొందించడానికి ఈ వాయిస్ ని ఉపయోగించడానికి googleకి నేను సమ్మతిస్తున్నాను.
Tailandês (Tailândia) th-TH ฉันเป็นเจ้าของเสียงนี้ และฉันยินยอมให้ Google ใช้เสียงนี้เพื่อสร้างแบบจำลองเสียงสังเคราะห์
Turco (Turquia) tr-TR Bu sesin sahibi benim ve Google'un bu sesi kullanarak sentetik bir ses modeli oluşturmasına izin veriyorum.
Vietnamita (Vietnã) 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.

Disponibilidade regional

A criação e a síntese da voz personalizada instantânea estão disponíveis nas seguintes Google Cloud regiões:

Google Cloud Zona Método aceito Preparação para o lançamento
global Criação, síntese Prévia particular
us Síntese Prévia particular
eu Síntese Prévia particular
asia-southeast1 Síntese Prévia particular

Formatos de saída aceitos

O formato de resposta padrão é LINEAR16, mas outros formatos compatíveis incluem:

Método de API Formato
streaming ALAW, MULAW, OGG_OPUS e PCM
batch ALAW, MULAW, MP3, OGG_OPUS e PCM

Suporte e limitações dos recursos

Recurso Suporte Descrição
SSML Não Tags SSML para personalizar áudio sintético
Comandos com base em texto Experimental Use pontuação, pausas e disfluência para adicionar fluxo e ritmo naturais à conversão de texto em voz.
Carimbos de data/hora Não Carimbos de data/hora no nível da palavra
Pausar tags Não Introduzir pausas sob demanda no áudio sintetizado
Controle de ritmo Não Ajustar a velocidade do áudio sintetizado, de 0,25x a 2x.
Controle de pronúncia Não Pronúncias personalizadas de palavras ou frases usando a codificação fonética IPA ou X-SAMPA

Usar o Chirp 3: voz personalizada instantânea

Vamos explorar como usar o Chirp 3: recursos de voz personalizada instantânea na API Text-to-Speech

  1. Gravar a declaração de consentimento: para obedecer às diretrizes legais e éticas do recurso Instant Custom Voice, grave a declaração de consentimento necessária como um arquivo WAV mono, com codificação LINEAR16 e uma taxa de amostragem de 24 kHz, no idioma apropriado. Eu sou o proprietário desta voz e concordo que o Google use-a para criar um modelo de voz sintética.
  2. Gravar áudio de referência: use o microfone do computador para gravar até 10 segundos de áudio como um arquivo WAV mono codificado em LINEAR16 com uma taxa de amostragem de 24 kHz. Não use ruídos de fundo durante a gravação. O áudio de consentimento e de referência precisam ser gravados no mesmo ambiente.
  3. Armazenar arquivos de áudio: salve os arquivos de áudio gravados em um local designado do Cloud Storage.

Criar uma voz personalizada instantânea

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

Sintetizar com uma voz personalizada instantânea

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