我目前正在使用React作为我的前端,并使用Java Spring Boot作为我的服务器。我正在使用React-Mic录制音频,将音频传递到FormData,并将带有该FormData作为主体的HTTP发布请求发送到Java服务器。但是,由于录制的音频在webm中,因此Google Speech-To-Text API没有适当的编码。知道如何将音频转换为flac或Google Speech-To-Text API支持的任何其他格式类型吗?
答案 0 :(得分:1)
可能可以使用JAVE2从webm转换为mp3(或其他)。
https://github.com/a-schild/jave2
自述文件中的示例应为您指明正确的方向:
try {
File source = new File("file path"); // Path to your webm
File target = new File("file path"); // Output path
//Audio Attributes
AudioAttributes audio = new AudioAttributes();
audio.setCodec("libmp3lame"); // Change this to flac if you prefer flac
audio.setBitRate(128000);
audio.setChannels(2);
audio.setSamplingRate(44100);
//Encoding attributes
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("mp3"); // Change to flac if you prefer flac
attrs.setAudioAttributes(audio);
//Encode
Encoder encoder = new Encoder();
encoder.encode(new MultimediaObject(source), target, attrs);
// The target file should now be present at the path specified above
} catch (Exception ex) {
ex.printStackTrace();
}
转换后,您将拥有一个文件对象,可以将其转换为byte []以发送语音到文本api,如以下示例所示: