1 votos

¿Cómo automatizar el control por voz para manipular el texto actualmente seleccionado?

Como tengo un uso limitado de las manos, utilizo el Control por Voz para dictar la mayor parte de mi texto. (El Control por Voz ofrece la posibilidad de añadir comandos personalizados, incluidos los que ejecutan un flujo de trabajo de Automator. Automator, a su vez, puede ejecutar JavaScript o AppleScript arbitrarios. (Yo prefiero JavaScript). Lo que quiero hacer es crear un script que tome el texto actualmente seleccionado en cualquier aplicación que esté activa, lo manipule y luego reemplace el texto seleccionado en su lugar. Por ejemplo, imagina crear un comando "guionizar esto" que convierta el texto seleccionado en esto - "Mac Voice Control scripting"- y lo cambie por esto - "Mac-Voice-Control-scripting". Escribir el JavaScript o AppleScript para transformar la cadena es la parte fácil. El problema es cómo obtener el texto seleccionado para la aplicación actual, sea cual sea.

En Automator, puede crear un flujo de trabajo de "Acción rápida" que se supone que pasa el texto seleccionado actualmente y le permite reemplazarlo. En la práctica, sin embargo, en Big Sur (al menos) no pude conseguir que este flujo de trabajo recibiera texto de ninguna aplicación. Dado un estándar run() la función input era siempre de longitud 0.

¿Cómo puedo crear un flujo de trabajo que pueda ser ejecutado por un comando personalizado en el control por voz que reciba, procese y reemplace el texto actualmente seleccionado en la aplicación actual?

1voto

wch1zpink Puntos 11

Lo siento, tengo cero conocimientos de JavaScript, pero tengo algo de una solución para usted utilizando sólo AppleScript sin la necesidad de Automator.

El siguiente código AppleScript tomará el texto seleccionado en cualquier aplicación, sustituirá los espacios por guiones y luego reemplazará el texto original seleccionado por el nuevo texto con guiones.

-- Copies Selected Text To The Clipboard
tell application "System Events" to keystroke "c" using {command down}
delay 0.1

-- Uses The Text From The Clipboard And Replaces Space Characters With A Hyphen
set hyphenatedText to hyphenateText(the clipboard, " ", "-")
delay 0.1

-- Inserts The New Hyphenated Text Replacing The Original Selected Text
tell application "System Events" to keystroke hyphenatedText

(* 
someText is the selected text containing the characters to be replaced
replaceTheseListItems are characters from original text which you want replaced
replacementListItems replacement text characters 
*)
on hyphenateText(someText, replaceTheseListItems, replacementListItems)
    set originalText to someText
    set AppleScript's text item delimiters to replaceTheseListItems
    set tempText to text items of originalText
    set text item delimiters to replacementListItems
    set cleanedText to tempText as text
end hyphenateText

Guarde el código AppleScript como un archivo .scpt (Hyphenate Selected Text.scpt). A continuación, abra el Finder y seleccione su nuevo archivo script. Una vez seleccionado el archivo, y con el control de voz activado, simplemente diga el comando "Make This Speakable". Cuando se abra el cuadro de diálogo del nuevo comando de dictado, asígnale un nuevo comando de voz

enter image description here

Para fines de demostración añadí este archivo script al menú script y lo ejecuté desde allí

enter image description here

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