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.

Instala dependencias

  1. Clona python-speech; luego, cambia 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 para obtener más información.

  3. Crea un 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 el origen y, también, informar problemas.

Transcribe un archivo de audio

Puedes usar la siguiente muestra de código para transcribir un archivo de audio con una IP pública o una IP de nivel de clúster. Para obtener más información sobre los tipos de IP, revisa 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 autenticartete en Speech-to-Text, configura las credenciales predeterminadas de la aplicación. Para 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