java - Windows 10 上用于 Java 的 google-text-to-speech Api 的工作演示
问题描述
我正在尝试在 Java/Windows 桌面下获得 google-text-to-speech API 的工作演示。
我已经按照 Google Cloud 手册中的说明在 Google Cloud 中创建了一个项目,激活了 Cloud Text-to-Speech API 并创建了一个新的“服务帐户密钥”。之后,我将 Google 提供的示例程序(QuickstartSample)放入 IntelliJ 中(见下文),并尝试了其他几个来自 Github 的示例程序。我还尝试了 stackoverflow 上的几个示例/提示。
我使用 Java SDK 14.0.2、IntelliJ 2020.2.3 和 Windows 10 作为开发环境。
互联网上可用的示例程序似乎都不能正常工作。
有人可以在上述运行环境(Java SDK 14.0.2、IntelliJ 2020.2.3、Windows 10)中提供一个工作示例程序吗?
非常感谢任何帮助。非常感谢。
来自 Google 支持页面 (QuickstartSample) 的代码:
// Imports the Google Cloud client library
import com.google.cloud.texttospeech.v1.AudioConfig;
import com.google.cloud.texttospeech.v1.AudioEncoding;
import com.google.cloud.texttospeech.v1.SsmlVoiceGender;
import com.google.cloud.texttospeech.v1.SynthesisInput;
import com.google.cloud.texttospeech.v1.SynthesizeSpeechResponse;
import com.google.cloud.texttospeech.v1.TextToSpeechClient;
import com.google.cloud.texttospeech.v1.VoiceSelectionParams;
import com.google.protobuf.ByteString;
import java.io.FileOutputStream;
import java.io.OutputStream;
/**
* Google Cloud TextToSpeech API sample application. Example usage: mvn package exec:java
* -Dexec.mainClass='com.example.texttospeech.QuickstartSample'
*/
public class QuickstartSample {
/** Demonstrates using the Text-to-Speech API. */
public static void main(String... args) throws Exception {
// Instantiates a client
try (TextToSpeechClient textToSpeechClient = TextToSpeechClient.create()) {
// Set the text input to be synthesized
SynthesisInput input = SynthesisInput.newBuilder().setText("Hello, World!").build();
// Build the voice request, select the language code ("en-US") and the ssml voice gender
// ("neutral")
VoiceSelectionParams voice =
VoiceSelectionParams.newBuilder()
.setLanguageCode("en-US")
.setSsmlGender(SsmlVoiceGender.NEUTRAL)
.build();
// Select the type of audio file you want returned
AudioConfig audioConfig =
AudioConfig.newBuilder().setAudioEncoding(AudioEncoding.MP3).build();
// Perform the text-to-speech request on the text input with the selected voice parameters and
// audio file type
SynthesizeSpeechResponse response =
textToSpeechClient.synthesizeSpeech(input, voice, audioConfig);
// Get the audio contents from the response
ByteString audioContents = response.getAudioContent();
// Write the response to the output file.
try (OutputStream out = new FileOutputStream("output.mp3")) {
out.write(audioContents.toByteArray());
System.out.println("Audio content written to file \"output.mp3\"");
}
}
}
}
解决方案
推荐阅读
- css - 使用 flex-layout 设置宽度导致左侧被切断而没有滚动
- python-3.x - 如何从另一列的截断值填充数据框中的一列
- apache-spark - 将数据从 Spark 结构化流加载到 ArrayList
- spring-boot - Spring Boot 应用程序中的 Swagger2 不会使用自定义 Docket 获取 @ApiResponses
- django - Django迁移删除和更新
- linux - 如何在 ubuntu 上的 /var/www 中创建目录?设置权限
- visual-studio - MDX 查询在 SSMS 中有效,但在 Visual Studio 中无效
- c# - 从控制器检索数据并返回 ajax 调用失败
- jquery - 单击菜单容器外部时如何关闭下拉菜单?
- android - Android 游戏和其他基于引擎的复杂应用程序如何通过 - 或以其他方式处理 - 进程死亡来保持状态?