code: def setProperty(self, name, value):
          '''
          Sets one of the supported property values of the speech engine listed
          above. If a value is invalid, attempts to clip it / coerce so it is
          valid before giving up and firing an exception.
  
          @param name: Property name
          @type name: str
          @param value: Property value
          @type value: object
          @raise KeyError: When the property name is unknown
          @raise ValueError: When the value cannot be coerced to fit the property
          '''
          if name == 'voice':
              v = filter(lambda v: v.id == value, self._config['voices'])
              self._config['voice'] = v[0]
          elif name == 'rate':
              self._config['rate'] = value
          elif name == 'volume':
              self._config['volume'] = value
          else:
              raise KeyError('unknown property %s' % namef setProperty(self, name, value):
          '''
          Sets one of the supported property values of the speech engine listed
          above. If a value is invalid, attempts to clip it / coerce so it is
          valid before giving up and firing an exception.
  
          @param name: Property name
          @type name: str
          @param value: Property value
          @type value: object
          @raise KeyError: When the property name is unknown
          @raise ValueError: When the value cannot be coerced to fit the property
          '''
          if name == 'voice':
              v = filter(lambda v: v.id == value, self._config['voices'])
              self._config['voice'] = v[0]
          elif name == 'rate':
              self._config['rate'] = value
          elif name == 'volume':
              self._config['volume'] = value
          else:
              raise KeyError('unknown property %s' % name)
docs: Sets one of the supported property values of the speech engine listed
          above. If a value is invalid, attempts to clip it / coerce so it is
          valid before giving up and firing an exception.
  
          @param name: Property name
          @type name: str
          @param value: Property value
          @type value: object
          @raise KeyError: When the property name is unknown
          @raise ValueError: When the value cannot be coerced to fit the property