Chirp 3: maior acurácia em vários idiomas

O Chirp 3 é a geração mais recente dos modelos generativos multilíngues de ASR do Google, e foi projetado para atender às necessidades dos usuários com base em feedback e experiência. Ele melhora a acurácia e a velocidade dos modelos Chirp e Chirp 2 originais e introduz novos recursos importantes, como a diarização.

Detalhes do modelo

Detalhes do Chirp_3

Identificadores de modelo

O Chirp 3 só está disponível na API Speech-to-Text V2 e pode ser usado como qualquer outro modelo. Especifique o identificador adequado na solicitação de reconhecimento ao usar a API ou o nome do modelo ao usar o console do Google Cloud .

Modelo Identificador do modelo
Chirp 3 chirp_3

Métodos da API

Nem todos os métodos de reconhecimento aceitam os mesmos conjuntos de disponibilidade de idiomas. Como o Chirp 3 está disponível na API Speech-to-Text V2, ele aceita os seguintes métodos de reconhecimento:

API Suporte para métodos de API Suporte
v2 Speech.BatchRecognize (ideal para áudios longos de um minuto a uma hora) Com suporte
v2 Speech.Recognize (ideal para áudios com menos de um minuto) Sem suporte
v2 Speech.StreamingRecognize (ideal para streaming e áudios em tempo real) Sem suporte

Disponibilidade regional

Embora haja planos de expansão para outras regiões, o Chirp 3 está disponível atualmente nas regiões do Google Cloud abaixo:

Zona doGoogle Cloud Prontidão para o lançamento
us-west1 Pré-lançamento particular

Conforme explicado aqui, você pode usar a API Locations para encontrar a lista mais recente de regiões do Google Cloud , idiomas e localidades aceitos, além de recursos para cada modelo de transcrição.

Disponibilidade de idiomas para transcrição

O Chirp 3 só oferece transcrição em BatchRecognize nos seguintes idiomas:

IdiomaCódigo BCP-47
Árabe (Egito)ar-EG
Árabe (Arábia Saudita)ar-SA
Bengali (Bangladesh)bn-BD
Bengali (Índia)bn-IN
Checo (República Tcheca)cs-CZ
Dinamarquês (Dinamarca)da-DK
Grego (Grécia)el-GR
Espanhol (México)es-MX
Estoniano (Estônia)et-EE
Persa (Irã)fa-IR
Finlandês (Finlândia)fi-FI
Filipino (Filipinas)fil-PH
Francês (Canadá)fr-CA
Gujarati (Índia)gu-IN
Croata (Croácia)hr-HR
Húngaro (Hungria)hu-HU
Indonésio (Indonésia)id-ID
Hebraico (Israel)iw-IL
Canarês (Índia)kn-IN
Lituano (Lituânia)lt-LT
Letão (Letônia)lv-LV
Malaiala (Índia)ml-IN
Marati (Índia)mr-IN
Holandês (Holanda)nl-NL
Norueguês (Noruega)no-NO
Punjabi (Índia)pa-IN
Polonês (Polônia)pl-PL
Português (Portugal)pt-PT
Romeno (Romênia)ro-RO
Russo (Rússia)ru-RU
Eslovaco (Eslováquia)sk-SK
Esloveno (Eslovênia)sl-SI
Sérvio (Sérvia)sr-RS
Sueco (Suécia)sv-SE
Tâmil (Índia)ta-IN
Telugu (Índia)te-IN
Tailandês (Tailândia)th-TH
Turco (Turquia)tr-TR
Ucraniano (Ucrânia)uk-UA
Urdu (Paquistão)ur-PK
Vietnamita (Vietnã)vi-VN
Chinês (China)zh-CN
Chinês (Taiwan)zh-TW
Zulu (África do Sul)zu-SA

Disponibilidade de idiomas para diarização

Idioma Código BCP-47
Chinês (simplificado, China) cmn-Hans-CN
Alemão (Alemanha) de-DE
Inglês (Austrália) en-AU
Inglês (Reino Unido) en-GB
Inglês (Índia) en-IN
Inglês (Estados Unidos) en-US
Espanhol (Espanha) es-ES
Espanhol (Estados Unidos) es-US
Francês (França) fr-FR
Hindi (Índia) hi-IN
Italiano (Itália) it-IT
Japonês (Japão) ja-JP
Coreano (Coreia) ko-KR
Português (Brasil) pt-BR

Suporte e limitações dos recursos

O Chirp 3 aceita os seguintes recursos:

Recurso Descrição Etapa do lançamento
Pontuação automática Gerada automaticamente pelo modelo e pode ser desativada. Pré-lançamento
Letras maiúsculas automáticas Gerada automaticamente pelo modelo e pode ser desativada. Pré-lançamento
Diarização de locutor Identifica automaticamente os diferentes locutores em uma amostra de áudio de canal único. Pré-lançamento
Transcrição de áudio independente do idioma. O modelo infere automaticamente o idioma falado no arquivo de áudio e faz a transcrição no idioma mais usado. Pré-lançamento

O Chirp 3 não aceita os seguintes recursos:

Recurso Descrição
Marcações de tempo de palavra (carimbos de data/hora) Gerada automaticamente pelo modelo e pode ser desativada.
Pontuações de nível de confiança por palavra A API retorna um valor, mas não é uma pontuação de confiança.
Adaptação da fala (polarização) Forneça frases ou palavras ao modelo como dicas para melhorar a acurácia do reconhecimento de termos específicos ou substantivos próprios.

Como usar o Chirp 3

Use o Chirp 3 para tarefas de transcrição e diarização.

Fazer transcrições usando solicitações em lote do Chirp 3 com diarização

Saiba como usar o Chirp 3 para suas necessidades de transcrição

Realizar o reconhecimento de fala em lote

Permita que o serviço Cloud Speech leia seu bucket de armazenamento do Cloud Storage. Isso é necessário temporariamente durante o pré-lançamento particular. Para isso, use o seguinte comando da CLI do Google Cloud na linha de comando:

gcloud storage buckets add-iam-policy-binding gs://<YOUR_BUCKET_NAME_HERE> --member=serviceAccount:service-727103546492@gcp-sa-aiplatform.iam.gserviceaccount.com --role=roles/storage.objectViewer

Você também pode usar o console do Cloud. Para isso, acesse http://console.cloud.google.com/storage/browser, escolha o bucket, clique em Permissões > Conceder acesso e adicione a conta de serviço como abaixo:

Captura de tela mostrando a permissão do IAM sendo atribuída à conta de serviço da Speech-to-Text.

import os

from google.cloud.speech_v2 import SpeechClient
from google.cloud.speech_v2.types import cloud_speech
from google.api_core.client_options import ClientOptions

PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")

def transcribe_batch_chirp3(
    audio_uri: str,
) -> cloud_speech.BatchRecognizeResults:
    """Transcribes an audio file from a Google Cloud Storage URI using the Chirp 3 model of Google Cloud Speech-to-Text V2 API.
    Args:
        audio_uri (str): The Google Cloud Storage URI of the input
          audio file. E.g., gs://[BUCKET]/[FILE]
    Returns:
        cloud_speech.RecognizeResponse: The response from the
           Speech-to-Text API containing the transcription results.
    """

    # Instantiates a client
    client = SpeechClient(
        client_options=ClientOptions(
            api_endpoint="us-west1-speech.googleapis.com",
        )
    )

    speaker_diarization_config = cloud_speech.SpeakerDiarizationConfig(
        min_speaker_count=1,  # minimum number of speakers
        max_speaker_count=6,  # maximum expected number of speakers
    )

    config = cloud_speech.RecognitionConfig(
        auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
        language_codes=["en-US"],  # Use "auto" to detect language
        model="chirp_3",
        features=cloud_speech.RecognitionFeatures(
            diarization_config=speaker_diarization_config,
        ),
    )

    file_metadata = cloud_speech.BatchRecognizeFileMetadata(uri=audio_uri)

    request = cloud_speech.BatchRecognizeRequest(
        recognizer=f"projects/{PROJECT_ID}/locations/us-west1/recognizers/_",
        config=config,
        files=[file_metadata],
        recognition_output_config=cloud_speech.RecognitionOutputConfig(
            inline_response_config=cloud_speech.InlineOutputConfig(),
        ),
    )

    # Transcribes the audio into text
    operation = client.batch_recognize(request=request)

    print("Waiting for operation to complete...")
    response = operation.result(timeout=120)

    for result in response.results[audio_uri].transcript.results:
        print(f"Transcript: {result.alternatives[0].transcript}")
        print(f"Detected Language: {result.language_code}")
        print(f"Speakers per word: {result.alternatives[0].words}")

    return response.results[audio_uri].transcript

Usar o Chirp 3 no console do Google Cloud