I'm seeing the same issue here
AVSpeechSynthesisVoice.speechVoices()
returns the Alex voice.
let voice = AVSpeechSynthesisVoice(identifier: AVSpeechSynthesisVoiceIdentifierAlex)
returns the Alex voice (I checked the identifier, name etc. on the returned instance, BUT voice?.audioFileSettings is an empty dict).
But the voice actually used is Samantha (my device default).
Checking my device Settings > Accessibility > Spoken Content > English shows that Alex isn't even downloaded.
Some more observations I made:
I've never manually downloaded the Alex voice on this device.
Debugging the voice details for the Alex voice returns an empty Dictionary for voice?.audioFileSettings, while all other "available" voices will return a non-empty dict
After downloading Alex voice?.audioFileSettings does indeed return a non-empty dictionary
Using the no param constructor AVSpeechSynthesisVoice() will print an error message [AXSpeechAssetDownload] Could not find any name for this voice: (null) but it will return a non-nil voice, which has no language, name or identifier set. AVSpeechSynthesizer uses Samantha (device-default) in that case as well.
Bottom line, to check if Alex is really installed, check if voice?.audioFileSettings is a non-empty dict
Post
Replies
Boosts
Views
Activity
Issue still present in iOS 16.2
Liveactivity updates with backgroundmode audio only work if the audio session category is set to "ambient", which makes no sense for apps which actually need to playback audio reliably.