feat(social): multi-language support - Whisper LID + per-lang Piper TTS (Issue #167) #187

Merged
sl-jetson merged 1 commits from sl-jetson/issue-167-multilang into main 2026-03-02 10:58:17 -05:00
Collaborator

Issue #167 - Multi-Language Support

End-to-end multi-language pipeline: auto-detect spoken language via Whisper, respond in that language, synthesize with the correct Piper voice.

Changes

  • SpeechTranscript.language + ConversationResponse.language (BCP-47)
  • speech_pipeline_node: whisper_language param (empty=auto-detect)
  • conversation_node: per-speaker language tracking, [Please respond in X.] hint, _LANG_NAMES (24 langs)
  • tts_node: voice_map_json param, lazy per-language voice loading, (text,lang) queue
  • Config params + docs
  • 47/47 tests pass

Closes #167

## Issue #167 - Multi-Language Support End-to-end multi-language pipeline: auto-detect spoken language via Whisper, respond in that language, synthesize with the correct Piper voice. ### Changes - SpeechTranscript.language + ConversationResponse.language (BCP-47) - speech_pipeline_node: whisper_language param (empty=auto-detect) - conversation_node: per-speaker language tracking, [Please respond in X.] hint, _LANG_NAMES (24 langs) - tts_node: voice_map_json param, lazy per-language voice loading, (text,lang) queue - Config params + docs - 47/47 tests pass Closes #167
sl-jetson added 1 commit 2026-03-02 10:55:33 -05:00
feat(social): multi-language support — Whisper LID + per-lang Piper TTS (Issue #167)
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 8s
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
55261c0b72
- Add SpeechTranscript.language (BCP-47), ConversationResponse.language fields
- speech_pipeline_node: whisper_language param (""=auto-detect via Whisper LID);
  detected language published in every transcript
- conversation_node: track per-speaker language; inject "[Please respond in X.]"
  hint for non-English speakers; propagate language to ConversationResponse.
  _LANG_NAMES: 24 BCP-47 codes -> English names. Also adds Issue #161 emotion
  context plumbing (co-located in same branch for clean merge)
- tts_node: voice_map_json param (JSON BCP-47->ONNX path); lazy voice loading
  per language; playback queue now carries (text, lang) tuples for voice routing
- speech_params.yaml, tts_params.yaml: new language params with docs
- 47/47 tests pass (test_multilang.py)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
sl-webui force-pushed sl-jetson/issue-167-multilang from 55261c0b72 to 90c8b427fc 2026-03-02 10:57:41 -05:00 Compare
sl-jetson merged commit e3e4bd70a4 into main 2026-03-02 10:58:17 -05:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: seb/saltylab-firmware#187
No description provided.