39 from pydub
import AudioSegment
46 accumulated_audio_data = []
57 cv2.namedWindow(
"niclabox", cv2.WINDOW_NORMAL)
60 server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
61 server.bind((ip, port))
62 print(
"Waiting for niclabox to stream on", ip,
":", port)
68 packet, client_address = server.recvfrom(packet_size)
74 if data_type == DISTANCE_TYPE:
76 distance = int.from_bytes(distance,
"big")
79 print(
"Distance (mm): ", distance)
81 elif data_type == IMAGE_TYPE:
85 image = cv2.imdecode(np.frombuffer(picture, np.uint8), cv2.IMREAD_COLOR)
86 cv2.namedWindow(
"niclabox", cv2.WINDOW_NORMAL)
87 cv2.imshow(
"niclabox", image)
88 if cv2.waitKey(1) == ord(
"q"):
98 elif data_type == AUDIO_TYPE:
103 pcm_data = np.frombuffer(packet, dtype=np.int16)
104 accumulated_audio_data.append(pcm_data)
106 if len(accumulated_audio_data) > 100:
110 pcm_data = np.concatenate(accumulated_audio_data)
113 audio_segment = AudioSegment(
114 pcm_data.tobytes(), frame_rate=16000, sample_width=2, channels=1
118 audio_segment.export(
"recording.mp3", format=
"mp3")