Instalé SVOX pico2wave y creé un script. Ahora cuando entro:
speech "Hello world"
El motor de texto a voz de la computadora dice en voz alta "Hola mundo". Además, uso en .bashrcla variable PROMPT_COMMANDdefinida como:
PROMPT_COMMAND="speech 'Command executed.'"
Entonces, el agradable motor de texto a voz me anuncia en voz alta que el comando se ejecuta, antes de devolver el mensaje en la terminal.
Sin embargo, esto se vuelve aburrido después de un tiempo y pensé que sería genial terminar cada comando en la terminal con la computadora hablando una línea de texto diferente (piense en el piloto automático de Starship Enterprise).
Así que creé en .bashrc una variable de matriz, con diferentes mensajes:
array[0]="Shields at 90%"
array[1]="Engaging proton overdrive"
array[2]="Autopilot disengaged"
array[3]="Targetting solution available"
array[4]="Alert. Incoming missile."
array[5]="Deploying countermeasures."
array[6]="Firing torpedoes."
array[7]="Engaging auto-cannon."
array[8]="Severe damage on deck 17. Sealing off."
array[9]="Deploying repair droids to deck 17."
Lo que me gustaría es que cada vez que ejecute un comando en la terminal, la variable PROMPT_COMMANDse actualice y lea una línea aleatoria diferente en la matriz.
Supongo que necesito un bucle, pero no sabía cómo hacerlo.
Estaría muy agradecido por cualquier ayuda. Gracias.
fuente

-l=de-DEidioma local como-l=en-US.speechejecutable? ¿Es alias paraespeak?Respuestas:
Cree un script y guárdelo en algún lugar que contenga sus líneas y la lógica para elegir una línea aleatoria de su matriz y
speechcomando de llamada en esa línea:Luego en su
.bashrco.profileconjuntoPROMPT_COMMAND:Simplemente reemplace
speechconechopara obtener un mensaje en lugar de la voz.fuente
${array[$RANDOM % ${#array[@]}]}estar entre comillas dobles?set -xpara ver de qué estoy hablando :)Más tarde Editar tutorial:
Gracias a la respuesta de Ravexina anterior, ahora el problema está resuelto y la solución funciona fantásticamente. Daré instrucciones paso a paso a continuación, para las otras personas interesadas en hacer que funcione en Ubuntu 18.04
1. Instale el paquete SVOX pico2wave:
2. Crear el guión de voz
y poner este contenido dentro, insertando el usuario correcto en la ruta:
guardar y Salir.
3. Cree el script shell_speech.sh como lo indica Ravexina arriba:
guardar y Salir.
4. Haga que los scripts sean ejecutables y agregue su directorio a PATH para poder llamarlos desde cualquier lugar:
5. Modificar .bashrc
agregue la siguiente línea:
guardar y cerrar
Nota: puede agregar tantas líneas nuevas como desee en la matriz en
~/scripts/bin/shell_speechfuente
PATH, no necesita incluirlobashen suPROMPT_COMMANDy yo usaría comillas simples en caso de que agregue otras cosas más adelante que necesitarán una ejecución diferida:PROMPT_COMMAND='shell_speech'/bin/bashlugar de un simplebash... (buena práctica en caso de que alguien ponga otro golpe en su camino antes/bin...). Incluso debería sugerirle un archivo aleatorio temporal en el/tmpdirectorio en lugar de quetest.waven su hogar ... ps> eche un vistazo a la fortuna .bashes una forma de obtener más. Enlaces, guiones, permisos de escritura en directorios abiertos, compartidos ... Además, puede que se lo pierda, los guiones pueden sobrevivir a su primer objetivo o propietario ... y usted (u otra persona) puede usarlos después de un tiempo suficiente no recuerda todos los comandos escritos en su interior (lo hacemos para eso), bajo diferentes condiciones. Para poner\bin\bashcon el camino explícito es una buena práctica. Para evitar hacerlo ... un riesgo.