Exemple #1
0
    def client(self):
        HOST = '127.0.0.1'
        PORT = 5810
        BUF_SIZE = Sound.CHUNK
        ADDR = (HOST, PORT)
        clientSock = socket(AF_INET, SOCK_STREAM)
        self.sound = Sound.MyAudio()

        energyFile = open("data/energyMicResult.data", "r")
        energyAnal = energyFile.readline().split(" ")
        energyAnal = map(float, energyAnal)  ## [0]: mean ## [1]: std
        self.originalThresholdVal = energyAnal[0]
        energyFile.close()
        ##try:
        clientSock.connect(ADDR)
        print('wait...')
        clientSock.recv(22)
        print("Recording...")
        while True:
            self.sound.update()
            fft = self.sound.fft_data
            energy = np.sum(fft)
            if not (None == energy):
                self.threshold.append(energy)

            threshold = energyAnal[0] + energyAnal[1] * 1.0

            m = np.mean(self.threshold.__data__)
            sq = np.std(self.threshold.__data__)
            if self.threshold.size() > 100:
                energyAnal[0] = m
                energyAnal[1] = sq

            if threshold < energy:
                energy = round(normalize(energy, energyAnal[0], energyAnal[1]),
                               4)
                print energy
                feature = self.sound.getFeature()
                print " pre ", feature
                feature = np.append(feature, energy)

                print "feature : ", feature
                clientSock.send(np.array(feature).tostring())
                clientSock.recv(22)
            else:
                clientSock.send(np.array([-1, -1]).tostring())
                clientSock.recv(22)
        ##except Exception as e:
        # print e.message
        # sys.exit()
        print "connect"