def resolve_sound(self, sound):
sound = sound if isinstance(sound, Symbol) else self.system[sound]<EOL>if sound.name in self.data:<EOL><INDENT>return self.data[sound.name]['<STR_LIT>']<EOL><DEDENT>if not sound.type == '<STR_LIT>':<EOL><INDENT>if sound.type in ['<STR_LIT>', '<STR_LIT>']:<EOL><INDENT>return self.resolve_sound(sound.from_sound)<EOL><DEDENT>name = [<EOL>s for s in sound.name.split('<STR_LIT:U+0020>') if<EOL>self.system._feature_values.get(s, '<STR_LIT>') not in<EOL>['<STR_LIT>', '<STR_LIT>', '<STR_LIT>']]<EOL>while len(name) >= <NUM_LIT:4>:<EOL><INDENT>sound = self.system.get('<STR_LIT:U+0020>'.join(name))<EOL>if sound and sound.name in self.data:<EOL><INDENT>return self.resolve_sound(sound)<EOL><DEDENT>name.pop(<NUM_LIT:0>)<EOL><DEDENT><DEDENT>raise KeyError("<STR_LIT>")<EOL>
Function tries to identify a sound in the data.

        Notes
        -----
        The function tries to resolve sounds to take a sound with less complex
        features in order to yield the next approximate sound class, if the
        transcription data are sound classes.