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>
我正在尝试使用 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>