以下是一个使用百度语音合成的 Java 示例:
步骤 1: 在百度开放云创建应用
首先,你需要在百度开放云平台上创建一个账户,并创建一个语音技术应用,获取应用的 API Key 和 Secret Key。
步骤 2: 引入百度语音合成 SDK 依赖
在你的 pom.xml
文件中添加以下 Maven 依赖:
<dependency>
<groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
<version>4.20.0</version>
</dependency>
步骤 3: 创建 BaiduTextToSpeech 类
import com.baidu.aip.speech.AipSpeech;
import org.json.JSONObject;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.util.HashMap;
public class BaiduTextToSpeech {
private static final String APP_ID = "YOUR_APP_ID";
private static final String API_KEY = "YOUR_API_KEY";
private static final String SECRET_KEY = "YOUR_SECRET_KEY";
public static void main(String[] args) {
AipSpeech client = new AipSpeech(APP_ID, API_KEY, SECRET_KEY);
// 设置百度语音合成参数
HashMap<String, Object> options = new HashMap<>();
options.put("spd", "5"); // 语速,取值0-15,默认为5中语速
options.put("pit", "5"); // 音调,取值0-15,默认为5中语调
options.put("vol", "5"); // 音量,取值0-15,默认为5中音量
options.put("per", "0"); // 发音人选择,0为女声,1为男声,默认为女声
// 待转换的文本
String text = "你好,这是百度语音合成示例。";
// 执行文字到语音的转换
byte[] audioBytes = convertTextToSpeech(client, text, options);
// 将语音数据保存为音频文件
saveAudioToFile(audioBytes, "output.mp3");
}
private static byte[] convertTextToSpeech(AipSpeech client, String text, HashMap<String, Object> options) {
// 执行转换
JSONObject response = client.synthesis(text, "zh", 1, options);
// 解析响应并返回音频数据
if (response.getInt("err_no") == 0) {
return response.getBytes("data");
} else {
System.err.println("Error: " + response.getString("err_msg"));
return new byte[0];
}
}
private static void saveAudioToFile(byte[] audioBytes, String outputPath) {
// 将音频数据保存为文件
try {
Path path = Files.write(Path.of(outputPath), audioBytes, StandardOpenOption.CREATE);
System.out.println("Audio saved to: " + path.toAbsolutePath());
} catch (IOException e) {
e.printStackTrace();
}
}
}
步骤 4: 替换 APP_ID、API_KEY 和 SECRET_KEY
将 APP_ID
、API_KEY
和 SECRET_KEY
替换为你在百度开放云平台创建应用时获得的相应密钥。