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

4

Estoy intentando aumentar la velocidad de Text-to-Speech en mi Mac. El panel de Preferencias de GUI maximiza 360 palabras por minuto. Hago desarrollo de accesibilidad y esto es un poco lento para mí.

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

y conozco la clave: VoiceRateDataArray

Sin embargo, cuando leo la preferencia, obtengo una matriz de matrices.

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

Parece que no puedo encontrar un ejemplo para tratar con matrices y el comando predeterminado.

    
pregunta FTNomad 03.06.2015 - 17:17

1 respuesta

2

ADVERTENCIA: aunque esto hará lo que está pidiendo, ha demostrado que el sintetizador de voz del sistema es increíblemente inestable y se bloquea constantemente, hasta el punto de hacerlo inutilizable. Estoy publicando esto aquí para futuras referencias con respecto a la configuración de matrices anidadas, pero no recomiendo a nadie que pruebe 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. A continuación se muestra cómo puedes ver esto por ti mismo:

  1. Primero, tenemos que obtener la clave "VoiceRateDataArray", para configurar las cosas que no deberían cambiar, volver a sus valores originales, cuando hacemos nuestras modificaciones

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

    La salida debería verse algo como esto:

  2. Entonces, podemos hacer nuestras ediciones. Primero, debemos construir el comando por defecto, que contenga la entrada que no deseamos cambiar, y la versión modificada de la entrada que hacemos. Para este ejemplo, cambiaré la segunda entrada. La sintaxis básica es -array '(item1, item2, item3)' '(item1, item2, item3)' . Esto crea una matriz, con dos matrices anidadas dentro de ella, basada en mi ejemplo:

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

    Como puede ver, el último elemento del segundo segundo arreglo ha cambiado de 271 a 400.

  3. Ahora tienes que reiniciar el sintetizador de voz:

    killall com.apple.speech.speechsynthesisd
    
respondido por el William T Froggard 03.06.2015 - 21:41

Lea otras preguntas en las etiquetas