Digital Speech Decoder (software package)
From The RadioReference Wiki
Digital Speech Decoder is an open source software package that decodes several digital speech formats. It uses the mbelib library (a separate open source package) to synthesize the decoded digital speech. It does not allow decoding of encrypted communications. It can save the compressed digital audio bits to "mbe" data files (.imb and .amb extensions) and play back those saved files. It's discussed in this forum.
The latest version (1.6) supports the following formats and modulation types:
- P25 Phase 1
- ProVoice EDACS Digital voice
- X2-TDMA - Motorola public safety TDMA system with P25 style signaling (mostly based on DMR)
- DMR/MOTOTRBO - Digital Mobile Radio standard
- NXDN - 9600 baud (12.5 kHz) NEXEDGE and 4800 baud (6.25 kHz) NEXEDGE/IDAS
- D-STAR - The Github version of dsd/mbelib can parse and play back D-STAR traffic.
- C4FM modulation
- GFSK modulation (including GMSK and other filtered 2/4 level FSK)
- QPSK modulation (sometimes marketed as "LSM")
The following formats are currently under investigation or development:
- P25 Phase 2 - standard not finalized yet, vocoder is supported by mbelib
- OpenSky - four slot format vocoder may be supported by mbelib. Will not be supportable if it is determined that voice encryption is standard
- Other formats will only be considered if high quality samples of the signals are made available for download by the developers. Samples must be from a discriminator tap, .wav format, 48000Hz, 16 bits per sample, mono.
DSD and mbelib should compile on Linux and *BSD operating systems. Any linux distribution should work as long as it has support for your audio devices. DSD version 1.3 and later requires mbelib 1.2 or later.
The forum for discussion of this package can be found here.
DSD and mbelib are both released under a BSD style copyright license. This means that as far as copyrights are concerned it can be freely copied and used, including for commercial products as long as the original copyright notice is included. (However, see important patent issues section below.)
Patent Issues with mbelib
While DSD was intended to be patent-free, mbelib describes functions that may be covered by one or more U.S. patents owned by DVSI Inc. The source code itself should not be infringing as it merely describes possible methods of implementation. Compiling or using mbelib may infringe on patents rights and/or require licensing. It is unknown if DVSI will sell licenses for software that uses mbelib. If you do not have a license and are in a jurisdiction protected by the DVSI patents you should not compile or use this source code.
Help Page for Windows
dsd-1.6.0 source download in zip format
mbelib-1.2.5 source download in zip format
Windows executables and support files, zipped
- Note: You'll need cygwin1.dll for all but DSD+. Go to cygwin.com and install it.
- Note: Cygwin 1.7.26 is broken (/dev/dsp audio device doesn't work)
- DSD on Github Currently 1.7 version
Known Working Hardware Setups
If this list gets large enough I will move it to its own page so as not to detract from the overview of DSD.
|Discriminator Source||Input||Input Sound Device||Output Sound Device||Operating System/Linux Distro||Computer Specs||Audio Successfully Decoded|
|GRE PSR-500 Direct Tap||iMic mic port||iMic||Onboard audio||Ubuntu 10.04||Dell Mini 1012 netbook N450(1.66GHz)||ProVoice|
|TV28T DVB-T (R820T)/SDR# *||VB-Audio||Soundblaster Audigy (PCI)||Onboard Audio||Windows XP Pro||Intel DG41TY w/ Intel Core2 Quad CPU Q9400 (2.66GHz)||P25 Phase 1, MotoTRBO|
|TV28T DVB-T (R820T2)/SDR# *||VB-Audio||Nvidia HD Audio||Nvidia HD Audio||Windows 7||Intel DG41TY w/ Intel Core2 Quad CPU Q9400 (2.66GHz)||P25 Phase 1, MotoTRBO|
|RadioShack Pro-97 Direct Tap||Line In||Realtek HD Audio||Realtek HD Audio||Ubuntu 10.04||Acer Aspire One Netbook D150 (1.7 GHz)||P25 Phase I|
|RadioShack Pro-95 Direct Tap w/10k Resistor||Line In||iMic & Realtek HD Audio||iMic & Realtek HD Audio||Ubuntu 10.04||Custom Built/ Gigabyte Motherboard||P25 Phase I, Provoice|
|RadioShack Pro-95 Disc Tap||Line in||G110 Keyboard||G110 Keyboard||Windows 7||EVGA x58/i7 920||Provoice|
|RadioShack Pro-94 Direct Tap||Line In||Realtek HD Audio||Realtek HD Audio||Ubuntu 10.04||Custom Built/ Gigabyte Motherboard||P25 Phase I|
|RadioShack Pro-90 Disc Tap||Line In||AC97||AC97||Ubuntu 10.4||3 GHz 1.5MB||P25 Phase I|
|RadioShack Pro-79 Direct Tap||Line In||Analog Devices ADI 198x Integrated Audio/SoundBlaster Live!32||Analog Devices ADI 198x Integrated Audio/SoundBlaster Live!32||Xubuntu 9.10/Ubuntu 10.04||Dell GX270 (P4 2.6 GHz)/Lenovo Thinkpad X61 (Core 2 Duo)/Dell Precision 300 (P4 3.2 GHz)||P25 Phase I, ProVoice, MotoTRBO|
|RadioShack Pro-2067 Direct Tap||Line In||Analog Devices ADI 198x Integrated Audio||Analog Devices ADI 198x Integrated Audio||Ubuntu 10.04||Dell GX520 (2.8 GHz - 3.4 GHz)||MotoTRBO, ProVoice|
|RadioShack Pro-433 Disc Tap||Line in||Intel HD Audio||Intel HD Audio||Ubuntu 11.04||Dell Inspiron 1525 Core 2 Duo||MotoTRBO|
|Icom IC-PCR1000 Packet out w/100k ohm resistor and 10uf capacitor built into cable||Line In||AC97||Diamond XS71||Ubuntu 10.04||Amd Athlon 64 (1.8 GHz - 2.4 GHz)||P25 Phase I, MotoTRBO|
|Icom IC-PCR1000 Packet output||Line In||AC97||Sound Blaster X-Fi||Debian Lenny||Athlon 64 3000+ (2.0 GHz)||Provoice, MotoTRBO, P25 Phase I|
|Uniden BCT15X||Line In||AC97||Sound Blaster X-Fi||Debian Lenny||Athlon 64 3000+ (2.0 GHz)||Provoice, MotoTRBO, P25 Phase I|
|Uniden BCT-15X Disc Tap||Mic In (DC Bias removed)||C-Media CM108 ($1.87 on eBay)||C-Media CM108 ($1.87 on eBay)||Windows 7 Pro||IBM x336 dual Xeon 3.0GHz||ProVoice, DMR, P25 Phase I|
|Uniden BCT-15 Disc Tap||Mic in||ATI||Sound Max||Ubuntu 10.4||2.4 GHz Core 2 Duo 4.0MB||P25 Phase I|
|Uniden BCT-8 Disc Tap||Line In||Realtek HD Audio||Sound Blaster X-Fi||Windows 7||i7-3960X 3.30GHz||MotoTRBO|
|Uniden BC796D Disc Tap||Line in||Sound Blaster X-Fi||Sound Blaster X-Fi||Windows 7||HP Pavillion Elite, Intel i7 quad core||P25 Phase 1, ProVoice, MotoTRBO|
|Uniden BC350A Direct Tap||Line In||RealTek HD Audio||RealTek HD Audio||Ubuntu 10.04 32-bit||AMD Turion 64 X2 (2.0 GHz)||MotoTRBO, NXDN 4800|
|Uniden BC246T Disc Tap w/100k ohm resistor and 10uf capacitor built into cable||Line In||AC97||AC97||Ubuntu 10.04 on flash drive||Dell Dimension 2400 (2.4 GHz - 2.8 GHz)||P25 Phase I|
|Uniden BC245xlt Direct Tap||iMic mic port||iMic||Onboard audio||Ubuntu 10.04||Dell Mini 1012 netbook N450(1.66GHz)||ProVoice|
|Uniden BC235xlt Direct Tap||iMic mic port||iMic||Onboard audio||Ubuntu 10.04||Dell Mini 1012 netbook N450(1.66GHz)||ProVoice|
|Yaesu ft857 packet socket||Line In||snd_hda_intel||snd_usb_audio||Ubuntu 9.1 32bit||AMD Athlon 64x2 8400+ (2.1 GHz)||MotoTRBO|
|Yaesu FT8800 Disc Tap||Line In||AC97||AC97||Debian (no GUI)||1.7 GHz Athlon||MotoTRBO, P25 Phase I|
|AOR AR-2515 Disc Tap||Line In||AC97||AC97||Ubuntu 10.4||3 GHz 1.5MB||P25 Phase I|
|Kenwood TH-F6A 9600 baud out w/100k ohm resistor and 10uf capacitor built into cable||Mic in||AC97||AC97||Ubuntu 10.04||Acer Aspire One||P25 Phase I, MotoTRBO|
|Uniden BCT15X Disc Tap 10k ohm resistor and 10uf capacitor||Line In||SoundMAX Integrated Digital HD Audio||SoundMAX Integrated Digital HD Audio||Windows 8 Pro||Athlon 64 6400+ (3.1 GHz)||P25 Phase I NXDN 9600|
|Uniden BC346XT Disc Tap 10k ohm resistor||Line In||Realtek HD Audio||Realtek HD Audio||Windows 7 64||Intel i5-2500 (3.3 GHz)||Provoice, P25 Phase I, DMR|
|ICOM IC-7100 USB Sound output||USB||USB Audio Codec||Realtek HD Audio||Windows 7 32||Intel P9700 (2.8 GHz)||P25 Phase I, DMR|
|DVT-SDR with , Unitrunker 126.96.36.199,or SDR#||USB||VB Audio Virtual Cable||Onboard Audio||Windows 8.1 Pro||Microsoft Surface Pro (first gen). Intel i5.||MotoTRBO, P25|
- also tested using the DSD+ plugin from Vasili Beliakov's SDR# plugin collection
Frequently Asked Questions
Q: Do I need a radio with discriminator tap?
A: Yes, if you want to listen live or save mbe data files, and are using a scanner for input. No radio or discriminator tap is required to play saved mbe data files.
Q: Where can I get information on the discriminator tap for my radio?
A: Wiki information is available here for the Discriminator_output.
Q: Will this work on Windows?
A: As of December 7, 2011 binaries for Windows have been added.
Q: Will this work on a Mac?
A: No, because OS X does not use the traditional Unix-like /dev/audio interface. It should be easy for someone familiar with Mac audio programming to port it to the Mac.
Q: Will you support decryption if I lawfully posess the encryption keys?
A: From the Readme file:
Decryption of speech is NOT supported, even if you lawfully posess the encryption keys. Decryption support will not be added in the future as the authors wish to steer as far away from the legal issues associated with encryption as possible.
Q: Who are the author(s)?'
A: The author(s) are anonymous but PGP keys are provided inside the packages so future releases/communications can be verified.