В моем PO C я получаю потоковую передачу разговора от Twilio в 8kHz mulaw, и я хочу транскрибировать его с помощью Amazon Transcribe, который должен получить звук в 16KHz и PCM.
Я нашел здесь как преобразовать файл, но не удалось сделать это в потоковом режиме ... Код для файла:
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();
}
На самом деле Twilio дает мне воспроизведение в Base64 (8KHz, mulaw) но я должен преобразовать его в 16 кГц, PCM.