Failed to change the TTS language to CN or TW

I have some question about the TTS My device default language is zh-HK. (cantonese) my device is iPhone 16 Pro, IOS 18.6

I create a function speakMandarin I want the device to speak the zh-CN (putonghua) however the device only can speak zh-HK (cantonese).

I already set the AVSpeechSynthesisVoice language as zh-CN

func speakMandarin(text: String) {
        print("speakMandarin, \(text)")
        lastError = nil // Reset error

        // Stop any ongoing speech before starting new
        if synthesizer.isSpeaking {
            synthesizer.stopSpeaking(at: .immediate)
        }
        
        // Configure speech utterance
        let utterance = AVSpeechUtterance(ssmlRepresentation: text)!
        utterance.rate = 0.5 // Natural speaking speed
        utterance.pitchMultiplier = 1.0
        utterance.volume = 1.0
        utterance.voice = AVSpeechSynthesisVoice(language: "zh-CN")

        let preferredLanguages = [  "zh-CN" , "zh-TW"]
        var selectedVoice: AVSpeechSynthesisVoice?
        for lang in preferredLanguages {
            if let voice = AVSpeechSynthesisVoice(language: lang) {
                print(lang)
                selectedVoice = voice
                utterance.voice = voice
                break
            }
        }
        
        // If no Mandarin voice found, use system default
        if selectedVoice == nil {
            selectedVoice = AVSpeechSynthesisVoice(language: nil)
            lastError = "未偵測到普通話語音包,將使用系統預設語音"
            print (lastError)
        }
        
        utterance.voice = selectedVoice
        print(utterance)

        synthesizer.speak(utterance)
    }

here is my log

speakMandarin, <speak>你好!我們來聊聊喜歡的動物吧。你喜歡什麼動物呢?</speak>
zh-CN
[AVSpeechUtterance 0x1194efb80] String: 你好!我們來聊聊喜歡的動物吧。你喜歡什麼動物呢?
Voice: [AVSpeechSynthesisVoice 0x104ceff90] Language: zh-CN, Name: Tingting, Quality: Default [com.apple.voice.compact.zh-CN.Tingting]
Rate: 0.50
Volume: 1.00
Pitch Multiplier: 1.00
Delays: Pre: 0.00(s) Post: 0.00(s)
Failed to change the TTS language to CN or TW
 
 
Q