[在我的POC中,我收到来自Twilio的8kHz mulaw流媒体对话,我想使用需要获得16KHz和PCM音频的Amazon Transcribe进行转录。
我发现了here如何转换文件,但是在流式传输中却失败了...文件的代码是:
File sourceFile = new File("<Source_Path>.wav");
File targetFile = new File("<Destination_Path>.wav");
AudioInputStream sourceAudioInputStream = AudioSystem.getAudioInputStream(sourceFile);
AudioInputStream targetAudioInputStream=AudioSystem.getAudioInputStream(AudioFormat.Encoding.PCM_SIGNED, sourceAudioInputStream);
System.out.println("Sample Rate1 "+targetAudioInputStream.getFormat().getFrameRate());
AudioFormat targetFormat = new AudioFormat(new AudioFormat.Encoding("PCM_SIGNED"), 16000, 16, 1, 2, 8000, false);
AudioInputStream targetAudioInputStream1 = AudioSystem.getAudioInputStream(targetFormat, targetAudioInputStream);
System.out.println("Sample Rate "+targetAudioInputStream1.getFormat().getFrameRate());
try {
AudioSystem.write(targetAudioInputStream1, AudioFileFormat.Type.WAVE, targetFile);
} catch (IOException e) {
e.printStackTrace();
}
Actaully Twilio给了我Base64(8KHz,mulaw)的播放负载,但我必须将其转换为16KHz,PCM。
谢谢!
您需要一个G.711解码器和音频重采样器。
要遵循的步骤:
使用base64解码器解码收到的有效载荷。
使用此有效负载缓冲区,并使用G.711解码器进行解码(从mulaw到pcm)>]
G.711解码器的输出需要提供给重采样器以进行上采样(8-> 16 KHz)]] >>
最后,所有缓冲区都已准备就绪,处于PCM 16KHz的状态。