Parse TextGrid word intervals.
        
        This method parses the word intervals in a TextGrid to extract each
        word and each word's start and end times in the audio recording. For
        each word, it instantiates the class Word(), with the word and its
        start and end times as attributes of that class instance. Further, it
        appends the class instance's attribute 'phones' for each phone that
        occurs in that word. (It does this by checking which phones' start and
        end times are subsumed by the start and end times of the word.)

def parse_words(self):
        """Parse TextGrid word intervals.
        
        This method parses the word intervals in a TextGrid to extract each
        word and each word's start and end times in the audio recording. For
        each word, it instantiates the class Word(), with the word and its
        start and end times as attributes of that class instance. Further, it
        appends the class instance's attribute 'phones' for each phone that
        occurs in that word. (It does this by checking which phones' start and
        end times are subsumed by the start and end times of the word.)
        
        """
        phones = self.parse_phones()
        words = []
        
        for i in self.word_intervals:
            start = float(i[i.index('xmin = ')+7:
                            i.index('xmin = ')+12].strip('\t').strip('\n'))
            end = float(i[i.index('xmax = ')+7:
                          i.index('xmax = ')+12].strip('\t').strip('\n'))
            word = i[i.index('\"')+1:i.index("$")]
            words.append(Word(word, start, end))
            
        for word in words:
            for phone in phones:
                if phone.start >= word.start and phone.end <= word.end:
                    word.phones.append(phone)
            
        return words