Я использую Google speech to text api
из моего приложения для перевода.Здесь я инициализирую ApiStreamObserver
для StreamingRecognizeResponse
, это выдает какую-то ошибку.Код ниже,
Инициализировать SpeechClient
как,
@SuppressLint("StaticFieldLeak")
private void InitValue() {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
final InputStream stream = getResources().openRawResource(R.raw.transcribeapi);
ServiceAccountCredentials credentials = ServiceAccountCredentials.fromStream(stream);
mSpeechClient = SpeechClient.create(SpeechSettings.newBuilder()
.setCredentialsProvider(fixedCredentialsProvider)
.build());
GetAudioPermission();
initialized = true;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}.execute();
}
StreamingRecognizeClient
ApiStreamObserver<StreamingRecognizeRequest> mRequestObserver;
mRequestObserver= mSpeechClient.streamingRecognizeCallable().bidiStreamingCall(new ApiStreamObserver<StreamingRecognizeResponse>() {
@Override
public void onNext(StreamingRecognizeResponse response) {
Log.d(TAG, "onNext: ");
/* int numOfResults = response.getResultsCount();
if( numOfResults > 0 ){
for (int i=0;i<numOfResults;i++){
Log.d(TAG, "onNext: "+response.getResults(i).getAlternatives(i));
}
}*/
}
@Override
public void onError(Throwable t) {
Log.d(TAG, "onError: "+t.getMessage());
}
@Override
public void onCompleted() {
Log.d(TAG, "onCompleted: ");
}
});
сообщение об исключении;
onError: io.grpc.StatusRuntimeException: INTERNAL: Panic! This is a bug!
2019-03-20 17:30:32.485 25247-25293/com.logicvalley.translator E/ManagedChannelImpl: [Channel<1>: (speech.googleapis.com:443)] Uncaught exception in the SynchronizationContext. Panic!
java.lang.AbstractMethodError: abstract method "io.grpc.internal.ConnectionClientTransport io.grpc.internal.ClientTransportFactory.newClientTransport(java.net.SocketAddress, io.grpc.internal.ClientTransportFactory$ClientTransportOptions)"
at io.grpc.internal.CallCredentialsApplyingTransportFactory.newClientTransport(CallCredentialsApplyingTransportFactory.java:47)
at io.grpc.internal.InternalSubchannel.startNewTransport(InternalSubchannel.java:262)
at io.grpc.internal.InternalSubchannel.obtainActiveTransport(InternalSubchannel.java:215)
at io.grpc.internal.ManagedChannelImpl$SubchannelImpl.requestConnection(ManagedChannelImpl.java:1438)
at io.grpc.internal.PickFirstLoadBalancer.handleResolvedAddressGroups(PickFirstLoadBalancer.java:59)
at io.grpc.internal.AutoConfiguredLoadBalancerFactory$AutoConfiguredLoadBalancer.handleResolvedAddressGroups(AutoConfiguredLoadBalancerFactory.java:149)
at io.grpc.internal.ManagedChannelImpl$NameResolverListenerImpl$1NamesResolved.run(ManagedChannelImpl.java:1312)
at io.grpc.SynchronizationContext.drain(SynchronizationContext.java:101)
at io.grpc.SynchronizationContext.execute(SynchronizationContext.java:130)
at io.grpc.internal.ManagedChannelImpl$NameResolverListenerImpl.onAddresses(ManagedChannelImpl.java:1317)
at io.grpc.internal.DnsNameResolver$Resolve.resolveInternal(DnsNameResolver.java:325)
at io.grpc.internal.DnsNameResolver$Resolve.run(DnsNameResolver.java:225)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Еще два дня я работаю над этим проектом, нигде нет примеров. Доступны только примеры kotlin.
Пожалуйста, кто-нибудь поможет мне ..
Заранее спасибо ...