I'm having difficulty encoding audio using the JSpeex Speex Encoder. My program throws an "Unsupported conversion" exception and I can't figure out why. I've read the related posts and I think I'm doing everything that was recommended. I'm working on Linux, by the way. Any help would be greatly appreciated. Richard Here is my program output: $ java -classpath ".:jspeex/src/java" SpeexSave in.wav out.wav Exception in thread "main" java.lang.IllegalArgumentException: Unsupported conversion: SPEEX_quality_3, 44100.0 Hz, -1 bit, stereo, audio data from PCM_SIGNED, 44100.0 Hz, 16 bit, stereo, little-endian, audio data at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:571) at SpeexSave.main(SpeexSave.java:36) And here is my program: import java.io.*; import javax.sound.sampled.*; // Speex imports. import org.xiph.speex.*; import org.xiph.speex.spi.*; class SpeexSave { public static void main(String args[]) { if (args.length != 2) { System.out.println("Arguments: IN_WAVE_FILE OUT_WAVE_FILE"); return; } File srcFile = new File(args[0]); File outFile = new File(args[1]); AudioInputStream audioInputStream = null; try { audioInputStream = AudioSystem.getAudioInputStream(srcFile); } catch (Exception e) { System.out.println("Exception: " + e.getMessage()); e.printStackTrace(); return; } AudioFormat srcFormat = audioInputStream.getFormat(); AudioFormat targetFormat new AudioFormat(SpeexEncoding.SPEEX_Q3, srcFormat.getSampleRate(), -1, // sample size in bits srcFormat.getChannels(), -1, // frame size -1, // frame rate srcFormat.isBigEndian()); AudioInputStream audioInputStream2 AudioSystem.getAudioInputStream(targetFormat, audioInputStream); } }