Dado que usted es tuberías la salida del pbpaste
comando directamente a say
comando entonces, por ejemplo [[volm 0.35]]
tendría que ser una parte de lo que está en el portapapeles como, por ejemplo [[volm 0.35]]
debe preceder al contenido de lo que realmente se va a decir.
Yo probaría a utilizar lo siguiente en lugar de lo que estás utilizando:
set howLoudAndWhatToSay to "[[volm 0.35]] \"" & (get the clipboard as string) & "\""
set this_say_Pid to do shell script "say " & howLoudAndWhatToSay & " > /dev/null 2>&1 & echo $!"
Actualización: Si quiere seguir utilizando pbpaste
entonces este comando de ejemplo debería funcionar:
set this_say_Pid to (do shell script "echo \"[[volm 0.35]] $(LANG=en_US.UTF-8 pbpaste -Prefer txt)\" | say > /dev/null 2>&1 & echo $!")
Observe las principales diferencias entre el comando dentro del do shell script "..."
comando en su pregunta y mi respuesta.
-
echo \"[[volm 0.35]]
se añade delante de LANG=...
y observe el espacio después de ]]
.
-
El LANG=en_US.UTF-8 pbpaste -Prefer txt
está ahora encerrado en $(...)
que está utilizando la Sustitución de Comandos para, en esencia, concatenar lo que se hace eco a la tubo por delante de la say
comando .
-
Así como una doble comilla literal de cierre coincidente \"
Antes de la tubo a say
para ir con el de echo \"[[volm 0.35]]
. Funcionó en pruebas limitadas sin el uso de las comillas dobles de apertura y cierre, sin embargo, probablemente es mejor encerrarlo en las comillas dobles para tener en cuenta algo que el shell podría tratar de expandirse innecesariamente.
Dicho esto, en mi sistema usando 0.35
para el valor en [[volm 0.35]]
no funcionaba bien en el sentido de que era difícil percibir la diferencia de volumen con respecto a mi configuración normal. Sin embargo, al utilizar 0.3
en [[volm 0.3]]
la diferencia era notable. (Esta es una de las razones por las que utilicé "p. ej. [[volm 0.35]]
" en mi frase inicial).