2015-06-12 5 views
26

Abbiamo un'app per iOS che utilizza AVSpeechSynthesizer per parlare. Funziona su iPad e altri dispositivi, ma notiamo che non funziona sul nostro iPhone 6 Plus.Come risolviamo un errore AXSpeechAssetDownloader su iOS?

Nell'esaminare l'uscita della console vediamo questo errore:

|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}

Il dispositivo su cui l'applicazione è in esecuzione non avere una connessione di rete.

Qualche idea su come iniziare a risolvere anche questo?

+0

Stiamo avendo lo stesso problema esatto, anche se per noi sta accadendo su dispositivi che eseguono iOS 9. – vegather

+0

Dopo essersi trasferito a iOS 8 vedere lo stesso problema: | AXSpeechAssetDownloader | errore | Errore ASAssetQuery durante il recupero dei risultati Errore Dominio = ASError Code = 21 "Impossibile completare l'operazione. (Errore ASErrore 21 - Impossibile copiare le informazioni sulle risorse)" UserInfo = 0x174473e00 {NSDescription = Impossibile copiare le informazioni sulle risorse} 2015-07-09 10: 56: 33.371 xxxxxxxx [6275: 1073856] Creazione voce per MacinTalk per asset: (null) – RegularExpression

+0

Questo è su iPadAir con iOS8.4 – RegularExpression

risposta

5

Avevo lo stesso problema. Non sono riuscito a trovare alcun aiuto, quindi ho dovuto eseguire il debug provando varie cose.

Quello che ho trovato è che se si accede a Impostazioni -> Generale -> Voce, e si attiva "Pronuncia selezione" e si interrompe con la voce inglese, inizierà a lavorare per voi.

Fatemi sapere se questo aiuta.

+0

Ho provato il tuo suggerimento ma senza successo :( – Beto

+0

Funziona per me, sai perché sta succedendo? Ho un iPod touch 5G e un iPhone 5S e funziona senza quella configurazione, ma con i sei plus iniziano a schiantarsi – lojals

+1

non c'è nessun discorso in Impostazioni \ Generale iOS10.1.1 è in Accessibilità e mostra ancora quell'errore –

3

Ciò significa che le risorse necessarie per parlare le lingue richieste non sono state scaricate e l'app non è riuscita a farlo automaticamente. come @softwarenerd menziona, puoi andare su Impostazioni -> Generali -> Parlato, quindi andare su Voci e scaricare qualsiasi voce tu voglia.

Tuttavia, questa non è davvero una buona soluzione se si sta sviluppando l'app per l'app store. Ci deve essere un modo per gestire il download automaticamente e su richiesta.

+4

Questa non è una risposta, almeno per me. Ho abbinato esplicitamente il mio codice alla voce preferita del mio dispositivo, e nessuna modifica, ancora seeing: "| AXSpeechAssetDownloader | errore | Errore ASAssetQuery recupero dei risultati (per com.apple.MobileAsset.MacinTalkVoiceAssets) Errore Domain = ASError Code = 21" Impossibile copiare le informazioni sull'asset "UserInfo = {NSDescription = Impossibile copiare le informazioni sulle risorse}" –

1

Vedo lo stesso identico problema su iOS9. Ecco il mio work-around, che non è perfetto ma almeno evita il crash.

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

Suppongo che l'implementazione della variabile lang 'let lang = AVSpeechSynthesisVoice (lingua:" en-US ")' ' – Lamar

1

Si può visualizzare questo errore anche se si passa stringa in costruttore AVSpeechUtterance in lingua A, ma chiedendo alla libertà di parola utilizzando il linguaggio B.

Esempio:

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

In questo caso "Hello" non è una lingua polacca (pl-PL). App mostra tale errore e può (in alcuni casi) testo discorsi.

+0

Questo era esattamente il mio caso. – Wilson