7 votes

Comment utiliser Defaults pour définir un élément d'un tableau d'un tableau dans un fichier de préférences ?

J'essaie d'augmenter la vitesse de la synthèse vocale sur mon Mac. Le panneau des préférences de l'interface graphique plafonne à 360 mots par minute. Je travaille sur le développement de l'accessibilité et cette vitesse est un peu lente pour moi.

J'ai trouvé le fichier de préférences pour les paramètres vocaux : com.apple.speech.voice.prefs.plist

et je connais la clé : Tableau de données VoiceRate

Cependant, lorsque je lis les préférences, j'obtiens un tableau de tableaux.

Alors comment écrire la commande en ligne pour écraser l'élément spécifique du tableau afin d'accélérer la voix dans OS X.

Je n'arrive pas à trouver un exemple qui traite des tableaux et de la commande defaults.

7voto

William T Froggard Points 5321

AVERTISSEMENT : Bien que cela fasse ce que vous demandez, il a été démontré que cela rendait le synthétiseur vocal du système incroyablement instable et qu'il se plantait constamment, au point de le rendre inutilisable. Je poste ceci ici pour référence future en ce qui concerne le paramétrage des tableaux imbriqués, mais je ne recommande à personne d'essayer ce qui est montré ici.

J'ai essayé de modifier ce paramètre manuellement, mais il semblerait que le synthétiseur vocal ne puisse pas parler plus vite que 360. Voici comment vous pouvez le constater par vous-même :

  1. Tout d'abord, nous devons obtenir la clé "VoiceRateDataArray", afin de rétablir les valeurs initiales des éléments qui ne doivent pas changer, lorsque nous effectuons nos modifications.

    defaults read com.apple.speech.voice.prefs VoiceRateDataArray

    Le résultat devrait ressembler à ceci : defaults output

  2. Ensuite, nous pourrons procéder à des modifications. Tout d'abord, nous devons construire la commande defaults, qui contient l'entrée que nous ne souhaitons pas modifier et la version modifiée de l'entrée que nous souhaitons modifier. Pour cet exemple, je vais modifier la deuxième entrée. La syntaxe de base est la suivante -array '(item1, item2, item3)' '(item1, item2, item3)' . Cela crée un tableau, avec deux tableaux imbriqués à l'intérieur, sur la base de mon exemple :

    defaults write com.apple.speech.voice.prefs VoiceRateDataArray -array '(
        1835364215,
        200,
        205
    )' '(
        1886745202,
        184844493,
        400
    )'

    Comme vous pouvez le constater, le dernier élément du deuxième tableau est passé de 271 à 400.

  3. Vous devez maintenant redémarrer le synthétiseur vocal :

    killall com.apple.speech.speechsynthesisd

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X