OP25 Vocoder difference


Sep 4, 2013
I have been running the two different OP25 Phase 1 vocoders side by side and I am noticing some differences between the two. Pavel's fixed point vocoder sounds bit more natural to me and less robotic. Tones also sound nice and smooth. When I look the the waveforms in Audacity, the fixed point vocoder looks a bit smoother and more balanced. (I normalized the volume in Audacity, so both tracks should have a similar loudness). With the default vocoder, it is a lot "spikier" and all of the spike are mostly on the positive side and not centered between positive and negative.

Also - I am clearly way out of my element when it comes to Vocoders. Does anyone have experience? Would you be able to help me tune the default vocoder to more closely match the fixed point version? I think it may help the Phase 2 audio sound a little better too, since it can only use the default vocoder. I am also just using the C++ code and not the python libraries, so there is also a chance that I am screwing something up. I am using the BoatBod version.

I have attached examples of the 2 different vocoders.
https://soundcloud.com/user-802261885%2Fdefault-vocoder https://soundcloud.com/user-802261885%2Ffixed-point-vocoder
The top track is the default vocoder and the bottom one is the fixed point:
Screen Shot 2020-12-15 at 10.35.57 PM.png


Mar 3, 2007
Talbot Co, MD
I'm not overly knowledgable on the way the two vocoders do their magic, but I can tell you that from inspecing the code path it appears op25 handles AMBE via parametric rate conversion (see TIA-102 BABA-A Section 17) and are then decoded using the an entry point into the Phase 1 vocoder. Theoretically it should be possible to feed these rate-adapted model parameters into the fixed point vocoder and handle phase 2 voice the same way as the floating point vocoder.

Have fun... if you come up with a viable solution I'm happy to integrate it, but I don't plan on spending much time trying to do it myself ;)