From my understanding the "what song is playing" apps/services essentially have a big database of music stored in a special hash function. When you record the music it converts it into a hash, then compares it to the database.
Could these databases and algorithms be open source? Absolutely. Would it be really hard or expensive to maintain the database distribution or hosting? Definitely. Would music rights holders allow an open source project to have access to their music libraries to put into the database? Probably not... I would think that the services that do this have big agreements with rights holders that open source would not be able to get.
I think that's true about being expensive/difficult to maintain, but while IANAL, a hash of music is not the music itself, something that can be converted to music, or in any way protected by copyright AFAIK.
Even most of the Linux apps use Shazam or similar for the backend. Most everything you will find in that area has some proprietary components and I can imagine that being hard to avoid for something that has to interface with licensed content (the music)
The closest I know is AcoustID but it's only worked with full song files when I tried it via the API and I'm not sure how well it would work with a bad microphone recording.
Just use your Google assistant, it's pretty accurate and it even recognize humming. The keyword is "What's this song or What song is this/Recognize this song/etc"