Envía una solicitud de transcripción a Cloud Speech-to-Text local On-Prem

Requisitos previos

  1. Completa todos los pasos necesarios de la guía de inicio rápido antes de comenzar.
  2. Implementa la API.
  3. Consulta la API para asegurarte de que funciona.

Instale dependencias

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

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

  3. Crea una virtualenv. Las siguientes muestras son compatibles con Python 2.7 y 3.4+.

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

    $ pip install -r requirements.txt
    

Muestra de código

En la muestra de código a continuación, se usa la biblioteca google-cloud-speech. Puedes usar GitHub para explorar la fuente y, también, informar problemas.

Transcribe un archivo de audio

Puedes usar la muestra de código que aparece a continuación para transcribir un archivo de audio mediante una IP pública o una IP de nivel de clúster. Para obtener más información sobre los tipos de IP, consulta la documentación sobre cómo consultar 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 de 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 autenticar en Speech-to-Text, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para 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