szechyjs / dsd

Digital Speech Decoder
Other
695 stars 270 forks source link

How do I make DSD read a P25 encoded audio file via stdin. #71

Open vulcan25 opened 7 years ago

vulcan25 commented 7 years ago

I have a P25 encoded audo sample in ogg format.

I wish to pipe this to DSD via stdin with the following command:

ogg123 -d raw -f - ~/Downloads/P25Audio.ogg | ./dsd -i - -o pa:1

However this appears to run the first command (which has an incrementing status bar, as below) THEN runs DSD which gives an output as if there wasn't anything to decode:

Time: 00:02.72 [00:20.69] of 00:23.41 (105.6 kbps) Output Buffer 77.8%

Is there a simpler way to achieve this? My reason for asking is that I have GQRX successfully streaming via UDP to DSD, but haven't managed to get a any useful audio out of DSD, possibly because I'm not getting a strong enough digital radio signal within GQRX (Which is a separate issue). I wish to pipe the sample ogg file to DSD to confirm this part is working, with GQRX out of the equation.

The command's full output is below:

ogg123 -d raw -f - ~/Downloads/P25Audio.ogg | ./dsd -i - -o pa:1

Audio Device:   RAW sample output

Playing: /Users/v/Downloads/P25Audio.ogg
Ogg Vorbis stream: 2 channel, 64000 Hz
ao_raw WARNING: Driver raw does not support automatic channel mapping;
    Routing only L/R channels to output.

Digital Speech Decoder 1.7.0-dev (build:v1.6.0-86-g7ee04e5) Buffer  22.2%  
mbelib version 1.3.0
Initializing portaudio.
Using portaudio device 1.
Name                        = Built-in Output
Audio Out Device: pa:1
Audio In Device: -

Done.
Terminating portaudio.

Total audio errors: 0
Total header errors: 0
Total irrecoverable header errors: 0

+P25 BER estimate: 0.00%
-P25 BER estimate: 0.00%

Exiting.
rogerxxxx commented 7 years ago

This is what I have in my cmd.txt file (cmd log file) for dsd:

# Scanner - Digital Speech Decoding - APCO $ dsd -f1 -mc -i <(rtl_fm -F1 -g 31 -f 851.61250M -p 62 -s48000 -) # WORKS WELL and BETTER WITHOUT -o4! $ dsd -fn -mc -i <(rtl_fm -F1 -g 31 -f 155.6250M -s48000 -) # REMEMBER TO TEST gain and filters with "rtl_power -f 852420000:852430000:1k -p62 -g32 -F2 -" You want the signal DB as close to 0 as possible! I also see I have notes stating for rtl_fm, "# Zero in on signal strength! Keep gain at a constant level instead of default auto to keep power level readings constant." Eh finicky last I tired a year or so ago. Just haven't had much time to study the code since. With the above incantations, I was able to have a one liner monitor the real-time stated APCO encoded frequencies. Forgive me if none of this helps.