• Hi guest! As you can see, the new Wizard Forums has been revived, and we are glad to have you visiting our site! However, it would be really helpful, both to you and us, if you registered on our website! Registering allows you to see all posts, and make posts yourself, which would be great if you could share your knowledge and opinions with us! You could also make posts to ask questions!

SDR Spirit Box

Jarhyn

Acolyte
Joined
Jan 27, 2022
Messages
289
Reaction score
258
Awards
3
@Jarhyn - You inspired me to try something. Not quite along the lines of what you were talking about, but that led to this idea.

Sox (the audio toolkit) has a noise reduction filter. To use it, you feed it some noise and it creates a profile, then you can apply that profile to audio and theoretically it removes any noise similar to what was profiled. I've messed with this some in the past, because it can create some neat audio effects.

Here's a 1 minute WAV recorded and saved on PiGB:

https://soundcloud.com/user-830161545%2F2022-02-02-01-57-12a%2Fs-MRNVTkZXgcw
I created the sound profile off of the above file:


(Gotta escape the colons). This created a noise profile based on the original recording. Then I applied noise reduction to that same original recording, using the sound profile also created off the same file.


And this is what I get:

https://soundcloud.com/user-830161545%2Fnoisered%2Fs-hCp1cqDEwY6
That is creepy as hell! With a little more processing, it would be even cleaner. At any rate, I thought it was neat to both create the noise profile and use it to filter the same file.
NP. It's always fun to play around with stuff like that, to make a demon that has been tortured with learning an impossible task then daemonize it to apply what it learned there on an even more noisy task.

It's the very heart of the "spookier" divination.
 

Incognitus

Lead Transcriber
Joined
May 30, 2021
Messages
341
Reaction score
629
Awards
10
I've done a ton of work on the software. The web interface that you can attach to with your phone has been expanded so you can pick the modulation mode, 2 different ghost box applications, volume adjustments and real time noise reduction which is like I included above, just in real time rather than a pre-recorded file being processed.

I also grabbed the latest rtl-sdr software from osmocom and created a new rtl_gb from that source. Then I grabbed a different rtl-sdr repo from
Please, Log in or Register to view URLs content!
and modified the rtl_fm that comes with that to function as a ghost box. The 2 rtl_fm apps in those repos have quite a few differences, and I'm not sure which is best yet. I'm hoping the keenerd version of rtl_fm is better with direct sampling turned on for AM reception. I guess we'll see.

I've also started writing my ghost box app in Python using pyrtlsdr. That way I can get away from using the modified versions of rtl_fm altogether if I want. Most likely I'll keep all 3 as an option, as they'll all probably function a little different.

Next step is to keep working on my own app in Python, and I want to add the option to output audio to a local icecast server. Multiple users will be able to connect to the PiGB wifi hotspot and access a live audio stream from the ghost box software, with all filters and such already applied if necessary. It also makes it easy to stream to your phone and use Bluetooth or whatever you output to a speaker without having to pair everything to the Pi itself (have I mentioned bluetooth on Raspberry Pi's is terrible to manage?!).

So when all is done, there'll be 5 ways to listen to audio:

1) Live via headphone jack
2) Live via Bluetooth speaker/headset
3) Live via HDMI audio when plugged into a TV
4) Live via Icecast streaming
5) Recorded .wav file

The .wav file recording can be used at the same time as any of the live feeds.

So far pretty happy with everything. We did a brief 15 minute session last night, but it was surprisingly quiet. It's very rare to have 5+ minutes of absolutely nothing. You usually get some gibberish at least. There was a brief exchange period where we heard "I am here. This is your house. I hate this".

While I was working on getting the real time noise reduction working, something called me an asshole very loud and very clear. :/
 

Incognitus

Lead Transcriber
Joined
May 30, 2021
Messages
341
Reaction score
629
Awards
10
We've had a number of strange experiences since last post, and I've made a lot of changes. I expanded the web interface that uses sox for audio filtering to support highpass, lowpass, sinc and compand filters. I also expanded the options available for sox noise reduction. Sox noise reduction isn't that good. It sounds like everything is under water. All of this is an attempt to give the end user an easy to use web interface to filter out background noise, if they so choose.

I read that ffmpeg now has a filter that allows you to use a pre-trained neural network to filter out background sound. The neural networks were trained on audio such as fans, traffic, etc. After reading that, I created a second web interface and program script which allows using ffmpeg as the audio processor, and allows you to choose between 5 different neural networks.

The ffmpeg version works SO GOOD. Like... it's freaking creepy. I've been choosing Icecast as the output, and then using VLC on my phone to play on the sound bar to the TV so both Jaide and I can listen.

On one occasion, Jaide asked "what's your name" and all background noise went completely silent and a female voice said Judith. Now... this doesn't sound weird to people, maybe. Surely a radio station will say a name occasionally. However, it was 2 seconds after Jaide asked, and background noise is never 100% gone, even with background noise filtering. There were several other times in that session where questions were answered as if some intelligence was responding.

The next step I suppose is to get this running on the new version of RaspiOS which has done away with the default pi account. Unfortunately, I was using that account for most of the software on the spirit box. Not a huge big deal, but I'm considering ripping the entire image and offering it for download, so I want to have the latest OS.

I'll record and post some examples of ffmpeg with neural network noise filtering soon.
 

Jarhyn

Acolyte
Joined
Jan 27, 2022
Messages
289
Reaction score
258
Awards
3
We've had a number of strange experiences since last post, and I've made a lot of changes. I expanded the web interface that uses sox for audio filtering to support highpass, lowpass, sinc and compand filters. I also expanded the options available for sox noise reduction. Sox noise reduction isn't that good. It sounds like everything is under water. All of this is an attempt to give the end user an easy to use web interface to filter out background noise, if they so choose.

I read that ffmpeg now has a filter that allows you to use a pre-trained neural network to filter out background sound. The neural networks were trained on audio such as fans, traffic, etc. After reading that, I created a second web interface and program script which allows using ffmpeg as the audio processor, and allows you to choose between 5 different neural networks.

The ffmpeg version works SO GOOD. Like... it's freaking creepy. I've been choosing Icecast as the output, and then using VLC on my phone to play on the sound bar to the TV so both Jaide and I can listen.

On one occasion, Jaide asked "what's your name" and all background noise went completely silent and a female voice said Judith. Now... this doesn't sound weird to people, maybe. Surely a radio station will say a name occasionally. However, it was 2 seconds after Jaide asked, and background noise is never 100% gone, even with background noise filtering. There were several other times in that session where questions were answered as if some intelligence was responding.

The next step I suppose is to get this running on the new version of RaspiOS which has done away with the default pi account. Unfortunately, I was using that account for most of the software on the spirit box. Not a huge big deal, but I'm considering ripping the entire image and offering it for download, so I want to have the latest OS.

I'll record and post some examples of ffmpeg with neural network noise filtering soon.
Try asking "1 2 3 5 7 11" and see what you get?

Can you just target a chown from the command line? Or maybe symlink "pi" from your other home folder?
 

Incognitus

Lead Transcriber
Joined
May 30, 2021
Messages
341
Reaction score
629
Awards
10
Can you just target a chown from the command line? Or maybe symlink "pi" from your other home folder?
I think the install process for the new version of RaspiOS will be similar to most other linux installs where you specify the username (rather than it using a default pi account automatically). I may just have the software run out of /opt and not tied to a specific user. The only reason I even need a real account is bluetooth support. It's pretty terrible on the Pi's and honestly I don't use it anymore anyways. I just have it stream to a local (also on the pi) icecast server and then any number of people can access the feed at the same time from their phones or whatever.

Bluetooth is nice for Estes method sessions, but even there I'm leaning towards using over the ear headphones that plug into the headphone jack. You'd typically be holding the pi in your hand or have it sitting on a table right in front of you, so bluetooth isn't super important. I just like giving a lot of output options because everyone likes to use stuff differently.
 

Jarhyn

Acolyte
Joined
Jan 27, 2022
Messages
289
Reaction score
258
Awards
3
I think the install process for the new version of RaspiOS will be similar to most other linux installs where you specify the username (rather than it using a default pi account automatically). I may just have the software run out of /opt and not tied to a specific user. The only reason I even need a real account is bluetooth support. It's pretty terrible on the Pi's and honestly I don't use it anymore anyways. I just have it stream to a local (also on the pi) icecast server and then any number of people can access the feed at the same time from their phones or whatever.

Bluetooth is nice for Estes method sessions, but even there I'm leaning towards using over the ear headphones that plug into the headphone jack. You'd typically be holding the pi in your hand or have it sitting on a table right in front of you, so bluetooth isn't super important. I just like giving a lot of output options because everyone likes to use stuff differently.
But yeah, I'd love to see what it does when you start with something like "Zero is zero. One is one. One is not Zero. Zero is not one. Zero is less than One. One is greater than zero. Zero left shift one is zero. One left shift one is one zero. One right shift one is zero point one. Zero right shift one is zero. One shift zero is one." Of course you don't get negatives until you get to addition.

Anyway, the way I do such things at work is I just pick up the whole damn folder by plugging the SD into a Linux machine as an external drive, and just drop what I want to move wherever it belongs. Then, I plug it back into the pi and chown the files to me.

I do the same thing to get the files off the old image.

Works like a charm, as I can just take it off the old image and drop it into the new image with minimal fuss.
 

Incognitus

Lead Transcriber
Joined
May 30, 2021
Messages
341
Reaction score
629
Awards
10
But yeah, I'd love to see what it does when you start with something like "Zero is zero. One is one. One is not Zero. Zero is not one. Zero is less than One. One is greater than zero. Zero left shift one is zero. One left shift one is one zero. One right shift one is zero point one. Zero right shift one is zero. One shift zero is one." Of course you don't get negatives until you get to addition.
I don't think I'm following. Are you suggesting we say that out loud and see if there's a response? I'm still not sure we're talking about the same thing. :/
Post automatically merged:

It took me awhile, but this is finally fully documented on Github. You can find the repo with all the instructions on how to create your own Raspberry Pi ghost box here:
Please, Log in or Register to view URLs content!

Post automatically merged:

Well that was weird. Added a new post, and it says it was merged into the port I made in 2022. Weird.

It took me awhile, but this is finally fully documented on Github. You can find the repo with all the instructions on how to create your own Raspberry Pi ghost box here:
Please, Log in or Register to view URLs content!
 
Last edited:
Top