Systemwide mute enabled in Control Center. (If mute is enabled, the button with a bell icon with a slash through it would be red.) Just unmute it.
Since the voice synthesizer is asynchronous code, the "needsIndefiniteExecution" allows execution to continue after the end of the playground’s top-level code is reached. This, in turn, gives threads and callbacks time to execute. (from Apple's documentation of Playground Support)
Add the following lines:
PlaygroundPage.current.needsIndefiniteExecution = true