voice-mode 2.20.0__tar.gz → 2.20.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {voice_mode-2.20.0 → voice_mode-2.20.1}/CHANGELOG.md +8 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/PKG-INFO +1 -1
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/__version__.py +1 -1
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/tools/converse.py +12 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/.gitignore +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/README.md +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/pyproject.toml +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/__init__.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/__main__.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/cli.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/cli_commands/__init__.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/cli_commands/exchanges.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/config.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/conversation_logger.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/core.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/data/versions.json +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/exchanges/__init__.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/exchanges/conversations.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/exchanges/filters.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/exchanges/formatters.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/exchanges/models.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/exchanges/reader.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/exchanges/stats.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/prompts/README.md +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/prompts/__init__.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/prompts/converse.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/prompts/release_notes.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/prompts/services.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/provider_discovery.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/providers.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/resources/__init__.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/resources/audio_files.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/resources/changelog.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/resources/configuration.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/resources/statistics.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/resources/version.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/resources/whisper_models.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/server.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/shared.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/simple_failover.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/statistics.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/streaming.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/templates/launchd/com.voicemode.kokoro.plist +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/templates/launchd/com.voicemode.whisper.plist +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/templates/launchd/start-kokoro-with-health-check.sh +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/templates/launchd/start-whisper-with-health-check.sh +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/templates/systemd/voicemode-kokoro.service +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/templates/systemd/voicemode-whisper.service +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/tools/__init__.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/tools/configuration_management.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/tools/dependencies.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/tools/devices.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/tools/diagnostics.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/tools/providers.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/tools/service.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/tools/services/kokoro/install.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/tools/services/kokoro/uninstall.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/tools/services/list_versions.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/tools/services/version_info.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/tools/services/whisper/download_model.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/tools/services/whisper/install.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/tools/services/whisper/uninstall.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/tools/statistics.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/tools/voice_registry.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/utils/__init__.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/utils/audio_diagnostics.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/utils/event_logger.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/utils/ffmpeg_check.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/utils/format_migration.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/utils/gpu_detection.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/utils/migration_helpers.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/utils/services/common.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/utils/services/kokoro_helpers.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/utils/services/whisper_helpers.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/utils/version_helpers.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/version.py +0 -0
- {voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/voice_preferences.py +0 -0
@@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
7
7
|
|
8
8
|
## [Unreleased]
|
9
9
|
|
10
|
+
## [2.20.1] - 2025-08-11
|
11
|
+
|
12
|
+
### Fixed
|
13
|
+
- **Speed parameter validation error** - Fixed MCP validation error when passing speed parameter as string
|
14
|
+
- Added type conversion from string to float for speed parameter
|
15
|
+
- Now properly handles speed values passed by MCP clients (e.g., via uvx)
|
16
|
+
- Added comprehensive validation and error messages for invalid speed values
|
17
|
+
|
10
18
|
## [2.20.0] - 2025-08-10
|
11
19
|
|
12
20
|
### Added
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: voice-mode
|
3
|
-
Version: 2.20.
|
3
|
+
Version: 2.20.1
|
4
4
|
Summary: VoiceMode - Voice interaction capabilities for AI assistants (formerly voice-mcp)
|
5
5
|
Project-URL: Homepage, https://github.com/mbailey/voicemode
|
6
6
|
Project-URL: Repository, https://github.com/mbailey/voicemode
|
@@ -1351,6 +1351,18 @@ async def converse(
|
|
1351
1351
|
if isinstance(audio_feedback, str):
|
1352
1352
|
audio_feedback = audio_feedback.lower() in ('true', '1', 'yes', 'on')
|
1353
1353
|
|
1354
|
+
# Convert string speed to float
|
1355
|
+
if speed is not None and isinstance(speed, str):
|
1356
|
+
try:
|
1357
|
+
speed = float(speed)
|
1358
|
+
except ValueError:
|
1359
|
+
return f"❌ Error: speed must be a number (got '{speed}')"
|
1360
|
+
|
1361
|
+
# Validate speed parameter range
|
1362
|
+
if speed is not None:
|
1363
|
+
if not (0.25 <= speed <= 4.0):
|
1364
|
+
return f"❌ Error: speed must be between 0.25 and 4.0 (got {speed})"
|
1365
|
+
|
1354
1366
|
logger.info(f"Converse: '{message[:50]}{'...' if len(message) > 50 else ''}' (wait_for_response: {wait_for_response})")
|
1355
1367
|
|
1356
1368
|
# Validate vad_aggressiveness parameter
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/templates/launchd/com.voicemode.kokoro.plist
RENAMED
File without changes
|
{voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/templates/launchd/com.voicemode.whisper.plist
RENAMED
File without changes
|
File without changes
|
File without changes
|
{voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/templates/systemd/voicemode-kokoro.service
RENAMED
File without changes
|
{voice_mode-2.20.0 → voice_mode-2.20.1}/voice_mode/templates/systemd/voicemode-whisper.service
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|