©
. Document créé le 3 août 2010 , mis à jour le 3 août 2010.Un seul arbre qui tombe fait plus de bruit qu'une forêt qui pousse. Proverbe africain
Accueil du site > Astuces > MacOSX > Composer un dialogue aléatoire
Script totalement inutile, jacasserie.scpt illustre l’utilisation de la commande AppleScript say.
Pour mémo, cette commande say existe également en ligne de commande, sous Terminal, dans une version proposant moins d’options.
En AppleScript, say peut être accompagné de - entre autres : using, speaking rate, pitch, modulation, volume et saving. Pour en savoir plus sur ces options, consulter la bibliothèque StandardAdditions via l’Editeur AppleScript.
Le script jacasserie.scpt construit des mots en sélectionnant des lettres au hasard. Dialogue entre deux personnes.
Pour combler les longues nuits de solitude - peut-être - quand la radio ne fonctionne plus.
(*
Dialogue aléatoire
http//www.quesaco.org
Copyright © 2010 Christian Paulus
Licence GPL3
*)
property nb_tirades : (30 * 3)
property max_len : 15
property max_len_phrase : 50
property consonnes : "bcdfghjklmnpqrstvwxyz"
--property voyelles : "aàeéèêiouüy"
property voyelles : "aeiouy"
property ponctuations : ",?!"
property vox : {"Agnes", "Kathy", "Princess", "Vicki", "Victoria", ¬
"Alex", "Bruce", "Fred", "Junior", "Ralph", ¬
"Whisper", "Cellos", "Bells", "Bahh", "Deranged", "Albert", "Hysterical", "Trinoids", "Zarvox"}
set max_c to count of consonnes
set max_v to count of voyelles
set max_p to count of ponctuations
set ok_punct to false
set cur_len to 0
set less_punct to 0
set type to 3
set alice to item (random number from 1 to 5) of vox
set bernard to item (random number from 5 to 10) of vox
set cur_vox to alice
repeat nb_tirades times
set res to ""
set len_tirade to (random number from 1 to max_len_phrase)
repeat len_tirade times
if (type = 1) then
set type to (random number from 2 to 3)
else if (type = 2) then
set type to (random number from 2 to 3)
if (type = 2) then set type to 1
else if (type = 3) then
set type to (random number from 1 to 2)
end if
set c to ""
if (type = 1) then
set n to my (random number from 1 to max_c)
set c to character n of consonnes
set cur_len to cur_len + 1
set ok_punct to true
else if (type = 2) then
set n to my (random number from 1 to max_v)
set c to character n of voyelles
set cur_len to cur_len + 1
set ok_punct to true
else if (ok_punct) then
if (less_punct ≥ 8) then
set n to my (random number from 1 to max_p)
set c to character n of ponctuations & " "
set cur_len to 0
set ok_punct to false
set less_punct to 0
else
set less_punct to less_punct + 1
end if
end if
if (cur_len ≥ max_len) then
set c to c & " "
set ok_punct to false
set cur_len to 0
end if
if ((count of c) > 0) then
set res to res & c
set cur_len to cur_len + 1
end if
end repeat -- len_tirade
log cur_vox
if (cur_vox is alice) then
say res using alice speaking rate 400
set cur_vox to bernard
else
say res using bernard speaking rate 400
set cur_vox to alice
end if
end repeat -- nb_tirades
Et le fichier compressé :
Pour les nostalgiques du Klingon, voir Google en Klingon.
Les forums sont fermés.