Você pode usar vários players externos através de pipes. No entanto, você quase sempre experimentará uma perda de velocidade. Há também um problema com o controle de reprodução.
Eu recomendo que você pyaudio, funciona bem.
Se você quiser reproduzir arquivos compactados também, ficarei livre para apontar para o meu módulo decoder.py. Você pode encontrá-lo no PyPI.
Ele também usa subprocessos, mas chama decodificadores em vez de players. Eles não usam muita CPU e alguns deles sabem como usar a aceleração de hardware. Você pode usar o pyaudio ou algo assim para gerar os dados de áudio não processados. Se quiser, você pode até usar o pygame utilizando pygame.sndarray. Dessa forma, você pode reproduzir mais formatos do que o pygame suporta.
Tentei decoder.py no ambiente da interface gráfica do PyQT, com o pyaudio e também usando o aplay como player externo. Isso foi no Raspberry Pi B.
Os resultados foram bastante satisfatórios em ambos os casos.
A simplicidade pode ser questionada.
O decoder.py em si é muito simples, mas você deve combiná-lo com outras bibliotecas e isso aumenta as linhas de código.
Há um exemplo de como reproduzir arquivos incluídos no decoder.py.