2015-06-12 5 views
26

Wir haben eine iOS App, die AVSpeechSynthesizer verwendet, um zu sprechen. Es funktioniert auf dem iPad und anderen Geräten - aber wir bemerken, dass es auf unserem iPhone 6 Plus nicht funktioniert.Wie lösen wir einen AXSpeechAssetDownloader Fehler auf iOS?

Bei der Prüfung der Konsolenausgabe wir diesen Fehler sehen:

|AXSpeechAssetDownloader|error| ASAssetQuery error fetching results Error Domain=ASError Code=21 "The operation couldn’t be completed. (ASError error 21 - Unable to copy asset information)" UserInfo=0x174a7e100 {NSDescription=Unable to copy asset information}

Das Gerät, auf dem die App eine Netzwerkverbindung verfügt läuft.

Irgendwelche Ideen, wie man überhaupt anfängt, dieses zu lösen?

+0

Wir haben genau das gleiche Problem, aber für uns passiert es auf Geräten mit iOS 9. – vegather

+0

Nach dem Verschieben auf iOS8 das gleiche Problem zu sehen: | AXSpeechAssetDownloader | Fehler | ASAssetQuery-Fehler beim Abrufen der Ergebnisse Fehlerdomäne = ASError Code = 21 "Der Vorgang konnte nicht abgeschlossen werden. (ASError-Fehler 21 - Asset-Informationen konnten nicht kopiert werden)" UserInfo = 0x174473e00 {NSDescription = Asset-Informationen können nicht kopiert werden} 2015-07-09 10: 56: 33.371 xxxxxxxx [6275: 1073856] Erstellen von MacinTalk Voice für Asset: (null) – RegularExpression

+0

Dies ist auf iPadAir mit iOS8.4 – RegularExpression

Antwort

5

Ich hatte das gleiche Problem. Ich konnte keine Hilfe finden, also musste ich es debuggen, indem ich verschiedene Dinge ausprobierte.

Was ich gefunden habe ist, dass, wenn Sie auf Einstellungen -> Allgemein -> Sprache zugreifen und "Speak Selection" aktivieren und mit der englischen Stimme herumspielen, es einfach für Sie arbeiten wird.

Lassen Sie mich wissen, ob dies hilft.

+0

Ich versuchte Ihren Vorschlag, aber mit keinem Erfolg :( – Beto

+0

Es funktioniert für mich, wissen Sie, warum passiert das? Ich habe einen iPod touch 5G und ein iPhone 5S und funktioniert ohne diese Konfiguration. Aber mit den sechs plus starten zum Absturz – lojals

+1

Es gibt keine Sprache in Einstellungen \ Allgemein iOS10.1.1 es ist in Accessibility und es zeigt immer noch diesen Fehler –

3

Dies bedeutet, dass die für das Sprechen der erforderlichen Sprachen erforderlichen Ressourcen nicht heruntergeladen wurden und die App dies nicht automatisch ausgeführt hat. Wie @softwarnerd erwähnt, kannst du zu Einstellungen -> Allgemein -> Sprache gehen und dann zu Stimmen gehen und die Stimmen herunterladen, die du brauchst.

Aber das ist nicht wirklich eine gute Lösung, wenn Sie die App für den App Store entwickeln. Es muss eine Möglichkeit geben, den Download automatisch und bei Bedarf zu handhaben.

+4

Dies ist keine Antwort, zumindest für mich.Ich habe explizit meinen Code auf die bevorzugte Stimme meines Geräts abgestimmt, und keine Änderung, immer noch seeing: "| AXSpeechAssetDownloader | Fehler | ASAssetQuery Fehler beim Abrufen von Ergebnissen (für com.apple.MobileAsset.MacinTalkVoiceAssets) Fehler Domain = ASError Code = 21" Asset-Informationen können nicht kopiert werden "UserInfo = {NSDescription = Asset-Informationen können nicht kopiert werden} –

1

Ich sehe das genau gleiche Problem auf iOS9. Hier ist mein Work-around, der nicht perfekt ist, aber zumindest den Absturz vermeidet.

let voices = AVSpeechSynthesisVoice.speechVoices() 
for voice in voices { 
    if lang == voice.language { 
     utterance.voice = voice 
     break; 
    } 
} 
+1

Ich nehme an, dass die Lang-Variablen-Implementierung 'lang = AVSpeechSynthesisVoice (Sprache:" en-US ")' ' – Lamar

1

Sie auch diesen Fehler sehen können, wenn Sie Zeichenfolge in AVSpeechUtterance Konstruktor in Sprache A vorbei, sondern um Sprache zu fragen es Sprache B.

Beispiel für die Verwendung: In diesem Fall

let utterance = AVSpeechUtterance(string: "Hello") 
utterance.voice = AVSpeechSynthesisVoice(language: "pl-PL") 

"Hallo" ist keine polnische Sprache (pl-PL). App zeigt solche Fehler und kann (in einigen Fällen) Reden Text.

+0

Das war genau der Fall für mich. – Wilson

Verwandte Themen