Some checks failed
social-bot integration tests / Lint (flake8 + pep257) (push) Failing after 2s
social-bot integration tests / Core integration tests (mock sensors, no GPU) (push) Has been skipped
social-bot integration tests / Lint (flake8 + pep257) (pull_request) Failing after 10s
social-bot integration tests / Core integration tests (mock sensors, no GPU) (pull_request) Has been skipped
social-bot integration tests / Latency profiling (GPU, Orin) (push) Has been cancelled
social-bot integration tests / Latency profiling (GPU, Orin) (pull_request) Has been cancelled
Energy-gated log-mel + cosine-similarity wake-word node. Subscribes to /social/speech/audio_raw (PCM-16 UInt8MultiArray), maintains a 1.5 s sliding ring buffer, runs detection every 100 ms; fires Bool(True) on /saltybot/wake_word_detected with 2 s cooldown. Template loaded from .npy file; passive (no detections) when template_path is empty. 91/91 tests pass. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
65 lines
3.1 KiB
Python
65 lines
3.1 KiB
Python
from setuptools import find_packages, setup
|
|
import os
|
|
from glob import glob
|
|
|
|
package_name = 'saltybot_social'
|
|
|
|
setup(
|
|
name=package_name,
|
|
version='0.1.0',
|
|
packages=find_packages(exclude=['test']),
|
|
data_files=[
|
|
('share/ament_index/resource_index/packages',
|
|
['resource/' + package_name]),
|
|
('share/' + package_name, ['package.xml']),
|
|
(os.path.join('share', package_name, 'launch'),
|
|
glob(os.path.join('launch', '*launch.[pxy][yma]*'))),
|
|
(os.path.join('share', package_name, 'config'),
|
|
glob(os.path.join('config', '*.yaml'))),
|
|
],
|
|
install_requires=['setuptools'],
|
|
zip_safe=True,
|
|
maintainer='seb',
|
|
maintainer_email='seb@vayrette.com',
|
|
description='Social interaction layer — person tracking, speech, LLM, TTS, orchestrator',
|
|
license='MIT',
|
|
tests_require=['pytest'],
|
|
entry_points={
|
|
'console_scripts': [
|
|
'person_state_tracker = saltybot_social.person_state_tracker_node:main',
|
|
'expression_node = saltybot_social.expression_node:main',
|
|
'attention_node = saltybot_social.attention_node:main',
|
|
'speech_pipeline_node = saltybot_social.speech_pipeline_node:main',
|
|
'conversation_node = saltybot_social.conversation_node:main',
|
|
'tts_node = saltybot_social.tts_node:main',
|
|
'orchestrator_node = saltybot_social.orchestrator_node:main',
|
|
# Voice command NLU bridge (Issue #137)
|
|
'voice_command_node = saltybot_social.voice_command_node:main',
|
|
# Multi-camera gesture recognition (Issue #140)
|
|
'gesture_node = saltybot_social.gesture_node:main',
|
|
# Hand gesture pointing direction (Issue #221)
|
|
'pointing_node = saltybot_social.pointing_node:main',
|
|
# Facial expression recognition (Issue #161)
|
|
'emotion_node = saltybot_social.emotion_node:main',
|
|
# Robot mesh communication (Issue #171)
|
|
'mesh_comms_node = saltybot_social.mesh_comms_node:main',
|
|
# Energy+ZCR voice activity detection (Issue #242)
|
|
'vad_node = saltybot_social.vad_node:main',
|
|
# Ambient sound classifier — mel-spectrogram (Issue #252)
|
|
'ambient_sound_node = saltybot_social.ambient_sound_node:main',
|
|
# Proximity-based greeting trigger (Issue #270)
|
|
'greeting_trigger_node = saltybot_social.greeting_trigger_node:main',
|
|
# Face-tracking head servo controller (Issue #279)
|
|
'face_track_servo_node = saltybot_social.face_track_servo_node:main',
|
|
# Speech volume auto-adjuster (Issue #289)
|
|
'volume_adjust_node = saltybot_social.volume_adjust_node:main',
|
|
# Conversation topic memory (Issue #299)
|
|
'topic_memory_node = saltybot_social.topic_memory_node:main',
|
|
# Personal space respector (Issue #310)
|
|
'personal_space_node = saltybot_social.personal_space_node:main',
|
|
# Audio wake-word detector — 'hey salty' (Issue #320)
|
|
'wake_word_node = saltybot_social.wake_word_node:main',
|
|
],
|
|
},
|
|
)
|