10 votos

¿Activar el control por voz con un atajo de teclado?

¿Hay un atajo de teclado para activar y desactivar el Control por Voz en una Mac con Big Sur? No Dictado, por favor... Control por Voz (bajo Preferencias del Sistema > Accesibilidad > Control por Voz).

control por voz

He buscado en la sección de Accesibilidad del Panel de Preferencias de Atajos de Teclado. No hay nada ahí. Tampoco es una opción en Accesos Directos de Accesibilidad.

Utilizo el Control por Voz regularmente pero no de manera consistente, así que tiendo a mantenerlo desactivado hasta que lo necesito. Es un fastidio tener que ir a Preferencias del Sistema cada vez que quiero activarlo.

Antes de que preguntes, la razón por la que no lo mantengo activado todo el tiempo (pero si en modo suspendido) es que la ventana del micrófono flotante siempre está en el camino de algo en la pantalla de mi MacBook.

He buscado en Google una y otra vez para esto. Nada. Tengo un interés mínimo en escribir un AppleScript/Automator para hacer esto... demasiado frágil y quisquilloso para mí... pero estoy abierto a todas las sugerencias.

4voto

user3439894 Puntos 5883

El ejemplo código AppleScript, que se muestra a continuación, fue probado en Editor de script en macOS Big Sur con la configuración de Idioma y región en Preferencias del Sistema configurada en Inglés (EE. UU.) — Primario y me funcionó sin problemas1.

  • 1 Se asume que se han configurado/atendido las configuraciones necesarias y adecuadas en <strong>Preferencias del Sistema</strong> > <strong>Seguridad y privacidad</strong> > <strong>Privacidad</strong> según sea necesario.
  • Se asume que la casilla de verificación objetivo ha sido activada manualmente una vez antes para tratar con el diálogo de permisos que aparece la primera vez que se activa manualmente la casilla de verificación objetivo.

El ejemplo código AppleScript se puede usar en una Acción Ejecutar AppleScript en un Servicio/acción rápida de Automator que ha sido asignado un atajo de teclado en Preferencias del Sistema > Teclado > Atajos > Servicios, sin embargo, en mi experiencia es mejor utilizar alguna de las aplicaciones de terceros que son capaces de ejecutar código AppleScript y asignar un atajo de teclado global.

  • Como ejemplo, uso FastScripts para algunas tareas, también Hammerspoon para otras tareas. (No estoy asociado con los desarrolladores de estos productos, solo soy un usuario satisfecho.)

Ejemplo código AppleScript:

--  # Comprueba si las Preferencias del Sistema están
--  # abiertas y en caso afirmativo, las cierra.
--  #
--  # Se hace esto para que el script no falle
--  # si está abierta y se muestra una hoja modal,
--  # de ahí el uso de 'killall'
--  # ya que 'quit' falla si se hace cuando se muestra una
--  # hoja modal.
--  #
--  # Esto también se hace para permitir que los comportamientos predeterminados
--  # sean predecibles desde una ocurrencia limpia.

si la aplicación "Preferencias del Sistema" está en ejecución entonces
    intentar
        decir a la aplicación "Preferencias del Sistema" que cerrar
    en error
        hacer guion de la carcasa "killall 'Preferencias del Sistema'"
    fin intentar
    retraso 0.1
fin if

--  # Asegurarse de que las Preferencias del Sistema no estén en ejecución antes
--  # de abrirlas de nuevo. De lo contrario, puede haber un problema
--  # al intentar abrirlo mientras en realidad se está cerrando.

repetir mientras la aplicación "Preferencias del Sistema" está en ejecución es cierto
    retraso 0.1
fin repetir

--  # Abrir las Preferencias del Sistema en el panel de Accesibilidad.

decir a la aplicación "Preferencias del Sistema" que ¬
    revelar panel id "com.apple.preference.universalaccess"

decir a la aplicación "Eventos del Sistema"
    decir al proceso de la aplicación "Preferencias del Sistema"
        decir a la ventana 1

            --  # Esperar a que el elemento UI objetivo esté disponible.

            establecer i en 0
            repetir hasta que exista área de desplazamiento 1
                retraso 0.1
                establecer i en i + 1
                si i  30 entonces devolver
            fin repetir

            --  # Seleccionar Control de Voz.

            intentar
                seleccionar (filas de tabla 1 de área de desplazamiento 1 ¬
                    cuyo valor de texto estático 1 de ¬
                    elemento UI 1 es "Control de Voz")
            fin intentar

            --  # Esperar a que el elemento UI objetivo esté disponible.

            establecer i en 0
            repetir hasta que exista casilla de verificación 3 de grupo 1
                retraso 0.1
                establecer i en i + 1
                si i  30 entonces devolver
            fin repetir

            --  # Hacer clic en la casilla de verificación Habilitar Control de Voz.

            hacer clic en la casilla de verificación 3 de grupo 1

        end decir
    end decir
end decir

retraso 0.2

decir a la aplicación "Preferencias del Sistema" que cerrar

Notas:

El ejemplo código AppleScript utiliza Automatización de la UI, que puede ser engorrosa a veces, y asumiendo que las Preferencias del Sistema normalmente ya están cerradas, el script hará que el ícono de Preferencias del Sistema rebote una vez en el Dock.


Nota: El <em>ejemplo</em> <strong>código AppleScript</strong> es solo eso y sin ningún <em>manejo de errores</em> incluido, no contiene ninguna <em>manejo de errores</em> adicional que pueda ser apropiado. Es responsabilidad del usuario agregar cualquier <em>manejo de errores</em> que pueda ser apropiado, necesario o deseado. Echa un vistazo a la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129232" rel="nofollow noreferrer"><strong>declaración try</strong></a> y la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129657" rel="nofollow noreferrer"><strong>declaración error</strong></a> en la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guía de lenguaje AppleScript</strong></a>. Ver también, <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_error_xmpls.html#//apple_ref/doc/uid/TP40000983-CH221-SW1" rel="nofollow noreferrer"><strong>Trabajar con Errores</strong></a>. Además, el uso del <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-SW10" rel="nofollow noreferrer"><strong>comando retraso</strong></a> puede ser necesario entre eventos cuando sea apropiado, por ejemplo, <code>retraso 0.5</code>, con el <em>valor</em> del <em>retraso</em> ajustado apropiadamente.

2 votos

¡Esto funciona! Aunque no estoy emocionado de utilizar un AppleScript que depende de elementos de la interfaz de usuario (¿Qué sucede si Apple cambia la interfaz de Preferencias del Sistema?), es una buena solución mientras funcione. De todos modos, simplemente copié y pegué este script en una acción de Better Touch Tool y funcionó a la primera. Increíble. Muchas gracias. También gracias por comentar tu código. Eso también es útil.

1 votos

@Sam, RE: "(¿Qué sucede cuando Apple cambia la interfaz de System Prefs?)" -- Entonces, como es habitual la mensaje, el código deberá ajustarse para que funcione con esa versión de macOS. Realmente no es gran cosa y si necesitas ayuda para modificarlo, entonces haz una pregunta y seguramente será respondida.

0 votos

Está bien. Bastante justo.

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