以下是一个简单的 Java 示例,演示如何使用百度语音识别 API 将音频文件转换为文字。
步骤 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: 创建 BaiduAudioToText 类
import com.baidu.aip.speech.AipSpeech;
import com.baidu.aip.speech.TtsResponse;
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 BaiduAudioToText {
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("dev_pid", 1537); // 普通话输入法模型
// 待识别的音频文件路径
String audioFilePath = "path/to/your/audiofile.wav";
// 执行音频到文字的转换
String result = convertAudioToText(client, audioFilePath, options);
// 输出转换结果
System.out.println("Text result: " + result);
}
private static String convertAudioToText(AipSpeech client, String audioFilePath, HashMap<String, Object> options) {
// 读取音频文件数据
byte[] audioData = readAudioFile(audioFilePath);
// 执行语音识别
JSONObject response = client.asr(audioData, "wav", 16000, options);
// 解析响应并返回识别结果
if (response.getInt("err_no") == 0) {
return response.getJSONArray("result").getString(0);
} else {
System.err.println("Error: " + response.getString("err_msg"));
return "";
}
}
private static byte[] readAudioFile(String filePath) {
try {
return Files.readAllBytes(Path.of(filePath));
} catch (IOException e) {
e.printStackTrace();
return new byte[0];
}
}
}
步骤 4: 替换 APP_ID、API_KEY 和 SECRET_KEY
将 APP_ID
、API_KEY
和 SECRET_KEY
替换为你在百度开放云平台创建应用时获得的相应密钥。