コード例 #1
0
ファイル: test.py プロジェクト: sparamona/pi-translator
from Recorder import Recorder
from SpeechToText import speech_to_text
from TextTranslator import translate_text

recorder = Recorder('/tmp/out.wav')
recorder.start()
print ">>> Recording"
raw_input('press enter to stop ...')
recorder.stop()
print "<<< Stopped "
text = speech_to_text('es-MX', '/tmp/out.wav')
print text
translation = translate_text('en', text)
print translation
コード例 #2
0
def myexit():
    g_recorder.stop()
    exit()

if __name__ == '__main__':

    gpu_setting()

    model = load_model('md-normal-lr2.h5')

    if os.path.exists('Recorder-tmpwav.wav'):
        os.remove('Recorder-tmpwav.wav')

    rd = Recorder()
    
    rd.start()

    g_recorder = rd

    signal.signal(signal.SIGINT, myexit)
    signal.signal(signal.SIGTERM, myexit)

    #time.sleep(12)

    while True:
        try:
            key = input('\r\nPlease input, Enter:detect p:Predict k:Stop (Enter/p/k)?')
        except Exception as e:
            continue
        if key == 'k':
            myexit()
コード例 #3
0
ファイル: Mouvements.py プロジェクト: rouviecy/NAO_TOOLS
class Mouvements(object):

	def __init__(self):
		IP, PORT = "127.0.0.1", 9559
		self.vx = 0.0
		self.vy = 0.0
		self.vth = 0.0
		self.dt = 0.227
		self.joints = []
		self.io_file = IO_file()
		self.is_recording = False
		self.postureProxy = ALProxy("ALRobotPosture", IP, PORT)
		self.motionProxy = ALProxy("ALMotion", IP, PORT)
		self.motionProxy.setWalkArmsEnabled(True, True)
		self.motionProxy.setMotionConfig([["ENABLE_FOOT_CONTACT_PROTECTION", False]])
		self.motionProxy.setFallManagerEnabled(False)

	def stiffness(self, go_rigide):
		parametre = 1.0 if go_rigide else 0.0
		self.motionProxy.stiffnessInterpolation("Body", parametre, 1.0)

	def go_debout(self):
		self.stiffness(True)
		self.postureProxy.goToPosture("Stand", 0.8)

	def go_assis(self):
		self.stiffness(True)
		self.postureProxy.goToPosture("Sit", 0.8)
		self.stiffness(False)

	def go_ventre(self):
		self.stiffness(True)
		self.postureProxy.goToPosture("LyingBelly", 0.8)
		self.stiffness(False)

	def go_dos(self):
		self.stiffness(True)
		self.postureProxy.goToPosture("LyingBack", 0.8)
		self.stiffness(False)

	def go_dos(self):
		self.stiffness(True)
		self.postureProxy.goToPosture("Crouch", 0.8)
		self.stiffness(False)

	def go_move(self):
		self.motionProxy.setWalkTargetVelocity(self.vx, self.vy, self.vth, 0.8)

	def set_vx(self, vx):	self.vx = vx
	def set_vy(self, vy):	self.vy = vy
	def set_vth(self, vth):	self.vth = vth

	def update_joints(self):	self.joints = self.motionProxy.getAngles("Body", False)

	def save_joints(self, write):
		self.update_joints()
		if write: fichier = self.io_file.init_write_joints()
		self.io_file.add_joints(self.joints, self.dt)
		if write: self.io_file.write_joints(fichier)

	def record(self):
		self.is_recording = not self.is_recording
		if self.is_recording:
			self.recorder = Recorder(self)
			self.recorder.continuer = True
			self.recorder.start()
		else:
			self.recorder.continuer = False
			self.recorder.join()

	def apply_joints_from_file(self, only_last):
		temps, angles = self.io_file.read_joints(only_last)
		if len(angles) == 0 : return
		self.motionProxy.angleInterpolation("Body", angles, temps, True)

	def move_head(self, vx, vy):
		self.motionProxy.angleInterpolation(["HeadYaw", "HeadPitch"], [-0.1 * float(vx), -0.1 * float(vy)], [0.2, 0.2], False)
コード例 #4
0
ファイル: Experiment.py プロジェクト: katrinashur/diplom
class Experiment:
    def __init__(self):
        self.name = datetime.now().strftime("%Y-%m-%d.%H_%M_%S.%f")
        self.folder = os.path.abspath(os.curdir) + '\\' + self.name
        self.recorder = Recorder('')

        self.emotions = []
        self.photos = []
        self.brain_waves = []
        self.res_dataset = []

    def set_name(self, name):
        self.name = name
        self.folder = self.rsplit('\\', 1)[0] + name

    def set_folder(self, folder):
        self.folder = folder + '\\' + self.name

    def start_record(self):
        os.mkdir(
            self.folder
        )  #надо удалять если ошибка или создавать только после сигнала об удаче
        self.recorder.start([self.name, self.folder])

    def stop_record(self):
        self.recorder.stop()
        self.save_results()
        return True

    def save_results(self):
        self.prepare_brain_waves()
        self.prepare_photos()
        self.prepare_emotions()
        self.make_dataset(self.match_data())
        DataManager.write_dataset(
            self.folder + '\\' + 'res_' + self.name + '.tsv', self.res_dataset)

    def match_data(self):
        count_waves = 1
        count_photos = 1
        dataset = []
        while count_waves < len(self.brain_waves) and count_photos < len(
                self.photos):
            # узнать время первого снимка
            time_begin = datetime.strptime(self.photos[count_photos - 1][-1],
                                           "%Y-%m-%d.%H_%M_%S.%f")
            # узнать время следующего снимка
            time_end = datetime.strptime(self.photos[count_photos][-1],
                                         "%Y-%m-%d.%H_%M_%S.%f")
            # узнать время первого измерения мозговых волн
            current_time = datetime.strptime(
                self.brain_waves[count_waves - 1][-1], "%Y-%m-%d.%H_%M_%S.%f")
            if current_time > time_end:
                count_photos += 1
            elif current_time < time_begin:
                count_waves += 1
            else:
                element = self.brain_waves[count_waves - 1]
                element.extend(self.photos[count_photos])
                dataset.append(element)
                #dataset.append([self.brain_waves[count_waves-1], self.photos[count_photos]])
                count_waves += 1

        return dataset

    def prepare_photos(self):
        photos = DataManager.read_file(self.folder + '\\' + 'photos_log.txt')

        for photo in photos:
            time = photo.rsplit('.', 1)[0]
            time = time.rsplit('\\', 1)[-1]
            self.photos.append([photo, time])

    def prepare_brain_waves(self):
        brain_waves_strings = DataManager.read_file(self.folder + '\\' +
                                                    self.name + '.tsv')
        for line in brain_waves_strings:
            self.brain_waves.append(line.rsplit('\t', -1))
        self.brain_waves = self.brain_waves[1:]
        return len(self.brain_waves) != 0

    def prepare_emotions(self):
        emo_analyzer = EmotionAnalyzer()
        #self.emotions.append(['Angry', 'Disgust', 'Fear', 'Happy', 'Sad', 'Surprise', 'Neutral'], 'time')
        for i in range(len(self.photos)):
            faces = ImageProcessor.find_faces(
                self.photos[i][0])  # что если несколько лиц?
            if len(faces) == 0:
                print('No face on ' + self.photos[i][0])
            elif len(faces) > 1:
                print('More than 1 face on ' + self.photos[i][0])
            else:
                element = []
                element.extend(emo_analyzer.predict(faces[0]))
                element.append(self.photos[i][-1])
                self.emotions.append(element)

    def make_dataset(self, dataset):
        print(dataset[0][-1])
        print(self.emotions[0][-1])
        print((datetime.strptime(dataset[0][-1], "%Y-%m-%d.%H_%M_%S.%f") - \
        datetime.strptime(self.emotions[0][-1], "%Y-%m-%d.%H_%M_%S.%f")).microseconds)
        count_waves = 0
        count_emotions = 0
        while count_waves < len(dataset):
            if (datetime.strptime(dataset[count_waves][-1], "%Y-%m-%d.%H_%M_%S.%f") - \
                    datetime.strptime(self.emotions[count_emotions][-1], "%Y-%m-%d.%H_%M_%S.%f")).microseconds == 0:
                dataset[count_waves] = dataset[
                    count_waves][:len(dataset[count_waves]) - 2]
                dataset[count_waves].extend(self.emotions[count_emotions])
                self.res_dataset.append(dataset[count_waves])

            elif datetime.strptime(dataset[count_waves][-1], "%Y-%m-%d.%H_%M_%S.%f") > \
                    datetime.strptime(self.emotions[count_emotions][-1], "%Y-%m-%d.%H_%M_%S.%f"):
                count_emotions += 1
                count_waves -= 1

            count_waves += 1