Digital Speech Decoder and mbelib

Status
Not open for further replies.

dsdauthor

Member
Joined
Mar 17, 2010
Messages
49
I am releasing the first version of my open source (BSD license) digital speech decoder software for Linux/BSD. This is broken into two separate packages, mbelib which describes all of the patent encumbered functions, and dsd which is intented to be patent-free. Source code only is provided for both packages, for educational use only as a written description of how such a decoder might be implemented. Compile or use at your own risk.

It supports P25 Phase 1 and the vendor-specific TDMA system used by Loudoun and Prince Georges County, called "MoTDMA" for lack of a better name.

Any suggestions or code contributions would be greatly appreciated (You can use the gpg public keys in the distribution packages for privacy if desired). I am not a professional
software developer to these packages may not be up to usual open source quality but they should work!

Download links:

dsd-1.0-src.tar Download
mbelib-1.0-src.tar Download

From README:

DSD is able to decode several digital voice formats from discriminator
tap audio and synthesize (play) the decoded information. Speech
synthesis requires mbelib, which is a separate package.

Supported formats in version 1.0:

P25 Phase 1 Widely deployed radio standard used in public safety
and amateur radio.

Full support including decoding and synthesis of speech,
display of all link control info, and the ability to save
and replay .imb data files

MoTDMA Proprietary two slot TDMA system currently being deployed
by several public safety organizations. Frame format
appears to be based on a manufacturer proposal for P25
Phase 2.


Partial support that allows the decoding and synthesis
of speech, and the ability to save and replay .amb data
files. DSD will lock onto an arbitrary timeslot. Link
control info display and the ability to select specific
timeslots may be included in future releases.

Digital Speech Decoder 1.0
Copyright (C) 2010 DSD Author
GPG Key ID: 0x3F1D7FD0 (74EF 430D F7F2 0A48 FCE6 F630 FAA2 635D 3F1D 7FD0)

mbelib 1.0
Copyright (C) 2010 mbelib Author
GPG Key ID: 0xEA5EFE2C (9E7A 5527 9CDC EBF7 BF1B D772 4F98 E863 EA5E FE2C)
 

Northerner71

Member
Joined
Apr 1, 2008
Messages
51
Location
Northern Ontario
I hate this

I hate when people post to sites that you have to complete a survey to obtain the software. Is this a trick or does this software work?
 

AZScanner

Member
Joined
Dec 19, 2002
Messages
3,360
Location
Somewhere in this room. Right now, you're very col
Hmmm... sounds interesting. Will be checking this out later on today unless someone beats me to it.

(Why is all the good stuff written for Linux? Now I gotta fire up VMWare and deal with all that noise.. ugh.)

Maybe Mr. Parrish would be kind enough to compile a Win32 variant for us.... ;)

-AZ
 

hillscoflx49

Member
Joined
Mar 11, 2010
Messages
4
Very interesting... plans to expand to a certain MBE based protocol used on EDACS???? ? ? ? ? ? ? ?

Would be very useful....
 

dsdauthor

Member
Joined
Mar 17, 2010
Messages
49
I hate when people post to sites that you have to complete a survey to obtain the software. Is this a trick or does this software work?
I used sharebee because it automatically uploads the fuiles to multiple popular download services. Of course all these free download services show you adds if you are not a member but there is usually a "skip this ad" button and I have never had to take a survey for a download.

Here is a direct link to Megaupload for the two files:

dsd-1.0-src.tar Download
mbelib-1.0-src.tar Download

I would gladly host it here at Radioreference if the owner was willing to host it.

One thing about monitoring the Loudoun/PG systems, you have to scan it in conventional mode as existing scanners won't switch to the TDMA channels. Also Loudoun has an annoying "feature" of transmitting continuous Phase 1 TDULC's for 30 seconds on an empty channel, then moving to another channel which requires you to continuously press "scan" to skip them when there is no voice transmission. If someone knows the serial commands to tell a scanner to resume scan I can add an option to tell the scanner to resume scan after n TDULC frames. The PG system does not do this.
 

dsdauthor

Member
Joined
Mar 17, 2010
Messages
49
I found a major bug in the C4FM/QPSK autodetection logic. It has been fixed in version 1.0.1
Edit: Oops, part of the fix didn't make it in 1.0.1. 1.0.2 will have the complete fix.


It is still best to use the -m option to specify modulation type if you know you will only be listening to one type.
 
Last edited:

AZScanner

Member
Joined
Dec 19, 2002
Messages
3,360
Location
Somewhere in this room. Right now, you're very col
Having the "raw data bits in a computer" has never been an impediment. We've had that capability for quite some time. Any program that decodes P25 CC messages from a discriminator tap's signal also has the raw P25 CAI EDIT: [voice] data available.
True, we've had bits in the computer for some time. What many of us were lacking however, was source code.

Thank you dsdauthor, this looks very cool. 8)
 

dsdauthor

Member
Joined
Mar 17, 2010
Messages
49
Here is version 1.0.3 which fixes the C4FM/QPSK auto detection (mostly). It is still best to use the -m option if you know you will only be monitoring one modulation type. This is especially true for noisy or weak signals. I also added the -A option to set the modulation type detection threshold.

It doesn't look like I can edit the original post, so here is the updated link:

dsd-1.0.3-src.tar
Megaupload: Download
Sharebee: Download
 

Forts

Mentor
Database Admin
Joined
Dec 19, 2002
Messages
6,063
Location
Ontario, Canada
Thanks for sharing this with the community! Is there a preferred Linux distro to use with this?
 

brandon

Member
Database Admin
Joined
Dec 19, 2002
Messages
3,483
Location
SoCal
Thanks for sharing this dsdauthor. Can you post an audio sample of how decoded speech sounds with this utility?
 

brandon

Member
Database Admin
Joined
Dec 19, 2002
Messages
3,483
Location
SoCal
Success!!! I just got Ubuntu installed on an old junker laptop and compiled dsd-1.0.3. I was totally prepared for hours of tweaking and command line operations, however it worked right out of the box (for the most part). Feeding audio from the disc tap on a BC785D (card disabled for the test). Having some digital/squeaking but most likely my crappy integrated sound card.
 

dsdauthor

Member
Joined
Mar 17, 2010
Messages
49
Of course I find these huge bugs after release...

There were two major bugs in mbelib that caused it to not silence bad frames AND not mute after 3 repeated frames. They are fixed in mbelib version 1.0.1 which should greatly reduce the unwanted noise bursts. You should not have to recompile dsd after installing the updated mbelib as dsd should be using the shared library.

mbelib-1.0.1-src.tar
megaupload: Download
sharebee: Download

Also I see someone started a sourceforge project for this, and is hosting the files there.
Sourceforge

Thanks!
 
Last edited:

Forts

Mentor
Database Admin
Joined
Dec 19, 2002
Messages
6,063
Location
Ontario, Canada
Success!!! I just got Ubuntu installed on an old junker laptop and compiled dsd-1.0.3. I was totally prepared for hours of tweaking and command line operations, however it worked right out of the box (for the most part). Feeding audio from the disc tap on a BC785D (card disabled for the test). Having some digital/squeaking but most likely my crappy integrated sound card.
Which version of Ubuntu did you use? I installed 9.10 on an old P3-500 last night and it was too painfully slow to do anything. I'm trying to find a quicker junker to play with, or a lighter distro to use on this old hardware.
 

mike_s104

Member
Premium Subscriber
Joined
Aug 25, 2004
Messages
4,739
Location
Berkeley Co. WV/ Loudoun Co. VA
So with this, would I be able to track all of Loudoun County's new Phase II system? If it does, would someone mind helping me with the compiling of the code? I'm going to install either Ubuntu or Suse on a PC tonight.
 

AZScanner

Member
Joined
Dec 19, 2002
Messages
3,360
Location
Somewhere in this room. Right now, you're very col
Success!!! I just got Ubuntu installed on an old junker laptop and compiled dsd-1.0.3. I was totally prepared for hours of tweaking and command line operations, however it worked right out of the box (for the most part). Feeding audio from the disc tap on a BC785D (card disabled for the test). Having some digital/squeaking but most likely my crappy integrated sound card.
That's excellent news! I've simply been too busy with other stuff to play with this, so it's good to hear confirmation from another member that it works for them. Looks like I'm gonna be playing with linux tonight! :D I'll report back how well it worked or didn't on our local CPQSK P25 monster. (We also have a C4FM P16 system I can try it on as well, so that should prove interesting).

Again, a big, big, BIG thanks to DSDAuthor for sharing this with the community! Someone buy that man a beer!

-AZ
 

mike_s104

Member
Premium Subscriber
Joined
Aug 25, 2004
Messages
4,739
Location
Berkeley Co. WV/ Loudoun Co. VA
Ubuntu 9.10 but I install using the minimal cd image
https://help.ubuntu.com/community/Installation/MinimalCD

The laptop I have is pretty slow, so the decoding isn't all that great. The real test comes when I can install Ubuntu on my desktop this weekend. I will report back on the result.
If you don't mind, could you give me a quick rundown on how to compile this? I've used and installed Linux before but not enough to be proficient. I've found a few how-tos for compiling code and it doesn't sound too hard.
 
Last edited:

exkalibur

Member
Premium Subscriber
Joined
Aug 15, 2006
Messages
2,708
Location
York, Ontario
If someone could post a decoded audio sample, that'd be awesome! I'm really curious how the recovered audio compares to that from a real Moto radio.
 
Status
Not open for further replies.
Top