Inspired by my earlier interaction with Mike Phillips I thought it would be interesting to get some hands on experience with Opus. It would be worthwhile staging a little test to better understand the audio path presented in one or more Opus implementations.
A quick Google search revealed that PhonerLite, the freeware Windows soft phone from Germany, includes Opus from the v1.92 release onward. According to the release notes support for Opus replaced support for CELT. The current release is v2.08 from April 16, 2013.
I had first encountered PhonerLite some time ago, when I was seeking a G.722 capable soft phone. It’s very functional but a bit quirky.
For my purposes it has a couple of nice, if geeky features. Firstly, it has the convenient ability to specify sampling frequency. It plainly indicates which codec is in use on any call leg. Finally, it shows simple network statistics while a call is in progress.
I installed one instance of the program on my desktop and another on a old utility PC. I arranged the codec stack so that Opus was the first choice. Along the way I noticed that PhonerLite implements Opus at fixed data rate of 50 kbps. Finally, I set the sample rate at 48 KHz.
One end of the call was going to be a signal source, the other a destination. At the destination end I connected the line output of the sound card to the line input of my Zoom H2 recorder. It was set to record a 16 bit mono signal sampled at 48 KHz.
The source end of the conversation was not quite as elegant. I used a Blue Yeti USB microphone as the sound source. The Yeti is a good quality microphone. USB attached to the host PC it has an on-board D/A convertor. Most importantly, it’s designed for semi-pro recording work, not telephony. It doesn’t roll off the high-frequencies at some arbitrary point for voice applications.
I placed the Yeti immediately in front of a M-Audio BX-5a powered audio monitor. I fed the line input of the BX5a with the output of my Nexus 7 tablet.
On the Nexus 7 I was running a utility called Audio Tool by J.J. Bunn. Audio Tool has a convenient combination of audio functions in an affordable package. It has a reasonably flexible test signal generator combined with a sound level meter, RT60 meter and a real-time spectrum analyzer. It’s a nice piece of work. Highly recommended.
For this ad hoc test I passed a call between the two instances of PhonerLite. As test signals I used a white noise burst followed by a sine way sweep. The sweep tone was initially set to run from 100 Hz to 10 KHz, but I changed it to extend to 20 KHz for the final sweep.
At the utility PC I recorded the call audio directly into the Zoom flash recorder. I then loaded that wave file into Adobe Audition for evaluation. Here’s what I found.
The white noise burst contains equal energy at all frequencies. Given the 48 KHz sample rate of the Zoom recording the vertical axis runs up to 24 KHz. There’s very plainly energy present to 20 KHz. Beyond that it rolls off sharply. That implies that somewhere in the chain of events there’s a filter stage that is intended to protect a D/A process that may be a low as 44.1 KHz. This could well be a property of the Yeti microphone.
Turning our attention to the sine sweep plots we see three separate sweep sequences.
The first was at the default setting that stopped at 10 KHz. The second complete sweep went all the way up to 16 KHz. The third went to 20 KHz but the final part of the reading is obscured in the plot.
The ad hoc test arrangement of a microphone in front of a powered monitor simply might not accommodate measurement out to 20 KHz. A more direct approach, connecting the test signal generator directly to PC may yield a more clean result.
Even so, it’s plain to see that there is energy out to well beyond 16 Khz, perhaps all the way to 20 Khz. This suggests that PhonerLite implements Opus in a manner that may satisfy the needs of a podcaster like Mike Phillips.
Of course, PhonerLite is a quirky little freeware soft phone that is basically unknown. I stumbled across it because it was an early adopter of wideband capability. I elected to try it first because I knew that it would allow me to control the sample rate.
I’d like to try this little experiment again using a couple more common soft phones that that implement Opus. I’m open to suggestions for test candidates.
Doing it again I’ll try to be more rigorous in my setup, trying to avoid the acoustic interface that was involved in this first experiment. This entire exercise was very ad hoc, taking me less than an hour. It took considerably longer to collect the screen shots and write up the experience.
This exercise does make me appreciate just how convenient things have become in recent times. We now have hardware and software tools available to us that were once only available as costly, specialized hardware systems. Oh, how I lusted after an Audio Precision System One. Now I have basic audio test and measurement tools on an Android tablet that fits in my pocket.
It’s a great time to be an audio geek. Experimenting with Opus is going to be fun.