Transcrever áudio

O serviço Speech-to-Text da Vertex AI no Google Distributed Cloud (GDC) isolado por ar reconhece a fala de arquivos de áudio. A API Speech-to-Text converte o áudio detectado em transcrições de texto usando a API pré-treinada.

O Speech-to-Text inclui o Chirp, um modelo avançado para fala treinado com milhões de horas de dados de áudio e bilhões de frases de texto. Esse modelo contrasta com as técnicas convencionais de reconhecimento de fala, já que se concentra em grandes quantidades de dados supervisionados específicos da linguagem. Essas técnicas melhoram o reconhecimento e a transcrição de idiomas e sotaques falados.

Nesta página, mostramos como transcrever arquivos de áudio em texto usando a API Speech-to-Text no Distributed Cloud.

Antes de começar

Antes de começar a usar a API Speech-to-Text, é preciso ter um projeto com a API Speech-to-Text ativada e as credenciais apropriadas. Também é possível instalar bibliotecas de cliente para ajudar você a fazer chamadas para a API. Para mais informações, consulte Configurar um projeto de reconhecimento de fala.

Transcrever áudio com o modelo padrão

O Speech-to-Text realiza o reconhecimento de fala. Você envia o arquivo de áudio de que quer reconhecer a fala diretamente como conteúdo na solicitação da API. O sistema retorna o texto transcrito resultante na resposta da API.

É necessário fornecer um objeto de configuração RecognitionConfig ao fazer uma solicitação de reconhecimento de fala. Esse objeto informa à API como processar seus dados de áudio e qual tipo de saída você espera. Se um modelo não for especificado explicitamente nesse objeto de configuração, o Speech-to-Text vai selecionar um modelo padrão.

Para mais informações, consulte a documentação da API Speech.

O exemplo a seguir transcreve a fala de um arquivo de áudio usando o modelo padrão do Speech-to-Text:

Python

Siga estas etapas para usar o serviço Speech-to-Text de um script Python para transcrever a fala de um arquivo de áudio:

  1. Instale a versão mais recente da biblioteca de cliente da Speech-to-Text.

  2. Defina as variáveis de ambiente necessárias em um script Python.

  3. Autentique sua solicitação de API.

  4. Adicione o seguinte código ao script Python que você criou:

    import base64
    
    from google.cloud import speech_v1p1beta1
    import google.auth
    from google.auth.transport import requests
    from google.api_core.client_options import ClientOptions
    
    audience="https://ENDPOINT:443"
    api_endpoint="ENDPOINT:443"
    
    def get_client(creds):
      opts = ClientOptions(api_endpoint=api_endpoint)
      return speech_v1p1beta1.SpeechClient(credentials=creds, client_options=opts)
    
    def main():
      creds = None
      try:
        creds, project_id = google.auth.default()
        creds = creds.with_gdch_audience(audience)
        req = requests.Request()
        creds.refresh(req)
        print("Got token: ")
        print(creds.token)
      except Exception as e:
        print("Caught exception" + str(e))
        raise e
      return creds
    
    def speech_func(creds):
      tc = get_client(creds)
    
      content="BASE64_ENCODED_AUDIO"
    
      audio = speech_v1p1beta1.RecognitionAudio()
      audio.content = base64.standard_b64decode(content)
      config = speech_v1p1beta1.RecognitionConfig()
      config.encoding= speech_v1p1beta1.RecognitionConfig.AudioEncoding.ENCODING
      config.sample_rate_hertz=RATE_HERTZ
      config.language_code="LANGUAGE_CODE"
      config.audio_channel_count=CHANNEL_COUNT
    
      metadata = [("x-goog-user-project", "projects/PROJECT_ID")]
      resp = tc.recognize(config=config, audio=audio, metadata=metadata)
      print(resp)
    
    if __name__=="__main__":
      creds = main()
      speech_func(creds)
    

    Substitua:

    • ENDPOINT: o endpoint do Speech-to-Text que você usa na sua organização. Para mais informações, consulte o status do serviço e os endpoints.
    • PROJECT_ID: o ID do projeto.
    • BASE64_ENCODED_AUDIO: os bytes de dados de áudio codificados em uma representação Base64. Essa string começa com caracteres semelhantes a ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv. Veja mais informações em RecognitionAudio.
    • ENCODING: a codificação dos dados de áudio enviados na solicitação, como LINEAR16. Veja mais informações em AudioEncoding.
    • RATE_HERTZ: taxa de amostragem em Hertz dos dados de áudio enviados na solicitação, como 16000. Veja mais informações em RecognitionConfig.
    • LANGUAGE_CODE: o idioma do áudio fornecido como uma tag de idioma BCP-47. Confira a lista de idiomas aceitos e os respectivos códigos.
    • CHANNEL_COUNT: o número de canais nos dados de áudio de entrada, como 1. Veja mais informações em RecognitionConfig.
  5. Salve o script Python.

  6. Execute o script Python para transcrever o áudio:

    python SCRIPT_NAME
    

    Substitua SCRIPT_NAME pelo nome que você deu ao script do Python, por exemplo, speech.py.

Transcrever áudio com Chirp

Assim como o modelo padrão do Speech-to-Text, você precisa fornecer um objeto de configuração RecognitionConfig ao fazer uma solicitação de reconhecimento de fala. Para usar o Chirp, especifique explicitamente esse modelo no objeto de configuração definindo o valor chirp no campo model.

O exemplo a seguir transcreve a fala de um arquivo de áudio usando o modelo Chirp:

Python

Siga estas etapas para usar o Chirp em um script Python e transcrever a fala de um arquivo de áudio:

  1. Instale a versão mais recente da biblioteca de cliente da Speech-to-Text.

  2. Defina as variáveis de ambiente necessárias em um script Python.

  3. Autentique sua solicitação de API.

  4. Adicione o seguinte código ao script Python que você criou:

    import base64
    
    # Import the client library.
    from google.cloud import speech_v1p1beta1
    from google.cloud.speech_v1p1beta1.services.speech import client
    from google.api_core.client_options import ClientOptions
    
    api_endpoint="ENDPOINT:443"
    
    def get_client(creds):
      opts = ClientOptions(api_endpoint=api_endpoint)
      return client.SpeechClient(credentials=creds, client_options=opts)
    
    # Specify the audio to transcribe.
    tc = get_client(creds)
    content = "BASE64_ENCODED_AUDIO"
    
    audio = speech_v1p1beta1.RecognitionAudio()
    audio.content = base64.standard_b64decode(content)
    
    config = speech_v1p1beta1.RecognitionConfig(
        encoding=speech_v1p1beta1.RecognitionConfig.AudioEncoding.ENCODING,
        sample_rate_hertz=RATE_HERTZ,
        audio_channel_count=CHANNEL_COUNT,
        language_code="LANGUAGE_CODE",
        model="chirp"
    )
    
    # Detect speech in the audio file.
    metadata = (("x-goog-user-project", "projects/PROJECT_ID"),)
    response = tc.recognize(config=config, audio=audio, metadata=metadata)
    
    for result in response.results:
        print("Transcript: {}".format(result.alternatives[0].transcript))
    

    Substitua:

    • ENDPOINT: o endpoint do Speech-to-Text que você usa na sua organização. Para mais informações, consulte o status do serviço e os endpoints.
    • BASE64_ENCODED_AUDIO: os bytes de dados de áudio codificados em uma representação Base64. Essa string começa com caracteres semelhantes a ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv. Veja mais informações em RecognitionAudio.
    • ENCODING: a codificação dos dados de áudio enviados na solicitação, como LINEAR16. Veja mais informações em AudioEncoding.
    • RATE_HERTZ: taxa de amostragem em Hertz dos dados de áudio enviados na solicitação, como 16000. Veja mais informações em RecognitionConfig.
    • CHANNEL_COUNT: o número de canais nos dados de áudio de entrada, como 1. Veja mais informações em RecognitionConfig.
    • LANGUAGE_CODE: o idioma do áudio fornecido como uma tag de idioma BCP-47. Confira a lista de idiomas aceitos e os respectivos códigos.
    • PROJECT_ID: o ID do projeto.
  5. Salve o script Python.

  6. Execute o script Python para transcrever o áudio:

    python SCRIPT_NAME
    

    Substitua SCRIPT_NAME pelo nome que você deu ao script do Python, por exemplo, speech.py.