Google речь к тексту зависимость дает ошибки во время выполнения - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь использовать Google Speech для текстового API с помощью весенней загрузки Java.В их документации он просит добавить в файл pom следующую зависимость для загрузки необходимых зависимостей.

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-speech</artifactId>
  <version>0.46.0-alpha</version>
</dependency>

Это можно найти здесь .

Когда я собираю и запускаю проект, проект запускается нормально.

Но когда я вызываю метод, содержащий SpeechClient speech = SpeechClient.create() ниже, генерируется исключение.

io.grpc.ManagedChannelProvider$ProviderNotFoundException: No functional channel service provider found. Try adding a dependency on the grpc-okhttp or grpc-netty artifact 

Затем я добавилэта зависимость.

<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-okhttp</artifactId>
    <version>1.11.0</version>
</dependency>     

<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <version>1.11.0</version>
</dependency>

Как только я добавил эту зависимость также и попытался построить, произошел сбой BUILD, как показано ниже, сообщая, что не может разрешить добавленные зависимости.

 Failed to execute goal on project tts-samples: Could not resolve dependencies for project com.example.texttospeech:tts-samples:jar:2.0.1.RELEASE: Failed to collect dependencies for com.example.texttospeech:tts-samples:jar:2.0.1.RELEASE: Could not resolve version conflict among [com.google.cloud:google-cloud-speech:jar:0.47.0-alpha -> com.google.cloud:google-cloud-core-grpc:jar:1.29.0 -> io.grpc:grpc-protobuf:jar:1.10.1 -> io.grpc:grpc-core:jar:1.10.1, com.google.cloud:google-cloud-speech:jar:0.47.0-alpha -> com.google.cloud:google-cloud-core-grpc:jar:1.29.0 -> io.grpc:grpc-protobuf:jar:1.10.1 -> io.grpc:grpc-protobuf-lite:jar:1.10.1 -> io.grpc:grpc-core:jar:1.10.1, com.google.cloud:google-cloud-speech:jar:0.47.0-alpha -> io.grpc:grpc-netty-shaded:jar:1.10.1 -> io.grpc:grpc-core:jar:[1.10.1,1.10.1], com.google.cloud:google-cloud-speech:jar:0.47.0-alpha -> io.grpc:grpc-stub:jar:1.10.1 -> io.grpc:grpc-core:jar:1.10.1, com.google.cloud:google-cloud-speech:jar:0.47.0-alpha -> io.grpc:grpc-auth:jar:1.10.1 -> io.grpc:grpc-core:jar:[1.10.1,1.10.1], io.grpc:grpc-okhttp:jar:1.11.0 -> io.grpc:grpc-core:jar:[1.11.0,1.11.0], io.grpc:grpc-netty:jar:1.11.0 -> io.grpc:grpc-core:jar:[1.11.0,1.11.0]]

1 Ответ

0 голосов
/ 24 мая 2018

Если разбить последнюю опубликованную ошибку, похоже, что конфликт на самом деле связан с версиями, а не с зависимостями.(Обратите внимание на две строки, заключенные в ***:

com.google.cloud:google-cloud-speech:jar:0.47.0-alpha
    io.grpc:grpc-netty-shaded:jar:1.10.1, io.grpc:grpc-stub:jar:1.10.1, io.grpc:grpc-auth:jar:1.10.1
        ***io.grpc:grpc-core:jar:[1.10.1,1.10.1],*** 
io.grpc:grpc-okhttp:jar:1.11.0, io.grpc:grpc-netty:jar:1.11.
        ***io.grpc:grpc-core:jar:[1.11.0,1.11.0]***

Используемая вами библиотека google-cloud-speech зависит от библиотек, зависящих от grpc-core 1.10.1, тогда как новые зависимости используют grpc-core1.11.0. Измените версии с 1.11.0 на 1.10.1, и проблема может быть решена. У вас будет что-то вроде этого:

<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-okhttp</artifactId>
    <version>1.10.1</version>
</dependency>     

<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <version>1.10.1</version>
</dependency>
...