avfoundation - 文本到语音 API (AVSpeechSynthesisVoice) 在 iOS 13 GM 中损坏
问题描述
更新
我在另一台设备上安装了 iOS 13 GM,没有遇到这个问题。因此,我不再确定这是否特定于 iOS 13 GM,或者与我安装它的方式有关。在第一台设备(iPhone X)上,我进行了升级(通过 iTunes 中的“选项键 + 检查更新按钮”)。在第二台设备(iPhone SE)上,我进行了完全恢复。尚不确定是什么原因导致它进入这种状态。
原始问题
AVSpeechSynthesisVoice.speechVoices()
报告说,当我在装有 iOS 13 GM 的设备上运行它时,没有可用的声音。事实上,当我尝试使用它加载语音时,AVSpeechSynthesisVoice(identifier:)
它总是返回 nil。它在模拟器中工作。我不认为这是以前的 beta 版本的问题,它似乎在 iOS 13.1 beta 2 和 3 中有效。
有没有人遇到过这种情况,并想出任何解决方法?我没有看到任何有意更改此行为的文档,因此我怀疑这是一个错误。我打算提交雷达。但这对即将发布的 iOS 13 没有帮助。
这种行为在新创建的单视图项目中是可重现的,viewDidLoad
在包含的视图控制器中添加了以下琐碎的功能。
override func viewDidLoad() {
super.viewDidLoad()
let voices = AVSpeechSynthesisVoice.speechVoices()
print("Voice Count: \(voices.count)")
}
输出很长:
2019-09-11 10:43:09.370992-0400 SpeechTest[1617:412065] Creating client/daemon connection: C591307C-313E-4B5F-91A8-184B7E662819
2019-09-11 10:43:09.396250-0400 SpeechTest[1617:412065] Got the query meta data reply for: com.apple.MobileAsset.MacinTalkVoiceAssets, response: 0
2019-09-11 10:43:09.397519-0400 SpeechTest[1617:412065] Consumed extension
2019-09-11 10:43:09.401982-0400 SpeechTest[1617:412065] Got the query meta data reply for: com.apple.MobileAsset.MacinTalkVoiceAssets, response: 0
Voice Count: 0
2019-09-11 10:43:09.435890-0400 SpeechTest[1617:412066] Got the query meta data reply for: com.apple.MobileAsset.VoiceServicesVocalizerVoice, response: 0
2019-09-11 10:43:09.445269-0400 SpeechTest[1617:412066] Consumed extension
2019-09-11 10:43:09.468849-0400 SpeechTest[1617:412066] Got the query meta data reply for: com.apple.MobileAsset.VoiceServicesVocalizerVoice, response: 0
2019-09-11 10:43:09.499573-0400 SpeechTest[1617:412066] Got the query meta data reply for: com.apple.MobileAsset.VoiceServicesVocalizerVoice, response: 0
2019-09-11 10:43:09.520244-0400 SpeechTest[1617:412066] Got the query meta data reply for: com.apple.MobileAsset.VoiceServices.GryphonVoice, response: 0
2019-09-11 10:43:09.545243-0400 SpeechTest[1617:412066] Got the query meta data reply for: com.apple.MobileAsset.VoiceServices.CustomVoice, response: 0
2019-09-11 10:43:09.549941-0400 SpeechTest[1617:412066] Got the query meta data reply for: com.apple.MobileAsset.VoiceServices.CombinedVocalizerVoices, response: 2
2019-09-11 10:43:09.550075-0400 SpeechTest[1617:412066] [AXTTSCommon] Error running custom voice query XML not present
2019-09-11 10:43:09.569114-0400 SpeechTest[1617:412066] Got the query meta data reply for: com.apple.MobileAsset.VoiceServicesVocalizerVoice, response: 0
2019-09-11 10:43:09.599459-0400 SpeechTest[1617:412066] Got the query meta data reply for: com.apple.MobileAsset.VoiceServicesVocalizerVoice, response: 0
2019-09-11 10:43:09.630763-0400 SpeechTest[1617:412066] Got the query meta data reply for: com.apple.MobileAsset.VoiceServicesVocalizerVoice, response: 0
2019-09-11 10:43:09.650161-0400 SpeechTest[1617:412066] Got the query meta data reply for: com.apple.MobileAsset.VoiceServices.GryphonVoice, response: 0
2019-09-11 10:43:09.666885-0400 SpeechTest[1617:412066] Got the query meta data reply for: com.apple.MobileAsset.VoiceServices.CustomVoice, response: 0
2019-09-11 10:43:09.671279-0400 SpeechTest[1617:412066] Got the query meta data reply for: com.apple.MobileAsset.VoiceServices.CombinedVocalizerVoices, response: 2
2019-09-11 10:43:09.671412-0400 SpeechTest[1617:412066] [AXTTSCommon] Error running custom voice query XML not present
...
它重复了最后 7 行 39 次,大概对应于它应该知道的 39 个声音。
解决方案
我遇到了同样的 AVSpeechUtterance 问题,它似乎随着时间的推移在我的设备上自行解决了。在使用之前崩溃的应用程序或全新安装的应用程序一段时间后,我不再在 iOS 13 或 13.1 上崩溃。
推荐阅读
- java - EclipseLink:忽略缓存并直接从数据库获取数据
- angular - 提供的服务未被后代组件使用
- regex - 如何在 URI 中获取数字 id?
- azure - 在 Azure 事件中心/blob 存储中查询事件
- microsoft-graph-api - 创建事件返回 ErrorPropertyValidationFailure
- python - 人类性别分类 - 训练和验证准确性不动
- node.js - 使用 Traefik 构建网络
- jakarta-ee - 优雅地处理wildfly组件关闭
- javascript - Angular - 模板驱动表单 - 控制器中的自定义验证器功能
- javascript - Testcafe:如何测试请求的 POST 参数