5 from pydub
import AudioSegment
8 import NiclaReceiverUDP
10 parser = argparse.ArgumentParser(
11 description=
"Read nicla data and show accordingly to the data type (no ros version)"
13 parser.add_argument(
"--ip", type=str, required=
True)
14 parser.add_argument(
"--port", type=int, default=8002)
15 parser.add_argument(
"--packet_size", type=int, default=65540)
16 parser.add_argument(
"--audio_buffer", type=int, default=100)
17 args = parser.parse_args()
20 accumulated_audio_data = []
23 cv2.namedWindow(
"niclabox", cv2.WINDOW_NORMAL)
25 nicla_receiver_udp = NiclaReceiverUDP.NiclaReceiverUDP(
26 args.ip, args.port, args.packet_size, args.audio_buffer
33 nicla_receiver_udp.receive()
36 distance = int.from_bytes(nicla_receiver_udp.distance,
"big")
37 print(
"Distance (mm): ", distance)
39 if nicla_receiver_udp.image:
42 np.frombuffer(nicla_receiver_udp.image, np.uint8), cv2.IMREAD_COLOR
44 cv2.namedWindow(
"niclabox", cv2.WINDOW_NORMAL)
45 cv2.imshow(
"niclabox", image)
46 if cv2.waitKey(1) == ord(
"q"):
58 if len(nicla_receiver_udp.audio_deque) >= args.audio_buffer:
60 print(
"saving recordings!")
63 nicla_receiver_udp.audio_deque.popleft()
64 for _
in range(len(nicla_receiver_udp.audio_deque))
67 accumulated_audio_data = []
69 accumulated_audio_data.append(np.frombuffer(i, dtype=np.int16))
71 pcm_data = np.concatenate(accumulated_audio_data)
74 audio_segment = AudioSegment(
75 pcm_data.tobytes(), frame_rate=16000, sample_width=2, channels=1
79 audio_segment.export(
"recording.mp3", format=
"mp3")
84 if __name__ ==
"__main__":
86 nicla_receiver_udp.connect()
96 except KeyboardInterrupt: