sl-controls 5604670646 feat: Implement deaf/accessibility mode with STT, touch keyboard, TTS (Issue #371)
Accessibility mode for hearing-impaired users:
- Speech-to-text display: Integrates with saltybot_social speech_pipeline_node
- Touch keyboard overlay: 1024x600 optimized for MageDok 7in display
- TTS output: Routes to MageDok speakers via PulseAudio
- Web UI server: Responsive keyboard interface with real-time display updates
- Auto-confirm: Optional TTS feedback for spoken input
- Physical keyboard support: Both touch and physical input methods

Features:
- Keyboard buffer with backspace/clear/send controls
- Transcript history display (max 10 entries)
- Status indicators for STT/TTS ready state
- Number/symbol support (1-5, punctuation)
- HTML/CSS responsive design optimized for touch
- ROS2 integration via /social/speech/transcript and /social/conversation/request

Launch: ros2 launch saltybot_accessibility_mode accessibility_mode.launch.py
UI Port: 8080 (MageDok display access)
Config: config/accessibility_params.yaml

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-03 18:17:41 -05:00

34 lines
1.1 KiB
Python

from setuptools import setup
package_name = "saltybot_accessibility_mode"
setup(
name=package_name,
version="0.1.0",
packages=[package_name],
data_files=[
("share/ament_index/resource_index/packages", [f"resource/{package_name}"]),
(f"share/{package_name}", ["package.xml"]),
(f"share/{package_name}/launch", ["launch/accessibility_mode.launch.py"]),
(f"share/{package_name}/config", ["config/accessibility_params.yaml"]),
(f"share/{package_name}/ui", [
"ui/accessibility.html",
"ui/accessibility.css",
"ui/accessibility.js",
]),
],
install_requires=["setuptools"],
zip_safe=True,
maintainer="sl-controls",
maintainer_email="sl-controls@saltylab.local",
description="Deaf/accessibility mode with STT display, touch keyboard, and TTS output",
license="MIT",
tests_require=["pytest"],
entry_points={
"console_scripts": [
"accessibility_mode_node = saltybot_accessibility_mode.accessibility_mode_node:main",
"ui_server = saltybot_accessibility_mode.ui_server:main",
],
},
)