Implement full audio pipeline with: - Jabra SPEAK 810 USB audio I/O (mic + speaker) - openwakeword 'Hey Salty' wake word detection - whisper.cpp GPU-accelerated STT (small/base/medium/large models) - piper TTS synthesis and playback - Audio state machine: listening → processing → speaking - MQTT status and state reporting - Real-time latency metrics tracking ROS2 Topics Published: - /saltybot/speech/transcribed_text: STT output for voice router - /saltybot/audio/state: Current audio state - /saltybot/audio/status: JSON metrics with latencies MQTT Topics: - saltybot/audio/state: Current state (listening/processing/speaking) - saltybot/audio/status: Complete status JSON Configuration parameters in yaml: - device_name: Jabra device pattern - wake_word_threshold: 0.5 (tunable) - whisper_model: small/base/medium/large - mqtt_enabled: true/false with broker config Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
21 lines
714 B
Python
21 lines
714 B
Python
from setuptools import setup
|
|
package_name = 'saltybot_audio_pipeline'
|
|
setup(
|
|
name=package_name,
|
|
version='1.0.0',
|
|
packages=[package_name],
|
|
data_files=[
|
|
('share/ament_index/resource_index/packages', ['resource/' + package_name]),
|
|
('share/' + package_name, ['package.xml']),
|
|
('share/' + package_name + '/launch', ['launch/audio_pipeline.launch.py']),
|
|
('share/' + package_name + '/config', ['config/audio_pipeline_params.yaml']),
|
|
],
|
|
install_requires=['setuptools'],
|
|
zip_safe=True,
|
|
author='Salty Lab',
|
|
entry_points={
|
|
'console_scripts': [
|
|
'audio_pipeline_node = saltybot_audio_pipeline.audio_pipeline_node:main',
|
|
],
|
|
},
|
|
) |