Go to the documentation of this file.00001
00002
00003
00004 import abc
00005 import xml.etree.ElementTree as ET
00006
00007
00008 class STMLElement(object):
00009 __metaclass__ = abc.ABCMeta
00010
00011 @abc.abstractmethod
00012 def get_element(self):
00013 pass
00014
00015
00016 class VoiceFormat(STMLElement):
00017 """ VoiceFormat class
00018 """
00019 def __init__(self):
00020 self._root = ET.Element('Voice')
00021
00022 def add_id(self, id):
00023 self._root.set('ID', id)
00024
00025 def get_element(self):
00026 return self._root
00027
00028
00029 class UserFormat(STMLElement):
00030 """ User format class
00031 """
00032 def __init__(self):
00033 self._root = ET.Element('User')
00034
00035 def add_id(self, user_id):
00036 self._root.set('ID', user_id)
00037
00038 def get_element(self):
00039 return self._root
00040
00041
00042 class InputAudioFormat(STMLElement):
00043 """ input audio format class
00044 """
00045 def __init__(self):
00046 self._root = ET.Element('InputAudioFormat')
00047
00048 def add_endian(self, endian):
00049 self._root.set('Endian', endian)
00050
00051 def add_audio(self, audio):
00052 self._root.set('Audio', audio)
00053
00054 def get_element(self):
00055 return self._root
00056
00057
00058 class OutputTextFormat(STMLElement):
00059 """ output audio format class
00060 """
00061 def __init__(self):
00062 self._root = ET.Element('OutputTextFormat')
00063
00064 def add_form(self, form):
00065 self._root.set('Form', form)
00066
00067 def get_element(self):
00068 return self._root
00069
00070
00071 class SRInputType(STMLElement):
00072 """ speech recognition input type
00073 """
00074 def __init__(self):
00075 self._root = ET.Element('SR_IN')
00076
00077 def add_language(self, language):
00078 self._root.set('Language', language)
00079
00080 def add_domain(self, domain):
00081 self._root.set('Domain', domain)
00082
00083 def add_max_nbest(self, max_nbest):
00084 self._root.set('MaxNBest', str(max_nbest))
00085
00086 def add_output_text_format(self, output_format):
00087 self._root.append(output_format.get_element())
00088
00089 def add_input_audio_format(self, input_format):
00090 self._root.append(input_format.get_element())
00091
00092 def add_voice(self, voice):
00093 self._root.append(voice.get_element())
00094
00095 def get_element(self):
00096 return self._root
00097
00098
00099 class STMLType(object):
00100 """ stml builder class """
00101 def __init__(self):
00102 self._root = ET.Element('STML')
00103 self._root.set(
00104 'xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'
00105 )
00106
00107 def add_version(self, version):
00108 self._root.set('Version', str(version))
00109
00110 def add_utterance_id(self, utterance_id):
00111 self._root.set('UtteranceID', utterance_id)
00112
00113 def add_user(self, user_id):
00114 self._root.append(user_id.get_element())
00115
00116 def add_sr_in(self, sr_in):
00117 self._root.append(sr_in.get_element())
00118
00119 def tostring(self):
00120 return ET.tostring(self._root, encoding="UTF-8", method="xml")