Conversation
- tests/unit/test_talk_config.py: TalkConfig.mic_threshold default and custom values, AudioClient propagation - tests/unit/test_chat_config_base_url.py: ChatConfig.base_url defaults to None, forwarded to create_client - tests/unit/test_audio_client_mic_check.py: _check_mic_levels warns on silence, handles exceptions, 10s no-speech warning - tests/test_sdk.py: assert mic_threshold attribute exists on TalkConfig - tests/unit/test_asr.py: TestMicThreshold verifies mic_threshold propagates to AudioClient Co-Authored-By: Tomasz Iniewicz <[email protected]>
Replace PyAudio with sounddevice for microphone recording across all audio modules, tests, and CI. Add PortAudio prerequisite documentation to the talk guide and troubleshooting page. Co-Authored-By: Claude Opus 4.6 <[email protected]>
|
@claude please review this PR. Are there any breaking changes? |
|
Claude finished @kovtcharov-amd's task —— View job PR Review: Fix gaia talk - mic sensitivity, LEMONADE_BASE_URL, stuck listening (#347)
Breaking Changes Analysis🟡 Potentially Breaking Change: Dependency Migration from PyAudio to sounddevice This PR replaces
Migration required: # Linux users
sudo apt-get install libportaudio2
# Reinstall GAIA talk extras
uv pip install -e ".[talk]"🟢 Non-Breaking: SDK API Additions
🟢 Non-Breaking: ChatConfig.base_url Default Change The change from
This is the correct fix since the previous behavior ignored the environment variable. Code Quality ReviewStrengths:
Minor Observations:
SummaryThis PR is ready to merge with one consideration:
Recommendation: Add a note to the release/changelog about the PyAudio → sounddevice migration requiring users to reinstall talk extras. |
- Replace unused `overflowed` with `_` in audio_recorder.py, whisper_asr.py, and audio_client.py (Pylint W0612) - Remove unused `import queue` and `from importlib import reload` from test_audio_recorder_sd.py (Flake8 F401) - Add direct sounddevice/whisper imports to test_asr.py skip guard so tests SKIP instead of FAIL when audio deps are absent - Replace print() with self.log.info() for microphone device line in audio_client.py (Black formatting applied) Co-Authored-By: Tomasz Śliwowski <[email protected]>
## Summary - Add release notes for v0.15.4.1 (`docs/releases/v0.15.4.1.mdx`) - Bump `__version__` from `0.15.4` → `0.15.4.1` in `src/gaia/version.py` - Add `releases/v0.15.4.1` to nav and update navbar label in `docs/docs.json` Closes #336, #339, #344, #345, #342, #348, #346 > **Note:** Do not tag `v0.15.4.1` until after this PR merges. --------- Co-authored-by: Tomasz Iniewicz <[email protected]>
Summary
Closes #347
This PR fixes three issues with
gaia talk:--mic-thresholdCLI argument that threads throughTalkConfig.mic_threshold→AudioClient.mic_threshold→WhisperAsr.silence_threshold, replacing the previously hardcoded valueLEMONADE_BASE_URLenv var ignored —ChatConfig.base_urlnow defaults toNoneinstead of"http://localhost:8000/api/v1", so the env var is respected by the LLM factoryTest plan
pytest tests/unit/test_talk_config.py— mic_threshold default, custom, AudioClient propagation (5 tests)pytest tests/unit/test_chat_config_base_url.py— base_url=None default, custom, forwarded to create_client (4 tests)pytest tests/unit/test_audio_client_mic_check.py— _check_mic_levels warns/passes/handles-exception/skips-without-asr, 10s no-speech warning (5 tests)pytest tests/test_sdk.py::TestTalkSDK— mic_threshold attribute exists (1 assertion added)pytest tests/unit/test_asr.py::TestMicThreshold— mic_threshold propagates end-to-end (skips without pyaudio)pytest tests/unit/ -v— full unit suite (431 passed, 14 skipped)python util/lint.py --all— all critical checks passgaia talk --help—--mic-thresholdflag visible🤖 Generated with Claude Code