コード例 #1
0
    def _DeserializeRecognizedSpeech(cls, data):
        '''Returns a list which contains tuples (2 elements each) with string and confidence.'''
        if data == '' or data == 'null':
            return None

        if data[0] != '{' or data[-1] != '}':
            return None

        data = data[1:-1].strip()
        count = 0

        if data.find(' ') > -1:
            count, data = data.split(None, 1)
        else:
            return None

        count = int(count)
        l = []
        for _ in range(count):
            if data[0] != '"':
                return None
            pos = 1
            str_len = len(data)
            while pos < str_len:
                if data[pos] == '"':
                    break
                elif data[pos] == '\\':
                    pos += 1
                pos += 1

            if pos == str_len:
                return None
            currentText = Message._DeserializeString(data[:pos + 1])
            data = data[pos + 1:].strip()
            if data.find(' ') > -1:
                currentConfidence, data = data.split(None, 1)
            else:
                currentConfidence = data
            currentConfidence = float(currentConfidence)
            l.append((currentText, currentConfidence))

        return l
コード例 #2
0
 def _DeserializeRecognizedSpeech(cls, data):
     '''Returns a list which contains tuples (2 elements each) with string and confidence.'''
     if data == '' or data == 'null':
         return None
     
     if data[0] != '{' or data[-1] != '}':
         return None
     
     data = data[1:-1].strip()
     count = 0
     
     if data.find(' ') > -1:
         count, data = data.split(None, 1)
     else:
         return None
     
     count = int(count)
     l = []
     for _ in range(count):
         if data[0] != '"':
             return None
         pos = 1
         str_len = len(data)
         while pos < str_len:
             if data[pos] == '"':
                 break
             elif data[pos] == '\\':
                 pos += 1
             pos += 1
 
         if pos == str_len:
             return None
         currentText = Message._DeserializeString(data[:pos + 1])
         data = data[pos+1:].strip()
         if data.find(' ') > -1:
             currentConfidence, data = data.split(None, 1)
         else:
             currentConfidence = data
         currentConfidence = float(currentConfidence)
         l.append((currentText, currentConfidence))
     
     return l
コード例 #3
0
    def _ProcessReadVar(cls, var):

        try:
            if not var.data:
                return None

            if var.svType == SharedVarTypes.STRING:
                return Message._DeserializeString(var.data)

            if var.svType in [SharedVarTypes.INT, SharedVarTypes.LONG]:
                return int(var.data)

            if var.svType == SharedVarTypes.DOUBLE:
                return float(var.data)

            if var.svType in [
                    SharedVarTypes.INT_ARRAY, SharedVarTypes.LONG_ARRAY
            ]:
                return [int(x) for x in var.data.split()]

            if var.svType == SharedVarTypes.DOUBLE_ARRAY:
                return [float(x) for x in var.data.split()]

            if var.svType == SharedVarTypes.BYTE_ARRAY:
                return SharedVar._DeserializeByteArray(var.data)

            if var.svType == SharedVarTypes.RECOGNIZED_SPEECH:
                return SharedVar._DeserializeRecognizedSpeech(var.data)

            if var.svType == SharedVarTypes.MATRIX:
                return SharedVar._DeserializeMatrix(var.data)

            if var.svType == SharedVarTypes.VAR:
                if var.data == 'null':
                    return None
                return var.data
        except:
            pass

        print 'Error parsing type: ' + var.svType
        return None
コード例 #4
0
 def _ProcessReadVar(cls, var):
 
     try:
         if not var.data:
             return None
         
         if var.svType == SharedVarTypes.STRING:
             return Message._DeserializeString(var.data)
         
         if var.svType in [SharedVarTypes.INT, SharedVarTypes.LONG]:
             return int(var.data)
         
         if var.svType == SharedVarTypes.DOUBLE:
             return float(var.data)
         
         if var.svType in [SharedVarTypes.INT_ARRAY, SharedVarTypes.LONG_ARRAY]:
             return [int(x) for x in var.data.split()]
         
         if var.svType == SharedVarTypes.DOUBLE_ARRAY:
             return [float(x) for x in var.data.split()]
         
         if var.svType == SharedVarTypes.BYTE_ARRAY:
             return SharedVar._DeserializeByteArray(var.data)
         
         if var.svType == SharedVarTypes.RECOGNIZED_SPEECH:
             return SharedVar._DeserializeRecognizedSpeech(var.data)
         
         if var.svType == SharedVarTypes.MATRIX:
             return SharedVar._DeserializeMatrix(var.data)
         
         if var.svType == SharedVarTypes.VAR:
             if var.data == 'null':
                 return None
             return var.data
     except:
         pass
     
     print 'Error parsing type: ' + var.svType
     return None