Google Speech-to-text в потоке Amazon Kinesis: io.grpc.StatusRuntimeException: CANCELED: операция была отменена - PullRequest
0 голосов
/ 21 мая 2019

Я хочу использовать Google речь-в-тексте, используя поток Kinesis, как часть службы голосовых ботов с использованием Amazon Connect, Amazon Lex и Amazon SQS (я использовал код с https://cloud.google.com/speech-to-text/docs/streaming-recognize#speech-streaming-mic-recognize-java, и я изменил тип ссылки с AudioInputStream на InputStream).

Я использую сервис преобразования речи в текст Amazon Transcribe, но хочу заменить его на Google, так как Google поддерживает больше языков.Однако Google Speech не может принять объект InputStream, созданный Amazon SDK.

Я использую код ниже.Вместо того, чтобы изменить AudioInputStream на InputStream, я также попробовал метод getAudioInputStream () (также с созданием BufferedInputStream).

String streamName = streamARN.substring(streamARN.indexOf("/") + 1, streamARN.lastIndexOf("/"));
InputStream kvsInputStream = KVSUtils.getInputStreamFromKVS(streamName, REGION, startFragmentNum, getAWSCredentials());
//InputStream bufferedIn = new BufferedInputStream(kvsInputStream); //to solve 'no reset/mark support in stream' error
//AudioInputStream audioStream = AudioSystem.getAudioInputStream(bufferedIn); //to solve 'no reset/mark support in stream' error
streamingMicRecognize(kvsInputStream);

В текущем состоянии я получаю ошибку

com.google.api.gax.rpc.CancelledException: io.grpc.StatusRuntimeException: CANCELLED: The operation was cancelled.

Когда я использовал двазакомментированные строки (я нашел это решение на SO), ошибка была

java.lang.ClassCastException: com.amazonaws.util.ServiceClientHolderInputStream cannot be cast to javax.sound.sampled.AudioInputStream

Можете ли вы предложить какое-либо решение?Для английского VoiceBot Connect предлагает специальный блок, который позволяет мне соединять голосовой вызов с Lex, но Lex поддерживает только американский английский, и мне нужны и другие языки.Я знаю, что Google Dialogflow («Google's Lex») может обрабатывать многие языки и предлагает интеграцию с телефонным шлюзом, но телефонный шлюз поддерживает только английский (что нелепо).Заранее спасибо.

...