在iOS 10.0或更高版本上本地化Emoji阅读 [英] Localizing the Reading of Emoji on IOS 10.0 or Higher
问题描述
我注意到一个问题,在iOS 10.0或更高版本上,iOS似乎无法本地化(由AVSpeechSynthesizer)读取表情符号,但它似乎在iOS 9.3或更低版本上正确地执行了这一操作。
如果你通过向设置为英语的AVSpeechSynthesizer发送字符串"😀"来告诉它说一个表情符号,它会说"正常眼睛咧嘴笑"。
当你将Synth的语音语言改为英语以外的任何语言时,比如法语,并发送相同的表情符号时,它应该会说"Visage Souriant avec des yeux normaux",这在iOS 9.3或更低版本上是这样做的,但在iOS 10.0及更高版本上,它只会用法国口音朗读英文文本("用正常的眼睛咧嘴笑")。
我在下面想出了一个"游乐场",展示了我是如何得出这个结论的……尽管我希望我错过了什么或者做错了什么。
若要重现此问题,请在XCode中创建新项目,并将一个按钮附加到SpeakNext()函数。
在运行iOS 9.3或更低版本的模拟器上运行,然后在iOS 10.0或更高版本上执行相同的操作。
你能解释一下zat吗?
import UIKit
import AVKit
class ViewController: UIViewController {
var counter = 0
let langArray = ["en","fr","de","ru","zh-Hans"]
let synth = AVSpeechSynthesizer()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func speakNext(_ sender: Any) {
print("testing (langArray[counter])")
let utterance = AVSpeechUtterance(string: "😀")
utterance.voice = AVSpeechSynthesisVoice(language: langArray[counter])
counter += 1
if (counter > 4) { counter = 0 }
synth.speak(utterance)
}
}
推荐答案
更新:iOS13.2中的问题似乎已修复!耶!
更新:iOS 13正式发布后,这个问题已经被一个更糟糕的问题(iOS 13 Text To Speech (TTS - AVSpeechSynthesisVoice) crashes for some users after update)所掩盖/取代。
//原文:
通过反馈助手通知苹果后,这似乎是iOS 10中以某种方式引入的一个错误,在连续三个版本的iOS中都没有被注意到。
在测试iOS 13 beta 5(17A5547d)后,未出现此问题。
他们声称从此问题已明确解决。
这篇关于在iOS 10.0或更高版本上本地化Emoji阅读的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!