Transcrição do Chirp 3: precisão multilingue melhorada

Experimente o Chirp 3 na Google Cloud consola Experimentar no Colab Ver bloco de notas no GitHub

O Chirp 3 é a geração mais recente dos modelos generativos específicos de reconhecimento automático de voz (ASR) multilingues da Google, concebidos para satisfazer as necessidades dos utilizadores com base no feedback e na experiência. O Chirp 3 oferece maior precisão e velocidade em comparação com os modelos Chirp anteriores, além de fornecer diarização e deteção automática de idioma.

Detalhes do modelo

O Chirp 3: transcrição está disponível exclusivamente na API Speech-to-Text V2.

Identificadores do modelo

Pode usar o Chirp 3: Transcription tal como qualquer outro modelo, especificando o identificador do modelo adequado no seu pedido de reconhecimento quando usar a API ou o nome do modelo na Google Cloud consola. Especifique o identificador adequado no seu reconhecimento.

Modelo Identificador do modelo
Chirp 3 chirp_3

Métodos da API

Nem todos os métodos de reconhecimento suportam os mesmos conjuntos de disponibilidade de idiomas. Uma vez que o Chirp 3 está disponível na API Speech-to-Text V2, suporta os seguintes métodos de reconhecimento:

Versão da API Método da API Apoio técnico
V2 Speech.StreamingRecognize (adequado para streaming e áudio em tempo real) Suportado
V2 Speech.Recognize (adequado para áudio com menos de um minuto) Suportado
V2 Speech.BatchRecognize (adequado para áudio longo de 1 minuto a 1 hora) Suportado

Disponibilidade regional

O Chirp 3 está disponível nas seguintes Google Cloud regiões, com mais regiões planeadas:

Google Cloud Zona Disposição para o lançamento
us (multi-region) DG
eu (multi-region) DG
asia-northeast1 DG
asia-southeast1 DG
asia-south1 Pré-visualização
europe-west2 Pré-visualização
europe-west3 Pré-visualização
northamerica-northeast1 Pré-visualização

Usando a API Locations, conforme explicado aqui, pode encontrar a lista mais recente de regiões, idiomas e locais, e funcionalidades suportados Google Cloud para cada modelo de transcrição.

Idiomas disponíveis para a transcrição

O Chirp 3 suporta a transcrição em StreamingRecognize, Recognize e BatchRecognize nos seguintes idiomas:

Idioma BCP-47 Code Disposição para o lançamento
Catalão (Espanha)ca-ESDG
Chinês (simplificado, China)cmn-Hans-CNDG
Croata (Croácia)hr-HRDG
Dinamarquês (Dinamarca)da-DKDG
Neerlandês (Países Baixos)nl-NLDG
Inglês (Austrália)en-AUDG
Inglês (Reino Unido)en-GBDG
Inglês (Índia)en-INDG
Inglês (Estados Unidos)en-USDG
Finlandês (Finlândia)fi-FIDG
Francês (Canadá)fr-CADG
Francês (França)fr-FRDG
Alemão (Alemanha)de-DEDG
Grego (Grécia)el-GRDG
Hindi (Índia)hi-INDG
Italiano (Itália)it-ITDG
Japonês (Japão)ja-JPDG
Coreano (Coreia)ko-KRDG
Polaco (Polónia)pl-PLDG
Português (Brasil)pt-BRDG
Português (Portugal)pt-PTDG
Romeno (Roménia)ro-RODG
Russo (Rússia)ru-RUDG
Espanhol (Espanha)es-ESDG
Espanhol (Estados Unidos)es-USDG
Sueco (Suécia)sv-SEDG
Turco (Turquia)tr-TRDG
Ucraniano (Ucrânia)uk-UADG
Vietnamita (Vietname)vi-VNDG
Árabear-XAPré-visualização
Árabe (Argélia)ar-DZPré-visualização
Árabe (Barém)ar-BHPré-visualização
Árabe (Egito)ar-EGPré-visualização
Árabe (Israel)ar-ILPré-visualização
Árabe (Jordânia)ar-JOPré-visualização
Árabe (Koweit)ar-KWPré-visualização
Árabe (Líbano)ar-LBPré-visualização
Árabe (Mauritânia)ar-MRPré-visualização
Árabe (Marrocos)ar-MAPré-visualização
Árabe (Omã)ar-OMPré-visualização
Árabe (Catar)ar-QAPré-visualização
Árabe (Arábia Saudita)ar-SAPré-visualização
Árabe (Estado da Palestina)ar-PSPré-visualização
Árabe (Síria)ar-SYPré-visualização
Árabe (Tunísia)ar-TNPré-visualização
Árabe (Emirados Árabes Unidos)ar-AEPré-visualização
Árabe (Iémen)ar-YEPré-visualização
Arménio (Arménia)hy-AMPré-visualização
Bengali (Bangladexe)bn-BDPré-visualização
Bengali (Índia)bn-INPré-visualização
Búlgaro (Bulgária)bg-BGPré-visualização
Birmanês (Mianmar)my-MMPré-visualização
Curdo central (Iraque)ar-IQPré-visualização
Chinês, cantonês (Hong Kong tradicional)yue-Hant-HKPré-visualização
Chinês, mandarim (tradicional, Taiwan)cmn-Hant-TWPré-visualização
Checo (Chéquia)cs-CZPré-visualização
Inglês (Filipinas)en-PHPré-visualização
Estónio (Estónia)et-EEPré-visualização
Filipino (Filipinas)fil-PHPré-visualização
Guzerate (Índia)gu-INPré-visualização
Hebraico (Israel)iw-ILPré-visualização
Húngaro (Hungria)hu-HUPré-visualização
Indonésio (Indonesia)id-IDPré-visualização
Canarim (Índia)kn-INPré-visualização
Khmer (Camboja)km-KHPré-visualização
Laosiano (Laos)lo-LAPré-visualização
Letão (Letónia)lv-LVPré-visualização
Lituano (Lituânia)lt-LTPré-visualização
Malaio (Malásia)ms-MYPré-visualização
Malaiala (Índia)ml-INPré-visualização
Marati (Índia)mr-INPré-visualização
Nepalês (Nepal)ne-NPPré-visualização
Norueguês (Noruega)no-NOPré-visualização
Persa (Irão)fa-IRPré-visualização
Sérvio (Sérvia)sr-RSPré-visualização
Eslovaco (Eslováquia)sk-SKPré-visualização
Esloveno (Eslovénia)sl-SIPré-visualização
Espanhol (México)es-MXPré-visualização
SuaíliswPré-visualização
Tâmil (Índia)ta-INPré-visualização
Telugu (Índia)te-INPré-visualização
Tailandês (Tailândia)th-THPré-visualização
Usbeque (Usbequistão)uz-UZPré-visualização

Idiomas disponíveis para a separação de oradores

O Chirp 3 suporta a transcrição e a identificação de oradores apenas em BatchRecognize e Recognize nos seguintes idiomas:

Idioma Código BCP-47
Chinês (simplificado, China) cmn-Hans-CN
Alemão (Alemanha) de-DE
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 (Canadá) fr-CA
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 de funcionalidades e limitações

O Chirp 3 suporta as seguintes funcionalidades:

Funcionalidade Descrição Fase de lançamento
Pontuação automática Geradas automaticamente pelo modelo e podem ser desativadas opcionalmente. DG
Letras maiúsculas automáticas Geradas automaticamente pelo modelo e podem ser desativadas opcionalmente. DG
Indicações de tempo ao nível do enunciado Gerado automaticamente pelo modelo. DG
Separação de oradores Identifica automaticamente os diferentes oradores numa amostra de áudio de canal único. Disponível apenas em BatchRecognize DG
Adaptação da voz (tendência) Fornece sugestões ao modelo sob a forma de expressões ou palavras para melhorar a precisão do reconhecimento de termos específicos ou nomes próprios. DG
Transcrição de áudio independente do idioma Deduz e transcreve automaticamente no idioma mais predominante. DG

O Chirp 3 não suporta as seguintes funcionalidades:

Funcionalidade Descrição
Indicações de tempo ao nível da palavra Geradas automaticamente pelo modelo e podem ser ativadas opcionalmente, sendo esperada alguma degradação da transcrição.
Pontuações de confiança ao nível da palavra A API devolve um valor, mas não é verdadeiramente uma pontuação de confiança.

Transcreva com o Chirp 3

Descubra como usar o Chirp 3 para tarefas de transcrição.

Realize o reconhecimento de voz em streaming

Python

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")
REGION = "us"

def transcribe_streaming_chirp3(
   audio_file: str
) -> cloud_speech.StreamingRecognizeResponse:
   """Transcribes audio from audio file stream using the Chirp 3 model of Google Cloud Speech-to-Text v2 API.

   Args:
       audio_file (str): Path to the local audio file to be transcribed.
           Example: "resources/audio.wav"

   Returns:
       cloud_speech.RecognizeResponse: The response from the Speech-to-Text API V2 containing
       the transcription results.
   """

   # Instantiates a client
   client = SpeechClient(
       client_options=ClientOptions(
           api_endpoint=f"{REGION}-speech.googleapis.com",
       )
   )

   # Reads a file as bytes
   with open(audio_file, "rb") as f:
       content = f.read()

   # In practice, stream should be a generator yielding chunks of audio data
   chunk_length = len(content) // 5
   stream = [
       content[start : start + chunk_length]
       for start in range(0, len(content), chunk_length)
   ]
   audio_requests = (
       cloud_speech.StreamingRecognizeRequest(audio=audio) for audio in stream
   )

   recognition_config = cloud_speech.RecognitionConfig(
       auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
       language_codes=["en-US"],
       model="chirp_3",
   )
   streaming_config = cloud_speech.StreamingRecognitionConfig(
       config=recognition_config
   )
   config_request = cloud_speech.StreamingRecognizeRequest(
       recognizer=f"projects/{PROJECT_ID}/locations/{REGION}/recognizers/_",
       streaming_config=streaming_config,
   )

   def requests(config: cloud_speech.RecognitionConfig, audio: list) -> list:
       yield config
       yield from audio

   # Transcribes the audio into text
   responses_iterator = client.streaming_recognize(
       requests=requests(config_request, audio_requests)
   )
   responses = []
   for response in responses_iterator:
       responses.append(response)
       for result in response.results:
           print(f"Transcript: {result.alternatives[0].transcript}")

   return responses

Realize o reconhecimento de voz síncrono

Python

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")
REGION = "us"

def transcribe_sync_chirp3(
   audio_file: str
) -> cloud_speech.RecognizeResponse:
   """Transcribes an audio file using the Chirp 3 model of Google Cloud Speech-to-Text V2 API.
   Args:
       audio_file (str): Path to the local audio file to be transcribed.
           Example: "resources/audio.wav"
   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=f"{REGION}-speech.googleapis.com",
       )
   )

   # Reads a file as bytes
   with open(audio_file, "rb") as f:
       audio_content = f.read()

   config = cloud_speech.RecognitionConfig(
       auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
       language_codes=["en-US"],
       model="chirp_3",
   )

   request = cloud_speech.RecognizeRequest(
       recognizer=f"projects/{PROJECT_ID}/locations/{REGION}/recognizers/_",
       config=config,
       content=audio_content,
   )

   # Transcribes the audio into text
   response = client.recognize(request=request)

   for result in response.results:
       print(f"Transcript: {result.alternatives[0].transcript}")

   return response

Realize o reconhecimento de voz em lote

Python

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")
REGION = "us"

def transcribe_batch_3(
   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=f"{REGION}-speech.googleapis.com",
       )
   )

   config = cloud_speech.RecognitionConfig(
       auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
       language_codes=["en-US"],
       model="chirp_3",
   )

   file_metadata = cloud_speech.BatchRecognizeFileMetadata(uri=audio_uri)

   request = cloud_speech.BatchRecognizeRequest(
       recognizer=f"projects/{PROJECT_ID}/locations/{REGION}/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}")

   return response.results[audio_uri].transcript

Use as funcionalidades do Chirp 3

Explore como pode usar as funcionalidades mais recentes com exemplos de código:

Faça uma transcrição sem diálogo

O Chirp 3 pode identificar e transcrever automaticamente no idioma dominante falado no áudio, o que é essencial para aplicações multilingues. Para conseguir isto, defina language_codes=["auto"] como indicado no exemplo de código:

Python

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")
REGION = "us"

def transcribe_sync_chirp3_auto_detect_language(
   audio_file: str
) -> cloud_speech.RecognizeResponse:
   """Transcribes an audio file and auto-detect spoken language using Chirp 3.
   Please see https://cloud.google.com/speech-to-text/docs/encoding for more
   information on which audio encodings are supported.
   Args:
       audio_file (str): Path to the local audio file to be transcribed.
           Example: "resources/audio.wav"
   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=f"{REGION}-speech.googleapis.com",
       )
   )

   # Reads a file as bytes
   with open(audio_file, "rb") as f:
       audio_content = f.read()

   config = cloud_speech.RecognitionConfig(
       auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
       language_codes=["auto"],  # Set language code to auto to detect language.
       model="chirp_3",
   )

   request = cloud_speech.RecognizeRequest(
       recognizer=f"projects/{PROJECT_ID}/locations/{REGION}/recognizers/_",
       config=config,
       content=audio_content,
   )

   # Transcribes the audio into text
   response = client.recognize(request=request)

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

   return response

Faça uma transcrição restrita a um idioma

O Chirp 3 pode identificar e transcrever automaticamente o idioma dominante num ficheiro de áudio. Também pode condicioná-lo a locais específicos que espera, por exemplo: ["en-US", "fr-FR"], o que focaria os recursos do modelo nos idiomas mais prováveis para resultados mais fiáveis, conforme demonstrado no exemplo de código:

Python

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")
REGION = "us"

def transcribe_sync_3_auto_detect_language(
   audio_file: str
) -> cloud_speech.RecognizeResponse:
   """Transcribes an audio file and auto-detect spoken language using Chirp 3.
   Please see https://cloud.google.com/speech-to-text/docs/encoding for more
   information on which audio encodings are supported.
   Args:
       audio_file (str): Path to the local audio file to be transcribed.
           Example: "resources/audio.wav"
   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=f"{REGION}-speech.googleapis.com",
       )
   )

   # Reads a file as bytes
   with open(audio_file, "rb") as f:
       audio_content = f.read()

   config = cloud_speech.RecognitionConfig(
       auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
       language_codes=["en-US", "fr-FR"],  # Set language codes of the expected spoken locales
       model="chirp_3",
   )

   request = cloud_speech.RecognizeRequest(
       recognizer=f"projects/{PROJECT_ID}/locations/{REGION}/recognizers/_",
       config=config,
       content=audio_content,
   )

   # Transcribes the audio into text
   response = client.recognize(request=request)

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

   return response

Realizar a transcrição e a separação de oradores

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

Python

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")
REGION = "us"

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=f"{REGION}-speech.googleapis.com",
       )
   )

   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(
           # Enable diarization by setting empty diarization configuration.
           diarization_config=cloud_speech.SpeakerDiarizationConfig(),
       ),
   )

   file_metadata = cloud_speech.BatchRecognizeFileMetadata(uri=audio_uri)

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

   # Creates audio transcription job.
   operation = client.batch_recognize(request=request)

   print("Waiting for transcription job 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

Melhore a precisão com a adaptação do modelo

O Chirp 3 pode melhorar a precisão da transcrição para o seu áudio específico através da adaptação do modelo. Isto permite-lhe fornecer uma lista de palavras e expressões específicas, o que aumenta a probabilidade de o modelo as reconhecer. É especialmente útil para termos específicos do domínio, nomes próprios ou vocabulário único.

Python

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")
REGION = "us"

def transcribe_sync_chirp3_model_adaptation(
   audio_file: str
) -> cloud_speech.RecognizeResponse:
   """Transcribes an audio file using the Chirp 3 model with adaptation, improving accuracy for specific audio characteristics or vocabulary.
   Args:
       audio_file (str): Path to the local audio file to be transcribed.
           Example: "resources/audio.wav"
   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=f"{REGION}-speech.googleapis.com",
       )
   )

   # Reads a file as bytes
   with open(audio_file, "rb") as f:
       audio_content = f.read()

   config = cloud_speech.RecognitionConfig(
       auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
       language_codes=["en-US"],
       model="chirp_3",
       # Use model adaptation
       adaptation=cloud_speech.SpeechAdaptation(
         phrase_sets=[
             cloud_speech.SpeechAdaptation.AdaptationPhraseSet(
                 inline_phrase_set=cloud_speech.PhraseSet(phrases=[
                   {
                       "value": "alphabet",
                   },
                   {
                         "value": "cell phone service",
                   }
                 ])
             )
         ]
       )
   )

   request = cloud_speech.RecognizeRequest(
       recognizer=f"projects/{PROJECT_ID}/locations/{REGION}/recognizers/_",
       config=config,
       content=audio_content,
   )

   # Transcribes the audio into text
   response = client.recognize(request=request)

   for result in response.results:
       print(f"Transcript: {result.alternatives[0].transcript}")

   return response

Ative o cancelamento de ruído e a filtragem de SNR

O Chirp 3 pode melhorar a qualidade do áudio reduzindo o ruído de fundo e filtrando sons indesejados antes da transcrição. Pode melhorar os resultados em ambientes ruidosos ativando o redutor de ruído integrado e a filtragem da relação sinal/ruído (SNR).

A definição denoiser_audio=true pode ajudar a reduzir eficazmente a música de fundo ou os ruídos, como a chuva e o trânsito na rua.

Pode definir snr_threshold=X para controlar o volume mínimo da voz necessário para a transcrição. Isto ajuda a filtrar o áudio sem voz ou o ruído de fundo, evitando texto indesejado nos seus resultados. Um valor snr_threshold mais elevado significa que o utilizador tem de falar mais alto para que o modelo transcreva as expressões.

A filtragem de SNR pode ser usada em exemplos de utilização de streaming em tempo real para evitar o envio de sons desnecessários para um modelo de transcrição. Um valor mais elevado para esta definição significa que o volume da sua voz tem de ser mais alto em relação ao ruído de fundo para ser enviado para o modelo de transcrição.

A configuração de snr_threshold interage com o facto de denoise_audio ser true ou false. Quando denoise_audio=true, o ruído de fundo é removido e a voz torna-se relativamente mais clara. A relação sinal/ruído geral do áudio aumenta.

Se o seu exemplo de utilização envolver apenas a voz do utilizador sem outras pessoas a falar, defina denoise_audio=true para aumentar a sensibilidade da filtragem de SNR, que pode filtrar o ruído que não seja de voz. Se o seu exemplo de utilização envolver pessoas a falar em segundo plano e quiser evitar a transcrição da fala em segundo plano, considere definir denoise_audio=false e baixar o limite de SNR.

Seguem-se os valores de limite de SNR recomendados. Pode definir um valor snr_threshold razoável entre 0 e 1000. Um valor de 0 significa que não filtra nada e 1000 significa que filtra tudo. Ajuste o valor se a definição recomendada não funcionar para si.

Remova o ruído do áudio Limite de SNR Sensibilidade da voz
verdadeiro 10,0 alta
verdadeiro 20,0 média
verdadeiro 40,0 baixos
verdadeiro 100,0 muito baixa
falso 0,5 alta
falso 1,0 média
falso 2,0 baixos
falso 5.0 muito baixa

Python

 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")
 REGION = "us"

def transcribe_sync_chirp3_with_timestamps(
   audio_file: str
) -> cloud_speech.RecognizeResponse:
   """Transcribes an audio file using the Chirp 3 model of Google Cloud Speech-to-Text v2 API, which provides word-level timestamps for each transcribed word.
   Args:
       audio_file (str): Path to the local audio file to be transcribed.
           Example: "resources/audio.wav"
   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=f"{REGION}-speech.googleapis.com",
       )
   )

   # Reads a file as bytes
   with open(audio_file, "rb") as f:
       audio_content = f.read()

   config = cloud_speech.RecognitionConfig(
       auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
       language_codes=["en-US"],
       model="chirp_3",
       denoiser_config={
           denoise_audio: True,
           # Medium snr threshold
           snr_threshold: 20.0,
       }
   )

   request = cloud_speech.RecognizeRequest(
       recognizer=f"projects/{PROJECT_ID}/locations/{REGION}/recognizers/_",
       config=config,
       content=audio_content,
   )

   # Transcribes the audio into text
   response = client.recognize(request=request)

   for result in response.results:
       print(f"Transcript: {result.alternatives[0].transcript}")

   return response

Use o Chirp 3 na Google Cloud consola

  1. Inscreva-se numa Google Cloud conta e crie um projeto.
  2. Aceda a Voz na Google Cloud consola.
  3. Se a API não estiver ativada, ative-a.
  4. Certifique-se de que tem uma consola de STT do Workspace. Se não tiver um espaço de trabalho, tem de criar um.

    1. Aceda à página de transcrições e clique em Nova transcrição.

    2. Abra o menu pendente Espaço de trabalho e clique em Novo espaço de trabalho para criar um espaço de trabalho para a transcrição.

    3. Na barra lateral de navegação Criar um novo espaço de trabalho, clique em Procurar.

    4. Clique para criar um novo contentor.

    5. Introduza um nome para o seu depósito e clique em Continuar.

    6. Clique em Criar para criar o contentor do Cloud Storage.

    7. Depois de criar o contentor, clique em Selecionar para selecionar o contentor para utilização.

    8. Clique em Criar para concluir a criação do seu espaço de trabalho para a consola da API Speech-to-Text V2.

  5. Fazer uma transcrição do seu áudio real.

    A página de criação de transcrições de voz para texto, que mostra a seleção ou o carregamento de ficheiros.
    A página de criação de transcrições de conversão de voz em texto, que mostra a seleção ou o carregamento de ficheiros.

    Na página Nova transcrição, selecione o ficheiro de áudio carregando-o (Carregamento local) ou especificando um ficheiro do Cloud Storage existente (Armazenamento na nuvem).

  6. Clique em Continuar para aceder às Opções de transcrição.

    1. Selecione o idioma falado que planeia usar para o reconhecimento com o Chirp a partir do reconhecedor criado anteriormente.

    2. No menu pendente do modelo, selecione chirp_3.

    3. No menu pendente Reconhecedor, selecione o reconhecedor que acabou de criar.

    4. Clique em Enviar para executar o seu primeiro pedido de reconhecimento através da chirp_3.

  7. Veja o resultado da transcrição do Chirp 3.

    1. Na página Transcrição, clique no nome da transcrição para ver o respetivo resultado.

    2. Na página Detalhes da transcrição, veja o resultado da transcrição e, opcionalmente, ouça o áudio no navegador.

O que se segue?

  • Saiba como transcrever ficheiros de áudio curtos.
  • Saiba como transcrever áudio em streaming.
  • Saiba como transcrever ficheiros de áudio longos.
  • Para o melhor desempenho, precisão e outras sugestões, consulte a documentação de práticas recomendadas.