There are probably near 50 python libraries for making GUIs. Some more that have not been said are:
Kivy (for IOS, Android, Windows, OSX and Linux)
PyQt (For IOS, Android, Windows, Linux, OSX)
WXPython (for Windows, Linux and OSX)
panda3d (for Linux, Windows and OSX)
tkinter (Windows, OSX, Windows)
PySide (I'm not sure if you get IOS and Android, but for sure Windows, Linux and OSX)
Then what's been said before:
pyglet (Windows, OSX and Linux)
pygame (Windows, OSX and Linux)
PySDL1 and 2 (Windows, Linux and OSX)
Cocos2d (Not sure about IOS and Android, but for sure Windows, Linux and OSX)
I think part of the reason why people have not developed any audio games in python is that there are so many choices for libraries that is kind of over-whelming.
Here are my choices:
PyQt5 is probably the most versatile, but it is GPL and Qt Itself is LGPL. So if you would like to sell your game it will cost like $500 for a life-time license on the PC and I think $6000 for a life-time license for Qt and PyQt. (You only need the Qt Licence if you are going to bundle it as a single executable, I don't know if you can make an app that is several files on IOS)
On top of that, the documentation is kind of complex, the API is only in C++.
But there are standard widgets like buttons, edit boxes, combo boxes, menus and whatnot. There is also a web browser.
panda3d is just for Windows, Linux and OSX, but it is for games and is free. It is great, but does not have standard widgets and does not have a port to IOS. It is made for games though and the documentation is really good.
Both these libraries have both a C++ and python version.
Here is an example in panda3d:
from direct.showbase.ShowBase import ShowBase
from accessible_output import speech
spk = speech.Speaker().output
app = ShowBase()
app.accept('space', spk, ["Hello world"])
app.run()
Here is the same in PyQt5 (*note the above was using python2, the next is using python3, so accessible_output2 is used)
import sys
from PyQt5.QtWidgets import QApplication, QWidget
import accessible_output2.outputs.auto
spk = accessible_output2.outputs.auto.Auto().output
class Window(QWidget):
def keyPressEvent(self, key):
if key.text() == " ":
spk("Hello world")
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())