Example #1
0
    def _uk_pron(self):
        sqlVocab = SqliteVocabulary("studyenglish.db", "vocabulary")
        for item in self.items:
            print("_uk_pron", self.tree.item(item,"text"))
            values = self.tree.item(item,"values")
            
            sound_dir, = sqlVocab.get_uk_sound(values[0])
            if not sound_dir:
                uks = self._get_uks_link_mp3_cambridge(values[0], values[0], item)
                if not uks:
                    words = sqlVocab.query_words_with_sql("word = '{}'".format(values[0]))
                    wn_tag = self.penn_to_wn(words[0][3])
                    uks = self._get_uks_link_mp3_cambridge(values[0], WordNetLemmatizer().lemmatize(values[0],wn_tag), item)
                if uks:
                    sound_dir = self._download_mp3_cambridge(uks[0], 'uk_pron')
                    if os.path.exists(sound_dir):
                        sqlVocab.update_uk_sound(values[0], sound_dir)

            if os.path.exists(sound_dir):
                from pygame import mixer
                mixer.init()
                mixer.music.load(sound_dir)
                mixer.music.play()
                if len(self.items)>1:
                    import time
                    time.sleep(2) # delays for 2 seconds