This is best answered by the jspeex folks, as it is the interfacing<br><div class="gmail_quote">code that you are having problems with.<br><br>That being said, it looks like, just as it says, you have asked for a<br>conversion it cannot do -- you want it to convert PCM data to speex
<br>data at 44.1kHz sample rate -- speex only supports 8kHz in standard<br>operation. It can also support 16kHz (wb) and 32kHz (uwb), but nothing<br>outside of those rates. Just tune the requested target rate to 8000 Hz<br>

and you should get further.<br><div><div></div><div><br>On Jan 8, 2008, at 2:50, Rich Carlson &lt;<a href="mailto:jrc@brainhotel.org" target="_blank">jrc@brainhotel.org</a>&gt; wrote:<br><br>&gt; I&#39;m having difficulty encoding audio using the JSpeex Speex
<br>&gt; Encoder. &nbsp;My<br>&gt; program throws an &quot;Unsupported conversion&quot; exception and I can&#39;t<br>&gt; figure<br>&gt; out why. I&#39;ve read the related posts and I think I&#39;m doing<br>&gt; everything that
<br>&gt; was recommended. &nbsp;I&#39;m working on Linux, by the way.<br>&gt;<br>&gt; Any help would be greatly appreciated.<br>&gt;<br>&gt; Richard<br>&gt;<br>&gt;<br>&gt; Here is my program output:<br>&gt;<br>&gt; $ java -classpath &quot;.:jspeex/src/java&quot; SpeexSave 
in.wav out.wav<br>&gt; Exception in thread &quot;main&quot; java.lang.IllegalArgumentException:<br>&gt; Unsupported<br>&gt; conversion: SPEEX_quality_3, 44100.0 Hz, -1 bit, stereo, audio data<br>&gt; from<br>&gt; PCM_SIGNED, 
44100.0 Hz, 16 bit, stereo, little-endian, audio data<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;at<br>&gt; javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:<br>&gt; 571)<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;at SpeexSave.main(SpeexSave.java:36)<br>&gt;
<br>&gt;<br>&gt; And here is my program:<br>&gt;<br>&gt; import java.io.*;<br>&gt; import javax.sound.sampled.*;<br>&gt;<br>&gt; // Speex imports.<br>&gt; import org.xiph.speex.*;<br>&gt; import org.xiph.speex.spi.*;<br>
&gt;
<br>&gt; class SpeexSave {<br>&gt; &nbsp; &nbsp;public static void main(String args[]) {<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;if (args.length != 2) {<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println(&quot;Arguments: IN_WAVE_FILE<br>&gt; OUT_WAVE_FILE&quot;);<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;
<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;}<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;File srcFile = new File(args[0]);<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;File outFile = new File(args[1]);<br>&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;AudioInputStream audioInputStream = null;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;try {<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;audioInputStream = 
AudioSystem.getAudioInputStream<br>&gt; (srcFile);<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;}<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;catch (Exception e) {<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println(&quot;Exception: &quot; + e.getMessage());<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;e.printStackTrace

();<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;}<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;AudioFormat srcFormat = audioInputStream.getFormat();<br>&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;AudioFormat targetFormat =<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new AudioFormat(SpeexEncoding.SPEEX_Q3

,<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;srcFormat.getSampleRate(),<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-1, // sample size in bits<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;srcFormat.getChannels(),<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-1, // frame size
<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-1, // frame rate<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;srcFormat.isBigEndian());<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;AudioInputStream audioInputStream2 =<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AudioSystem.getAudioInputStream(targetFormat,
<br>&gt; audioInputStream);<br>&gt; &nbsp; &nbsp;}<br>&gt; }<br>&gt;<br>&gt; _______________________________________________<br>&gt; Speex-dev mailing list<br>&gt; <a href="mailto:Speex-dev@xiph.org" target="_blank">Speex-dev@xiph.org
</a><br>&gt; 
<a href="http://lists.xiph.org/mailman/listinfo/speex-dev" target="_blank">http://lists.xiph.org/mailman/listinfo/speex-dev</a><br></div></div></div><br><br clear="all"><br>-- <br>Keith Kyzivat<br><br>SIPez LLC.<br>SIP VoIP, IM and Presence Consulting
<br><a href="http://www.SIPez.com" target="_blank">http://www.SIPez.com</a><br>tel: +1 (617) 273-4000