7 votos

¿Cómo utilizar los valores predeterminados para establecer un elemento de una matriz en un archivo de preferencias?

Estoy intentando aumentar la velocidad del Text-To-Speech en mi Mac. El panel de preferencias de la interfaz gráfica de usuario tiene un máximo de 360 palabras por minuto. Hago el desarrollo de la accesibilidad y esto es realmente un poco lento para mí.

He encontrado el archivo de preferencias para la configuración de la voz: com.apple.speech.voice.prefs.plist

y conozco la clave: VoiceRateDataArray

Sin embargo, cuando leo la preferencia obtengo un array de arrays.

Entonces, ¿cómo puedo escribir el comando de línea de comandos para sobrescribir el elemento específico de la matriz para acelerar la voz en OS X.

No puedo encontrar un ejemplo para tratar con arrays y el comando defaults.

6voto

William T Froggard Puntos 2862

ADVERTENCIA: Aunque esto hará lo que estás pidiendo, se ha demostrado que hace que el sintetizador de voz del sistema sea increíblemente inestable y se bloquee constantemente, hasta el punto de hacerlo inutilizable. Estoy publicando esto aquí para futuras referencias en lo que respecta a la configuración de las matrices anidadas, pero no recomiendo a nadie realmente intenta lo que se muestra aquí.

He intentado cambiar esta configuración manualmente, pero parece que el sintetizador de voz no hablará más rápido que 360. Aquí es cómo usted puede ver esto por sí mismo:

  1. En primer lugar, tenemos que obtener la clave "VoiceRateDataArray", con el fin de establecer las cosas que no deben cambiar, de nuevo a sus valores originales, cuando hacemos nuestras modificaciones

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

    El resultado debería ser algo parecido a esto: defaults output

  2. A continuación, podemos hacer nuestras ediciones. Primero, debemos construir el comando defaults, que contiene la entrada que no deseamos cambiar, y la versión modificada de la entrada que sí queremos. Para este ejemplo, cambiaré la segunda entrada. La sintaxis básica es -array '(item1, item2, item3)' '(item1, item2, item3)' . Esto crea un array, con dos arrays anidados dentro de él, basado en mi ejemplo:

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

    Como puede ver, el último elemento de la segunda matriz ha cambiado de 271 a 400.

  3. Ahora tienes que reiniciar el sintetizador de voz:

    killall com.apple.speech.speechsynthesisd

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X