Utilisateur:Laura Conant : Différence entre versions
Ligne 4 : | Ligne 4 : | ||
Nous avons tous en tête la voix plate de google ou Siri quand il en vient à faire parler une machine. | Nous avons tous en tête la voix plate de google ou Siri quand il en vient à faire parler une machine. | ||
− | Je me suis d'abord atteler à essayer de faire parler le terminal : | + | ===Je me suis d'abord atteler à essayer de faire parler le terminal :=== |
'''say "..."'''<br> | '''say "..."'''<br> | ||
Puis j'ai ensuite joué avec les différentes voix que l'on peut avoir sur Mac. On peut disposer de trois voix française, '''Thomas''', '''Audrey''' et '''Aurélie'''. Cette limitation est intéressante compte tenu du nombre de personnes importantes que comporte cet opéra. Pour changer de voix, il faut exécuter la commande : <br> | Puis j'ai ensuite joué avec les différentes voix que l'on peut avoir sur Mac. On peut disposer de trois voix française, '''Thomas''', '''Audrey''' et '''Aurélie'''. Cette limitation est intéressante compte tenu du nombre de personnes importantes que comporte cet opéra. Pour changer de voix, il faut exécuter la commande : <br> | ||
Ligne 16 : | Ligne 16 : | ||
Un extrait du code réalisé :<br> | Un extrait du code réalisé :<br> | ||
<pre> | <pre> | ||
− | #!/bin/bash | + | #!/bin/bash |
− | echo -e "Papageno | + | echo -e "Papageno |
− | À l'aide ! à l'aide ! Il vient sur mes traces ! | + | À l'aide ! à l'aide ! Il vient sur mes traces ! |
− | À l'aide ! à l'aide ! Je suis sans défense ! | + | À l'aide ! à l'aide ! Je suis sans défense ! |
− | Le monstre s'approche ! | + | Le monstre s'approche ! |
− | Il rampe vers moi | + | Il rampe vers moi |
− | O Dieux puissants ! de grâce ! | + | O Dieux puissants ! de grâce ! |
− | O Dieux puissants ! pitié pour moi" | + | O Dieux puissants ! pitié pour moi" |
− | say -v "Thomas" "À l'aide ! à l'aide ! Il vient sur mes traces ! | + | say -v "Thomas" "À l'aide ! à l'aide ! Il vient sur mes traces ! |
− | À l'aide ! à l'aide ! Je suis sans défense ! | + | À l'aide ! à l'aide ! Je suis sans défense ! |
− | Le monstre s'approche ! | + | Le monstre s'approche ! |
− | Il rampe vers moi | + | Il rampe vers moi |
− | O Dieux puissants ! de grâce ! | + | O Dieux puissants ! de grâce ! |
− | O Dieux puissants ! pitié pour moi" | + | O Dieux puissants ! pitié pour moi" |
− | echo -e "\033[96mLes Trois dames | + | echo -e "\033[96mLes Trois dames |
− | Monstre ! péris frappé par nous ! | + | Monstre ! péris frappé par nous ! |
− | Victoire la Victoire ! | + | Victoire la Victoire ! |
− | Le monstre est mort, nous triomphons ! | + | Le monstre est mort, nous triomphons ! |
− | Vaillantes armes, grâce à vous ! | + | Vaillantes armes, grâce à vous ! |
− | Ah ! charmant jouvenceau, doux et beau... | + | Ah ! charmant jouvenceau, doux et beau... |
− | Oui, beau comme jamais je n'en vis ! | + | Oui, beau comme jamais je n'en vis ! |
− | Oui, oui, beau comme une image ! | + | Oui, oui, beau comme une image ! |
− | Ah ! si mon cœur devait aimer, | + | Ah ! si mon cœur devait aimer, |
− | C'est lui qu'il choisirait | + | C'est lui qu'il choisirait |
− | Allons retrouver notre Reine. | + | Allons retrouver notre Reine. |
− | Courons vers notre souveraine ! | + | Courons vers notre souveraine ! |
− | Peut-être ce garçon charmant | + | Peut-être ce garçon charmant |
− | Saura calmer son noir tourment ? | + | Saura calmer son noir tourment ? |
− | Allez donc et dites-le lui, | + | Allez donc et dites-le lui, |
− | je resterai ici entre temps !" | + | je resterai ici entre temps !" |
− | say -v "Audrey" "Monstre ! péris frappé par nous ! | + | say -v "Audrey" "Monstre ! péris frappé par nous ! |
− | Victoire la Victoire ! | + | Victoire la Victoire ! |
− | Le monstre est mort, nous triomphons ! | + | Le monstre est mort, nous triomphons ! |
− | Vaillantes armes, grâce à vous ! | + | Vaillantes armes, grâce à vous ! |
− | Ah ! charmant jouvenceau, doux et beau... | + | Ah ! charmant jouvenceau, doux et beau... |
− | Oui, beau comme jamais je n'en vis ! | + | Oui, beau comme jamais je n'en vis ! |
− | Oui, oui, beau comme une image ! | + | Oui, oui, beau comme une image ! |
− | Ah ! si mon cœur devait aimer, | + | Ah ! si mon cœur devait aimer, |
− | C'est lui qu'il choisirait | + | C'est lui qu'il choisirait |
− | Allons retrouver notre Reine. | + | Allons retrouver notre Reine. |
− | Courons vers notre souveraine ! | + | Courons vers notre souveraine ! |
− | Peut-être ce garçon charmant | + | Peut-être ce garçon charmant |
− | Saura calmer son noir tourment ? | + | Saura calmer son noir tourment ? |
− | Allez donc et dites-le lui, | + | Allez donc et dites-le lui, |
− | je resterai ici entre temps !"< | + | je resterai ici entre temps !" |
+ | </pre> | ||
+ | ===J'ai ensuite travailler à insérer une animation pour une entrée dans le Livret un de l'opéra :=== | ||
+ | <pre> | ||
+ | #!/bin/bash | ||
+ | |||
+ | DATA[0]=" ##### /" | ||
+ | DATA[1]=" ###### / #" | ||
+ | DATA[2]=" /# / / ### #" | ||
+ | DATA[3]=" / / / # ## ##" | ||
+ | DATA[4]=" / / ## ##" | ||
+ | DATA[5]=" ## ## ### ## ### ### /### /## ######## ## #### ### /###" | ||
+ | DATA[6]=" ## ## ### ## ### ###/ #### / / ### ######## ## ### / ###/ #### /" | ||
+ | DATA[7]=" ## ## ## ## ### ## ###/ / ### ## ## ###/ ## ###/" | ||
+ | DATA[8]=" ## ## ## ## ## ## ## ### ## ## ## ## ##" | ||
+ | DATA[9]=" ## ## ## ## ## ## ######## ## ## ## ## ##" | ||
+ | DATA[10]=" # ## ## ## ## ## ####### ## ## ## ## ##" | ||
+ | DATA[11]=" / ## ## ## ## ## ## ## ## ## ##" | ||
+ | DATA[12]=" /##/ / ## ## / ## #### / ## ## /# ## ##" | ||
+ | DATA[13]=" / ############/ ### / ######/ ### ######/ ## ######/ ## ### ###" | ||
+ | DATA[14]="/ ######### ##/ ##### ### ##### ## ##### ## ### ###" | ||
+ | |||
+ | |||
+ | # virtual coordinate system is X*Y ${#DATA} * 15 | ||
+ | |||
+ | REAL_OFFSET_X=0 | ||
+ | REAL_OFFSET_Y=0 | ||
+ | |||
+ | draw_char() { | ||
+ | V_COORD_X=$1 | ||
+ | V_COORD_Y=$2 | ||
+ | |||
+ | tput cup $((REAL_OFFSET_Y + V_COORD_Y)) $((REAL_OFFSET_X + V_COORD_X)) | ||
+ | |||
+ | printf %c ${DATA[V_COORD_Y]:V_COORD_X:1} | ||
+ | } | ||
+ | |||
+ | |||
+ | trap 'exit 1' INT TERM | ||
+ | trap 'tput setaf 9; tput cvvis; clear' EXIT | ||
+ | |||
+ | tput civis | ||
+ | clear | ||
+ | |||
+ | while :; do | ||
+ | |||
+ | for ((c=1; c <= 7; c++)); do | ||
+ | tput setaf $c | ||
+ | for ((x=0; x<${#DATA[0]}; x++)); do | ||
+ | for ((y=0; y<=14; y++)); do | ||
+ | draw_char $x $y | ||
+ | done | ||
+ | done | ||
+ | done | ||
+ | |||
+ | done | ||
+ | </pre> |
Version du 9 novembre 2018 à 09:54
Sommaire
#01 Parler à la machine
Die Zauberflöte für ein Computerterminal
Faire réciter un opéra au terminal de l'ordinateur, essayer de rendre le lyrisme et les interactions de dialogues via l'ordinateur, qui n'a apriori pas les qualités adéquate pour ce genre d'exercice.
Nous avons tous en tête la voix plate de google ou Siri quand il en vient à faire parler une machine.
Je me suis d'abord atteler à essayer de faire parler le terminal :
say "..."
Puis j'ai ensuite joué avec les différentes voix que l'on peut avoir sur Mac. On peut disposer de trois voix française, Thomas, Audrey et Aurélie. Cette limitation est intéressante compte tenu du nombre de personnes importantes que comporte cet opéra. Pour changer de voix, il faut exécuter la commande :
say -v "Audrey" "..."
say -V "Thomas" "..."
say -v "Aurelie" "..."
Afin de départager les personnages compte tenu du nombre limité de voix, j'ai ensuite appliqué des couleurs pour chaque personnage :
echo -e "/033[91m..."
echo -e "/033m" (pour enlever la couleur appliquée en fin de réplique)
Un extrait du code réalisé :
#!/bin/bash echo -e "Papageno À l'aide ! à l'aide ! Il vient sur mes traces ! À l'aide ! à l'aide ! Je suis sans défense ! Le monstre s'approche ! Il rampe vers moi O Dieux puissants ! de grâce ! O Dieux puissants ! pitié pour moi" say -v "Thomas" "À l'aide ! à l'aide ! Il vient sur mes traces ! À l'aide ! à l'aide ! Je suis sans défense ! Le monstre s'approche ! Il rampe vers moi O Dieux puissants ! de grâce ! O Dieux puissants ! pitié pour moi" echo -e "\033[96mLes Trois dames Monstre ! péris frappé par nous ! Victoire la Victoire ! Le monstre est mort, nous triomphons ! Vaillantes armes, grâce à vous ! Ah ! charmant jouvenceau, doux et beau... Oui, beau comme jamais je n'en vis ! Oui, oui, beau comme une image ! Ah ! si mon cœur devait aimer, C'est lui qu'il choisirait Allons retrouver notre Reine. Courons vers notre souveraine ! Peut-être ce garçon charmant Saura calmer son noir tourment ? Allez donc et dites-le lui, je resterai ici entre temps !" say -v "Audrey" "Monstre ! péris frappé par nous ! Victoire la Victoire ! Le monstre est mort, nous triomphons ! Vaillantes armes, grâce à vous ! Ah ! charmant jouvenceau, doux et beau... Oui, beau comme jamais je n'en vis ! Oui, oui, beau comme une image ! Ah ! si mon cœur devait aimer, C'est lui qu'il choisirait Allons retrouver notre Reine. Courons vers notre souveraine ! Peut-être ce garçon charmant Saura calmer son noir tourment ? Allez donc et dites-le lui, je resterai ici entre temps !"
J'ai ensuite travailler à insérer une animation pour une entrée dans le Livret un de l'opéra :
#!/bin/bash DATA[0]=" ##### /" DATA[1]=" ###### / #" DATA[2]=" /# / / ### #" DATA[3]=" / / / # ## ##" DATA[4]=" / / ## ##" DATA[5]=" ## ## ### ## ### ### /### /## ######## ## #### ### /###" DATA[6]=" ## ## ### ## ### ###/ #### / / ### ######## ## ### / ###/ #### /" DATA[7]=" ## ## ## ## ### ## ###/ / ### ## ## ###/ ## ###/" DATA[8]=" ## ## ## ## ## ## ## ### ## ## ## ## ##" DATA[9]=" ## ## ## ## ## ## ######## ## ## ## ## ##" DATA[10]=" # ## ## ## ## ## ####### ## ## ## ## ##" DATA[11]=" / ## ## ## ## ## ## ## ## ## ##" DATA[12]=" /##/ / ## ## / ## #### / ## ## /# ## ##" DATA[13]=" / ############/ ### / ######/ ### ######/ ## ######/ ## ### ###" DATA[14]="/ ######### ##/ ##### ### ##### ## ##### ## ### ###" # virtual coordinate system is X*Y ${#DATA} * 15 REAL_OFFSET_X=0 REAL_OFFSET_Y=0 draw_char() { V_COORD_X=$1 V_COORD_Y=$2 tput cup $((REAL_OFFSET_Y + V_COORD_Y)) $((REAL_OFFSET_X + V_COORD_X)) printf %c ${DATA[V_COORD_Y]:V_COORD_X:1} } trap 'exit 1' INT TERM trap 'tput setaf 9; tput cvvis; clear' EXIT tput civis clear while :; do for ((c=1; c <= 7; c++)); do tput setaf $c for ((x=0; x<${#DATA[0]}; x++)); do for ((y=0; y<=14; y++)); do draw_char $x $y done done done done