Vorbereitung
- Führen Sie alle erforderlichen Schritte in der Kurzanleitung aus.
- Stellen Sie die API bereit.
Übersicht
Sie können die API unabhängig von der verwendeten Installationsmethode abfragen. Wie Sie die API abfragen, hängt davon ab, ob Sie einen öffentlichen Endpunkt konfiguriert haben. Wenn der Endpunkt nicht öffentlich ist, müssen Sie festlegen, wie die API bereitgestellt werden soll. Dafür gibt es viele Möglichkeiten. Beispielsweise können Sie eine Ingress-Ressource erstellen, wenn Ihr Cluster dies unterstützt, den erstellten Dienst veröffentlichen und den folgenden Befehl ausführen: Istio usw.
Die folgenden Schritte führen Sie durch die Abfrage eines Endpunkts. Dazu gibt es zwei Methoden:
- Fragen Sie den Endpunkt innerhalb des Clusters ab (keine öffentliche IP-Adresse erforderlich).
- Öffentliche IP-Adresse abfragen
Internen DNS-Namen abfragen (keine öffentliche IP-Adresse erforderlich)
In diesem Beispiel wird eine Abfrage innerhalb des Clusters mit dem dem Dienst zugewiesenen DNS-Namen (DNS) ausgeführt: $NAME.$NAMESPACE
, z. B. speech.speech.
Sie können entweder die Umgebungsvariablen festlegen oder sie durch einen tatsächlichen Wert in den Befehlen ersetzen.
Erstellen Sie einen neuen Job innerhalb des Clusters, um die API abzufragen. Wenn dieser Job bereits im Cluster vorhanden ist, sollten Sie ihn zuerst entfernen.
kubectl delete jobs.batch -n $NAMESPACE query-api echo "apiVersion: batch/v1 kind: Job metadata: name: query-api namespace: $NAMESPACE spec: template: metadata: annotations: sidecar.istio.io/inject: 'false' labels: app: query spec: containers: - name: entrypoint image: gcr.io/cloud-marketplace/speech-onprem/speech-to-text-on-prem:$VERSION command: ["/bin/sh", "-c"] args: - curl https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/speech/snippets/resources/commercial_mono.wav --output /tmp/audio.wav; /bin/onprem_client --address=$NAME.$NAMESPACE:443 --file_paths /tmp/audio.wav restartPolicy: Never " | kubectl apply -f -
Prüfen Sie die Logs, um das Transkript anzusehen:
kubectl logs -n $NAMESPACE --follow $(kubectl get po -n $NAMESPACE -l app=query -o=jsonpath='{.items[0].metadata.name}') -c entrypoint
Öffentliche IP-Adresse abfragen
Wenn Sie Istio in Ihrem Cluster installiert haben, prüfen Sie, ob das Istio Ingress Gateway mit einer öffentlichen IP ausgeführt wird. Wenn Sie Istio nicht installiert haben, können Sie den Wert für $PUBLIC_IP
festlegen. Danach können Sie Transkriptionsanfragen an einen öffentlichen Endpunkt senden.
Wenn Sie Istio installiert haben, folgen Sie der Anleitung, um die öffentliche IP-Adresse des Ingress zu erhalten und auf
PUBLIC_IP
festzulegen.Wenn Istio noch nicht installiert ist, prüfen Sie, ob die IP-Adresse gebunden wurde. Es sollte unter
EXTERNAL-IP
angezeigt werden. Wenn es nach einigen Minuten noch nicht angezeigt wird, rufen Sie zur Fehlerbehebung den Cluster in der Console auf.kubectl get service $NAME --namespace $NAMESPACE
Kopieren Sie die Binärdatei
onprem_client
aus dem Docker-Image:kubectl cp -n $NAMESPACE $(kubectl get pod -n $NAMESPACE -l app.kubernetes.io/name=$NAME -o=jsonpath='{.items[0].metadata.name}' ):/bin/onprem_client ./onprem_client kubectl cp -n $NAMESPACE $(kubectl get pod -n $NAMESPACE -l app.kubernetes.io/name=$NAME -o=jsonpath='{.items[0].metadata.name}' ):/usr/grte.tar ./grte.tar sudo tar -xvf grte.tar -C / chmod a+x ./onprem_client
Verwenden Sie die Binärdatei
onprem_client
, um eine Abfrage zu senden:./onprem_client --address ${PUBLIC_IP}:443 --file_paths /path/to/audio.wav
Nächste Schritte
Informationen zum Senden einer Transkriptionsanfrage an die Speech-to-Text-On-Prem API