ligne13_print~20171217-172946.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. # -*- coding : utf8 -*-
  2. # Ligne 13
  3. # Léon Lenclos 2017 (leon.lenclos(à)gmail.com)
  4. # Workshop OLA#5 à Synesthésie
  5. # organisé par Bachir Soussi Chiadmi avec An Mertens
  6. import random
  7. from scipy.stats import norm
  8. import numpy as np
  9. from colors import bold
  10. # Preferences
  11. noise_duration = 50
  12. silence_duration = 300
  13. # prob_list contiendra la problaité qu'il y ai une altération sur Chaque
  14. # lettre durant le bruit.
  15. prob_list_range = np.arange(-2, 2, 4/noise_duration)
  16. prob_list = [y*2 for y in norm().pdf(prob_list_range)]
  17. # fonction principale
  18. def main():
  19. # Lire le fichier input.txt et le ranger dans text_in
  20. with open("input.txt") as f:
  21. text_in = f.read()
  22. # Parcourir le fichier et effectuer le procédé sur chaque carractere
  23. # en fonction de sa place dans le texte. Écrire le résultat dans text_out
  24. text_out = ""
  25. for i, c in enumerate(text_in):
  26. text_out += process(i, c)
  27. # print le contenu de text_out
  28. print(text_out)
  29. # Le procédé a appliquer sur chaque caractere en fonction de sa position.
  30. def process(index, char):
  31. # Je m'assure qu'il y ait un silence au début du texte
  32. index += silence_duration
  33. # Si je suis dans la période de bruit
  34. if index%(noise_duration+silence_duration) < noise_duration:
  35. # je tire au sort pour savoir si j'altère le caractere
  36. if random.random() < prob_list[index%(noise_duration+silence_duration)]:
  37. # j'altère le caractere avec un "v" ou un "r"
  38. char = bold(random.choice(["v", "r"]))
  39. # je retourne le caractere
  40. return char
  41. # je lance le programme
  42. main()