Can I trust AVSpeechSynthesisVoice.identifier to distinguish voices across different devices and iOS versions?

It seems that voices with same id behave differently on difference OS versions and devices.

How can I distinguish voices across OS and devices?

Is it safe to use combination of voice id and OS version? Or is there a voice version code or something better to distinguish voices with same identifier?

Can you clarify what kinds of discrepancies you are referring to? Voice identifiers should be stable across releases and reference the same voice asset.

com.apple.ttsbundle.Ting-Ting-compact is an example. It is a Mandarin voice. On my iOS 14 device (iPhone 7plus), it can speak pinyin spelling. On my iOS 12 ipod touch 6, it can not speak pinyin spelling. Please try this "tiān", which should sound like "te-i-an-tian". Ting-Ting can't recognize pinyin on iOS 12. And the voice id is exactly the same.

It seems that this pinyin speaking feature is added since iOS 14. I think there should be a version number to distinguish them.

This is not a change to the voice but more so a change to the voice engine and pronunciation rules. As iOS releases progress we’ve been able to improve the functionality of existing voices, but the Ting Ting voice is present in both versions. We won’t be able to fix issues with iOS 12 at this point. If functionality regresses as versions increase we definitely want to know about it, but in this case it sounds like we simply fixed a bug somewhere between iOS 12 and iOS 14.

However, this ting ting voice doesn't work well on iOS 15. iOS 15 introduces a new ting ting voice. But, some users still keep com.apple.ttsbundle.Ting-Ting-compact in their voice list.

The Ting Ting voice is the same in both iOS 14 and 15. Referring to that identifier will use the same voice asset in both releases. If you are experiencing issues in iOS 15 with that voice that you aren’t experiencing in iOS 14, please file a bug detailing what strings are causing problems, and recordings from both releases if you can, and paste the feedback ID here

Can I trust AVSpeechSynthesisVoice.identifier to distinguish voices across different devices and iOS versions?
 
 
Q