瀏覽代碼

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

Jean-Francois Burdet 7 年之前
父節點
當前提交
c4ffb50131
共有 42 個文件被更改,包括 18 次插入3 次删除
  1. 1 1
      README.md
  2. 17 2
      lenny.py
  3. 二進制
      replies/random/atchoum.opus
  4. 二進制
      replies/random/atchoum.wav
  5. 二進制
      replies/random/baillement_mal_dormi.opus
  6. 二進制
      replies/random/baillement_mal_dormi.wav
  7. 二進制
      replies/random/bruit_chien.opus
  8. 二進制
      replies/random/bruit_chien.wav
  9. 二進制
      replies/random/ca_va_me_couter_combien.opus
  10. 二進制
      replies/random/ca_va_me_couter_combien.wav
  11. 二進制
      replies/random/cest_quoi_votre_nom_deja.opus
  12. 二進制
      replies/random/cest_quoi_votre_nom_deja.wav
  13. 二進制
      replies/random/entends_pas_bien.opus
  14. 二進制
      replies/random/entends_pas_bien.wav
  15. 二進制
      replies/random/me_semble_deja_appelle.opus
  16. 二進制
      replies/random/me_semble_deja_appelle.wav
  17. 二進制
      replies/random/niece_jeter_un_oeil.opus
  18. 二進制
      replies/random/niece_jeter_un_oeil.wav
  19. 二進制
      replies/random/on_ma_fait_la_morale.opus
  20. 二進制
      replies/random/on_ma_fait_la_morale.wav
  21. 二進制
      replies/random/oui_oui_cest_ca.opus
  22. 二進制
      replies/random/oui_oui_cest_ca.wav
  23. 二進制
      replies/random/oui_tres_bien_oui.opus
  24. 二進制
      replies/random/oui_tres_bien_oui.wav
  25. 二進制
      replies/random/rappeler_nom_entreprise.opus
  26. 二進制
      replies/random/rappeler_nom_entreprise.wav
  27. 二進制
      replies/random/satane_telephone_entends_rien.opus
  28. 二進制
      replies/random/satane_telephone_entends_rien.wav
  29. 二進制
      replies/random/toutafait.opus
  30. 二進制
      replies/random/toutafait.wav
  31. 二進制
      replies/random/vous_etes_sympathique.opus
  32. 二進制
      replies/random/vous_etes_sympathique.wav
  33. 二進制
      replies/random/vous_pouvez_repeter.opus
  34. 二進制
      replies/random/vous_pouvez_repeter.wav
  35. 二進制
      replies/start_sequence/00_allo.opus
  36. 二進制
      replies/start_sequence/00_allo.wav
  37. 二進制
      replies/start_sequence/01_quoi_jai_pas_compris.opus
  38. 二進制
      replies/start_sequence/01_quoi_jai_pas_compris.wav
  39. 二進制
      replies/start_sequence/02_oui_oui_cest_ca.opus
  40. 二進制
      replies/start_sequence/02_oui_oui_cest_ca.wav
  41. 二進制
      replies/start_sequence/03_oui_tres_bien_oui.opus
  42. 二進制
      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
 

二進制
replies/random/atchoum.opus


二進制
replies/random/atchoum.wav


二進制
replies/random/baillement_mal_dormi.opus


二進制
replies/random/baillement_mal_dormi.wav


二進制
replies/random/bruit_chien.opus


二進制
replies/random/bruit_chien.wav


二進制
replies/random/ca_va_me_couter_combien.opus


二進制
replies/random/ca_va_me_couter_combien.wav


二進制
replies/random/cest_quoi_votre_nom_deja.opus


二進制
replies/random/cest_quoi_votre_nom_deja.wav


二進制
replies/random/entends_pas_bien.opus


二進制
replies/random/entends_pas_bien.wav


二進制
replies/random/me_semble_deja_appelle.opus


二進制
replies/random/me_semble_deja_appelle.wav


二進制
replies/random/niece_jeter_un_oeil.opus


二進制
replies/random/niece_jeter_un_oeil.wav


二進制
replies/random/on_ma_fait_la_morale.opus


二進制
replies/random/on_ma_fait_la_morale.wav


二進制
replies/random/oui_oui_cest_ca.opus


二進制
replies/random/oui_oui_cest_ca.wav


二進制
replies/random/oui_tres_bien_oui.opus


二進制
replies/random/oui_tres_bien_oui.wav


二進制
replies/random/rappeler_nom_entreprise.opus


二進制
replies/random/rappeler_nom_entreprise.wav


二進制
replies/random/satane_telephone_entends_rien.opus


二進制
replies/random/satane_telephone_entends_rien.wav


二進制
replies/random/toutafait.opus


二進制
replies/random/toutafait.wav


二進制
replies/random/vous_etes_sympathique.opus


二進制
replies/random/vous_etes_sympathique.wav


二進制
replies/random/vous_pouvez_repeter.opus


二進制
replies/random/vous_pouvez_repeter.wav


二進制
replies/start_sequence/00_allo.opus


二進制
replies/start_sequence/00_allo.wav


二進制
replies/start_sequence/01_quoi_jai_pas_compris.opus


二進制
replies/start_sequence/01_quoi_jai_pas_compris.wav


二進制
replies/start_sequence/02_oui_oui_cest_ca.opus


二進制
replies/start_sequence/02_oui_oui_cest_ca.wav


二進制
replies/start_sequence/03_oui_tres_bien_oui.opus


二進制
replies/start_sequence/03_oui_tres_bien_oui.wav