Boo*_*unz 5 localization text-to-speech emoji avspeechsynthesizer swift
我注意到一个问题,IOS似乎没有本地化表情符号的阅读(通过AVSpeechSynthesizer)在IOS 10.0或更高,但它确实似乎正确地做到这一点的IOS 9.3或更低。
如果您通过将字符串“”发送给设置为英语的AVSpeechSynthesizer来说出表情符号,它会说“用正常的眼睛咧嘴笑脸”。
当您将合成器的语音语言更改为英语以外的其他语言(例如法语)并发送相同的表情符号时,它应该说“ 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)
}
}
Run Code Online (Sandbox Code Playgroud)
更新:问题似乎已在 iOS 13.2 中得到修复!耶!
更新:iOS 13 正式发布后,该问题已被更严重的问题所取代(iOS 13 文本转语音(TTS - AVSpeechSynthesisVoice)更新后某些用户崩溃)。
// 原帖:
通过反馈助手通知苹果后,这似乎是 iOS 10 中以某种方式引入的错误,连续三个版本的 IOS 都没有注意到该错误。
使用 iOS 13 beta 5 (17A5547d) 进行测试后,该问题并未出现。
他们声称从现在起这个问题已经得到明确解决。
| 归档时间: |
|
| 查看次数: |
250 次 |
| 最近记录: |