def mockCmdConversion(cmd):
     if cmd == 'a':
         a = [ProsodyElement(duration='2000s'), ArgElement(1)]
         a[0].insertChild(0, ProsodyElement(duration='1000s'))
         a[0].children[0].insertChild(0, ArgElement(2))
         return a
     else:
         return None
 def mockCmdConversion(cmd):
     if cmd == 'a':
         a = [ProsodyElement(pitch='x-low'), ArgElement(1)]
         a[0].insertChild(0, ProsodyElement(pitch='high'))
         a[0].children[0].insertChild(0, ArgElement(2))
         return a
     else:
         return None
 def mockCmdConversion(cmd):
     if cmd == 'a':
         a = [ProsodyElement(volume='x-loud'), ArgElement(1)]
         a[0].insertChild(0, ProsodyElement(volume='medium'))
         a[0].children[0].insertChild(0, ArgElement(2))
         return a
     else:
         return None
 def mockEnvConversion(env):
     if env == 'b':
         b = [
             ContentElement(),
             ProsodyElement(duration='3000ms'),
             ArgElement(2),
             ProsodyElement(duration='5000ms')
         ]
         b[1].insertChild(0, ContentElement())
         b[1].insertChild(0, ArgElement(1))
         b[3].insertChild(0, ProsodyElement(duration='9000s'))
         return b
     else:
         return None
 def mockEnvConversion(env):
     if env == 'b':
         b = [
             ContentElement(),
             ProsodyElement(pitch='-40%'),
             ArgElement(2),
             ProsodyElement(pitch='none')
         ]
         b[1].insertChild(0, ContentElement())
         b[1].insertChild(0, ArgElement(1))
         b[3].insertChild(0, ProsodyElement(pitch='90%'))
         return b
     else:
         return None
 def mockEnvConversion(env):
     if env == 'b':
         b = [
             ContentElement(),
             ProsodyElement(volume='-3dB'),
             ArgElement(2),
             ProsodyElement(volume='none')
         ]
         b[1].insertChild(0, ContentElement())
         b[1].insertChild(0, ArgElement(1))
         b[3].insertChild(0, ProsodyElement(volume='loud'))
         return b
     else:
         return None
Esempio n. 7
0
    def _getSSMLElement(self, xml_node):
        element = None
        if xml_node.tag == 'break':
            args = {}
            if 'time' in xml_node.attrib:
                args['time'] = xml_node.attrib['time']
            if 'strength' in xml_node.attrib:
                args['strength'] = xml_node.attrib['strength']
            element = BreakElement(**args)
        elif xml_node.tag == 'emphasis':
            args = {}
            if 'level' in xml_node.attrib:
                args['level'] = xml_node.attrib['level']
            element = EmphasisElement(**args)
        elif xml_node.tag == 'prosody':
            args = {}
            if 'volume' in xml_node.attrib:
                args['volume'] = xml_node.attrib['volume']
            if 'rate' in xml_node.attrib:
                args['rate'] = xml_node.attrib['rate']
            if 'pitch' in xml_node.attrib:
                args['pitch'] = xml_node.attrib['pitch']
            if 'duration' in xml_node.attrib:
                args['duration'] = xml_node.attrib['duration']
            element = ProsodyElement(**args)
        elif xml_node.tag == 'p':
            element = ParagraphElement()
        elif xml_node.tag == 'arg':
            if 'argType' in xml_node.attrib:
                element = ArgElement(xml_node.attrib['num'],
                                     argType=xml_node.attrib['argType'])
            else:
                element = ArgElement(xml_node.attrib['num'])
        elif xml_node.tag == 'content':
            element = ContentElement()
        else:
            raise RuntimeError('Unhandled tag "' + xml_node.tag +
                               '"encountered in conversion database')

        if element:
            if xml_node.text and not xml_node.text.isspace():
                element.setHeadText(xml_node.text.strip(" \t\n\r"))
            if xml_node.tail and not xml_node.tail.isspace():
                element.setTailText(xml_node.tail.strip(" \t\n\r"))
            for child in xml_node.findall('./*'):
                element.insertChild(-1, self._getSSMLElement(child))

        return element