diff --git a/Jarvis.py b/Jarvis.py
index d50703ade33f04c77ecc25ebde8f6c0a4ec8b100..0d1389b2869139ed96f35c22557f3493b5d7ffaf 100755
--- a/Jarvis.py
+++ b/Jarvis.py
@@ -12,6 +12,16 @@ Projet Jarvis
 from myimports import *
 
 
+def tts_custom(text, file, lang='fr-CA'):  # plus rapide que gtts mais meme resultat
+    with open(file, 'w') as f:
+        f.write('')  # on vide le fichier avant
+    with open(file, 'ab') as f:
+        for i in text.split('. '):
+            params = {'ie': 'UTF-8', 'q': i + '.', 'tl': 'fr-CA', 'client': 'gtx'}
+            r = requests.get(url, params=params)
+            f.write(r.content)
+
+
 def var_name(var):
     """return the name of the variable var"""
     for name, value in globals().items():
@@ -42,6 +52,7 @@ def get_speech(message="entrée"):
                 entre = r.recognize_google(audio, language="fr")
                 understand = True
                 print(entre)
+                os.system('mpg321 sounds/compris.mp3 2>/dev/null')
             except:
                 print("[!] impossible de comprendre votre charabia [!]")
                 entre = ''
@@ -71,8 +82,9 @@ def parle(texte, save=True, lang='fr-CA'):
             line_no = test_list.index(texte.replace('\n', ''))
         except ValueError:
             line_no = len(lines) - 1 if len(lines) != 0 else 0
-            tts = gTTS(text=texte, lang=lang)
-            tts.save("saved_voice/{}.mp3".format(line_no))
+            # tts = gTTS(text=texte, lang=lang)
+            # tts.save("saved_voice/{}.mp3".format(line_no))
+            tts_custom(texte, "saved_voice/{}.mp3".format(line_no), lang=lang)
             if save:
                 with open("database.txt", 'a') as f:
                     f.writelines(['{}\n|'.format(texte)])
@@ -239,19 +251,6 @@ def message():
         parle("l'Envoi du mail est annulé.")
 
 
-def wiki(texte):
-    global topics
-    topics = []
-    try:
-        page = wikipedia.page(texte)
-        texte1 = page.summary
-        parle(texte1.encode().decode('utf-8').encode('cp850', 'ignore').decode('cp850'))
-    except:
-        topics = wikipedia.search(texte)
-        texte1 = "Vous voulez dire : " + ", ".join(topics)
-        parle(texte1.encode().decode('utf-8').encode('cp850', 'ignore').decode('cp850'))
-
-
 def location(entre):
     '''ouvre maps pour montrer un lieu'''
     if "ou est " in entre:
@@ -316,6 +315,7 @@ def tests(entre):
 
     # meteo
     if "meteo" in entre:
+        parle('Une petite minute.')
         meteo(entre)
 
     # verrouillage jarvis
@@ -343,10 +343,10 @@ def tests(entre):
     if "cherche" in entre and "sur wiki" in entre:
         texte = " ".join((entre.replace("cherche", "").replace("sur wikipedia", "")).split(" "))
         parle("je vais chercher :" + texte)
-        wiki(texte)
+        parle(usefull.wiki(texte))
     elif "cherche" in entrepreced and "sur wikipedia" in entrepreced and topics != []:
         try:
-            wiki(entre)
+            parle(usefull.wiki(entre))
         except:
             pass
 
@@ -451,9 +451,11 @@ def tests(entre):
             parle("je n'ai pas compris.")
         else:
             print("je n'ai pas compris")
+            os.system('mpg321 sounds/pascompris.mp3 2>/dev/null')
         if not currently_playing:
             dire_un_truc_en_mode_random(verbosity)
         compris = 0
+
     entrepreced = entre
     if merci == 0:
         comprispreced = compris
diff --git a/README.md b/README.md
index f275a8067f6502a4846c22868419f2c270447920..7f39699be83e1896c254f97cf12d5978b82f7b46 100644
--- a/README.md
+++ b/README.md
@@ -4,14 +4,23 @@ Mon Jarvis pour windows et linux (peut-être un truc sur android aussi :°°)
 
 # INSTALLATION
 - debian :
-    * `sudo apt install python3 python3-pyaudio python3-pip`
-    * `git clone https://git.iiens.net/dubard2018/jarvis.git cd jarvis/`
-    * `pip3 install -r requirements.txt`
-    * `chmod +x jarvis.py`
+    > * `sudo apt install python3 python3-pyaudio python3-pip mpg321`
+    > * `git clone https://git.iiens.net/dubard2018/jarvis.git cd jarvis/`
+    > * `pip3 install -r requirements.txt`
+    > * `chmod +x jarvis.py`
 
 # USE
 - debian :
-	* `./jarvis.py`
+	> * `./jarvis.py`
+
+# ISSUES
+## ALSA lib pcm.c:7843:(snd_pcm_recover) underrun occurred
+
+Dans /etc/pulse/daemon.conf décommenter et modifier ces lignes :
+	> * `default-fragments = 5`
+	> * `default-fragment-size-msec = 2`
+
+----
 
 # TODOLIST:
 - lit le contenu affiché à l'écran 
@@ -21,10 +30,33 @@ Mon Jarvis pour windows et linux (peut-être un truc sur android aussi :°°)
 - parler du grand Chuck Norris !
 - quizz
 - migrer les fonctionalités usefull dans un package 'usefull'
-- petit son quand qqch est detecté
-- petit son quand qqch est compris
+
+----
 
 # CHANGELOG:
+
+## 16 aout 2019
+- nouveau système de TTS plus rapide par une simple requete http vers google translate 
+- petit son quand qqch est compris
+- petit son quand qqch n'est compris
+
+## 15 aout 2019
+- s'arrete de parler quand on l'interrompt
+- quand la voix est activée, ne répondre je n'ai pas compris que si la ou la requete précédente comprends le nom de l'ia
+- dit des trucs inutiles automatiquement de temps en temps selon un certain niveau de verbosité
+- raconter une intox
+- faire de la philosophie
+- jouer du pipo
+- envoie balader les gens qui lui font des compliments d'amour
+
+## 14 aout 2019
+- le tts des phrases de bases sont enregistées en local pour plus de rapidité et pour que ce soit possible de parler à l'ia, sans internet 
+
+## 13 aout 2019
+- speech_recognition module
+- gtts module
+
+## Initial release (old stuff : 2016)
 - donne l'heure 
 - donne la date complète
 - envoi un email complet (fonctionnalité compatible avec les boites mail : orange,gmail,yahoo,gmx,hotmail)
@@ -32,13 +64,6 @@ Mon Jarvis pour windows et linux (peut-être un truc sur android aussi :°°)
 - montre l'emplacement d'un endroit sur google map ('ou est ', 'ou se situe ', 'ou se trouve ', 'est ou ')
 - peut switcher entre le mode clavier ou le mode voix(experimental) ('mode voix','mode clavier')
 - execute une application (experimental)
-- nettoie la ram de l'ordinnateur
 - redémarre ou éteint le pc
 - donne la météo à un endroit choisi par l'utilisateur (ville pays)
-- s'arrete de parler quand on l'interrompt
-- quand la voix est activée, ne répondre je n'ai pas compris que si la ou la requete précédente comprends le nom de l'ia
-- dit des trucs inutiles automatiquement de temps en temps selon un certain niveau de verbosité
-- raconter une intox
-- faire de la philosophie
-- jouer du pipo
-- envoie balader les gens qui lui font des compliment d'amour
\ No newline at end of file
+
diff --git a/__pycache__/myimports.cpython-37.pyc b/__pycache__/myimports.cpython-37.pyc
index 04ece3e75896a92a0942dcafedb63d951a23c07b..2d11510bc55cdd6488361ac531e913d766618e09 100644
Binary files a/__pycache__/myimports.cpython-37.pyc and b/__pycache__/myimports.cpython-37.pyc differ
diff --git a/database.txt b/database.txt
index 6eab395bfabc17a55435a1d0d73237f81de28b1c..0f075d1dd5b1d8ea0ecc4b561f5be7d60e6d78c6 100644
--- a/database.txt
+++ b/database.txt
@@ -21,4 +21,9 @@ Bonjour !
 |J'avoue que je me suis déjà senti en meilleur forme. Que puis-je faire pour vous ?
 |je vais chercher :  tomoa narasaki
 |Tomoa Narasaki, né le 22 juin 1996, est un grimpeur japonais spécialiste du bloc.
+|t'inquiètes, je suis payé pour ça
+|Une petite minute.
+|Je vais très bien et vous ?
+|J'avoue que je me suis déjà senti en meilleur forme. et vous ?
+|je vais chercher :  paris  paris 
 |
\ No newline at end of file
diff --git a/myimports.py b/myimports.py
index 6d5992e8c7b3699413a25d76864987422936bfad..bc15bc15a5c1a421a504de8ba13f0bdc7a1bb519 100644
--- a/myimports.py
+++ b/myimports.py
@@ -17,12 +17,11 @@ import warnings
 import requests
 import mutagen.mp3
 import useless  # package de fonctions inutiles mais marrantes
-import pyttsx3
-# import usefull  # package de fonctions utiles
+# import pyttsx3
+import usefull  # package de fonctions utiles
 from googletrans import Translator
 translator = Translator()
 warnings.simplefilter('ignore', UserWarning)
-wikipedia.set_lang("fr")
 
 
 reconnaissance = str(input("[!] activer la reconnaissance vocale ? (y,N)>"))
@@ -51,14 +50,15 @@ else:
 
 pygame.init()
 pygame.mixer.init(frequency=24000)
-engine = pyttsx3.init()
-voice = engine.getProperty('voices')[26]  # the french voice
-engine.setProperty('voice', voice.id)
-
+# engine = pyttsx3.init()
+# voice = engine.getProperty('voices')[26]  # the french voice
+# engine.setProperty('voice', voice.id)
+url = "https://translate.google.com/translate_tts"
+topics = []
 r = sr.Recognizer()
 r.dynamic_energy_threshold = True
-r.pause_threshold = 0.5
-mic = sr.Microphone(0)
+r.pause_threshold = 0.3
+mic = sr.Microphone()
 jarvis = True  # défini si jarvis commence vérouillé ou pas
 mdp = "oracle02"  # défini le mdp de déverouillage de jarvis
 bot_name = "jarvis"  # défini le nom auquel répondra l'ia
@@ -91,4 +91,3 @@ fonctionnalités = [
 
 class BreakoutException(Exception):
     pass
-
diff --git a/saved_voice/23.mp3 b/saved_voice/23.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..432745db208803ba80c48f1e46ac97a479919112
Binary files /dev/null and b/saved_voice/23.mp3 differ
diff --git a/saved_voice/24.mp3 b/saved_voice/24.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..1ed3271d1a4ad668b02317ad88a98db29ff0c2b6
Binary files /dev/null and b/saved_voice/24.mp3 differ
diff --git a/saved_voice/25.mp3 b/saved_voice/25.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..84d6026961ba1e4b88b6a737976817aa5018041f
Binary files /dev/null and b/saved_voice/25.mp3 differ
diff --git a/saved_voice/26.mp3 b/saved_voice/26.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..92d00ed59718b21096ddb4f251bdc9e92bf3d137
Binary files /dev/null and b/saved_voice/26.mp3 differ
diff --git a/saved_voice/27.mp3 b/saved_voice/27.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..ce3f217f94035524de3ebb007528261f914352e9
Binary files /dev/null and b/saved_voice/27.mp3 differ
diff --git a/usefull/__init__.py b/usefull/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..8b556a262c2123d20593f95a80df0cf9edad9599
--- /dev/null
+++ b/usefull/__init__.py
@@ -0,0 +1,3 @@
+# __init__.py
+
+from .wiki import *
\ No newline at end of file
diff --git a/usefull/__pycache__/__init__.cpython-37.pyc b/usefull/__pycache__/__init__.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..251920414995ef2edc92307148ed559033c123c4
Binary files /dev/null and b/usefull/__pycache__/__init__.cpython-37.pyc differ
diff --git a/usefull/__pycache__/wiki.cpython-37.pyc b/usefull/__pycache__/wiki.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..1e703e7f49fe6736cb0021841e19c319004935fd
Binary files /dev/null and b/usefull/__pycache__/wiki.cpython-37.pyc differ
diff --git a/usefull/maps.py b/usefull/maps.py
new file mode 100644
index 0000000000000000000000000000000000000000..b06c35258f74b95aa88acf2eccc55eba9b1d9b9f
--- /dev/null
+++ b/usefull/maps.py
@@ -0,0 +1,18 @@
+#!/usr/bin/python3
+'''
+affiche une page maps avec un lieu rechercher
+
+TODO : affiche un itinéraire sur maps
+'''
+
+import requests
+import os
+
+
+def maps(location, dest=None):
+    location = ("+").join(location.split(" "))
+    os.system("firefox https://www.google.nl/maps/place/" + location + "/& >/dev/null")
+
+
+if __name__ == '__main__':
+    lieu, dest = input('entrez un lieu/une destination>').split('/')
diff --git a/usefull/wiki.py b/usefull/wiki.py
new file mode 100755
index 0000000000000000000000000000000000000000..22f1d3d5faf72ca8f42c20349c8cbcb58ee20a71
--- /dev/null
+++ b/usefull/wiki.py
@@ -0,0 +1,22 @@
+#!/usr/bin/python3
+# wikipedia
+
+import wikipedia
+
+
+def wiki(texte, lang='fr'):
+    global topics
+    wikipedia.set_lang(lang)
+    topics = []
+    try:
+        page = wikipedia.page(texte)
+        texte1 = page.summary
+        return texte1.encode().decode('utf-8').encode('cp850', 'ignore').decode('cp850')
+    except:
+        topics = wikipedia.search(texte)
+        texte1 = "Vous voulez dire : " + ", ".join(topics)
+        return texte1.encode().decode('utf-8').encode('cp850', 'ignore').decode('cp850')
+
+
+if __name__ == '__main__':
+    print(wiki(input('vas-y donne un truc a chercher sr le wiki ? : ')))