Opus audio codec
It's a new standard that's just been approved by the IETF and it's the coolest audio codec around. Primarily designed for VOIP, but as a result of being even better than it's creators expected pretty much replaces every existing codec except codec2 (for ridiculously low bitrate speech) and FLAC (for lossless) by beating them all on their home turfs.
Skype co-developed the codec and will implement it in their software soon. Other VOIP software is likely to follow suit. Could probably be used in actual phone calls too if traditional telecoms companies weren't so wrapped up in patent encumbered standards.
Firefox helped develop it and already support it (on desktop and Android) as an HTML5 audio codec. The Chrome team is likely to follow since they supported it as the mandatory audio codec for WebRTC (think Skype or Google+ Hangouts, but in a browser and based on open standards). Normally you'd expect Microsoft not to support this, but since they just bought Skype there's certainly hope that a strong majority of browsers will use it.
It's also useful to encode the speech being sent to Google's servers to do speech recognition. I don't know what Google uses currently, but Nuance uses an older voice codec called speex, that was built by some of the same people, and are looking to use Opus instead.
It would be amazing for audiobooks and podcasts, and can probably reduce the size of audio required for games considerably too,
I'd would love it if Google pushed for it to become the standard codec for transmitting audio over bluetooth or streaming generally between devices.
Apple, for whatever reason, don't like supporting open standard codecs, so it's a good chance to differentiate Android.
Opus is a modern lossy audio codec that delivers high quality for almost all applications, from music to audio streaming to low-latency voice chat. Its quality is superior to most other codecs currently in use, including AAC and Vorbis. See codec comparison.
For more information, see http://www.opus-codec.org/
Actually they should use opus. xiph.org actually considers vorbis to be obsolete, whith opus there to replace it.
> From a technical point of view (loss, delay, bitrates, ...) it should replace both Vorbis and Speex, and the common proprietary codecs too.
From the opus faq: https://wiki.xiph.org/OpusFAQ
In listening tests (double-blind, professionally performed) Opus out performs almost every codec between 8kbps and 128kbps. It's a combination of SILK and CELT, which are two codecs developed by Skype and Xiph. It was designed for serious real-time applications, and has a lot of built-in features that give super low latency and recovery from significant packet-loss. If you use a recent version of Firefox, it's already installed, and you can listen to samples on the opus website ( http://www.opus-codec.org/examples/ ). Skype will soon be deploying a new version that'll use it, mumble already uses it, as well as a ton of other things.
About a month ago, the guys involved with developing Opus did an impromptu AMA on /r/programming and answered a lot of technical questions about it (link). Their answers sold me on it. I'm looking forward to it obsoleting the entire bottom end of compressed audio.
Note: Below 8kbps, there are some proprietary codecs that perform better. I don't know what the use-case is for that low of a bitrate. On the high end (128kbps and up) they don't have data since HydrogenAudio wasted a lot of money doing tests up there and got inconclusive results.
Opus is even better than Vorbis. It uses either its own container, or the Ogg container. Features:
> * Bitrates from 6 kb/s to 510 kb/s > * Sampling rates from 8 kHz (narrowband) to 48 kHz (fullband) > * Frame sizes from 2.5 ms to 60 ms > * Support for both constant bitrate (CBR) and variable bitrate (VBR) > * Audio bandwidth from narrowband to fullband > * Support for speech and music > * Support for mono and stereo > * Support for up to 255 channels (multistream frames) > * Dynamically adjustable bitrate, audio bandwidth, and frame size > * Good loss robustness and packet loss concealment (PLC) > * Floating point and fixed-point implementation
From what I heard, Opus uses less CPU than Vorbis (for the same quality). Can anyone confirm that claim?
No, it's not. Citation please, you're spouting complete and utter bullshit.
3-clause BSD (same as CELT, IIRC). It's completely free and that's one of the nicest copyright licenses imaginable.
Also note this is shipping in Chrome, Firefox, Mumble, TeamSpeak, Opera, Android, etc.
FLAC still good - you can't get much better compression than that with lossless.
ALAC was open-sourced in Oct 2011 - so it's now safe to store your music in Apple's format, which works with iStuff, so that's a plus.
I'm pretty excited about the Opus codec.
hey, id recomend ffmpeg. Make sure you:
--enable-libopus
when you compile.
then just encode by:
ffmpeg -i [input] -[acodec] libopus -b:a [bitrate] -vbr on -compression_level [10] [output]
if you want encoding options check out the ffmpeg documentation
or you can use opus tools then as far as encoding goes its just:
opusenc --bitrate 96 Flashs_Theme.flac Flashs_Theme.opus
you can use .ogg if you want better support on android applications.
Id recommend 96kbs or 64kbs for mobile listening (depending on your setup) and then 128kbs for nearly complete transparency.
It comes down to the quality of the microphone and the quality of the codec.
The latter is lacking for the similar economic reasons to why phone companies can charge you 0.2 cents a byte for text messages.
There's no incentive to do better if there's no competition.
The technical challenge is they're stuck using a very low bandwidth radio connection for cost-saving reasons. Then, the codecs are extremely out-of-date compared to cutting-edge ones like xiph opus
So you're stuck at 12kbit/s with frequent drops and a design from the mid-90s so that ancient phones can still talk to each other. Sounds like poo.
(Opus is completely free, by the way. No patents or fees, anyone can use it if they choose. ETA: That's why it's actually used by Mumble and Skype and probably other VoIP software as well. Tons of computer power + reasonably big and reliable streams = sounds like someone's sitting next to you.)
There are a number of differences:
I personally don't consider anything above 50ms low latency, but that OPUS codec looks REALLY compelling.. the website states it can reach 10ms latency and is open/royalty free.
Riftmax guys might want to investigate trying it out.
Riftmax Theater actually does sync once everyone has downloaded the video file, as well they can resync if needed.
Replying to myself: The Opus audio codec, also from Xiph.org, is a relatively new audio code that also used a new approach, and it achieved an unexpectedly good result in that it is now the best audio codec to use in all applications, which is performance beyond its original design aims.
The reason why I didn't mention it in the first place in the context of this thread is that it is a couple of years old now, and so it is perhaps not responsive to the OP's question.
I used to use Vorbis, but have since switched to Opus as in my listening tests I found I could get away with decreasing the target bitrate 16 kbps without any noticeable (for me) issues. I have a very large collection so that ends up being worthwhile. The only issue I know of with Opus right now is device support.
I've never compared MP3 to either, but I suspect it would do slightly worse than Vorbis.
That being said, it's worth noting that with regard to sound quality the difference for modern encoders is pretty much moot unless you're working with lower bitrates (<128 kbps IIRC).
Edit: Removed redundant "would" from "I would suspect it would".
>What are the bandwidth requirements for it though? They can't use anything that will suck up all the remaining server bandwidth and processing power, which they don't have much left of to begin with.
Here are various examples of Opus at different bitrates.
http://www.opus-codec.org/examples/
Even at extremely low bitrates, it sounds way better than the in-game chat in Arma/DayZ.
> voice never had a reason to arrive in an extremely timely manner until now
You've got it exactly backwards. Low latency has been a major concern in low bandwidth voice compression for years, basically since sometime before digital telephony became practical.
Here's a chart of some popular audio codecs and their compression latency.
If anything, you've got a synchronization problem, not a latency problem, since one of the audio sources is an on demand file and not a stream. Most of the viewers have downloaded the entire youtube video file within 10 seconds of it starting, all you need to do then is sync.
YOU don't need to hear the Farmville soundtrack in uncompressed 24 bit glory.
My precious golden ears however, deserve the best at all times.
This is the main reason I don't play Farmville. Probably.
EDIT: and Opus is not fully transparent at 64Kbps. Fully transparent means effectively "Full Band" Opus doesn't make it at 64Kbps though it does get closer than the competition.
Newer codecs such as Opus can squeeze fullband speech (20Hz-20KHz aka CD quality or everything one can hear) into only 32Kbps. Super wideband codecs that include tones up to 14KHz (FM radio quality is 15KHz) are mostly indistinguishable from fullband, especially if you aren't wearing quality headphones or are walking down a noisy city street. For comparison landlines roll off at 3.4KHz, giving phone interviews a characteristic muffled sound.
5G hasn't been defined yet. Massive bandwidth won't improve voice quality. Lower latency might.
According to the change log, Subsonic supports the Opus audio codec.
Opus is optimized for streaming.
You could give it a try.
Always use FLAC for storage on your desktop PC, so you can use newer codecs as support becomes available.
Efficiency tiers for lossy codecs you might consider using:
Opus is supported by most players running Rockbox, and by several Android apps, including VLC (5.0 Lollipop apparently has it as a system codec).
Vorbis is supported by pretty much everything reasonably modern, except Apple devices (where you can use AAC instead -- almost as good).
> What are the benefits of OPUS compared to Speex?
I have not looked enough into speex or Opus to give too detailed an answer to that question, I would recommend that you take a look at the official Opus webpage and it's Wikipedia article if you are interested in it.
> Is there a site that can convert an mp3 or media URL into OPUS format?
Yes there is, here is a link to a page that will convert most formats to Opus.
I am curious though, why exactly are you interested in converting files to Speex / Opus, are you looking to archive a large collection of voice recordings or something to that effect?
Nothing audio is 128kHz outside of ridiculous WTF are you thinking way too much overkill studio gear, and even that is probably a bad idea.
G.711 is 64 kbit (network bitrate) and up to 4kHz audio bandwidth(realistically more like 3.5kHz due to filtering requirements).
G.722 is 64 kbit and up to 8kHz audio bandwidth(realistically ~7kHz due to filtering requirements).
Maybe you're thinking of G.719? That's the only codec I know of that uses up to 128*kbit*, and it has a 48 kHz audio sample rate for ~20kHz "CD quality" calls. I don't really see that taking off, as the G.722 family is good enough for most environments, and Opus is way more efficient for desktop or similar use.
simple suggestion, do not reinvent the wheel (at least not too much)
use tcp if you want to be sure that messages you send make it to the destination
use udp if you can survive package losses (like audio with opus codec)
send your data over the wire with json or msgpack, it just makes packing and sending data soo much easier. Also checkout Netstring protocol.
At least that is what i do then I don't want to use HTTP, tcp and msgpack has worked quite well.
>In fact, the codecs the phones use by default probably do better then mp3.
They do, but he's also choosing a bitrate (assuming he meant bits and not bytes) that is on-par with good dedicated voice codecs.
Opus is a modern, open-source speech codec. Here's an example of it; 8kbps is clearly recognizable.
Granted, they're working from raw source data (not already compressed) and the people are speaking clearly, but it gives some idea of the kind of reduction that's possible.
I have used both, but both disagree and don't rely on subjective measures to determine quality. For example, I know that mumble uses Speex, which is a great codec for speech reproduction -- used in many games and software systems like Civ 4.
In addition, Mumble's new version has support for CELT/Opus, which is the current IETF (Internet standards committee) standard. This was developed by Skype/Microsoft in conjunction with open source organizations, and is gaining popularity as the defacto standard for voice communications. (Being backed by Skype, Google, Microsoft and backed by IETF, VLC, and Xiph really helps with that.) You can see their performance comparisons here http://www.opus-codec.org/comparison/ .
Not to mention that Mumble allows you to configure how much bandwidth to dedicate to it, so you actually have fine control over the sound quality.
Back to your other point. What makes mumble servers free whereas teamspeak servers aren't? Who's paying for the bandwidth and server hosting costs?
This sort of thing would be a really good application for the new Opus audio codec once more browsers support it. Firefox beta already does and the IETF has approved it as the standard format for Internet audio streaming.