Procházet zdrojové kódy

Les repliques sont maintenant stockée de manière compact en opus et converties au vol en wav.

Jean-Francois Burdet před 7 roky
rodič
revize
c4ffb50131
42 změnil soubory, kde provedl 18 přidání a 3 odebrání
  1. 1 1
      README.md
  2. 17 2
      lenny.py
  3. binární
      replies/random/atchoum.opus
  4. binární
      replies/random/atchoum.wav
  5. binární
      replies/random/baillement_mal_dormi.opus
  6. binární
      replies/random/baillement_mal_dormi.wav
  7. binární
      replies/random/bruit_chien.opus
  8. binární
      replies/random/bruit_chien.wav
  9. binární
      replies/random/ca_va_me_couter_combien.opus
  10. binární
      replies/random/ca_va_me_couter_combien.wav
  11. binární
      replies/random/cest_quoi_votre_nom_deja.opus
  12. binární
      replies/random/cest_quoi_votre_nom_deja.wav
  13. binární
      replies/random/entends_pas_bien.opus
  14. binární
      replies/random/entends_pas_bien.wav
  15. binární
      replies/random/me_semble_deja_appelle.opus
  16. binární
      replies/random/me_semble_deja_appelle.wav
  17. binární
      replies/random/niece_jeter_un_oeil.opus
  18. binární
      replies/random/niece_jeter_un_oeil.wav
  19. binární
      replies/random/on_ma_fait_la_morale.opus
  20. binární
      replies/random/on_ma_fait_la_morale.wav
  21. binární
      replies/random/oui_oui_cest_ca.opus
  22. binární
      replies/random/oui_oui_cest_ca.wav
  23. binární
      replies/random/oui_tres_bien_oui.opus
  24. binární
      replies/random/oui_tres_bien_oui.wav
  25. binární
      replies/random/rappeler_nom_entreprise.opus
  26. binární
      replies/random/rappeler_nom_entreprise.wav
  27. binární
      replies/random/satane_telephone_entends_rien.opus
  28. binární
      replies/random/satane_telephone_entends_rien.wav
  29. binární
      replies/random/toutafait.opus
  30. binární
      replies/random/toutafait.wav
  31. binární
      replies/random/vous_etes_sympathique.opus
  32. binární
      replies/random/vous_etes_sympathique.wav
  33. binární
      replies/random/vous_pouvez_repeter.opus
  34. binární
      replies/random/vous_pouvez_repeter.wav
  35. binární
      replies/start_sequence/00_allo.opus
  36. binární
      replies/start_sequence/00_allo.wav
  37. binární
      replies/start_sequence/01_quoi_jai_pas_compris.opus
  38. binární
      replies/start_sequence/01_quoi_jai_pas_compris.wav
  39. binární
      replies/start_sequence/02_oui_oui_cest_ca.opus
  40. binární
      replies/start_sequence/02_oui_oui_cest_ca.wav
  41. binární
      replies/start_sequence/03_oui_tres_bien_oui.opus
  42. binární
      replies/start_sequence/03_oui_tres_bien_oui.wav

+ 1 - 1
README.md

@@ -29,7 +29,7 @@ les logiciels suivants :
 L'installation décrite ci-dessous est basée sur Arch Linux, avec une installation serveur:
 
 ```
-sudo pacman -S python2 lame linphone libxslt
+sudo pacman -S python2 lame linphone libxslt opus opus-tools
 sudo useradd -m  -s /bin/bash callblocker
 sudo su - callblocker
 git clone https://dev.burdet.ch/git/jfburdet/itslenny.git

+ 17 - 2
lenny.py

@@ -59,6 +59,7 @@ class RepliesFactory(object):
         self._start_replies = None
         self._random_replies = None
         self._pos = None
+        self._latest = None
         self.reset()
 
     def reset(self):
@@ -67,11 +68,20 @@ class RepliesFactory(object):
         self.reset_start()
 
     def reset_start(self):
-        self._start_replies = glob.glob(self._base_path + "/start_sequence/*.wav")
+        self._start_replies = glob.glob(self._base_path + "/start_sequence/*.opus")
         self._start_replies.sort()
 
     def reset_random(self):
-        self._random_replies = glob.glob(self._base_path + "/random/*.wav")
+        self._random_replies = glob.glob(self._base_path + "/random/*.opus")
+
+    def clear_latest(self):
+        os.remove(self._latest)
+
+    @staticmethod
+    def convert_from_opus(opus_fname):
+        wav_file = tempfile.NamedTemporaryFile(delete=False, suffix=".wav").name
+        subprocess.call("opusdec " + opus_fname + " " + wav_file, shell=True)
+        return wav_file
 
     def next(self):
         # On commence par la sequence du début
@@ -85,6 +95,9 @@ class RepliesFactory(object):
             result = random.choice(self._random_replies)
             self._random_replies.remove(result)
 
+        result = self.convert_from_opus(result)
+
+        self._latest = result
         return result
 
 
@@ -161,6 +174,8 @@ class SipConnection(object):
             sleep(duration)
             core.play_file = ""
 
+            self._replies.clear_latest()
+
             # On laisse l'autre l'occassion de reparler
             self._conversation.status = ConversationStatus.WAITFORANSWER
 

binární
replies/random/atchoum.opus


binární
replies/random/atchoum.wav


binární
replies/random/baillement_mal_dormi.opus


binární
replies/random/baillement_mal_dormi.wav


binární
replies/random/bruit_chien.opus


binární
replies/random/bruit_chien.wav


binární
replies/random/ca_va_me_couter_combien.opus


binární
replies/random/ca_va_me_couter_combien.wav


binární
replies/random/cest_quoi_votre_nom_deja.opus


binární
replies/random/cest_quoi_votre_nom_deja.wav


binární
replies/random/entends_pas_bien.opus


binární
replies/random/entends_pas_bien.wav


binární
replies/random/me_semble_deja_appelle.opus


binární
replies/random/me_semble_deja_appelle.wav


binární
replies/random/niece_jeter_un_oeil.opus


binární
replies/random/niece_jeter_un_oeil.wav


binární
replies/random/on_ma_fait_la_morale.opus


binární
replies/random/on_ma_fait_la_morale.wav


binární
replies/random/oui_oui_cest_ca.opus


binární
replies/random/oui_oui_cest_ca.wav


binární
replies/random/oui_tres_bien_oui.opus


binární
replies/random/oui_tres_bien_oui.wav


binární
replies/random/rappeler_nom_entreprise.opus


binární
replies/random/rappeler_nom_entreprise.wav


binární
replies/random/satane_telephone_entends_rien.opus


binární
replies/random/satane_telephone_entends_rien.wav


binární
replies/random/toutafait.opus


binární
replies/random/toutafait.wav


binární
replies/random/vous_etes_sympathique.opus


binární
replies/random/vous_etes_sympathique.wav


binární
replies/random/vous_pouvez_repeter.opus


binární
replies/random/vous_pouvez_repeter.wav


binární
replies/start_sequence/00_allo.opus


binární
replies/start_sequence/00_allo.wav


binární
replies/start_sequence/01_quoi_jai_pas_compris.opus


binární
replies/start_sequence/01_quoi_jai_pas_compris.wav


binární
replies/start_sequence/02_oui_oui_cest_ca.opus


binární
replies/start_sequence/02_oui_oui_cest_ca.wav


binární
replies/start_sequence/03_oui_tres_bien_oui.opus


binární
replies/start_sequence/03_oui_tres_bien_oui.wav