Skip to content

Commit

Permalink
Add audio_queue_size (#38)
Browse files Browse the repository at this point in the history
* Add audio_queue_size

* Update odas.launch.xml
  • Loading branch information
mamaheux authored Jul 26, 2024
1 parent 5e2bdb3 commit 012b765
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 8 deletions.
3 changes: 3 additions & 0 deletions odas_ros/launch/odas.launch.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
<!-- Arguments -->
<arg name="configuration_path" default="$(find-pkg-share odas_ros)/config/configuration.cfg"/>
<arg name="frame_id" default="odas"/>
<arg name="audio_queue_size" default="1"/>
<arg name="visualization" default="true"/>
<arg name="rviz" default="false"/>
<arg name="rviz_cfg" default="-d $(find-pkg-share odas_ros)/config/rviz/odas_rviz.rviz"/>
Expand All @@ -15,10 +16,12 @@
<node unless="$(var use_echo_cancellation)" pkg="odas_ros" exec="odas_server_node.py" name="odas_server_node">
<param name="configuration_path" value="$(var configuration_path)"/>
<param name="frame_id" value="$(var frame_id)"/>
<param name="audio_queue_size" value="$(var audio_queue_size)"/>
</node>
<node if="$(var use_echo_cancellation)" pkg="odas_ros" exec="odas_echocancel_filter_server_node.py" name="odas_server_node">
<param name="configuration_path" value="$(var configuration_path)"/>
<param name="frame_id" value="$(var frame_id)"/>
<param name="audio_queue_size" value="$(var audio_queue_size)"/>

<remap from="ec_signal" to="$(var echo_cancelled_signal_topic)"/>
</node>
Expand Down
32 changes: 24 additions & 8 deletions odas_ros/odas_ros/lib_odas_server_node.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
from audio_utils_msgs.msg import AudioFrame


AUDIO_QUEUE_SIZE = 100
SSL_SST_QUEUE_SIZE = 10


Expand Down Expand Up @@ -73,7 +72,11 @@ def _handle_client(self, client_socket):


class RawSocketServer(SocketServer):
def __init__(self, node: rclpy.node.Node, configuration: dict, audio_frame_timestamp_queue: queue.Queue):
def __init__(self,
node: rclpy.node.Node,
configuration: dict,
audio_frame_timestamp_queue: queue.Queue,
audio_queue_size: int):
super().__init__(node, configuration['raw']['interface']['port'])
self._audio_frame_timestamp_queue = audio_frame_timestamp_queue

Expand All @@ -83,8 +86,8 @@ def __init__(self, node: rclpy.node.Node, configuration: dict, audio_frame_times
self._raw_sampling_frequency = configuration['raw']['fS']
self._raw_frame_sample_count = configuration['raw']['hopSize']

self._raw_queue = queue.Queue(maxsize=AUDIO_QUEUE_SIZE)
self._raw_sub = self._node.create_subscription(AudioFrame, 'raw', self._raw_audio_cb, AUDIO_QUEUE_SIZE)
self._raw_queue = queue.Queue(maxsize=audio_queue_size)
self._raw_sub = self._node.create_subscription(AudioFrame, 'raw', self._raw_audio_cb, audio_queue_size)

def _raw_audio_cb(self, msg: AudioFrame):
if (msg.format != self._raw_format or
Expand Down Expand Up @@ -212,7 +215,12 @@ def _handle_data(self, sst: dict):


class SssSocketServer(SocketServer):
def __init__(self, node: rclpy.node.Node, configuration: dict, audio_frame_timestamp_queue: queue.Queue, frame_id: str):
def __init__(self,
node: rclpy.node.Node,
configuration: dict,
audio_frame_timestamp_queue: queue.Queue,
frame_id: str,
audio_queue_size: int):
super().__init__(node, configuration['sss']['separated']['interface']['port'])
self._audio_frame_timestamp_queue = audio_frame_timestamp_queue
self._frame_id = frame_id
Expand All @@ -223,7 +231,7 @@ def __init__(self, node: rclpy.node.Node, configuration: dict, audio_frame_times
self._sss_sampling_frequency = configuration['sss']['separated']['fS']
self._sss_frame_sample_count = configuration['sss']['separated']['hopSize']

self._sss_pub = self._node.create_publisher(AudioFrame, 'sss', AUDIO_QUEUE_SIZE)
self._sss_pub = self._node.create_publisher(AudioFrame, 'sss', audio_queue_size)

def _handle_client(self, client_socket: socket.socket):
recv_size = recv_size = self._sss_nbits // 8 * self._sss_channel_count * self._sss_frame_sample_count
Expand Down Expand Up @@ -264,14 +272,18 @@ def __init__(self, node_name: str):
self._configuration_path = self.declare_parameter('configuration_path', '').get_parameter_value().string_value
self._configuration = self._load_configuration(self._configuration_path)
frame_id = self.declare_parameter('frame_id', '').get_parameter_value().string_value
audio_queue_size = self.declare_parameter('audio_queue_size', 1).get_parameter_value().integer_value

if self._verify_raw_and_sss_configuration():
audio_frame_timestamp_queue = queue.Queue()
else:
audio_frame_timestamp_queue = None

if self._verify_raw_configuration():
self._raw_socket_server = RawSocketServer(self, self._configuration, audio_frame_timestamp_queue)
self._raw_socket_server = RawSocketServer(self,
self._configuration,
audio_frame_timestamp_queue,
audio_queue_size)
else:
self._raw_socket_server = None

Expand All @@ -286,7 +298,11 @@ def __init__(self, node_name: str):
self._sst_socket_server = None

if self._verify_sss_configuration():
self._sss_socket_server = SssSocketServer(self, self._configuration, audio_frame_timestamp_queue, frame_id)
self._sss_socket_server = SssSocketServer(self,
self._configuration,
audio_frame_timestamp_queue,
frame_id,
audio_queue_size)
else:
self._sss_socket_server = None

Expand Down

0 comments on commit 012b765

Please sign in to comment.