The Python package vosk-api ticked my boxes: open source, respects privacy (works 'offline'), and supports the languages I'm interested in: English, French, Spanish. The list of supported languages, currently limited, is growing: I was lucky with my needs. Getting started took me a little while, so in this answer I'd like to detail a few steps.
The audio ...
Frankly, it very much depends on what you're intending to build -- since you specified what seems to be a relatively simple GUI, I'd recommend beginning with Tkinter because it's the only GUI-related package that ships in python's standard library, and thus it is relatively ubiquitous for simple python apps.
It's not the most elegant package, and certainly ...
you don't mention which country you are reverse geocoding in. In some countries there are common codes for each county, in the US there is something called a FIPS code, which usually (but not always) corresponds to a county.
The OpenCage Geocoder returns county_codes in countries where those are normal and FIPS codes in the US.
Here is part of an example ...
Some list I did when asking Is there any decent speech recognition software for Linux?:
Kaldi (e.g., Kaldi GStreamer server)
IBM ViaVoice (used to run on Linux but was discontinued years ago)
NICO ANN Toolkit
silvius (built on the Kaldi speech recognition toolkit)
ViaVoice / ...
Science Parse parses scientific papers (in PDF form) and returns them in structured form. As of today, it supports these fields: […] Sections (each with heading and body text).
Apache License 2.0
written in Java. To use it with Python, see https://github.com/allenai/science-parse/issues/133#issuecomment-629943735
https://github.com/kermitt2/grobid + https://github.com/kermitt2/grobid-client-python:
extract information from scholarly documents
the two repos are Apache-2.0
Full text extraction and structuring from PDF articles, including a model for the overall document segmentation and models for the structuring of the text body (paragraph, section titles, ...
You can try Vosk. It works on OSX with Python3.8, Windows and Linux.
Supports 9 languages - English, German, French, Spanish, Portuguese,
Chinese, Russian, Turkish, Vietnamese. More to come.
Works offline, even on lightweight devices - Raspberry Pi, Android, iOS
Installs with simple pip3 install vosk
Portable per-language models are only 50Mb each, but ...
I have worked with two PDF modules: PyPDF2 and pdfminer.six
PDFminer.six is more reliable than PyPDF2 but 6 times slower (timed).
Here is a working code example for PDFminer.six, the documentation is a little sparse: https://stackoverflow.com/a/61857301/7483211
On macOS, the simplest thing to do is enable dictation and download the 2 GB database to your Mac. Several languages are supported. For me, it has been amazingly good in English and French. You can use it completely offline (no Internet connection), and it's just built into the OS. See https://support.apple.com/guide/mac-help/use-dictation-mh40584/mac for ...
Pydroid3 is available as both Free and Paid editions and I don't think that the price for it is too exorbitant for most people.
On the Paid edition going to the pip window and selecting Quick Install produces a screen like:
Sockets on the local host are the most usual way of doing this sort of thing - the file option can hit problems unless: a) Each thread has its own file & b) all writes are flushed and event then you can hit buffering problems & race conditions.
I would suggest that you look into using the built-in Multiprocessing Library with Managers to handle the ...