|
|
Ligne 1 : |
Ligne 1 : |
− | ='''#01 Parler à la machine'''= | + | =Scan to OCR= |
− | == ''Die Zauberflöte für ein Computerterminal'' == | + | ==Comment une machine peut-elle reconnaître du texte== |
− | 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. <br>
| + | ==Traitement d'un PDF avec Tesseract== |
− | Nous avons tous en tête la voix plate de google ou Siri quand il en vient à faire parler une machine.
| + | ===''Scans et sortie du texte''=== |
− | | + | ===''Poster''=== |
− | ===Faire parler le terminal===
| |
− | '''say "..."'''<br>
| |
− | J'ai 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>
| |
− | '''say -v "Audrey" "..."'''<br>
| |
− | '''say -V "Thomas" "..."'''<br>
| |
− | '''say -v "Aurelie" "..."'''<br>
| |
− | Afin de départager les personnages compte tenu du nombre limité de voix, j'ai ensuite appliqué des couleurs pour chaque personnage : <br>
| |
− | '''echo -e "/033[91m..."'''<br>
| |
− | '''echo -e "/033m" (pour enlever la couleur appliquée en fin de réplique)'''<br>
| |
− | | |
− | Un extrait du code réalisé :<br>
| |
− | <pre>
| |
− | #!/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 !"
| |
− | </pre>
| |
− | ===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>
| |
− | <font color=red size=2>'''Livret un ne s'affiche pas en entier quand je lance le code, juste une partie du L, à corriger'''</font>.
| |
− | ===Passage à l'imprimé et liaison au numérique===
| |
− | Le but est de créer une interaction entre l'objet imprimé et numérique afin de créer comme une édition augmentée, contenant tout le code nécessaire pour faire tourner l'opéra sur un terminal d'ordinateur.<br>
| |
− | Amorce du projet d'édition : <br>
| |
− | [[Fichier:Couverture.jpg|centre|270px|]]
| |
− | <br>
| |
− | [[Fichier:livretun.jpg|centre|550px|]]
| |
− | <br>
| |
− | [[Fichier:Livretplanches-5.jpg|centre|550px|]]
| |
− | <br>
| |
− | '''...'''
| |
− | ===Étapes suivantes=== | |
− | '''•Inclure plus d'animations<br>'''
| |
− | Structure du premier livret de l'opéra :<br>
| |
− | <pre>
| |
− | OUVERTURE
| |
− | PREMIER ACTE
| |
− | N°1 INTRO
| |
− | N°2 AIR
| |
− | N°3 AIR
| |
− | N°4 RÉCITATIF ET AIR
| |
− | N°5 QUINTETTE
| |
− | N°6 TRIO
| |
− | N°7 DUO
| |
− | N°8 FINALE
| |
− | </pre>
| |
− | '''•Essayer de faire en sorte que deux ordinateurs se répondent'''<br>
| |
− | Début de recherche :<br>
| |
− | <pre>
| |
− | --> se connecter en ssh à un autre terminal
| |
− | --> commande touch dans un des ordis
| |
− | --> mettre une partie du dialogue en echo et say avec les animations
| |
− | --> dans l'autre ordi (celui qui s'est connecté à l'autre) commande touch
| |
− | --> tail -f /var/adm/[nomdufichieràsurveiller] --> est ce que cette commande marche pendant l'excution d'un programme ou juste quand on rentre du contenu dans un fichier ?
| |
− | (commande watch plutot?)
| |
− | --> Le but serait quand surveillant l'ordre d'execution des commandes, l'autre ordinateur sache quand exécuter les siennes.
| |
− | --> explication en code qui veut rien dire :
| |
− | (code du côté de ordinateur 2 dans nano)
| |
− | #!bin/bash
| |
− |
| |
− | tail (ou watch?) fichier.sh in ordinateur1 --> tail -f /var/adm/fichier.sh
| |
− |
| |
− | do
| |
− | when ordinateur1 echo "Coucou"
| |
− | then ordinateur2 echo "Coucou bis"
| |
− | ...
| |
− | done
| |
− | </pre>
| |
− | | |
− | '''•Rendre l'affichage des paroles moins systématique'''<br>
| |
− | '''•Faire chanter l'ordinateur'''<br>
| |
− | Début de recherche :<br>
| |
− | <pre>
| |
− | Commande trouvée pour le chant : say -v good (voix aigüe et gai)
| |
− | say -v bad (voix grave sombre)
| |
− | say -v cellos (?)
| |
− | </pre>
| |
− | [https://www.youtube.com/watch?v=VBNh-ZGK3OY Vidéo de démonstration]
| |
− | | |
− | <pre>
| |
− | Changer le volume : sascript -e "set Volume [lenombrequ'onveut]"
| |
− | ou ?
| |
− | Increase volume by 5%
| |
− | amixer -D pulse sset Master 5%+
| |
− | Decrease volume by 5%
| |
− | amixer -D pulse sset Master 5%-
| |
− | Set volume to 50%
| |
− | amixer -D pulse sset Master 50%
| |
− | ou ?
| |
− | Mute your Mac:
| |
− | this turns volume to 0, effectively muting the Mac speaker output:
| |
− | sudo osascript -e "set Volume 0"
| |
− | Maximum volume:
| |
− | This sets the volume to the highest it will go:
| |
− | sudo osascript -e "set Volume 10"
| |
− | Middle-level volume:
| |
− | This is about midrange audio output:
| |
− | sudo osascript -e "set Volume 5"
| |
− | </pre>
| |
− | | |
− | ===Créer un dialogue entre deux ordinateurs===
| |
− | ====en utilisant l'heure====
| |
− | [[Fichier:Atfail.jpg|vignette|Essaie de la commande "at" qui permet de programmer une action à une heure précise, l'ordinateur refuse]]
| |