gpt4 book ai didi

java - 如何在 Java 中表示 wav 文件?

转载 作者:行者123 更新时间:2023-12-02 22:30:49 27 4
gpt4 key购买 nike

我需要通过服务 (t = textToSpeechService.callAPI(tmp);) 向 API 发送请求,以便它返回给我一个音频 wav 文件。我遇到的问题是,我不知道应该使用哪些类而不是 Clip (public Clip callAPI(Source src)) 来捕获该文件并将其转发到前端,即前端调用这个服务?我的意思是我不希望文件像在(callAPI 函数)中那样在后端播放,而是以某种方式捕获文件,然后在前端播放、暂停或停止它。如何用 Java 表示音频文件,我很困惑? Javascript 中没有类似 Audio 类的东西吗?

public Clip callAPI(Source src){
URL url;
Clip result = null;

AudioInputStream sound = null;
{
try {
url = new URL(" http://api.voicerss.org/?key=" + keyAPI + "&hl=" + src.getLang() + "&src=" + src.getSrc());

sound = AudioSystem .getAudioInputStream(url); //here i have the audio
Object sound2 = AudioSystem.getAudioInputStream(url);
AudioFormat at = sound.getFormat();
result = AudioSystem.getClip();
result.open(sound);
} catch (MalformedURLException e) {
e.printStackTrace();
}catch (UnsupportedAudioFileException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();

}catch (LineUnavailableException e) {
e.printStackTrace();
}
}

return result;
}

Clip t = null;
AudioInputStream ais = null;
private TextToSpeechService textToSpeechService;
public Clip theFunction(@RequestParam String src, HttpServletRequest request){
//if(src == request.getSession().getAttribute("input")){
Source tmp = new Source();
tmp.setSrc(src);

t = textToSpeechService.callAPI(tmp);


t.start();

return t;

}

最佳答案

AudioInputStream extends InputStream .理论上,reading音频作为字节流直到 EOF (-1) 并将这些字节写入 HTTP ( servlet ) 响应的输出流中,将音频传输到浏览器;很可能必须首先在响应中设置特定的“内容类型” header ,以表示音频/音频格式的类型,也许还有一些来自 AudioFormat 的附加音频特征。 .

关于java - 如何在 Java 中表示 wav 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59290561/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com