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