* feat(asr): add chat audio remote benchmarking
* style(asr): apply black formatting
* test(main): include remote API model kwarg
* test(asr): add coverage for chat-completions error handling and parsing
Add 10 new tests to cover uncovered lines in PR #468:
- ConnectionError handler in _try_chat_completions_audio_api (lines 1601-1602)
- _parse_chat_completion_transcription edge cases: None, list content,
empty/whitespace strings, JSON without text field, plain text, and
single-line language metadata (lines 1610, 1613-1621, 1625, 1629-1640)
Coverage for recognition_manager.py improved from 85% to 86%.
* feat(asr): support FunASR remote responses
* refactor(asr): scope remote FunASR support to the #469 path
Drop chat-completions/Qwen client, evaluation notes, and the remote ASR
benchmark harness. Keep model field, tolerant OpenAI response parsing,
SenseVoice label stripping, FunASR docs, and tests.
Add a mock test server to help developers test the remote API feature
without needing a real server. The server supports both whisper.cpp
(/inference) and OpenAI-compatible (/v1/audio/transcriptions) formats.
- Move test_remote_server.py to scripts/ directory
- Make script executable
- Add documentation to CONTRIBUTING.md with usage examples
- Include instructions for testing both API formats
Usage:
python scripts/test_remote_server.py [--port PORT] [--delay SECONDS]