问题描述
在我的本地计算机上,我正在尝试以下示例的Google实时STT。
上面链接中的其他示例效果很好。 与实时STT相关的InfiniteStreamRecognize不起作用。
问题是 responSEObserver的onResponse根本没有被调用。结果,我无法获得任何翻译文本。而且不会引发异常/错误。
try (SpeechClient client = SpeechClient.create()) {
ClientStream<StreamingRecognizeRequest> clientStream;
responSEObserver =
new ResponSEObserver<StreamingRecognizeResponse>() {
ArrayList<StreamingRecognizeResponse> responses = new ArrayList<>();
public void onStart(StreamController controller) {
System.out.println("onStart");
referencetoStreamController = controller;
}
public void onResponse(StreamingRecognizeResponse response) { <- This code is never called.
System.out.println("onResponse");
responses.add(response);
StreamingRecognitionResult result = response.getResultsList().get(0);
Duration resultEndTime = result.getResultEndTime();
resultEndTimeInMS =
(int)
((resultEndTime.getSeconds() * 1000) + (resultEndTime.getNanos() / 1000000));
double correctedTime =
resultEndTimeInMS - bridgingOffset + (STREAMING_LIMIT * restartCounter);
通过以下代码成功发送麦克风收集的音频数据,没有任何例外。
while (true) { ..
...
tempByteString = ByteString.copyFrom(sharedQueue.take());
// System.out.println("add audio data");
request =
StreamingRecognizeRequest.newBuilder().setAudioContent(tempByteString).build();
audioInput.add(tempByteString);
}
clientStream.send(request);
}
- 有什么解决办法吗?
- 是否还有其他环境设置?例如)gRPC for Java
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)