Мой код AVSpeechSynthesizer не работает на устройстве (iOS 10), но он работал на iOS 9.x и теперь работает в симуляторе.
let str = self.audioOutput //just some string here, this string exists, and it's in english
let synth = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: str)
utterance.rate = AVSpeechUtteranceDefaultSpeechRate
let lang = "en-US"
utterance.voice = AVSpeechSynthesisVoice(language: lang)
synth.speakUtterance(utterance)
Я получаю эту ошибку:
MobileAssetError:1] Unable to copy asset attributes
Could not get attribute 'LocalURL': Error Domain=MobileAssetError Code=1 "Unable to copy asset attributes"
UserInfo={NSDescription=Unable to copy asset attributes}
0x1741495e0 Copy assets attributes reply: XPC_TYPE_DICTIONARY <dictionary: 0x1741495e0> { count = 1, transaction: 0, voucher = 0x0, contents =
"Result" => <int64: 0x1744203a0>: 1}
До этого были такие сообщения об ошибках:
Unable to copy asset information from https://mesu.apple.com/assets/ for asset type
Кто-нибудь знает, как решить эту проблему? Я знаю, что есть некоторые обходные пути (например, пользователь должен перейти в «Настройки» -> «Основные» и переключить «Выбор речи»), но я не думаю, что это реальное решение.
Обновление: я создал новый проект (XCode8/Swift3/без других модулей/фреймворков и т. д.). Он работает в симуляторе, но на моем устройстве выдает те же ошибки.
Обновление 2: работает на устройстве. У меня есть похожие сообщения об ошибках (невозможно скопировать атрибуты активов и т. д.), но пока это работает. Я не знаю, что это было.
AVSpeechSynthesisVoice(language: lang)
, если нет .. попробуйте другой язык - person TonyMkenu   schedule 06.10.2016guard let voice = AVSpeechSynthesisVoice(identifier: AVSpeechSynthesisVoiceIdentifierAlex) else { return }
вместоAVSpeechSynthesisVoice(language: lang)
- person TonyMkenu   schedule 06.10.2016