Multi voice Headphone
If the background noise is really continuously equal (like a machine), it can be removed by sampling and subtracting the sample. However, multiple changing frequencies will be hard to process (if possible at all).

However, you maybe can use some ideas of noise cancellation head phones.

Also, consider using multiple microphones and based on where a person is (close/far) process the signals. This way it should be possible to increase or lower the strength of a nearby voice.  But even this is far from trivial.

The best idea is probably to use a very direction microphone directed towards the person to pick up the voice from. However, if you move or he moves it might change the signal considerably.

To start with something simple: remove frequency bands which are not used much by voice (like very low/high bands). But the human voice is very dynamic, both in volume (changes) and frequency (changes).