5 from audio_common_msgs.msg
import AudioData
7 from pydub
import AudioSegment
12 from threading
import Thread
18 rospy.init_node(
"audio_subscriber", anonymous=
True)
24 audio_sub = rospy.Subscriber(
"/nicla/audio", AudioData, self.
audio_callback)
26 rospy.loginfo(
"Nodo audio_subscriber pronto per ricevere audio...")
38 data = np.frombuffer(audio.data, dtype=np.uint8)
40 non_zero_mask = data != 0
42 filtered_data = data[non_zero_mask]
44 if filtered_data.size > 0:
45 self.
audio_data.put_nowait(filtered_data.tobytes())
72 sound = pygame.mixer.Sound(
83 except Exception
as e:
84 rospy.logerr(f
"Error playing audio: {e}")
89 while not rospy.is_shutdown():
97 if __name__ ==
"__main__":
101 except rospy.ROSInterruptException: