Skip to main content
Glama

Voice Mode

by mbailey
test_audio_format_config.py•6.44 kB
#!/usr/bin/env python """ Test audio format configuration functionality. """ import os import pytest from unittest.mock import patch, MagicMock # Set required environment variables before imports os.environ['OPENAI_API_KEY'] = os.environ.get('OPENAI_API_KEY', 'test-key') class TestAudioFormatConfiguration: """Test audio format configuration and validation""" def test_default_audio_format(self): """Test that default audio format is pcm""" # Import after setting env vars from voice_mode.config import AUDIO_FORMAT, TTS_AUDIO_FORMAT, STT_AUDIO_FORMAT assert AUDIO_FORMAT == "pcm" assert TTS_AUDIO_FORMAT == "pcm" # Default changed to PCM for optimal streaming assert STT_AUDIO_FORMAT == "mp3" # PCM not supported by OpenAI Whisper, defaults to mp3 @patch.dict(os.environ, { 'VOICEMODE_AUDIO_FORMAT': 'mp3', 'VOICEMODE_TTS_AUDIO_FORMAT': 'flac', 'VOICEMODE_STT_AUDIO_FORMAT': 'wav' }) def test_custom_audio_formats(self): """Test custom audio format configuration""" # Need to reload the module to pick up new env vars import importlib import voice_mode.config importlib.reload(voice_mode.config) from voice_mode.config import AUDIO_FORMAT, TTS_AUDIO_FORMAT, STT_AUDIO_FORMAT assert AUDIO_FORMAT == "mp3" assert TTS_AUDIO_FORMAT == "flac" assert STT_AUDIO_FORMAT == "wav" def test_validate_audio_format(self): """Test audio format validation for providers""" from voice_mode.config import validate_audio_format # OpenAI supports opus assert validate_audio_format("opus", "openai", "tts") == "opus" # Kokoro now supports opus assert validate_audio_format("opus", "kokoro", "tts") == "opus" # Whisper supports wav assert validate_audio_format("wav", "whisper-local", "stt") == "wav" # Kokoro now supports pcm assert validate_audio_format("pcm", "kokoro", "tts") == "pcm" # Invalid format (aac) for Kokoro should fallback assert validate_audio_format("aac", "kokoro", "tts") in ["mp3", "opus", "flac", "wav", "pcm"] def test_get_provider_supported_formats(self): """Test getting supported formats for providers""" from voice_mode.config import get_provider_supported_formats # OpenAI TTS formats openai_tts = get_provider_supported_formats("openai", "tts") assert "opus" in openai_tts assert "mp3" in openai_tts assert "wav" in openai_tts # Kokoro TTS formats kokoro_tts = get_provider_supported_formats("kokoro", "tts") assert "mp3" in kokoro_tts assert "wav" in kokoro_tts # Whisper STT formats whisper_stt = get_provider_supported_formats("whisper-local", "stt") assert "wav" in whisper_stt assert "mp3" in whisper_stt def test_get_audio_loader_for_format(self): """Test getting correct audio loader for formats""" from voice_mode.config import get_audio_loader_for_format from pydub import AudioSegment # Test known formats assert get_audio_loader_for_format("mp3") == AudioSegment.from_mp3 assert get_audio_loader_for_format("wav") == AudioSegment.from_wav assert get_audio_loader_for_format("opus") == AudioSegment.from_ogg # FLAC might use from_flac or from_file depending on pydub version flac_loader = get_audio_loader_for_format("flac") assert flac_loader in [AudioSegment.from_file, getattr(AudioSegment, 'from_flac', AudioSegment.from_file)] # Test generic formats assert get_audio_loader_for_format("aac") == AudioSegment.from_file assert get_audio_loader_for_format("m4a") == AudioSegment.from_file # Test unknown format assert get_audio_loader_for_format("unknown") is None def test_get_format_export_params(self): """Test getting export parameters for formats""" from voice_mode.config import get_format_export_params, MP3_BITRATE, OPUS_BITRATE # MP3 params mp3_params = get_format_export_params("mp3") assert mp3_params["format"] == "mp3" assert mp3_params["bitrate"] == MP3_BITRATE # Opus params opus_params = get_format_export_params("opus") assert opus_params["format"] == "opus" assert opus_params["parameters"] == ["-b:a", str(OPUS_BITRATE)] # WAV params (no bitrate) wav_params = get_format_export_params("wav") assert wav_params["format"] == "wav" assert "bitrate" not in wav_params # FLAC params (lossless) flac_params = get_format_export_params("flac") assert flac_params["format"] == "flac" assert "bitrate" not in flac_params @patch.dict(os.environ, {'VOICEMODE_AUDIO_FORMAT': 'invalid_format'}) def test_invalid_format_fallback(self): """Test that invalid formats fall back to pcm""" # Need to reload the module to pick up new env vars import importlib import voice_mode.config importlib.reload(voice_mode.config) from voice_mode.config import AUDIO_FORMAT # Should fallback to pcm assert AUDIO_FORMAT == "pcm" def test_format_specific_bitrate_settings(self): """Test format-specific quality settings""" from voice_mode.config import OPUS_BITRATE, MP3_BITRATE, AAC_BITRATE # Default values assert OPUS_BITRATE == 32000 # 32kbps for voice assert MP3_BITRATE == "64k" assert AAC_BITRATE == "64k" @patch.dict(os.environ, { 'VOICEMODE_OPUS_BITRATE': '48000', 'VOICEMODE_MP3_BITRATE': '128k' }) def test_custom_bitrate_settings(self): """Test custom bitrate configuration""" # Need to reload the module to pick up new env vars import importlib import voice_mode.config importlib.reload(voice_mode.config) from voice_mode.config import OPUS_BITRATE, MP3_BITRATE assert OPUS_BITRATE == 48000 assert MP3_BITRATE == "128k" if __name__ == "__main__": pytest.main([__file__, "-v"])

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mbailey/voicemode'

If you have feedback or need assistance with the MCP directory API, please join our Discord server