Hello, I've been using Opus on an STM32 M4 platform for speech coding in mono mode. I thought I'd try stereo for grins to see if I can handle the CPU load, and I'm getting a return code of -1 from opus_decode_float (using CBR and 40ms frames). I decided to try the opusenc and opusdec tools to just see how the command line apps would behave. I am getting decoded audio, but I am losing the stereo separation. My test file has speech obtained with a Tascam Recorder, and I spoke directly into each mic individually. I can clearly hear the stereo separation in the recorded audio. I do not hear any stereo separation once I encode from wav and decode back to wav. My encoding command line is "opusenc --hard-cbr --bitrate 16.000 --complexity 10 --framesize 20 stereo_voice.wav temp.opus". My decoding script is: "opusdec --force-wav temp.opus decode.wav". Opusenc reports that my encoded file is 2 channels (coupled) and opusdec reports that my file is 2 channels. Can someone tell me how to retain my stereo separation? If I can't get stereo separation from the codec, there's no point in me investigating the error return in my ARM application. Kevin -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/opus/attachments/20151116/f74dac4f/attachment-0001.htm
Hey Kevin! Once you start dropping under (I think) 32kbps, the codec naturally starts losing stereo separation for the benefit of quality. If you really want perfect stereo at 16kbps CBR (this is horrifically low in my opinion) you might be better off splitting the audio and encoding each part at 8kbps CBR. Or, there may be a magic "enforce 100% stereo" one could pass? (doesn't look like it at https://mf4.xiph.org/jenkins/view/opus/job/opus-tools/ws/man/opusenc.html) You can always ask stuff at the #opus channel at https://webchat.freenode.net/ On 16/11/2015 17:37, Honeyager, Kevin S. wrote:> > Hello, > > > > I?ve been using Opus on an STM32 M4 platform for speech coding in mono > mode. I thought I?d try stereo for grins to see if I can handle the > CPU load, and I?m getting a return code of -1 from opus_decode_float > (using CBR and 40ms frames). > > > > I decided to try the opusenc and opusdec tools to just see how the > command line apps would behave. I am getting decoded audio, but I am > losing the stereo separation. My test file has speech obtained with a > Tascam Recorder, and I spoke directly into each mic individually. I > can clearly hear the stereo separation in the recorded audio. I do not > hear any stereo separation once I encode from wav and decode back to > wav. My encoding command line is ?opusenc --hard-cbr --bitrate > 16.000 --complexity 10 --framesize 20 stereo_voice.wav temp.opus?. My > decoding script is: ?opusdec --force-wav temp.opus decode.wav?. > Opusenc reports that my encoded file is 2 channels (coupled) and > opusdec reports that my file is 2 channels. Can someone tell me how > to retain my stereo separation? If I can?t get stereo separation from > the codec, there?s no point in me investigating the error return in my > ARM application. > > > > Kevin > > > > * * > > * * > > > > > > > > > > _______________________________________________ > opus mailing list > opus at xiph.org > http://lists.xiph.org/mailman/listinfo/opus-------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/opus/attachments/20151125/eb4f4f5c/attachment.htm
Also, check out the "Bitrate Scalability" demo at www.opus-codec.org/examples/ to get a feel of what happens at what bitrate. E.g. for your 16kbps you should expect a mono output, low-passed at 6KHz... On 25/11/2015 18:49, Orestes Zoupanos wrote:> Hey Kevin! > > Once you start dropping under (I think) 32kbps, the codec naturally > starts losing stereo separation for the benefit of quality. > If you really want perfect stereo at 16kbps CBR (this is horrifically > low in my opinion) you might be better off splitting the audio and > encoding each part at 8kbps CBR. > Or, there may be a magic "enforce 100% stereo" one could pass? > (doesn't look like it at > https://mf4.xiph.org/jenkins/view/opus/job/opus-tools/ws/man/opusenc.html) > > You can always ask stuff at the #opus channel at > https://webchat.freenode.net/ > > On 16/11/2015 17:37, Honeyager, Kevin S. wrote: >> >> Hello, >> >> >> >> I?ve been using Opus on an STM32 M4 platform for speech coding in >> mono mode. I thought I?d try stereo for grins to see if I can handle >> the CPU load, and I?m getting a return code of -1 from >> opus_decode_float (using CBR and 40ms frames). >> >> >> >> I decided to try the opusenc and opusdec tools to just see how the >> command line apps would behave. I am getting decoded audio, but I am >> losing the stereo separation. My test file has speech obtained with >> a Tascam Recorder, and I spoke directly into each mic individually. >> I can clearly hear the stereo separation in the recorded audio. I do >> not hear any stereo separation once I encode from wav and decode back >> to wav. My encoding command line is ?opusenc --hard-cbr --bitrate >> 16.000 --complexity 10 --framesize 20 stereo_voice.wav temp.opus?. >> My decoding script is: ?opusdec --force-wav temp.opus decode.wav?. >> Opusenc reports that my encoded file is 2 channels (coupled) and >> opusdec reports that my file is 2 channels. Can someone tell me how >> to retain my stereo separation? If I can?t get stereo separation >> from the codec, there?s no point in me investigating the error return >> in my ARM application. >> >> >> >> Kevin >> >> >> >> * * >> >> * * >> >> >> >> >> >> >> >> >> >> _______________________________________________ >> opus mailing list >> opus at xiph.org >> http://lists.xiph.org/mailman/listinfo/opus > > > > _______________________________________________ > opus mailing list > opus at xiph.org > http://lists.xiph.org/mailman/listinfo/opus-------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/opus/attachments/20151125/d62747cf/attachment.htm