前提条件
概览
无论使用哪种安装方法,您都可以使用相同的方法查询 API。查询 API 的方式取决于您是否配置了公共端点。如果您的端点不是公共的,则需要确定如何公开提供 API。您可以通过多种方式来执行此操作,包括创建 Ingress(如果您的集群支持它)、发布已创建的服务、运行 Istio 等。
下述步骤将引导您查询端点。可以采用两种方法:
- 在集群中查询端点(无需公共 IP)。
- 查询公共 IP。
查询内部 DNS 名称(无需公共 IP)
以下示例会使用分配给服务的域名服务 (DNS) 名称在集群中运行查询:$NAME.$NAMESPACE
(例如 speech.speech.
)。您可以设置环境变量,也可以在命令中将其替换为实际值。
在要从中查询 API 的集群中创建新作业。如果集群中已存在此作业,应先移除该作业。
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 -
查看日志以了解转写内容:
kubectl logs -n $NAMESPACE --follow $(kubectl get po -n $NAMESPACE -l app=query -o=jsonpath='{.items[0].metadata.name}') -c entrypoint
查询公共 IP
如果在集群中安装了 Istio,请确保使用公共 IP 运行 Istio 入站流量网关。如果尚未安装 Istio,则可以设置 $PUBLIC_IP
的值。完成此操作后,您可以将转录查询提交到公共端点。
如果您已安装 Istio,请按照相关说明获取 Ingress 公共 IP 并将其设置为
PUBLIC_IP
。如果尚未安装 Istio,请确认 IP 地址是否已绑定。它应该显示在下面的
EXTERNAL-IP
下方。如果几分钟后没有出现,请导航到控制台中的集群进行问题排查。kubectl get service $NAME --namespace $NAMESPACE
从 Docker 映像中复制
onprem_client
二进制文件: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
使用
onprem_client
二进制文件提交查询:./onprem_client --address ${PUBLIC_IP}:443 --file_paths /path/to/audio.wav
后续步骤
了解如何向 Speech-to-Text On-Prem API 发送转写请求。