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

Prerequisiti

  1. Completa tutti i passaggi richiesti nella guida rapida 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 nella directory 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 già fatto. Fai riferimento alla Guida alla configurazione dell'ambiente di sviluppo Python di Google Cloud Platform per ulteriori informazioni.

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

    $ virtualenv env
    $ source env/bin/activate
    
  4. Installa le dipendenze necessarie per eseguire gli esempi.

    $ pip install -r requirements.txt
    

Esempio di codice

L'esempio di codice riportato di seguito utilizza la libreria di google-cloud-Speech. Puoi utilizzare GitHub per sfogliare il codice sorgente e segnalare i problemi.

Trascrizione di un file audio

Puoi utilizzare l'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 IP, consulta la documentazione sull'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 eseguire l'autenticazione a Speech-to-Text, configura le Credenziali predefinite dell'applicazione. Per maggiori 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