gpt4 book ai didi

java - 将AWS Polly提供的ogg流保存到wav文件中

转载 作者:行者123 更新时间:2023-12-02 22:31:51 25 4
gpt4 key购买 nike

我正在尝试创建一个网页,用户可以在其中收听他键入的文本。我还想提供一种功能,以.wav格式下载媒体。

我可以从AudioStream获取AmazonPollyClient,但无法将流保存到.wav文件。

这是我正在尝试的...

public void convertToWav(SynthesizeSpeechResult result, File convertedFile) throws IOException {

try (AudioInputStream sias = AudioSystem.getAudioInputStream(result.getAudioStream())){

AudioFormat newFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 8000f, 16, 1, 2, 8000f, false);
AudioInputStream convert1AIS = AudioSystem.getAudioInputStream(newFormat, sias);

AudioSystem.write(convert1AIS, AudioFileFormat.Type.WAVE, convertedFile);

convert1AIS.close();
} catch (UnsupportedAudioFileException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

System.gc();
}

但是每次我调用 getAudioInputStream()时都会抛出 IOException
java.io.IOException: mark/reset not supported
at java.io.InputStream.reset(InputStream.java:348)
at com.amazonaws.internal.SdkFilterInputStream.reset(SdkFilterInputStream.java:112)
at com.amazonaws.event.ProgressInputStream.reset(ProgressInputStream.java:168)
at com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(SoftMidiAudioFileReader.java:139)
at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1113)

P.S:我尝试将 result.getAudioStream()包装在 BufferedInputStream()中。没有出现!

任何帮助将不胜感激。

最佳答案

最后,我想出了一种方法来保存InputStream提供的polly-aws-sdk

public static boolean getWavFile(String filePath, InputStream audioStream) throws IOException {

boolean result = false;
try {

byte[] decodedData = IOUtils.toByteArray(audioStream);

System.out.println(">>Decoded Data" + Arrays.toString(decodedData));
File outFile = new File(filePath);
AudioFormat format = new AudioFormat(8000, 16, 1, true, false);
AudioSystem.write(new AudioInputStream(new ByteArrayInputStream(
decodedData), format, decodedData.length), AudioFileFormat.Type.WAVE, outFile);
result = true;
return result;
} catch (IOException ex) {
System.out.println("<<getWavFile - impl" + ex);
return result;

}
}

关于java - 将AWS Polly提供的ogg流保存到wav文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47286156/

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