How can I reduce background noise from recorded audio conversation and separate speakers in python?
I will contribute to this question from my area of experience, which is in speech enhancement. For noise suppression, you can use classical speech enhancement algorithms (spectral subtraction, wiener filtering, etc) but they mostly introduce artefacts in the enhanced speech. Additionally, there are also machine learning approaches which you can try. I am providing you with one of the python-based denoising libraries here: 
https://github.com/staplesinLA/denoising_DIHARD18

Remember, for commercial usage you need to ask the author and the group.