google 语音到文本的依赖性会在运行时出错

google speech to text dependency gives errors at runtime

我正在尝试使用 google 语音转文本 api 使用 java spring 启动。在他们的 documentation 中,它要求将以下依赖项添加到 pom 文件以下载所需的依赖项。

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

这个可以找到here

当我构建并 运行 项目时,项目正常启动。

但是当我调用下面包含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>

一旦我也添加了该依赖项并尝试构建,如下所示的构建失败告诉我无法解析添加的依赖项。

 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]]

通过分解您发布的最后一个错误,看起来冲突实际上是在版本中而不是在依赖项中。 (注意用 *** 包围的 2 行:

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-core 1.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>