-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Wishlist #8
Comments
@commarmi76: Could you please elaborate a bit more on the difference between the program opusenc from opus-tools and libopusenc/examples/opusenc_example.c ? I'm not using ARM devices, I just ask because I think the opus audio quality I'm getting from opusenc in opus-tools is better than the quality I'm getting from using bare libopusenc, and I'm trying to understand if it's just some option I'm missing or if opusenc is a better encoder... |
The opusenc_example.c is just a minimalist opusenc-like tool that demonstrates how libopusenc works. It assumes the audio is raw (no header) PCM at 44.1 kHz and that you're using the default options. |
@jmvalin: yes, I know. I've modified it to encode a mono raw PCM IStream "text to speech" output from the MS Speech Platform SDK (I can choose different sample rates to feed the opus encoder). But I noticed that if I just output a .wav file and use opusenc manually (at the same bitrate), I get an .opus file that sounds better. That's why I was thinking it was caused by the unnecessary resampling that was mentioned by @commarmi76. [UPDATE:] If I set the signal type to OPUS_SIGNAL_MUSIC with libopusenc I get better results (when using opusenc I'm not setting it... maybe I was using an older version). I'm still not sure if now it's really the same quality, but I think it's more acceptable now (before the voice sound was too 'metallic' and less natural). P.S. Thank you for your quick answer. |
Hello,
I'm using libopusenc with an ARM cortex-m4 device and there are some feature that could be useful:
Avoid resampling with rates supported by opus (8000, 12000, 16000, 24000, and 48000). Resampling in a powerfull CPU isn't a problem, but in a small MCU is a heavy proces.
Support use 16 and 32 integers as input and don't use float API all the time.
I tried to do this changes in the libopusenc by myself, but granule position is a mess. Finally I have created a version of opusenc.c (from opus-tools) to test my system, but I think it would be fantastic if libopusenc could be used for small systems.
br.
The text was updated successfully, but these errors were encountered: