Transkriptionsanfrage an Cloud Speech-to-Text On-Prem senden

Vorbereitung

  1. Führen Sie alle erforderlichen Schritte in der Kurzanleitung aus.
  2. Stellen Sie die API bereit.
  3. Fragen Sie die API ab, um sicherzustellen, dass sie funktioniert.

Abhängigkeiten installieren

  1. Klonen Sie python-speech und ändern Sie das Verzeichnis in das Beispielverzeichnis.

    $ git clone https://github.com/googleapis/python-speech.git
    $ cd python-speech/samples/snippets
    
  2. Installieren Sie BiB und virtualenv, falls noch nicht geschehen. Weitere Informationen finden Sie im Einrichtungsleitfaden zur Python-Entwicklungsumgebung der Google Cloud Platform.

  3. virtualenv erstellen Die folgenden Beispiele sind mit Python 2.7 und 3.4+ kompatibel.

    $ virtualenv env
    $ source env/bin/activate
    
  4. Installieren Sie die Abhängigkeiten, die zum Ausführen der Beispiele erforderlich sind:

    $ pip install -r requirements.txt
    

Codebeispiel

Im folgenden Codebeispiel wird die Google-Cloud-Sprachbibliothek verwendet. Sie können mit GitHub die Quelle durchsuchen und Probleme melden.

Audiodatei transkribieren

Sie können im Codebeispiel unten eine Audiodatei mit einer öffentlichen IP-Adresse oder einer IP-Adresse auf Clusterebene transkribieren. Weitere Informationen zu IP-Typen finden Sie in der Dokumentation zum Abfragen der API.

Öffentliche IP-Adresse:

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

IP-Adresse auf Clusterebene:

    # 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

Richten Sie zur Authentifizierung bei Speech-to-Text Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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