Enviar una solicitud de transcripción a Cloud Speech-to-Text On-Prem

Requisitos previos

  1. Completa todos los pasos obligatorios de la guía de inicio rápido Antes de empezar.
  2. Despliega la API.
  3. Consulta la API para asegurarte de que funciona.

Instalar dependencias

  1. Clona python-speech y cambia el directorio al directorio de ejemplo.

    $ git clone https://github.com/googleapis/python-speech.git
    $ cd python-speech/samples/snippets
    
  2. Instala pip y virtualenv si aún no lo has hecho. Consulta la guía de configuración del entorno de desarrollo de Python de Google Cloud Platform para obtener más información.

  3. Crea un virtualenv. Los ejemplos que se muestran a continuación son compatibles con Python 2.7 y 3.4 o versiones posteriores.

    $ virtualenv env
    $ source env/bin/activate
    
  4. Instala las dependencias necesarias para ejecutar los ejemplos.

    $ pip install -r requirements.txt
    

Código de ejemplo

En el ejemplo de código siguiente se usa la biblioteca google-cloud-speech. Puedes usar GitHub para consultar el código fuente e informar de problemas.

Transcribir un archivo de audio

Puedes usar el código de ejemplo que se muestra a continuación para transcribir un archivo de audio mediante una IP pública o una IP a nivel de clúster. Para obtener más información sobre los tipos de IP, consulta la documentación sobre cómo enviar consultas a la API.

IP pública:

    # Using a Public IP
    $ python transcribe_onprem.py --file_path="../resources/two_channel_16k.wav" --api_endpoint=${PUBLIC_IP}:443

IP a nivel de clúster:

    # Using a cluster level IP
    $ kubectl port-forward -n $NAMESPACE $POD 10000:10000
    $ python transcribe_onprem.py --file_path="../resources/two_channel_16k.wav" --api_endpoint="0.0.0.0:10000"

Python

Para autenticarte en Speech-to-Text, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.

def transcribe_onprem(
    local_file_path: str,
    api_endpoint: str,
) -> speech_v1p1beta1.RecognizeResponse:
    """
    Transcribe a short audio file using synchronous speech recognition on-prem

    Args:
      local_file_path: The path to local audio file, e.g. /path/audio.wav
      api_endpoint: Endpoint to call for speech recognition, e.g. 0.0.0.0:10000

    Returns:
      The speech recognition response
          {
    """
    # api_endpoint = '0.0.0.0:10000'
    # local_file_path = '../resources/two_channel_16k.raw'

    # Create a gRPC channel to your server
    channel = grpc.insecure_channel(target=api_endpoint)
    transport = speech_v1p1beta1.services.speech.transports.SpeechGrpcTransport(
        channel=channel
    )

    client = speech_v1p1beta1.SpeechClient(transport=transport)

    # The language of the supplied audio
    language_code = "en-US"

    # Sample rate in Hertz of the audio data sent
    sample_rate_hertz = 16000

    # Encoding of audio data sent. This sample sets this explicitly.
    # This field is optional for FLAC and WAV audio formats.
    encoding = speech_v1p1beta1.RecognitionConfig.AudioEncoding.LINEAR16
    config = {
        "encoding": encoding,
        "language_code": language_code,
        "sample_rate_hertz": sample_rate_hertz,
    }
    with io.open(local_file_path, "rb") as f:
        content = f.read()
    audio = {"content": content}

    response = client.recognize(request={"config": config, "audio": audio})
    for result in response.results:
        # First alternative is the most probable result
        alternative = result.alternatives[0]
        print(f"Transcript: {alternative.transcript}")

    return response