Inviare una richiesta di trascrizione a Cloud Speech-to-Text on-prem

Prerequisiti

  1. Completa tutti i passaggi richiesti nella guida introduttiva Prima di iniziare.
  2. Distribuisci l'API .
  3. Esegui una query sull'API per assicurarti che funzioni.

Installa le dipendenze

  1. Clona python-speech e cambia la directory con quella di esempio.

    $ git clone https://github.com/googleapis/python-speech.git
    $ cd python-speech/samples/snippets
    
  2. Installa pip e virtualenv se non lo hai ancora fatto. Per ulteriori informazioni, consulta la Guida alla configurazione dell'ambiente di sviluppo Python della Google Cloud Platform.

  3. Crea un virtualenv. Gli esempi riportati di seguito sono compatibili con Python 2.7 e 3.4 o versioni successive.

    $ virtualenv env
    $ source env/bin/activate
    
  4. Installa le dipendenze necessarie per eseguire i sample.

    $ pip install -r requirements.txt
    

Esempio di codice

Il esempio di codice riportato di seguito utilizza la libreria google-cloud-speech. Puoi utilizzare GitHub per esplorare il codice sorgente e segnalare i problemi.

Trascrivere un file audio

Puoi utilizzare il esempio di codice riportato di seguito per trascrivere un file audio utilizzando un IP pubblico o un IP a livello di cluster. Per ulteriori informazioni sui tipi di IP, consulta la documentazione sulla esecuzione di query sull'API.

IP pubblico:

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

IP a livello di cluster:

    # 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

Per autenticarti a Speech-to-Text, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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