Transcribir audio

El servicio Speech-to-Text de Vertex AI en Google Distributed Cloud (GDC) con air gap reconoce la voz de los archivos de audio. Speech-to-Text convierte el audio detectado en transcripciones de texto mediante su API preentrenada.

Speech-to-Text incluye Chirp, un modelo avanzado para la voz entrenado con millones de horas de datos de audio y miles de millones de frases de texto. Este modelo contrasta con las técnicas de reconocimiento de voz convencionales, ya que se centra en grandes cantidades de datos supervisados específicos de cada idioma. Estas técnicas facilitan el reconocimiento y la transcripción para los usuarios cuando se hablan idiomas y acentos.

En esta página se muestra cómo transcribir archivos de audio a texto mediante la API Speech-to-Text en Distributed Cloud.

Antes de empezar

Antes de empezar a usar la API Speech-to-Text, debes tener un proyecto con la API Speech-to-Text habilitada y las credenciales adecuadas. También puedes instalar bibliotecas de cliente para ayudarte a hacer llamadas a la API. Para obtener más información, consulta el artículo Configurar un proyecto de reconocimiento de voz.

Transcribir audio con el modelo predeterminado

Speech-to-Text realiza el reconocimiento de voz. Envías el archivo de audio del que quieres reconocer la voz directamente como contenido en la solicitud de la API. El sistema devuelve el texto transcrito resultante en la respuesta de la API.

Debes proporcionar un objeto de configuración RecognitionConfig al hacer una solicitud de reconocimiento de voz. Este objeto indica a la API cómo debe procesar los datos de audio y qué tipo de salida se espera. Si no se especifica un modelo de forma explícita en este objeto de configuración, Speech-to-Text selecciona un modelo predeterminado.

Para obtener más información, consulta la documentación de la API Speech.

En el siguiente ejemplo se transcribe la voz de un archivo de audio con el modelo de Speech-to-Text predeterminado:

Python

Sigue estos pasos para usar el servicio Speech-to-Text desde una secuencia de comandos de Python para transcribir la voz de un archivo de audio:

  1. Instala la versión más reciente de la biblioteca de cliente Speech-to-Text.

  2. Define las variables de entorno necesarias en una secuencia de comandos de Python.

  3. Autentica tu solicitud a la API.

  4. Añade el siguiente código a la secuencia de comandos de Python que has creado:

    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)
    

    Haz los cambios siguientes:

    • ENDPOINT: el endpoint de Speech-to-Text que utiliza tu organización. Para obtener más información, consulta el estado del servicio y los endpoints.
    • PROJECT_ID: tu ID de proyecto.
    • BASE64_ENCODED_AUDIO: los bytes de datos de audio codificados en una representación en Base64. Esta cadena empieza por caracteres que se parecen a ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv. Para obtener más información, consulta RecognitionAudio.
    • ENCODING: la codificación de los datos de audio enviados en la solicitud, como LINEAR16. Para obtener más información, consulta AudioEncoding.
    • RATE_HERTZ: frecuencia de muestreo en hercios de los datos de audio enviados en la solicitud, como 16000. Para obtener más información, consulta RecognitionConfig.
    • LANGUAGE_CODE: el idioma del audio proporcionado como etiqueta de idioma BCP-47. Consulta la lista de idiomas admitidos y sus códigos correspondientes.
    • CHANNEL_COUNT: el número de canales de los datos de audio de entrada, como 1. Para obtener más información, consulta RecognitionConfig.
  5. Guarda la secuencia de comandos de Python.

  6. Ejecuta la secuencia de comandos de Python para transcribir el audio:

    python SCRIPT_NAME
    

    Sustituye SCRIPT_NAME por el nombre que le hayas dado a tu secuencia de comandos de Python (por ejemplo, speech.py).

Transcribir audio con Chirp

de GDC.

Al igual que con el modelo predeterminado de Speech-to-Text, debes proporcionar un objeto de configuración RecognitionConfig al hacer una solicitud de reconocimiento de voz. Para usar Chirp, debes especificar explícitamente este modelo en este objeto de configuración asignando el valor chirp al campo model.

En el siguiente ejemplo se transcribe el discurso de un archivo de audio con el modelo Chirp:

Python

Sigue estos pasos para usar Chirp desde una secuencia de comandos de Python para transcribir el discurso de un archivo de audio:

  1. Instala la versión más reciente de la biblioteca de cliente Speech-to-Text.

  2. Define las variables de entorno necesarias en una secuencia de comandos de Python.

  3. Autentica tu solicitud a la API.

  4. Añade el siguiente código a la secuencia de comandos de Python que has creado:

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

    Haz los cambios siguientes:

    • ENDPOINT: el endpoint de Speech-to-Text que utiliza tu organización. Para obtener más información, consulta el estado del servicio y los endpoints.
    • BASE64_ENCODED_AUDIO: los bytes de datos de audio codificados en una representación en Base64. Esta cadena empieza por caracteres que se parecen a ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv. Para obtener más información, consulta RecognitionAudio.
    • ENCODING: la codificación de los datos de audio enviados en la solicitud, como LINEAR16. Para obtener más información, consulta AudioEncoding.
    • RATE_HERTZ: frecuencia de muestreo en hercios de los datos de audio enviados en la solicitud, como 16000. Para obtener más información, consulta RecognitionConfig.
    • CHANNEL_COUNT: el número de canales de los datos de audio de entrada, como 1. Para obtener más información, consulta RecognitionConfig.
    • LANGUAGE_CODE: el idioma del audio proporcionado como etiqueta de idioma BCP-47. Consulta la lista de idiomas admitidos y sus códigos correspondientes.
    • PROJECT_ID: tu ID de proyecto.
  5. Guarda la secuencia de comandos de Python.

  6. Ejecuta la secuencia de comandos de Python para transcribir el audio:

    python SCRIPT_NAME
    

    Sustituye SCRIPT_NAME por el nombre que le hayas dado a tu secuencia de comandos de Python (por ejemplo, speech.py).